Browse Source

+added fontawesome, improved readme

merge-requests/24/head
Kevin Froman 2 years ago
parent
commit
c3bb676363
  1. 2
      Dockerfile
  2. 26
      README.md
  3. 2
      onionr/httpapi/security/client.py
  4. 2
      onionr/onionrcommands/resetplugins.py
  5. 2
      onionr/static-data/www/board/board.js
  6. 5
      onionr/static-data/www/board/index.html
  7. 17
      onionr/static-data/www/mail/index.html
  8. 30
      onionr/static-data/www/private/index.html
  9. 34
      onionr/static-data/www/shared/fontawesome-free-5.10.2/LICENSE.txt
  10. 4396
      onionr/static-data/www/shared/fontawesome-free-5.10.2/css/all.css
  11. 5
      onionr/static-data/www/shared/fontawesome-free-5.10.2/css/all.min.css
  12. 14
      onionr/static-data/www/shared/fontawesome-free-5.10.2/css/brands.css
  13. 5
      onionr/static-data/www/shared/fontawesome-free-5.10.2/css/brands.min.css
  14. 4363
      onionr/static-data/www/shared/fontawesome-free-5.10.2/css/fontawesome.css
  15. 5
      onionr/static-data/www/shared/fontawesome-free-5.10.2/css/fontawesome.min.css
  16. 15
      onionr/static-data/www/shared/fontawesome-free-5.10.2/css/regular.css
  17. 5
      onionr/static-data/www/shared/fontawesome-free-5.10.2/css/regular.min.css
  18. 16
      onionr/static-data/www/shared/fontawesome-free-5.10.2/css/solid.css
  19. 5
      onionr/static-data/www/shared/fontawesome-free-5.10.2/css/solid.min.css
  20. 371
      onionr/static-data/www/shared/fontawesome-free-5.10.2/css/svg-with-js.css
  21. 5
      onionr/static-data/www/shared/fontawesome-free-5.10.2/css/svg-with-js.min.css
  22. 2166
      onionr/static-data/www/shared/fontawesome-free-5.10.2/css/v4-shims.css
  23. 5
      onionr/static-data/www/shared/fontawesome-free-5.10.2/css/v4-shims.min.css
  24. 4362
      onionr/static-data/www/shared/fontawesome-free-5.10.2/js/all.js
  25. 5
      onionr/static-data/www/shared/fontawesome-free-5.10.2/js/all.min.js
  26. 557
      onionr/static-data/www/shared/fontawesome-free-5.10.2/js/brands.js
  27. 5
      onionr/static-data/www/shared/fontawesome-free-5.10.2/js/brands.min.js
  28. 991
      onionr/static-data/www/shared/fontawesome-free-5.10.2/js/conflict-detection.js
  29. 5
      onionr/static-data/www/shared/fontawesome-free-5.10.2/js/conflict-detection.min.js
  30. 2452
      onionr/static-data/www/shared/fontawesome-free-5.10.2/js/fontawesome.js
  31. 5
      onionr/static-data/www/shared/fontawesome-free-5.10.2/js/fontawesome.min.js
  32. 280
      onionr/static-data/www/shared/fontawesome-free-5.10.2/js/regular.js
  33. 5
      onionr/static-data/www/shared/fontawesome-free-5.10.2/js/regular.min.js
  34. 1085
      onionr/static-data/www/shared/fontawesome-free-5.10.2/js/solid.js
  35. 5
      onionr/static-data/www/shared/fontawesome-free-5.10.2/js/solid.min.js
  36. 68
      onionr/static-data/www/shared/fontawesome-free-5.10.2/js/v4-shims.js
  37. 5
      onionr/static-data/www/shared/fontawesome-free-5.10.2/js/v4-shims.min.js
  38. 19
      onionr/static-data/www/shared/fontawesome-free-5.10.2/less/_animated.less
  39. 16
      onionr/static-data/www/shared/fontawesome-free-5.10.2/less/_bordered-pulled.less
  40. 12
      onionr/static-data/www/shared/fontawesome-free-5.10.2/less/_core.less
  41. 6
      onionr/static-data/www/shared/fontawesome-free-5.10.2/less/_fixed-width.less
  42. 1388
      onionr/static-data/www/shared/fontawesome-free-5.10.2/less/_icons.less
  43. 27
      onionr/static-data/www/shared/fontawesome-free-5.10.2/less/_larger.less
  44. 18
      onionr/static-data/www/shared/fontawesome-free-5.10.2/less/_list.less
  45. 56
      onionr/static-data/www/shared/fontawesome-free-5.10.2/less/_mixins.less
  46. 24
      onionr/static-data/www/shared/fontawesome-free-5.10.2/less/_rotated-flipped.less
  47. 5
      onionr/static-data/www/shared/fontawesome-free-5.10.2/less/_screen-reader.less
  48. 2062
      onionr/static-data/www/shared/fontawesome-free-5.10.2/less/_shims.less
  49. 22
      onionr/static-data/www/shared/fontawesome-free-5.10.2/less/_stacked.less
  50. 1400
      onionr/static-data/www/shared/fontawesome-free-5.10.2/less/_variables.less
  51. 22
      onionr/static-data/www/shared/fontawesome-free-5.10.2/less/brands.less
  52. 16
      onionr/static-data/www/shared/fontawesome-free-5.10.2/less/fontawesome.less
  53. 23
      onionr/static-data/www/shared/fontawesome-free-5.10.2/less/regular.less
  54. 24
      onionr/static-data/www/shared/fontawesome-free-5.10.2/less/solid.less
  55. 6
      onionr/static-data/www/shared/fontawesome-free-5.10.2/less/v4-shims.less
  56. 2492
      onionr/static-data/www/shared/fontawesome-free-5.10.2/metadata/categories.yml
  57. 55510
      onionr/static-data/www/shared/fontawesome-free-5.10.2/metadata/icons.json
  58. 20492
      onionr/static-data/www/shared/fontawesome-free-5.10.2/metadata/icons.yml
  59. 2307
      onionr/static-data/www/shared/fontawesome-free-5.10.2/metadata/shims.json
  60. 294
      onionr/static-data/www/shared/fontawesome-free-5.10.2/metadata/shims.yml
  61. 680
      onionr/static-data/www/shared/fontawesome-free-5.10.2/metadata/sponsors.yml
  62. 20
      onionr/static-data/www/shared/fontawesome-free-5.10.2/scss/_animated.scss
  63. 20
      onionr/static-data/www/shared/fontawesome-free-5.10.2/scss/_bordered-pulled.scss
  64. 21
      onionr/static-data/www/shared/fontawesome-free-5.10.2/scss/_core.scss
  65. 6
      onionr/static-data/www/shared/fontawesome-free-5.10.2/scss/_fixed-width.scss
  66. 1388
      onionr/static-data/www/shared/fontawesome-free-5.10.2/scss/_icons.scss
  67. 23
      onionr/static-data/www/shared/fontawesome-free-5.10.2/scss/_larger.scss
  68. 18
      onionr/static-data/www/shared/fontawesome-free-5.10.2/scss/_list.scss
  69. 56
      onionr/static-data/www/shared/fontawesome-free-5.10.2/scss/_mixins.scss
  70. 24
      onionr/static-data/www/shared/fontawesome-free-5.10.2/scss/_rotated-flipped.scss
  71. 5
      onionr/static-data/www/shared/fontawesome-free-5.10.2/scss/_screen-reader.scss
  72. 2062
      onionr/static-data/www/shared/fontawesome-free-5.10.2/scss/_shims.scss
  73. 31
      onionr/static-data/www/shared/fontawesome-free-5.10.2/scss/_stacked.scss
  74. 1405
      onionr/static-data/www/shared/fontawesome-free-5.10.2/scss/_variables.scss
  75. 22
      onionr/static-data/www/shared/fontawesome-free-5.10.2/scss/brands.scss
  76. 16
      onionr/static-data/www/shared/fontawesome-free-5.10.2/scss/fontawesome.scss
  77. 23
      onionr/static-data/www/shared/fontawesome-free-5.10.2/scss/regular.scss
  78. 24
      onionr/static-data/www/shared/fontawesome-free-5.10.2/scss/solid.scss
  79. 6
      onionr/static-data/www/shared/fontawesome-free-5.10.2/scss/v4-shims.scss
  80. 1294
      onionr/static-data/www/shared/fontawesome-free-5.10.2/sprites/brands.svg
  81. 463
      onionr/static-data/www/shared/fontawesome-free-5.10.2/sprites/regular.svg
  82. 2878
      onionr/static-data/www/shared/fontawesome-free-5.10.2/sprites/solid.svg
  83. 1
      onionr/static-data/www/shared/fontawesome-free-5.10.2/svgs/brands/500px.svg
  84. 1
      onionr/static-data/www/shared/fontawesome-free-5.10.2/svgs/brands/accessible-icon.svg
  85. 1
      onionr/static-data/www/shared/fontawesome-free-5.10.2/svgs/brands/accusoft.svg
  86. 1
      onionr/static-data/www/shared/fontawesome-free-5.10.2/svgs/brands/acquisitions-incorporated.svg
  87. 1
      onionr/static-data/www/shared/fontawesome-free-5.10.2/svgs/brands/adn.svg
  88. 1
      onionr/static-data/www/shared/fontawesome-free-5.10.2/svgs/brands/adobe.svg
  89. 1
      onionr/static-data/www/shared/fontawesome-free-5.10.2/svgs/brands/adversal.svg
  90. 1
      onionr/static-data/www/shared/fontawesome-free-5.10.2/svgs/brands/affiliatetheme.svg
  91. 1
      onionr/static-data/www/shared/fontawesome-free-5.10.2/svgs/brands/airbnb.svg
  92. 1
      onionr/static-data/www/shared/fontawesome-free-5.10.2/svgs/brands/algolia.svg
  93. 1
      onionr/static-data/www/shared/fontawesome-free-5.10.2/svgs/brands/alipay.svg
  94. 1
      onionr/static-data/www/shared/fontawesome-free-5.10.2/svgs/brands/amazon-pay.svg
  95. 1
      onionr/static-data/www/shared/fontawesome-free-5.10.2/svgs/brands/amazon.svg
  96. 1
      onionr/static-data/www/shared/fontawesome-free-5.10.2/svgs/brands/amilia.svg
  97. 1
      onionr/static-data/www/shared/fontawesome-free-5.10.2/svgs/brands/android.svg
  98. 1
      onionr/static-data/www/shared/fontawesome-free-5.10.2/svgs/brands/angellist.svg
  99. 1
      onionr/static-data/www/shared/fontawesome-free-5.10.2/svgs/brands/angrycreative.svg
  100. 1
      onionr/static-data/www/shared/fontawesome-free-5.10.2/svgs/brands/angular.svg

2
Dockerfile

@ -14,7 +14,7 @@ ENV LC_ALL en_US.UTF-8
WORKDIR /srv/
ADD ./requirements.txt /srv/requirements.txt
RUN pip3 install -r requirements.txt
RUN pip3 install --require-hashes -r requirements.txt
WORKDIR /root/
#Add Onionr source

26
README.md

@ -8,16 +8,26 @@
Private P2P Communication Network ๐Ÿ“ก
</p>
(***pre-alpha & experimental, not well tested or easy to use yet***)
<img src='https://img.shields.io/github/license/beardog108/onionr'>
<img src='https://gitlab.com/beardog/Onionr/badges/master/build.svg'>
<img src='https://img.shields.io/badge/Docker%20%F0%9F%90%8B-Supported-success'>
<img src='https://img.shields.io/badge/Python%20Version%20%F0%9F%90%8D-3.6+%20%E2%9C%93-blue'>
<img src='https://img.shields.io/keybase/btc/beardog'>
<img src='https://img.shields.io/github/commit-activity/m/beardog108/onionr'>
<img src = 'https://img.shields.io/reddit/subreddit-subscribers/onionr?style=social'> <img src='https://img.shields.io/twitter/follow/onionrnet?style=social'>
| | | |
| ----------- | ----------- | ----------- |
| [Install](#install-and-run-on-linux) | [Features](#main-features) | [Screenshots](#screenshots)|
| [Docs](#documentation) | [Get involved](#help-out) | [Onionr.net](https://onionr.net/)/[.onion](http://onionr.onionkvc5ibm37bmxwr56bdxcdnb6w3wm4bdghh5qo6f6za7gn7styid.onion/) |
[![Open Source Love](https://badges.frapsoft.com/os/v3/open-source.png?v=103)](https://github.com/ellerbrock/open-source-badges/)
<img src='https://gitlab.com/beardog/Onionr/badges/master/build.svg'> - [Onionr.net](https://onionr.net/) - [.onion](http://onionr.onionkvc5ibm37bmxwr56bdxcdnb6w3wm4bdghh5qo6f6za7gn7styid.onion/)
<hr>
**The main repository for this software is at https://GitLab.com/beardog/Onionr/**
**The Github page is a mirror, do not submit PRs or issues there.**
**The [Github repository](https://github.com/beardog108/onionr/) is a mirror, do not submit PRs or issues there.**
# About
@ -42,8 +52,6 @@ The whitepaper (subject to change prior to alpha release) is available [here](do
* [X] ๐Ÿ•ต๏ธ Metadata analysis resistance and anonymity
* [X] ๐Ÿ“ก Transport agnosticism (no internet required)
## Software Suite
Onionr ships with various application plugins ready for use out of the box:
Currently usable:
@ -133,7 +141,9 @@ Email: beardog [ at ] mailbox.org
Onionr Mail: TRH763JURNY47QPBTTQ4LLPYCYQK6Q5YA33R6GANKZK5C5DKCIGQ
## Disclaimers and legal
# Security
Onionr is pre-alpha. This means it is unstable, probably insecure, and experimental.
No matter how good Onionr and other software gets, there will always be ways for clever or well-funded adversaries to break your security.
@ -149,8 +159,6 @@ The Tor Project and I2P developers do not own, create, or endorse this project,
Tor is a trademark for the Tor Project. We do not own it.
The 'open source badge' is by Maik Ellerbrock and is licensed under a Creative Commons Attribution 4.0 International License.
## Onionr Logo
The Onionr logo was created by [Anhar Ismail](https://github.com/anharismail) under the [Creative Commons Attribution 4.0 International License](https://creativecommons.org/licenses/by/4.0/).

2
onionr/httpapi/security/client.py

@ -63,5 +63,5 @@ class ClientAPISecurity:
if request.endpoint == 'siteapi.site':
resp.headers['Content-Security-Policy'] = "default-src 'none'; style-src data: 'unsafe-inline'; img-src data:"
else:
resp.headers['Content-Security-Policy'] = "default-src 'none'; script-src 'self'; object-src 'none'; style-src 'self'; img-src 'self'; media-src 'none'; frame-src 'none'; font-src 'none'; connect-src 'self'"
resp.headers['Content-Security-Policy'] = "default-src 'none'; script-src 'self'; object-src 'none'; style-src 'self'; img-src 'self'; media-src 'none'; frame-src 'none'; font-src 'self'; connect-src 'self'"
return resp

2
onionr/onionrcommands/resetplugins.py

@ -33,3 +33,5 @@ def reset():
setup_default_plugins()
logger.info('Default plugins have been reset.', terminal=True)
reset.onionr_help = "reinstalls default Onionr plugins (e.g. mail). Should be done after git pulls or plugin modification."

2
onionr/static-data/www/board/board.js

@ -94,7 +94,7 @@ newPostForm.onsubmit = function(){
var message = document.getElementById('newMsgText').value
var channel = document.getElementById('feedIDInput').value
var meta = {'ch': channel}
var postData = {'message': message, 'type': 'brd', 'encrypt': false, 'meta': JSON.stringify(meta)}
var postData = {'message': message, 'sign': false, 'type': 'brd', 'encrypt': false, 'meta': JSON.stringify(meta)}
postData = JSON.stringify(postData)
newPostForm.style.display = 'none'
fetch('/insertblock', {

5
onionr/static-data/www/board/index.html

@ -113,6 +113,11 @@
</div>
<input type="checkbox" class="checkbox" id="refreshCheckbox" checked>
<label for="refreshCheckbox">Auto Refresh Feed</label>
<!--
<br>
<input type="checkbox" class="checkbox" id="postAnon" checked>
<label for="postAnon">Sign posts</label>
-->
</div>
</div>
<div class="content">

17
onionr/static-data/www/mail/index.html

@ -3,13 +3,12 @@
<head>
<meta charset='utf-8'>
<!--Mobile responsive-->
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>
Onionr Mail
</title>
<link rel='shortcut icon' type='image/ico' href='/shared/images/favicon.ico'>
<link rel='stylesheet' href='/shared/main/bulma.min.css'>
<link rel="stylesheet" href="/shared/main/bulma.min.css">
<link rel="stylesheet" href="/shared/main/styles-new.css">
<link rel="stylesheet" href="/mail/mail.css">
</head>
@ -108,14 +107,20 @@
</div>
<div id='sendMessage' class='overlay'>
<div class='overlayContent'>
<label>Select friend: <select id='friendSelect'></select></label>
<div class="field">
<label>Select friend: <select id='friendSelect'></select></label>
</div>
<form method='post' action='' id='sendForm' enctype="application/x-www-form-urlencoded">
<span class='closeOverlay' overlay='sendMessage'></span>
To: <input id='draftID' type='text' name='to' placeholder='pubkey' required>
<div class="field">
To: <input id='draftID' type='text' name='to' placeholder='pubkey' required>
</div>
Subject: <input name='subject' id='draftSubject' maxlength=25 type='text'
placeholder='message subject'>
<textarea name='message' placeholder='type your message...' id='draftText' required></textarea>
<input type='submit' value='Send' class='successBtn'>
<div class="field">
<textarea name='message' class="textarea" placeholder='type your message...' id='draftText' required></textarea>
</div>
<input type='submit' value='Send' class='button is-success successBtn'>
</form>
</div>
</div>

30
onionr/static-data/www/private/index.html

@ -9,7 +9,8 @@
Onionr
</title>
<link rel='shortcut icon' type='image/ico' href='/shared/images/favicon.ico'>
<link rel='stylesheet' href='/shared/main/bulma.min.css'>
<link rel="stylesheet" href="/shared/fontawesome-free-5.10.2/css/all.css">
<link rel="stylesheet" href="/shared/main/bulma.min.css">
<link rel="stylesheet" href="/shared/main/styles-new.css">
<script defer src='/shared/navbar.js'></script>
<script defer src='/shared/misc.js'></script>
@ -76,13 +77,19 @@
<input id="myPub" class="input myPub" type="text" readonly>
</p>
<p class="control">
<a id="myPubCopy" class="button is-primary">Copy</a>
<a id="myPubCopy" class="button is-primary">
<span class="icon">
<i class="fas fa-copy"></i>
</span>
</a>
</p>
</div>
</div>
<div class="field is-grouped is-grouped-centered">
<p class="control">
<a class="button is-danger is-outlined" id='shutdownNode'>Shutdown Node</a>
<a class="button is-danger is-outlined" id='shutdownNode'>
Shutdown
</a>
</p>
<p class="control">
<a class="button is-link" id='refreshStats'>Refresh Stats</a>
@ -137,10 +144,14 @@
<div class="content">
<div class="columns">
<div class="column">
๐Ÿ”’ Security level: <span id='securityLevel'></span>
<span class="icon">
<i class="fas fa-lock"></i>
</span>
Security level: <span id='securityLevel'></span>
</div>
<div class="column">
๐Ÿ•ฐ๏ธ Uptime: <span id='uptime'></span>
<i class="fas fa-clock"></i>
Uptime: <span id='uptime'></span>
</div>
</div>
<h6>Session Connections</h6>
@ -152,7 +163,8 @@
โฌ‡๏ธ Total Requests: <span id='totalRec'>None since start</span>
</div>
</div>
๐Ÿ”— Outgoing Connections:
<i class="fas fa-link"></i>
Outgoing Connections:
<div class="control">
<pre id='connectedNodes' class="textarea" rows="5" readonly>Unable to get nodes</pre>
</div>
@ -160,10 +172,12 @@
<h6>Blocks</h6>
<div class="columns">
<div class="column">
๐Ÿ’พ Stored Blocks: <span id='storedBlocks'></span>
<i class="fas fa-hdd"></i>
Stored Blocks: <span id='storedBlocks'></span>
</div>
<div class="column">
๐Ÿ“จ Blocks in queue: <span id='blockQueue'></span>
<i class="fas fa-mail-bulk"></i>
Blocks in queue: <span id='blockQueue'></span>
</div>
</div>
</div>

34
onionr/static-data/www/shared/fontawesome-free-5.10.2/LICENSE.txt

@ -0,0 +1,34 @@
Font Awesome Free License
-------------------------
Font Awesome Free is free, open source, and GPL friendly. You can use it for
commercial projects, open source projects, or really almost whatever you want.
Full Font Awesome Free license: https://fontawesome.com/license/free.
# Icons: CC BY 4.0 License (https://creativecommons.org/licenses/by/4.0/)
In the Font Awesome Free download, the CC BY 4.0 license applies to all icons
packaged as SVG and JS file types.
# Fonts: SIL OFL 1.1 License (https://scripts.sil.org/OFL)
In the Font Awesome Free download, the SIL OFL license applies to all icons
packaged as web and desktop font files.
# Code: MIT License (https://opensource.org/licenses/MIT)
In the Font Awesome Free download, the MIT license applies to all non-font and
non-icon files.
# Attribution
Attribution is required by MIT, SIL OFL, and CC BY licenses. Downloaded Font
Awesome Free files already contain embedded comments with sufficient
attribution, so you shouldn't need to do anything additional when using these
files normally.
We've kept attribution comments terse, so we ask that you do not actively work
to remove them from files, especially code. They're a great way for folks to
learn about Font Awesome.
# Brand Icons
All brand icons are trademarks of their respective owners. The use of these
trademarks does not indicate endorsement of the trademark holder by Font
Awesome, nor vice versa. **Please do not use brand logos for any purpose except
to represent the company, product, or service to which they refer.**

4396
onionr/static-data/www/shared/fontawesome-free-5.10.2/css/all.css

File diff suppressed because it is too large

5
onionr/static-data/www/shared/fontawesome-free-5.10.2/css/all.min.css

File diff suppressed because one or more lines are too long

14
onionr/static-data/www/shared/fontawesome-free-5.10.2/css/brands.css

@ -0,0 +1,14 @@
/*!
* Font Awesome Free 5.10.2 by @fontawesome - https://fontawesome.com
* License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
*/
@font-face {
font-family: 'Font Awesome 5 Brands';
font-style: normal;
font-weight: normal;
font-display: auto;
src: url("../webfonts/fa-brands-400.eot");
src: url("../webfonts/fa-brands-400.eot?#iefix") format("embedded-opentype"), url("../webfonts/fa-brands-400.woff2") format("woff2"), url("../webfonts/fa-brands-400.woff") format("woff"), url("../webfonts/fa-brands-400.ttf") format("truetype"), url("../webfonts/fa-brands-400.svg#fontawesome") format("svg"); }
.fab {
font-family: 'Font Awesome 5 Brands'; }

5
onionr/static-data/www/shared/fontawesome-free-5.10.2/css/brands.min.css

@ -0,0 +1,5 @@
/*!
* Font Awesome Free 5.10.2 by @fontawesome - https://fontawesome.com
* License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
*/
@font-face{font-family:"Font Awesome 5 Brands";font-style:normal;font-weight:normal;font-display:auto;src:url(../webfonts/fa-brands-400.eot);src:url(../webfonts/fa-brands-400.eot?#iefix) format("embedded-opentype"),url(../webfonts/fa-brands-400.woff2) format("woff2"),url(../webfonts/fa-brands-400.woff) format("woff"),url(../webfonts/fa-brands-400.ttf) format("truetype"),url(../webfonts/fa-brands-400.svg#fontawesome) format("svg")}.fab{font-family:"Font Awesome 5 Brands"}

4363
onionr/static-data/www/shared/fontawesome-free-5.10.2/css/fontawesome.css

File diff suppressed because it is too large

5
onionr/static-data/www/shared/fontawesome-free-5.10.2/css/fontawesome.min.css

File diff suppressed because one or more lines are too long

15
onionr/static-data/www/shared/fontawesome-free-5.10.2/css/regular.css

@ -0,0 +1,15 @@
/*!
* Font Awesome Free 5.10.2 by @fontawesome - https://fontawesome.com
* License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
*/
@font-face {
font-family: 'Font Awesome 5 Free';
font-style: normal;
font-weight: 400;
font-display: auto;
src: url("../webfonts/fa-regular-400.eot");
src: url("../webfonts/fa-regular-400.eot?#iefix") format("embedded-opentype"), url("../webfonts/fa-regular-400.woff2") format("woff2"), url("../webfonts/fa-regular-400.woff") format("woff"), url("../webfonts/fa-regular-400.ttf") format("truetype"), url("../webfonts/fa-regular-400.svg#fontawesome") format("svg"); }
.far {
font-family: 'Font Awesome 5 Free';
font-weight: 400; }

5
onionr/static-data/www/shared/fontawesome-free-5.10.2/css/regular.min.css

@ -0,0 +1,5 @@
/*!
* Font Awesome Free 5.10.2 by @fontawesome - https://fontawesome.com
* License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
*/
@font-face{font-family:"Font Awesome 5 Free";font-style:normal;font-weight:400;font-display:auto;src:url(../webfonts/fa-regular-400.eot);src:url(../webfonts/fa-regular-400.eot?#iefix) format("embedded-opentype"),url(../webfonts/fa-regular-400.woff2) format("woff2"),url(../webfonts/fa-regular-400.woff) format("woff"),url(../webfonts/fa-regular-400.ttf) format("truetype"),url(../webfonts/fa-regular-400.svg#fontawesome) format("svg")}.far{font-family:"Font Awesome 5 Free";font-weight:400}

16
onionr/static-data/www/shared/fontawesome-free-5.10.2/css/solid.css

@ -0,0 +1,16 @@
/*!
* Font Awesome Free 5.10.2 by @fontawesome - https://fontawesome.com
* License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
*/
@font-face {
font-family: 'Font Awesome 5 Free';
font-style: normal;
font-weight: 900;
font-display: auto;
src: url("../webfonts/fa-solid-900.eot");
src: url("../webfonts/fa-solid-900.eot?#iefix") format("embedded-opentype"), url("../webfonts/fa-solid-900.woff2") format("woff2"), url("../webfonts/fa-solid-900.woff") format("woff"), url("../webfonts/fa-solid-900.ttf") format("truetype"), url("../webfonts/fa-solid-900.svg#fontawesome") format("svg"); }
.fa,
.fas {
font-family: 'Font Awesome 5 Free';
font-weight: 900; }

5
onionr/static-data/www/shared/fontawesome-free-5.10.2/css/solid.min.css

@ -0,0 +1,5 @@
/*!
* Font Awesome Free 5.10.2 by @fontawesome - https://fontawesome.com
* License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
*/
@font-face{font-family:"Font Awesome 5 Free";font-style:normal;font-weight:900;font-display:auto;src:url(../webfonts/fa-solid-900.eot);src:url(../webfonts/fa-solid-900.eot?#iefix) format("embedded-opentype"),url(../webfonts/fa-solid-900.woff2) format("woff2"),url(../webfonts/fa-solid-900.woff) format("woff"),url(../webfonts/fa-solid-900.ttf) format("truetype"),url(../webfonts/fa-solid-900.svg#fontawesome) format("svg")}.fa,.fas{font-family:"Font Awesome 5 Free";font-weight:900}

371
onionr/static-data/www/shared/fontawesome-free-5.10.2/css/svg-with-js.css

@ -0,0 +1,371 @@
/*!
* Font Awesome Free 5.10.2 by @fontawesome - https://fontawesome.com
* License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
*/
svg:not(:root).svg-inline--fa {
overflow: visible; }
.svg-inline--fa {
display: inline-block;
font-size: inherit;
height: 1em;
overflow: visible;
vertical-align: -.125em; }
.svg-inline--fa.fa-lg {
vertical-align: -.225em; }
.svg-inline--fa.fa-w-1 {
width: 0.0625em; }
.svg-inline--fa.fa-w-2 {
width: 0.125em; }
.svg-inline--fa.fa-w-3 {
width: 0.1875em; }
.svg-inline--fa.fa-w-4 {
width: 0.25em; }
.svg-inline--fa.fa-w-5 {
width: 0.3125em; }
.svg-inline--fa.fa-w-6 {
width: 0.375em; }
.svg-inline--fa.fa-w-7 {
width: 0.4375em; }
.svg-inline--fa.fa-w-8 {
width: 0.5em; }
.svg-inline--fa.fa-w-9 {
width: 0.5625em; }
.svg-inline--fa.fa-w-10 {
width: 0.625em; }
.svg-inline--fa.fa-w-11 {
width: 0.6875em; }
.svg-inline--fa.fa-w-12 {
width: 0.75em; }
.svg-inline--fa.fa-w-13 {
width: 0.8125em; }
.svg-inline--fa.fa-w-14 {
width: 0.875em; }
.svg-inline--fa.fa-w-15 {
width: 0.9375em; }
.svg-inline--fa.fa-w-16 {
width: 1em; }
.svg-inline--fa.fa-w-17 {
width: 1.0625em; }
.svg-inline--fa.fa-w-18 {
width: 1.125em; }
.svg-inline--fa.fa-w-19 {
width: 1.1875em; }
.svg-inline--fa.fa-w-20 {
width: 1.25em; }
.svg-inline--fa.fa-pull-left {
margin-right: .3em;
width: auto; }
.svg-inline--fa.fa-pull-right {
margin-left: .3em;
width: auto; }
.svg-inline--fa.fa-border {
height: 1.5em; }
.svg-inline--fa.fa-li {
width: 2em; }
.svg-inline--fa.fa-fw {
width: 1.25em; }
.fa-layers svg.svg-inline--fa {
bottom: 0;
left: 0;
margin: auto;
position: absolute;
right: 0;
top: 0; }
.fa-layers {
display: inline-block;
height: 1em;
position: relative;
text-align: center;
vertical-align: -.125em;
width: 1em; }
.fa-layers svg.svg-inline--fa {
-webkit-transform-origin: center center;
transform-origin: center center; }
.fa-layers-text, .fa-layers-counter {
display: inline-block;
position: absolute;
text-align: center; }
.fa-layers-text {
left: 50%;
top: 50%;
-webkit-transform: translate(-50%, -50%);
transform: translate(-50%, -50%);
-webkit-transform-origin: center center;
transform-origin: center center; }
.fa-layers-counter {
background-color: #ff253a;
border-radius: 1em;
-webkit-box-sizing: border-box;
box-sizing: border-box;
color: #fff;
height: 1.5em;
line-height: 1;
max-width: 5em;
min-width: 1.5em;
overflow: hidden;
padding: .25em;
right: 0;
text-overflow: ellipsis;
top: 0;
-webkit-transform: scale(0.25);
transform: scale(0.25);
-webkit-transform-origin: top right;
transform-origin: top right; }
.fa-layers-bottom-right {
bottom: 0;
right: 0;
top: auto;
-webkit-transform: scale(0.25);
transform: scale(0.25);
-webkit-transform-origin: bottom right;
transform-origin: bottom right; }
.fa-layers-bottom-left {
bottom: 0;
left: 0;
right: auto;
top: auto;
-webkit-transform: scale(0.25);
transform: scale(0.25);
-webkit-transform-origin: bottom left;
transform-origin: bottom left; }
.fa-layers-top-right {
right: 0;
top: 0;
-webkit-transform: scale(0.25);
transform: scale(0.25);
-webkit-transform-origin: top right;
transform-origin: top right; }
.fa-layers-top-left {
left: 0;
right: auto;
top: 0;
-webkit-transform: scale(0.25);
transform: scale(0.25);
-webkit-transform-origin: top left;
transform-origin: top left; }
.fa-lg {
font-size: 1.33333em;
line-height: 0.75em;
vertical-align: -.0667em; }
.fa-xs {
font-size: .75em; }
.fa-sm {
font-size: .875em; }
.fa-1x {
font-size: 1em; }
.fa-2x {
font-size: 2em; }
.fa-3x {
font-size: 3em; }
.fa-4x {
font-size: 4em; }
.fa-5x {
font-size: 5em; }
.fa-6x {
font-size: 6em; }
.fa-7x {
font-size: 7em; }
.fa-8x {
font-size: 8em; }
.fa-9x {
font-size: 9em; }
.fa-10x {
font-size: 10em; }
.fa-fw {
text-align: center;
width: 1.25em; }
.fa-ul {
list-style-type: none;
margin-left: 2.5em;
padding-left: 0; }
.fa-ul > li {
position: relative; }
.fa-li {
left: -2em;
position: absolute;
text-align: center;
width: 2em;
line-height: inherit; }
.fa-border {
border: solid 0.08em #eee;
border-radius: .1em;
padding: .2em .25em .15em; }
.fa-pull-left {
float: left; }
.fa-pull-right {
float: right; }
.fa.fa-pull-left,
.fas.fa-pull-left,
.far.fa-pull-left,
.fal.fa-pull-left,
.fab.fa-pull-left {
margin-right: .3em; }
.fa.fa-pull-right,
.fas.fa-pull-right,
.far.fa-pull-right,
.fal.fa-pull-right,
.fab.fa-pull-right {
margin-left: .3em; }
.fa-spin {
-webkit-animation: fa-spin 2s infinite linear;
animation: fa-spin 2s infinite linear; }
.fa-pulse {
-webkit-animation: fa-spin 1s infinite steps(8);
animation: fa-spin 1s infinite steps(8); }
@-webkit-keyframes fa-spin {
0% {
-webkit-transform: rotate(0deg);
transform: rotate(0deg); }
100% {
-webkit-transform: rotate(360deg);
transform: rotate(360deg); } }
@keyframes fa-spin {
0% {
-webkit-transform: rotate(0deg);
transform: rotate(0deg); }
100% {
-webkit-transform: rotate(360deg);
transform: rotate(360deg); } }
.fa-rotate-90 {
-ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";
-webkit-transform: rotate(90deg);
transform: rotate(90deg); }
.fa-rotate-180 {
-ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";
-webkit-transform: rotate(180deg);
transform: rotate(180deg); }
.fa-rotate-270 {
-ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";
-webkit-transform: rotate(270deg);
transform: rotate(270deg); }
.fa-flip-horizontal {
-ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";
-webkit-transform: scale(-1, 1);
transform: scale(-1, 1); }
.fa-flip-vertical {
-ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";
-webkit-transform: scale(1, -1);
transform: scale(1, -1); }
.fa-flip-both, .fa-flip-horizontal.fa-flip-vertical {
-ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";
-webkit-transform: scale(-1, -1);
transform: scale(-1, -1); }
:root .fa-rotate-90,
:root .fa-rotate-180,
:root .fa-rotate-270,
:root .fa-flip-horizontal,
:root .fa-flip-vertical,
:root .fa-flip-both {
-webkit-filter: none;
filter: none; }
.fa-stack {
display: inline-block;
height: 2em;
position: relative;
width: 2.5em; }
.fa-stack-1x,
.fa-stack-2x {
bottom: 0;
left: 0;
margin: auto;
position: absolute;
right: 0;
top: 0; }
.svg-inline--fa.fa-stack-1x {
height: 1em;
width: 1.25em; }
.svg-inline--fa.fa-stack-2x {
height: 2em;
width: 2.5em; }
.fa-inverse {
color: #fff; }
.sr-only {
border: 0;
clip: rect(0, 0, 0, 0);
height: 1px;
margin: -1px;
overflow: hidden;
padding: 0;
position: absolute;
width: 1px; }
.sr-only-focusable:active, .sr-only-focusable:focus {
clip: auto;
height: auto;
margin: 0;
overflow: visible;
position: static;
width: auto; }
.svg-inline--fa .fa-primary {
fill: var(--fa-primary-color, currentColor);
opacity: 1;
opacity: var(--fa-primary-opacity, 1); }
.svg-inline--fa .fa-secondary {
fill: var(--fa-secondary-color, currentColor);
opacity: 0.4;
opacity: var(--fa-secondary-opacity, 0.4); }
.svg-inline--fa.fa-swap-opacity .fa-primary {
opacity: 0.4;
opacity: var(--fa-secondary-opacity, 0.4); }
.svg-inline--fa.fa-swap-opacity .fa-secondary {
opacity: 1;
opacity: var(--fa-primary-opacity, 1); }
.svg-inline--fa mask .fa-primary,
.svg-inline--fa mask .fa-secondary {
fill: black; }
.fad.fa-inverse {
color: #fff; }

5
onionr/static-data/www/shared/fontawesome-free-5.10.2/css/svg-with-js.min.css

File diff suppressed because one or more lines are too long

2166
onionr/static-data/www/shared/fontawesome-free-5.10.2/css/v4-shims.css

File diff suppressed because it is too large

5
onionr/static-data/www/shared/fontawesome-free-5.10.2/css/v4-shims.min.css

File diff suppressed because one or more lines are too long

4362
onionr/static-data/www/shared/fontawesome-free-5.10.2/js/all.js

File diff suppressed because one or more lines are too long

5
onionr/static-data/www/shared/fontawesome-free-5.10.2/js/all.min.js

File diff suppressed because one or more lines are too long

557
onionr/static-data/www/shared/fontawesome-free-5.10.2/js/brands.js

File diff suppressed because one or more lines are too long

5
onionr/static-data/www/shared/fontawesome-free-5.10.2/js/brands.min.js

File diff suppressed because one or more lines are too long

991
onionr/static-data/www/shared/fontawesome-free-5.10.2/js/conflict-detection.js

@ -0,0 +1,991 @@
/*!
* Font Awesome Free 5.10.2 by @fontawesome - https://fontawesome.com
* License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
*/
(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
typeof define === 'function' && define.amd ? define(['exports'], factory) :
(factory((global['fontawesome-free-conflict-detection'] = {})));
}(this, (function (exports) { 'use strict';
function _typeof(obj) {
if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") {
_typeof = function (obj) {
return typeof obj;
};
} else {
_typeof = function (obj) {
return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
};
}
return _typeof(obj);
}
function _defineProperty(obj, key, value) {
if (key in obj) {
Object.defineProperty(obj, key, {
value: value,
enumerable: true,
configurable: true,
writable: true
});
} else {
obj[key] = value;
}
return obj;
}
function _objectSpread(target) {
for (var i = 1; i < arguments.length; i++) {
var source = arguments[i] != null ? arguments[i] : {};
var ownKeys = Object.keys(source);
if (typeof Object.getOwnPropertySymbols === 'function') {
ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {
return Object.getOwnPropertyDescriptor(source, sym).enumerable;
}));
}
ownKeys.forEach(function (key) {
_defineProperty(target, key, source[key]);
});
}
return target;
}
var _WINDOW = {};
var _DOCUMENT = {};
try {
if (typeof window !== 'undefined') _WINDOW = window;
if (typeof document !== 'undefined') _DOCUMENT = document;
} catch (e) {}
var _ref = _WINDOW.navigator || {},
_ref$userAgent = _ref.userAgent,
userAgent = _ref$userAgent === void 0 ? '' : _ref$userAgent;
var WINDOW = _WINDOW;
var DOCUMENT = _DOCUMENT;
var IS_BROWSER = !!WINDOW.document;
var IS_DOM = !!DOCUMENT.documentElement && !!DOCUMENT.head && typeof DOCUMENT.addEventListener === 'function' && typeof DOCUMENT.createElement === 'function';
var IS_IE = ~userAgent.indexOf('MSIE') || ~userAgent.indexOf('Trident/');
var functions = [];
var listener = function listener() {
DOCUMENT.removeEventListener('DOMContentLoaded', listener);
loaded = 1;
functions.map(function (fn) {
return fn();
});
};
var loaded = false;
if (IS_DOM) {
loaded = (DOCUMENT.documentElement.doScroll ? /^loaded|^c/ : /^loaded|^i|^c/).test(DOCUMENT.readyState);
if (!loaded) DOCUMENT.addEventListener('DOMContentLoaded', listener);
}
function domready (fn) {
if (!IS_DOM) return;
loaded ? setTimeout(fn, 0) : functions.push(fn);
}
function report (_ref) {
var nodesTested = _ref.nodesTested,
nodesFound = _ref.nodesFound;
var timedOutTests = {};
for (var key in nodesFound) {
if (!(nodesTested.conflict[key] || nodesTested.noConflict[key])) {
timedOutTests[key] = nodesFound[key];
}
}
var conflictsCount = Object.keys(nodesTested.conflict).length;
if (conflictsCount > 0) {
console.info("%cConflict".concat(conflictsCount > 1 ? 's' : '', " found:"), 'color: darkred; font-size: large');
var data = {};
for (var _key in nodesTested.conflict) {
var item = nodesTested.conflict[_key];
data[_key] = {
'tagName': item.tagName,
'src/href': item.src || item.href || 'n/a',
'innerText excerpt': item.innerText && item.innerText !== '' ? item.innerText.slice(0, 200) + '...' : '(empty)'
};
}
console.table(data);
}
var noConflictsCount = Object.keys(nodesTested.noConflict).length;
if (noConflictsCount > 0) {
console.info("%cNo conflict".concat(noConflictsCount > 1 ? 's' : '', " found with ").concat(noConflictsCount == 1 ? 'this' : 'these', ":"), 'color: green; font-size: large');
var _data = {};
for (var _key2 in nodesTested.noConflict) {
var _item = nodesTested.noConflict[_key2];
_data[_key2] = {
'tagName': _item.tagName,
'src/href': _item.src || _item.href || 'n/a',
'innerText excerpt': _item.innerText && _item.innerText !== '' ? _item.innerText.slice(0, 200) + '...' : '(empty)'
};
}
console.table(_data);
}
var timeOutCount = Object.keys(timedOutTests).length;
if (timeOutCount > 0) {
console.info("%cLeftovers--we timed out before collecting test results for ".concat(timeOutCount == 1 ? 'this' : 'these', ":"), 'color: blue; font-size: large');
var _data2 = {};
for (var _key3 in timedOutTests) {
var _item2 = timedOutTests[_key3];
_data2[_key3] = {
'tagName': _item2.tagName,
'src/href': _item2.src || _item2.href || 'n/a',
'innerText excerpt': _item2.innerText && _item2.innerText !== '' ? _item2.innerText.slice(0, 200) + '...' : '(empty)'
};
}
console.table(_data2);
}
}
var commonjsGlobal = typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
function createCommonjsModule(fn, module) {
return module = { exports: {} }, fn(module, module.exports), module.exports;
}
var md5 = createCommonjsModule(function (module) {
(function ($) {
/**
* Add integers, wrapping at 2^32.
* This uses 16-bit operations internally to work around bugs in interpreters.
*
* @param {number} x First integer
* @param {number} y Second integer
* @returns {number} Sum
*/
function safeAdd(x, y) {
var lsw = (x & 0xffff) + (y & 0xffff);
var msw = (x >> 16) + (y >> 16) + (lsw >> 16);
return msw << 16 | lsw & 0xffff;
}
/**
* Bitwise rotate a 32-bit number to the left.
*
* @param {number} num 32-bit number
* @param {number} cnt Rotation count
* @returns {number} Rotated number
*/
function bitRotateLeft(num, cnt) {
return num << cnt | num >>> 32 - cnt;
}
/**
* Basic operation the algorithm uses.
*
* @param {number} q q
* @param {number} a a
* @param {number} b b
* @param {number} x x
* @param {number} s s
* @param {number} t t
* @returns {number} Result
*/
function md5cmn(q, a, b, x, s, t) {
return safeAdd(bitRotateLeft(safeAdd(safeAdd(a, q), safeAdd(x, t)), s), b);
}
/**
* Basic operation the algorithm uses.
*
* @param {number} a a
* @param {number} b b
* @param {number} c c
* @param {number} d d
* @param {number} x x
* @param {number} s s
* @param {number} t t
* @returns {number} Result
*/
function md5ff(a, b, c, d, x, s, t) {
return md5cmn(b & c | ~b & d, a, b, x, s, t);
}
/**
* Basic operation the algorithm uses.
*
* @param {number} a a
* @param {number} b b
* @param {number} c c
* @param {number} d d
* @param {number} x x
* @param {number} s s
* @param {number} t t
* @returns {number} Result
*/
function md5gg(a, b, c, d, x, s, t) {
return md5cmn(b & d | c & ~d, a, b, x, s, t);
}
/**
* Basic operation the algorithm uses.
*
* @param {number} a a
* @param {number} b b
* @param {number} c c
* @param {number} d d
* @param {number} x x
* @param {number} s s
* @param {number} t t
* @returns {number} Result
*/
function md5hh(a, b, c, d, x, s, t) {
return md5cmn(b ^ c ^ d, a, b, x, s, t);
}
/**
* Basic operation the algorithm uses.
*
* @param {number} a a
* @param {number} b b
* @param {number} c c
* @param {number} d d
* @param {number} x x
* @param {number} s s
* @param {number} t t
* @returns {number} Result
*/
function md5ii(a, b, c, d, x, s, t) {
return md5cmn(c ^ (b | ~d), a, b, x, s, t);
}
/**
* Calculate the MD5 of an array of little-endian words, and a bit length.
*
* @param {Array} x Array of little-endian words
* @param {number} len Bit length
* @returns {Array<number>} MD5 Array
*/
function binlMD5(x, len) {
/* append padding */
x[len >> 5] |= 0x80 << len % 32;
x[(len + 64 >>> 9 << 4) + 14] = len;
var i;
var olda;
var oldb;
var oldc;
var oldd;
var a = 1732584193;
var b = -271733879;
var c = -1732584194;
var d = 271733878;
for (i = 0; i < x.length; i += 16) {
olda = a;
oldb = b;
oldc = c;
oldd = d;
a = md5ff(a, b, c, d, x[i], 7, -680876936);
d = md5ff(d, a, b, c, x[i + 1], 12, -389564586);
c = md5ff(c, d, a, b, x[i + 2], 17, 606105819);
b = md5ff(b, c, d, a, x[i + 3], 22, -1044525330);
a = md5ff(a, b, c, d, x[i + 4], 7, -176418897);
d = md5ff(d, a, b, c, x[i + 5], 12, 1200080426);
c = md5ff(c, d, a, b, x[i + 6], 17, -1473231341);
b = md5ff(b, c, d, a, x[i + 7], 22, -45705983);
a = md5ff(a, b, c, d, x[i + 8], 7, 1770035416);
d = md5ff(d, a, b, c, x[i + 9], 12, -1958414417);
c = md5ff(c, d, a, b, x[i + 10], 17, -42063);
b = md5ff(b, c, d, a, x[i + 11], 22, -1990404162);
a = md5ff(a, b, c, d, x[i + 12], 7, 1804603682);
d = md5ff(d, a, b, c, x[i + 13], 12, -40341101);
c = md5ff(c, d, a, b, x[i + 14], 17, -1502002290);
b = md5ff(b, c, d, a, x[i + 15], 22, 1236535329);
a = md5gg(a, b, c, d, x[i + 1], 5, -165796510);
d = md5gg(d, a, b, c, x[i + 6], 9, -1069501632);
c = md5gg(c, d, a, b, x[i + 11], 14, 643717713);
b = md5gg(b, c, d, a, x[i], 20, -373897302);
a = md5gg(a, b, c, d, x[i + 5], 5, -701558691);
d = md5gg(d, a, b, c, x[i + 10], 9, 38016083);
c = md5gg(c, d, a, b, x[i + 15], 14, -660478335);
b = md5gg(b, c, d, a, x[i + 4], 20, -405537848);
a = md5gg(a, b, c, d, x[i + 9], 5, 568446438);
d = md5gg(d, a, b, c, x[i + 14], 9, -1019803690);
c = md5gg(c, d, a, b, x[i + 3], 14, -187363961);
b = md5gg(b, c, d, a, x[i + 8], 20, 1163531501);
a = md5gg(a, b, c, d, x[i + 13], 5, -1444681467);
d = md5gg(d, a, b, c, x[i + 2], 9, -51403784);
c = md5gg(c, d, a, b, x[i + 7], 14, 1735328473);
b = md5gg(b, c, d, a, x[i + 12], 20, -1926607734);
a = md5hh(a, b, c, d, x[i + 5], 4, -378558);
d = md5hh(d, a, b, c, x[i + 8], 11, -2022574463);
c = md5hh(c, d, a, b, x[i + 11], 16, 1839030562);
b = md5hh(b, c, d, a, x[i + 14], 23, -35309556);
a = md5hh(a, b, c, d, x[i + 1], 4, -1530992060);
d = md5hh(d, a, b, c, x[i + 4], 11, 1272893353);
c = md5hh(c, d, a, b, x[i + 7], 16, -155497632);
b = md5hh(b, c, d, a, x[i + 10], 23, -1094730640);
a = md5hh(a, b, c, d, x[i + 13], 4, 681279174);
d = md5hh(d, a, b, c, x[i], 11, -358537222);
c = md5hh(c, d, a, b, x[i + 3], 16, -722521979);
b = md5hh(b, c, d, a, x[i + 6], 23, 76029189);
a = md5hh(a, b, c, d, x[i + 9], 4, -640364487);
d = md5hh(d, a, b, c, x[i + 12], 11, -421815835);
c = md5hh(c, d, a, b, x[i + 15], 16, 530742520);
b = md5hh(b, c, d, a, x[i + 2], 23, -995338651);
a = md5ii(a, b, c, d, x[i], 6, -198630844);
d = md5ii(d, a, b, c, x[i + 7], 10, 1126891415);
c = md5ii(c, d, a, b, x[i + 14], 15, -1416354905);
b = md5ii(b, c, d, a, x[i + 5], 21, -57434055);
a = md5ii(a, b, c, d, x[i + 12], 6, 1700485571);
d = md5ii(d, a, b, c, x[i + 3], 10, -1894986606);
c = md5ii(c, d, a, b, x[i + 10], 15, -1051523);
b = md5ii(b, c, d, a, x[i + 1], 21, -2054922799);
a = md5ii(a, b, c, d, x[i + 8], 6, 1873313359);
d = md5ii(d, a, b, c, x[i + 15], 10, -30611744);
c = md5ii(c, d, a, b, x[i + 6], 15, -1560198380);
b = md5ii(b, c, d, a, x[i + 13], 21, 1309151649);
a = md5ii(a, b, c, d, x[i + 4], 6, -145523070);
d = md5ii(d, a, b, c, x[i + 11], 10, -1120210379);
c = md5ii(c, d, a, b, x[i + 2], 15, 718787259);
b = md5ii(b, c, d, a, x[i + 9], 21, -343485551);
a = safeAdd(a, olda);
b = safeAdd(b, oldb);
c = safeAdd(c, oldc);
d = safeAdd(d, oldd);
}
return [a, b, c, d];
}
/**
* Convert an array of little-endian words to a string
*
* @param {Array<number>} input MD5 Array
* @returns {string} MD5 string
*/
function binl2rstr(input) {
var i;
var output = '';
var length32 = input.length * 32;
for (i = 0; i < length32; i += 8) {
output += String.fromCharCode(input[i >> 5] >>> i % 32 & 0xff);
}
return output;
}
/**
* Convert a raw string to an array of little-endian words
* Characters >255 have their high-byte silently ignored.
*
* @param {string} input Raw input string
* @returns {Array<number>} Array of little-endian words
*/
function rstr2binl(input) {
var i;
var output = [];
output[(input.length >> 2) - 1] = undefined;
for (i = 0; i < output.length; i += 1) {
output[i] = 0;
}
var length8 = input.length * 8;
for (i = 0; i < length8; i += 8) {
output[i >> 5] |= (input.charCodeAt(i / 8) & 0xff) << i % 32;
}
return output;
}
/**
* Calculate the MD5 of a raw string
*
* @param {string} s Input string
* @returns {string} Raw MD5 string
*/
function rstrMD5(s) {
return binl2rstr(binlMD5(rstr2binl(s), s.length * 8));
}
/**
* Calculates the HMAC-MD5 of a key and some data (raw strings)
*
* @param {string} key HMAC key
* @param {string} data Raw input string
* @returns {string} Raw MD5 string
*/
function rstrHMACMD5(key, data) {
var i;
var bkey = rstr2binl(key);
var ipad = [];
var opad = [];
var hash;
ipad[15] = opad[15] = undefined;
if (bkey.length > 16) {
bkey = binlMD5(bkey, key.length * 8);
}
for (i = 0; i < 16; i += 1) {
ipad[i] = bkey[i] ^ 0x36363636;
opad[i] = bkey[i] ^ 0x5c5c5c5c;
}
hash = binlMD5(ipad.concat(rstr2binl(data)), 512 + data.length * 8);
return binl2rstr(binlMD5(opad.concat(hash), 512 + 128));
}
/**
* Convert a raw string to a hex string
*
* @param {string} input Raw input string
* @returns {string} Hex encoded string
*/
function rstr2hex(input) {
var hexTab = '0123456789abcdef';
var output = '';
var x;
var i;
for (i = 0; i < input.length; i += 1) {
x = input.charCodeAt(i);
output += hexTab.charAt(x >>> 4 & 0x0f) + hexTab.charAt(x & 0x0f);
}
return output;
}
/**
* Encode a string as UTF-8
*
* @param {string} input Input string
* @returns {string} UTF8 string
*/
function str2rstrUTF8(input) {
return unescape(encodeURIComponent(input));
}
/**
* Encodes input string as raw MD5 string
*
* @param {string} s Input string
* @returns {string} Raw MD5 string
*/
function rawMD5(s) {
return rstrMD5(str2rstrUTF8(s));
}
/**
* Encodes input string as Hex encoded string
*
* @param {string} s Input string
* @returns {string} Hex encoded string
*/
function hexMD5(s) {
return rstr2hex(rawMD5(s));
}
/**
* Calculates the raw HMAC-MD5 for the given key and data
*
* @param {string} k HMAC key
* @param {string} d Input string
* @returns {string} Raw MD5 string
*/
function rawHMACMD5(k, d) {
return rstrHMACMD5(str2rstrUTF8(k), str2rstrUTF8(d));
}
/**
* Calculates the Hex encoded HMAC-MD5 for the given key and data
*
* @param {string} k HMAC key
* @param {string} d Input string
* @returns {string} Raw MD5 string
*/
function hexHMACMD5(k, d) {
return rstr2hex(rawHMACMD5(k, d));
}
/**
* Calculates MD5 value for a given string.
* If a key is provided, calculates the HMAC-MD5 value.
* Returns a Hex encoded string unless the raw argument is given.
*
* @param {string} string Input string
* @param {string} [key] HMAC key
* @param {boolean} raw Raw oytput switch
* @returns {string} MD5 output
*/
function md5(string, key, raw) {
if (!key) {
if (!raw) {
return hexMD5(string);
}
return rawMD5(string);
}
if (!raw) {
return hexHMACMD5(key, string);
}
return rawHMACMD5(key, string);
}
if (module.exports) {
module.exports = md5;
} else {
$.md5 = md5;
}
})(commonjsGlobal);
});
function md5ForNode(node) {
if (null === node || 'object' !== _typeof(node)) return undefined;
if (node.src) {
return md5(node.src);
} else if (node.href) {
return md5(node.href);
} else if (node.innerText && '' !== node.innerText) {
// eslint-disable-line yoda
return md5(node.innerText);
} else {
return undefined;
}
}
var diagScriptId = 'fa-kits-diag';
var nodeUnderTestId = 'fa-kits-node-under-test';
var md5Attr = 'data-md5';
var detectionIgnoreAttr = 'data-fa-detection-ignore';
var timeoutAttr = 'data-fa-detection-timeout';
var resultsCollectionMaxWaitAttr = 'data-fa-detection-results-collection-max-wait';
function pollUntil(_ref) {
var _ref$fn = _ref.fn,
fn = _ref$fn === void 0 ? function () {
return true;
} : _ref$fn,
_ref$initialDuration = _ref.initialDuration,
initialDuration = _ref$initialDuration === void 0 ? 1 : _ref$initialDuration,
_ref$maxDuration = _ref.maxDuration,
maxDuration = _ref$maxDuration === void 0 ? WINDOW.FontAwesomeDetection.timeout : _ref$maxDuration,
_ref$showProgress = _ref.showProgress,
showProgress = _ref$showProgress === void 0 ? false : _ref$showProgress,
progressIndicator = _ref.progressIndicator;
return new Promise(function (resolve, reject) {
// eslint-disable-line compat/compat
function poll(duration, cumulativeDuration) {
setTimeout(function () {
var result = fn();
if (showProgress) {
console.info(progressIndicator);
}
if (!!result) {
// eslint-disable-line no-extra-boolean-cast
resolve(result);