Browse Source

Initial commit

master
Rusty Shackleford 6 years ago
commit
f0e2cb5ac3
55 changed files with 3604 additions and 0 deletions
  1. +130
    -0
      CODE_OF_CONDUCT.md
  2. +30
    -0
      LICENSE
  3. +3
    -0
      README.md
  4. +463
    -0
      assets/css/null.css
  5. +1
    -0
      assets/css/null.min.css
  6. +443
    -0
      assets/css/theme/blackhop.css
  7. +308
    -0
      assets/css/theme/blackhop.min.css
  8. +208
    -0
      assets/css/ui.css
  9. +1
    -0
      assets/css/ui.min.css
  10. BIN
      assets/font/nyanfont.eot
  11. +196
    -0
      assets/font/nyanfont.svg
  12. BIN
      assets/font/nyanfont.ttf
  13. BIN
      assets/font/nyanfont.woff
  14. BIN
      assets/font/nyanfont.woff2
  15. BIN
      assets/i/bckg/bg-site.png
  16. BIN
      assets/i/icon/main.choice.png
  17. BIN
      assets/i/icon/main.exchange.png
  18. BIN
      assets/i/icon/main.fly.png
  19. BIN
      assets/i/icon/main.server.png
  20. BIN
      assets/i/icon/main.verified.png
  21. +165
    -0
      assets/js/hk.js
  22. BIN
      baka.gpg
  23. +15
    -0
      easter.htm
  24. +16
    -0
      index.php
  25. +123
    -0
      system.log
  26. +25
    -0
      tape/base/base.controller.php
  27. +45
    -0
      tape/base/base.core.php
  28. +27
    -0
      tape/base/base.gear.php
  29. +37
    -0
      tape/base/base.handler.php
  30. +15
    -0
      tape/base/base.model.php
  31. +175
    -0
      tape/base/base.router.php
  32. +88
    -0
      tape/base/base.view.php
  33. +1
    -0
      tape/data/config.json
  34. +132
    -0
      tape/data/motto.dat
  35. +73
    -0
      tape/helper/helper.autoload.php
  36. +118
    -0
      tape/helper/helper.base.php
  37. +29
    -0
      tape/helper/helper.chrona.php
  38. +8
    -0
      tape/helper/helper.data.php
  39. +7
    -0
      tape/helper/helper.e.php
  40. +62
    -0
      tape/helper/helper.ncc.php
  41. +44
    -0
      tape/helper/helper.note.php
  42. +94
    -0
      tape/helper/helper.q.php
  43. +117
    -0
      tape/helper/helper.regex.php
  44. +85
    -0
      tape/helper/helper.server.php
  45. +91
    -0
      tape/helper/helper.text.php
  46. +21
    -0
      tape/helper/helper.x.php
  47. +24
    -0
      tape/init.php
  48. +27
    -0
      tape/view/contents/footer.php
  49. +8
    -0
      tape/view/contents/genre.php
  50. +58
    -0
      tape/view/contents/header.php
  51. +1
    -0
      tape/view/contents/links.php
  52. +16
    -0
      tape/view/contents/meta.php
  53. +65
    -0
      tape/view/template/fail.tpl
  54. +9
    -0
      tape/view/template/page.tpl
  55. +0
    -0
      tape/view/template/wait.tpl

+ 130
- 0
CODE_OF_CONDUCT.md View File

@@ -0,0 +1,130 @@

# Contributor Covenant Code of Conduct

## Our Pledge

We as members, contributors, and leaders pledge to make participation in our
community a harassment-free experience for everyone, regardless of age, body
size, visible or invisible disability, ethnicity, sex characteristics, gender
identity and expression, level of experience, education, socio-economic status,
nationality, personal appearance, race, religion, or sexual identity
and orientation.

We pledge to act and interact in ways that contribute to an open, welcoming,
diverse, inclusive, and healthy community.

## Our Standards

Examples of behavior that contributes to a positive environment for our
community include:

* Demonstrating empathy and kindness toward other people
* Being respectful of differing opinions, viewpoints, and experiences
* Giving and gracefully accepting constructive feedback
* Accepting responsibility and apologizing to those affected by our mistakes,
and learning from the experience
* Focusing on what is best not just for us as individuals, but for the
overall community

Examples of unacceptable behavior include:

* The use of sexualized language or imagery, and sexual attention or
advances of any kind
* Trolling, insulting or derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or email
address, without their explicit permission
* Other conduct which could reasonably be considered inappropriate in a
professional setting

## Enforcement Responsibilities

Community leaders are responsible for clarifying and enforcing our standards of
acceptable behavior and will take appropriate and fair corrective action in
response to any behavior that they deem inappropriate, threatening, offensive,
or harmful.

Community leaders have the right and responsibility to remove, edit, or reject
comments, commits, code, wiki edits, issues, and other contributions that are
not aligned to this Code of Conduct, and will communicate reasons for moderation
decisions when appropriate.

## Scope

This Code of Conduct applies within all community spaces, and also applies when
an individual is officially representing the community in public spaces.
Examples of representing our community include using an official e-mail address,
posting via an official social media account, or acting as an appointed
representative at an online or offline event.

## Enforcement

Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported to the community leaders responsible for enforcement at
[INSERT CONTACT METHOD].
All complaints will be reviewed and investigated promptly and fairly.

All community leaders are obligated to respect the privacy and security of the
reporter of any incident.

## Enforcement Guidelines

Community leaders will follow these Community Impact Guidelines in determining
the consequences for any action they deem in violation of this Code of Conduct:

### 1. Correction

**Community Impact**: Use of inappropriate language or other behavior deemed
unprofessional or unwelcome in the community.

**Consequence**: A private, written warning from community leaders, providing
clarity around the nature of the violation and an explanation of why the
behavior was inappropriate. A public apology may be requested.

### 2. Warning

**Community Impact**: A violation through a single incident or series
of actions.

**Consequence**: A warning with consequences for continued behavior. No
interaction with the people involved, including unsolicited interaction with
those enforcing the Code of Conduct, for a specified period of time. This
includes avoiding interactions in community spaces as well as external channels
like social media. Violating these terms may lead to a temporary or
permanent ban.

### 3. Temporary Ban

**Community Impact**: A serious violation of community standards, including
sustained inappropriate behavior.

**Consequence**: A temporary ban from any sort of interaction or public
communication with the community for a specified period of time. No public or
private interaction with the people involved, including unsolicited interaction
with those enforcing the Code of Conduct, is allowed during this period.
Violating these terms may lead to a permanent ban.

### 4. Permanent Ban

**Community Impact**: Demonstrating a pattern of violation of community
standards, including sustained inappropriate behavior, harassment of an
individual, or aggression toward or disparagement of classes of individuals.

**Consequence**: A permanent ban from any sort of public interaction within
the community.

## Attribution

This Code of Conduct is adapted from the [Contributor Covenant][homepage],
version 2.0, available at
https://www.contributor-covenant.org/version/2/0/code_of_conduct.html.

Community Impact Guidelines were inspired by [Mozilla's code of conduct
enforcement ladder](https://github.com/mozilla/diversity).

[homepage]: https://www.contributor-covenant.org

For answers to common questions about this code of conduct, see the FAQ at
https://www.contributor-covenant.org/faq. Translations are available at
https://www.contributor-covenant.org/translations.


+ 30
- 0
LICENSE View File

@@ -0,0 +1,30 @@
Copyright (C) 2004 John Gruber
Copyright (C) 2015,2016,2017,2018 Kyle J. McKay
All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are
met:

* Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.

* Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.

* Neither the name "Markdown" nor the names of its contributors may
be used to endorse or promote products derived from this software
without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

+ 3
- 0
README.md View File

@@ -0,0 +1,3 @@
# Anontape

Various PHP files related to anontape.com project. Seems to be stale WIP.

+ 463
- 0
assets/css/null.css View File

@@ -0,0 +1,463 @@
button, hr, input {
overflow: visible; }

audio, canvas, progress, video {
display: inline-block; }

progress, sub, sup {
vertical-align: baseline; }

[type=checkbox], [type=radio], legend {
box-sizing: border-box;
padding: 0; }

html {
line-height: 1.15;
-ms-text-size-adjust: 100%;
-webkit-text-size-adjust: 100%;
-moz-osx-font-smoothing: grayscale;
-webkit-font-smoothing: antialiased;
font-smoothing: antialiased; }

body {
margin: 0;
background: url(/assets/i/bckg/bg-site.png) center center; }

html, body {
height: 100%;
width: 100%;
font: 13px/1.45em Verdana,Geneva,sans-serif; }

h1, h2, h3, h4, h5, h6 {
font-family: "Trebuchet MS",Helvetica sans-serif; }

article, aside, details, figcaption, figure, footer, header, main, menu, nav, section {
display: block; }

h1 {
font-size: 2em;
margin: .67em 0; }

figure {
margin: 1em 40px; }

hr {
box-sizing: content-box;
height: 0; }

code, kbd, pre, samp {
font-family: monospace,monospace;
font-size: 1em; }

a {
background-color: transparent;
-webkit-text-decoration-skip: objects;
text-decoration: none;
outline: none;
color: black; }

a:hover {
color: crimson;
text-decoration: underline; }

pre {
font: small/1em Consolas,"Liberation Mono",Courier,monospace; }

pre table {
margin: 10px 50px; }

pre table td {
padding: 0 10px 0 0; }

abbr[title] {
border-bottom: none;
text-decoration: underline;
text-decoration: underline dotted; }

b, strong {
font-weight: bolder; }

dfn {
font-style: italic; }

mark {
background-color: #0d0e12;
color: #0d0e12; }

small {
font-size: 80%; }

sub, sup {
font-size: 75%;
line-height: 0;
position: relative; }

sub {
bottom: -.25em; }

sup {
top: -.5em; }

audio:not([controls]) {
display: none;
height: 0; }

img {
border-style: none; }

svg:not(:root) {
overflow: hidden; }

button, input, optgroup, select, textarea {
font-family: Verdana,Geneva,sans-serif;
font-size: 100%;
line-height: 1.15;
margin: 0; }

button, select {
text-transform: none; }

[type=reset], [type=submit], button, html [type=button] {
-webkit-appearance: button; }

[type=button]::-moz-focus-inner, [type=reset]::-moz-focus-inner, [type=submit]::-moz-focus-inner, button::-moz-focus-inner {
border-style: none;
padding: 0; }

[type=button]:-moz-focusring, [type=reset]:-moz-focusring, [type=submit]:-moz-focusring, button:-moz-focusring {
outline: ButtonText dotted 1px; }

fieldset {
padding: .35em .75em .625em; }

legend {
color: inherit;
display: table;
max-width: 100%;
white-space: normal; }

textarea {
overflow: auto; }

[type=number]::-webkit-inner-spin-button, [type=number]::-webkit-outer-spin-button {
height: auto; }

[type=search] {
-webkit-appearance: textfield;
outline-offset: -2px; }

[type=search]::-webkit-search-cancel-button, [type=search]::-webkit-search-decoration {
-webkit-appearance: none; }

::-webkit-file-upload-button {
-webkit-appearance: button;
font: inherit; }

summary {
display: list-item; }

[hidden], template {
display: none !important; }

@font-face {
font-family: 'nyanfont';
src: url("../font/nyanfont.eot?92977265");
src: url("../font/nyanfont.eot?92977265#iefix") format("embedded-opentype"), url("../font/nyanfont.woff2?92977265") format("woff2"), url("../font/nyanfont.woff?92977265") format("woff"), url("../font/nyanfont.ttf?92977265") format("truetype"), url("../font/nyanfont.svg?92977265#nyanfont") format("svg");
font-weight: normal;
font-style: normal; }

[class*=" icon-"]:before, [class^=icon-]:before, icon:before {
font-family: nyanfont;
font-style: normal;
font-weight: 400;
font-variant: normal;
display: inline-block;
speak: none;
width: 1em;
margin: 0 .2em;
line-height: 1em;
text-decoration: inherit;
text-align: center;
text-transform: none;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale; }

.icon-add:before {
content: '\e82e'; }

.icon-announce:before {
content: '\e822'; }

.icon-arrow-down:before {
content: '\e80c'; }

.icon-arrow-left:before {
content: '\e80d'; }

.icon-arrow-right:before {
content: '\e80e'; }

.icon-arrow-up:before {
content: '\e80f'; }

.icon-attach:before {
content: '\e804'; }

.icon-attention-1:before {
content: '\e802'; }

.icon-calendar:before {
content: '\e81c'; }

.icon-cancel:before {
content: '\e82b'; }

.icon-catalist:before {
content: '\e806'; }

.icon-check-in:before {
content: '\f14a'; }

.icon-check-on:before {
content: '\e81b'; }

.icon-check:before {
content: '\f096'; }

.icon-coin:before {
content: '\f15a'; }

.icon-comment:before {
content: '\e810'; }

.icon-deny:before {
content: '\e821'; }

.icon-down-cut:before {
content: '\e808'; }

.icon-down:before {
content: '\e82d'; }

.icon-download:before {
content: '\e823'; }

.icon-edit-page:before {
content: '\e835'; }

.icon-edit:before {
content: '\e836'; }

.icon-fav-no:before {
content: '\f097'; }

.icon-fav-yes:before {
content: '\e803'; }

.icon-file-add:before {
content: '\e811'; }

.icon-file-arc:before {
content: '\f1c6'; }

.icon-file-aud:before {
content: '\f1c7'; }

.icon-file-cod:before {
content: '\f1c9'; }

.icon-file-doc-inv:before {
content: '\f15b'; }

.icon-file-doc:before {
content: '\e813'; }

.icon-file-fla:before {
content: '\e812'; }

.icon-file-img:before {
content: '\f1c5'; }

.icon-file-txt:before {
content: '\f0f6'; }

.icon-file-vid:before {
content: '\f1c8'; }

.icon-forward:before {
content: '\e827'; }

.icon-globe:before {
content: '\e828'; }

.icon-hakase:before {
content: '\f020'; }

.icon-help:before {
content: '\f1cd'; }

.icon-hex-check:before {
content: '\e900'; }

.icon-hex-logo:before {
content: '\e901'; }

.icon-hex:before {
content: '\e902'; }

.icon-infinity:before {
content: '\e829'; }

.icon-info:before {
content: '\e88f'; }

.icon-invisible:before {
content: '\e8f5'; }

.icon-io-assemble:before {
content: '\f12e'; }

.icon-io-commands:before {
content: '\f120'; }

.icon-io-firewall:before {
content: '\f132'; }

.icon-io-moderate:before {
content: '\e819'; }

.icon-io-worldnet:before {
content: '\e81d'; }

.icon-key:before {
content: '\e81a'; }

.icon-left-cut:before {
content: '\e809'; }

.icon-left:before {
content: '\f104'; }

.icon-link:before {
content: '\e801'; }

.icon-listen:before {
content: '\e817'; }

.icon-login:before {
content: '\e814'; }

.icon-logout:before {
content: '\e815'; }

.icon-menu-vert:before {
content: '\e903'; }

.icon-menu:before {
content: '\e831'; }

.icon-network:before {
content: '\e824'; }

.icon-news:before {
content: '\f1ea'; }

.icon-night:before {
content: '\e820'; }

.icon-off:before {
content: '\f204'; }

.icon-ok:before {
content: '\e82a'; }

.icon-on:before {
content: '\f205'; }

.icon-options:before {
content: '\e8b8'; }

.icon-p2p:before {
content: '\e816'; }

.icon-person:before {
content: '\e830'; }

.icon-refresh:before {
content: '\e807'; }

.icon-remove:before {
content: '\e82f'; }

.icon-reply-all:before {
content: '\e826'; }

.icon-reply:before {
content: '\e825'; }

.icon-right-cut:before {
content: '\e80a'; }

.icon-right:before {
content: '\f105'; }

.icon-sage:before {
content: '\e8d7'; }

.icon-search:before {
content: '\e8b6'; }

.icon-sort-down:before {
content: '\f0dd'; }

.icon-sort-up:before {
content: '\f0de'; }

.icon-sort:before {
content: '\f0dc'; }

.icon-spell-cursed:before {
content: '\e800'; }

.icon-spell-divide:before {
content: '\f0c5'; }

.icon-spell-locked:before {
content: '\f023'; }

.icon-spell-pinned:before {
content: '\f08d'; }

.icon-sys-backup:before {
content: '\e833'; }

.icon-sys-cleanup:before {
content: '\f1f8'; }

.icon-sys-database:before {
content: '\e832'; }

.icon-sys-distribution:before {
content: '\e81e'; }

.icon-sys-indicator:before {
content: '\e805'; }

.icon-sys-power:before {
content: '\e834'; }

.icon-target:before {
content: '\e81f'; }

.icon-up-cut:before {
content: '\e80b'; }

.icon-up:before {
content: '\e82c'; }

.icon-visible:before {
content: '\e8f4'; }

.icon-watch:before {
content: '\e818'; }


+ 1
- 0
assets/css/null.min.css
File diff suppressed because it is too large
View File


+ 443
- 0
assets/css/theme/blackhop.css View File

@@ -0,0 +1,443 @@
section.content {
padding: 24px; }

section.content > a {
display: block;
text-align: right;
text-decoration: underline; }

section.content hr {
background: black;
margin: 15px 0; }

section.content > div {
margin: 8px 0;
padding: 4px;
text-align: right;
border-top: 1px solid black; }

section.content > div a {
text-decoration: underline; }

section.content a,
section.content a > * {
backface-visibility: hidden;
-o-backface-visibility: hidden;
-moz-backface-visibility: hidden;
-webkit-backface-visibility: hidden; }

section#zine {
height: 560px; }

section#zine article {
position: relative;
display: inline-block;
width: 256px;
height: 256px;
padding: 16px;
background-position: center bottom;
background-repeat: no-repeat;
background-size: auto 100%;
background-color: black;
filter: grayscale(50%);
-webkit-filter: grayscale(50%);
border: 2px solid;
transition: all 1s ease-in-out;
-o-transition: all 1s ease-in-out;
-moz-transition: all 1s ease-in-out;
-webkit-transition: all 1s ease-in-out;
backface-visibility: hidden;
-o-backface-visibility: hidden;
-moz-backface-visibility: hidden;
-webkit-backface-visibility: hidden; }

section#zine article:hover {
filter: none;
-webkit-filter: none; }

section#zine article:first-child {
width: 512px;
height: 512px; }

section#zine article > a {
position: absolute;
display: block;
top: 0;
left: 0;
width: 100%;
height: 100%;
padding: 32px 16px 0 16px;
color: black;
font: bold 22px/48px "Trebuchet MS", Helvetica, sans-serif;
z-index: 1; }

section#zine article span {
position: absolute;
display: block;
width: 100%;
top: 64px;
left: 0;
padding: 16px;
color: #777;
font: italic 10px/1.45em "Trebuchet MS", Helvetica, sans-serif;
font-style: italic;
font-size: 10px; }

section#zine article .info {
position: absolute;
display: table;
bottom: 0;
left: 0;
width: 100%;
padding: 16px;
text-align: right; }

section#zine article hr {
margin: 0;
height: 1px;
background: transparent; }

section#zine article time,
section#zine article ins {
display: inline-block;
vertical-align: top; }

section#zine article time,
section#zine article ins,
section#zine article cite a {
color: white;
background: black;
margin: 0 1px 1px 0;
padding: 0 4px;
font-size: 10px;
line-height: 16px;
text-decoration: none; }

section#zine article cite {
display: block; }

section#zine article cite a {
display: inline-block;
vertical-align: bottom; }

section#releases,
section#tapes {
text-align: center; }

section#releases a.release,
section#tapes a.tape {
position: relative;
display: inline-block;
vertical-align: top;
margin: 8px;
padding: 8px;
color: white;
background: black;
text-align: center;
text-decoration: none;
border: 2px solid black; }

section#tapes a.tape {
width: 222px;
height: 222px; }

section#tapes h2 {
font: bold 18px/1.5 "Trebuchet MS", Helvetica, sans-serif; }

section#releases time,
section#tapes time {
display: block;
font-size: 9px; }

section#releases a.release {
width: 174px;
height: 174px; }

section#tapes a.tape samp,
section#releases a.release samp {
position: absolute;
top: 0;
bottom: 0;
left: 0;
right: 0;
background-position: center center;
background-size: auto 110%;
background-repeat: no-repeat;
filter: blur(0px);
-webkit-filter: blur(0px);
transition: filter .15s ease-in;
-o-transition: filter .15s ease-in;
-moz-transition: filter .15s ease-in;
-webkit-transition: filter .15s ease-in; }

section#tapes a.tape samp {
background-size: auto 100%; }

section#tapes a.tape samp + dfn,
section#releases a.release samp + dfn {
opacity: 0; }

section#tapes a.tape dfn,
section#releases a.release dfn {
position: absolute;
top: 0;
bottom: 0;
right: 0;
left: 0;
padding: 6px;
text-shadow: 0 0 3px black;
transition: opacity .15s ease-in;
-o-transition: opacity .15s ease-in;
-moz-transition: opacity .15s ease-in;
-webkit-transition: opacity .15s ease-in; }

section#tapes a.tape dfn {
background-color: rgba(0, 0, 0, 0.65); }

section#releases a.release dfn {
background-color: rgba(0, 0, 0, 0.3); }

section#tapes a.tape:hover dfn,
section#releases a.release:hover dfn {
opacity: 1; }

section#tapes a.tape:hover samp,
section#releases a.release:hover samp {
filter: blur(0px) saturate(25%);
-webkit-filter: blur(0px) saturate(25%); }

section#releases a.release em {
color: crimson;
font-size: 9px;
text-transform: uppercase;
text-shadow: 0 0 0; }

section#releases a.release em:before {
content: '- '; }

section#releases a.release em:after {
content: ' -'; }

section#releases h2 {
height: 48px;
font: bold 15px/1.5 "Trebuchet MS", Helvetica, sans-serif;
overflow: hidden; }

section#prtd > a {
display: inline-block;
vertical-align: top;
width: 230px;
height: 96px;
margin: 4px;
padding: 6px;
color: white;
background: black;
font-size: 10px;
text-decoration: none;
border: 2px solid black; }

section#prtd > a:hover {
color: black;
background: white;
border: 2px solid black; }

section#prtd h4 {
padding-bottom: 4px;
margin-bottom: 4px;
font: bold 12px/1.5 "Trebuchet MS", Helvetica, sans-serif;
text-transform: uppercase;
text-align: left;
text-overflow: ellipsis;
white-space: nowrap;
overflow: hidden;
border-bottom: 1px solid; }

section#prtd em {
float: left;
color: crimson;
font-style: italic; }

section#prtd span {
display: block;
font-size: 11px; }

section#about {
text-align: center; }

section#about h3 {
color: white;
background: black;
margin: 48px 0 0 0;
padding: 4px 24px;
font: bold 13px/24px "Trebuchet MS", Helvetica, sans-serif;
text-transform: uppercase;
text-align: center; }

section#about h4 {
width: 128px;
margin: 0 auto;
padding: 5px 0 0 0;
font: bold 15px/24px "Trebuchet MS", Helvetica, sans-serif;
text-transform: uppercase; }

section#about > div {
display: table;
width: 100%;
padding: 24px;
text-align: center; }

section#about > div > span {
display: table-cell;
width: 25%;
padding: 12px; }

section#about p {
margin: 10px 0 0 0;
padding: 5px 10px;
font-size: 10px;
text-align: center;
border-top: 1px solid; }

section#about i {
display: block;
vertical-align: top;
margin: 10px auto 0 auto;
width: auto;
height: 80px;
background-color: transparent;
background-position: center center;
background-repeat: no-repeat;
background-size: auto 80px; }

section#about div:last-child i {
height: 96px;
background-size: auto 96px; }

section#about fieldset {
position: relative;
display: block;
margin: 0;
padding: 0;
text-align: left;
border: 1px solid black; }

section#about legend {
color: white;
background: black;
margin: 0 12px;
padding: 2px 8px;
font-size: 11px; }

.icon.exchange {
background-image: url(/assets/i/icon/main.exchange.png); }

.icon.server {
background-image: url(/assets/i/icon/main.server.png); }

.icon.fly {
background-image: url(/assets/i/icon/main.fly.png); }

.icon.verified {
background-image: url(/assets/i/icon/main.verified.png); }

.icon.comfort {
background-image: url(/assets/i/icon/main.choice.png); }

section#final {
color: white;
background: black;
margin: 16px;
padding: 16px;
font-size: 14px;
text-align: center; }

section#final a {
display: inline-block;
vertical-align: top;
padding: 0;
width: 128px;
color: white;
line-height: 22px;
text-decoration: none;
border: 1px solid; }

section#final a:hover, #final input:focus, #final input:focus + button {
color: crimson; }

section#final p {
display: inline-block;
vertical-align: top;
padding: 0 16px;
text-indent: 0;
line-height: 24px; }

section#final form {
display: inline-block;
width: 128px;
height: 24px; }

section#final input, #final button {
float: left;
display: inline-block;
color: white;
background: black;
font-size: 14px;
border: none;
border-bottom: 1px solid;
outline: none; }

section#final input {
width: 104px;
margin: 0;
padding: 0 8px;
line-height: 23px; }

section#final button {
width: 24px;
height: 24px;
line-height: 24px;
cursor: pointer; }

section#final input::-ms-input-placeholder {
color: white; }

section#final input::-moz-input-placeholder {
color: white; }

section#final input::-webkit-input-placeholder {
color: white; }

section#final input:focus::-ms-input-placeholder {
color: crimson; }

section#final input:focus::-moz-input-placeholder {
color: crimson; }

section#final input:focus::-webkit-input-placeholder {
color: crimson; }

#announcement {
width: 100%;
padding: 8px;
color: white;
background: crimson;
font-size: 11px;
text-align: center;
border-bottom: 1px solid black; }

#announcement i.icon-attention {
float: left;
width: 32px;
font-size: 19px; }

#announcement label {
float: right;
width: 32px;
font-size: 14pt;
cursor: pointer;
outline: none; }

#announcement a {
color: white;
text-decoration: underline; }


+ 308
- 0
assets/css/theme/blackhop.min.css
File diff suppressed because it is too large
View File


+ 208
- 0
assets/css/ui.css View File

@@ -0,0 +1,208 @@
@charset "UTF-8";
::-webkit-scrollbar {
width: 4px; }

::-moz-scrollbar {
width: 4px; }

::scrollbar {
width: 4px; }

::-webkit-scrollbar-track {
background: white; }

::-moz-scrollbar-track {
background: white; }

::scrollbar-track {
background: white; }

::-webkit-scrollbar-thumb {
background: black; }

::-moz-scrollbar-thumb {
background: black; }

::scrollbar-thumb {
background: white; }

::-webkit-selection {
color: white;
background-color: crimson; }

::-moz-selection {
color: white;
background-color: crimson; }

::selection {
color: white;
background-color: crimson; }

[smooth], .smooth {
-webkit-transition: all 0.1s ease-in-out;
-moz-transition: all 0.1s ease-in-out;
-o-transition: all 0.1s ease-in-out;
transition: all 0.1s ease-in-out;
-webkit-backface-visibility: hidden;
-moz-backface-visibility: hidden;
-o-backface-visibility: hidden;
backface-visibility: hidden; }

[noselect], .noselect {
-webkit-user-select: none;
-moz-user-select: none;
user-select: none;
cursor: default; }

[debug], [locked], [hidden] {
display: none;
visibility: hidden; }

.unavailable {
cursor: no-drop !important; }

.hidden {
opacity: 0;
visibility: hidden; }

.invisible {
display: none !important;
visibility: hidden; }

[switch], [toggle] {
display: none; }

[switch]:not(:checked) ~ [box],
[toggle]:not(:checked) ~ [on],
[toggle]:checked ~ [off] {
display: none; }

[switch] ~ label:before {
content: '+ Раскрыть'; }

[switch]:checked ~ label:before {
content: '- Скрыть'; }

.ui input, .ui label, .ui textarea,
.ui button, .ui .button {
display: inline-block;
color: #555;
background: #fafafa;
margin: 5px;
font-family: inherit;
font-size: 10pt;
text-align: center;
text-indent: 0;
text-decoration: none;
border: 1px solid #ccc;
border-radius: 3px;
outline: none; }

.ui input, .ui label, .ui button, .ui .button {
padding: 0 10px;
line-height: 25px;
font-weight: bold; }

.ui textarea {
padding: 5px 10px;
line-height: 1.5em;
font-weight: normal;
resize: vertical; }

.ui input:hover, .ui label:hover, .ui textarea:hover,
.ui button:hover, .ui .button:hover {
color: #333;
background: #fdfdfd;
border-color: #bbb;
box-shadow: 0 0 3px #eee; }

.ui input:focus, .ui input:active,
.ui label:focus, .ui label:active,
.ui textarea:focus, .ui textarea:active {
color: #333;
background: white;
box-shadow: 0 0 3px #eee, inset 0 0 3px #ddd; }

.ui button:focus, .ui .button:active,
.ui button:active, .ui .button:active {
color: #555;
background: #f3f3f3;
box-shadow: 0 0 3px #eee, inset 0 0 3px #ddd; }

.ui label, .ui button, .ui .button {
cursor: pointer; }

.ui label {
font-size: 85%;
text-indent: 0; }

.ui select {
display: inline-block;
color: #444;
background: #f9f9f9;
margin: 5px;
padding: 0 10px;
line-height: 25px;
height: 27px;
border: 1px solid #ccc;
border-radius: 3px;
outline: none;
cursor: pointer; }

.ui input[type=radio], .ui input[type=checkbox] {
display: none; }

.ui input[type=radio] + i.handle, .ui input[type=checkbox] + i.handle {
display: inline-block;
width: 10px;
height: 10px;
margin: 0 8px 0 3px;
border: 2px solid #666;
border-radius: 6px; }

.ui input[type=radio]:checked + i.handle, .ui input[type=checkbox]:checked + i.handle {
background: #666; }

.ui input[type=range] {
display: block;
width: 90%;
margin: 0 auto; }

.ui input[type=range] + div {
display: table;
width: 100%; }

.ui input[type=range] + div span {
display: table-cell;
text-align: center;
width: 12.5%; }

.ui input[type=range] + div i {
display: block;
font-size: 16pt; }

.ui button i {
margin-right: 5px;
font-size: 14px; }

.ui div.row {
display: table;
display: flex;
width: 100%; }

.ui .row > * {
display: table-cell;
width: 100%; }

.ui input i,
.ui button i,
.ui label i {
margin-right: 5px;
text-shadow: 0 0 0; }

.left {
float: left; }

.right {
float: right; }


+ 1
- 0
assets/css/ui.min.css View File

@@ -0,0 +1 @@
@charset "UTF-8";::-webkit-scrollbar{width:4px;}::-moz-scrollbar{width:4px;}::scrollbar{width:4px;}::-webkit-scrollbar-track{background:#fff;}::-moz-scrollbar-track{background:#fff;}::scrollbar-track{background:#fff;}::-webkit-scrollbar-thumb{background:#000;}::-moz-scrollbar-thumb{background:#000;}::scrollbar-thumb{background:#fff;}::-webkit-selection{color:#fff;background-color:#dc143c;}::-moz-selection{color:#fff;background-color:#dc143c;}::selection{color:#fff;background-color:#dc143c;}[smooth],.smooth{-webkit-transition:all .1s ease-in-out;-moz-transition:all .1s ease-in-out;-o-transition:all .1s ease-in-out;transition:all .1s ease-in-out;-webkit-backface-visibility:hidden;-moz-backface-visibility:hidden;-o-backface-visibility:hidden;backface-visibility:hidden;}[noselect],.noselect{-webkit-user-select:none;-moz-user-select:none;user-select:none;cursor:default;}[debug],[locked],[hidden]{display:none;visibility:hidden;}.unavailable{cursor:no-drop !important;}.hidden{opacity:0;visibility:hidden;}.invisible{display:none !important;visibility:hidden;}[switch],[toggle]{display:none;}[switch]:not(:checked)~[box],[toggle]:not(:checked)~[on],[toggle]:checked~[off]{display:none;}[switch]~label:before{content:'+ Раскрыть';}[switch]:checked~label:before{content:'- Скрыть';}.ui input,.ui label,.ui textarea,.ui button,.ui .button{display:inline-block;color:#555;background:#fafafa;margin:5px;font-family:inherit;font-size:10pt;text-align:center;text-indent:0;text-decoration:none;border:1px solid #ccc;border-radius:3px;outline:none;}.ui input,.ui label,.ui button,.ui .button{padding:0 10px;line-height:25px;font-weight:bold;}.ui textarea{padding:5px 10px;line-height:1.5em;font-weight:normal;resize:vertical;}.ui input:hover,.ui label:hover,.ui textarea:hover,.ui button:hover,.ui .button:hover{color:#333;background:#fdfdfd;border-color:#bbb;box-shadow:0 0 3px #eee;}.ui input:focus,.ui input:active,.ui label:focus,.ui label:active,.ui textarea:focus,.ui textarea:active{color:#333;background:#fff;box-shadow:0 0 3px #eee,inset 0 0 3px #ddd;}.ui button:focus,.ui .button:active,.ui button:active,.ui .button:active{color:#555;background:#f3f3f3;box-shadow:0 0 3px #eee,inset 0 0 3px #ddd;}.ui label,.ui button,.ui .button{cursor:pointer;}.ui label{font-size:85%;text-indent:0;}.ui select{display:inline-block;color:#444;background:#f9f9f9;margin:5px;padding:0 10px;line-height:25px;height:27px;border:1px solid #ccc;border-radius:3px;outline:none;cursor:pointer;}.ui input[type=radio],.ui input[type=checkbox]{display:none;}.ui input[type=radio]+i.handle,.ui input[type=checkbox]+i.handle{display:inline-block;width:10px;height:10px;margin:0 8px 0 3px;border:2px solid #666;border-radius:6px;}.ui input[type=radio]:checked+i.handle,.ui input[type=checkbox]:checked+i.handle{background:#666;}.ui input[type=range]{display:block;width:90%;margin:0 auto;}.ui input[type=range]+div{display:table;width:100%;}.ui input[type=range]+div span{display:table-cell;text-align:center;width:12.5%;}.ui input[type=range]+div i{display:block;font-size:16pt;}.ui button i{margin-right:5px;font-size:14px;}.ui div.row{display:table;display:flex;width:100%;}.ui .row>*{display:table-cell;width:100%;}.ui input i,.ui button i,.ui label i{margin-right:5px;text-shadow:0 0 0;}.left{float:left;}.right{float:right;}

BIN
assets/font/nyanfont.eot View File


+ 196
- 0
assets/font/nyanfont.svg View File

@@ -0,0 +1,196 @@
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg xmlns="http://www.w3.org/2000/svg">
<metadata>Copyright (C) 2018 by original authors @ fontello.com</metadata>
<defs>
<font id="nyanfont" horiz-adv-x="1000" >
<font-face font-family="nyanfont" font-weight="400" font-stretch="normal" units-per-em="1000" ascent="850" descent="-150" />
<missing-glyph horiz-adv-x="1000" />
<glyph glyph-name="spell-cursed" unicode="&#xe800;" d="M286 207q0 20-11 39-1 0-9 12t-14 21-14 25-12 28q-2 9-12 9t-11-9q-4-13-12-28t-14-25-14-21-9-12q-11-19-11-39 0-29 21-50t50-21 51 21 21 50z m285 72q0-119-83-202t-202-84-202 84-84 202q0 81 45 153 4 5 35 51t56 84 56 99 46 113q5 16 19 26t29 9 29-9 18-26q16-52 47-113t55-99 56-84 35-51q45-71 45-153z" horiz-adv-x="571.4" />

<glyph glyph-name="link" unicode="&#xe801;" d="M294 116q14 14 34 14t36-14q32-34 0-70l-42-40q-56-56-132-56-78 0-134 56t-56 132q0 78 56 134l148 148q70 68 144 77t128-43q16-16 16-36t-16-36q-36-32-70 0-50 48-132-34l-148-146q-26-26-26-64t26-62q26-26 63-26t63 26z m450 574q56-56 56-132 0-78-56-134l-158-158q-74-72-150-72-62 0-112 50-14 14-14 34t14 36q14 14 35 14t35-14q50-48 122 24l158 156q28 28 28 64 0 38-28 62-24 26-56 31t-60-21l-50-50q-16-14-36-14t-34 14q-34 34 0 70l50 50q54 54 127 51t129-61z" horiz-adv-x="800" />

<glyph glyph-name="attention-1" unicode="&#xe802;" d="M1113-70q0-39-27-60t-68-20h-923q-40 0-67 21t-28 59q0 30 18 61l461 804q33 55 78 55t76-55l462-805q18-32 18-60z m-487 511v146h-139v-146q0-14 2-26t6-28 5-27l26-162h59l27 162q2 10 6 26t6 29 2 26z m0-387q0 29-20 49t-50 20q-28 0-48-20t-21-49 21-49 48-21q29 0 50 21t20 49z" horiz-adv-x="1113" />

<glyph glyph-name="fav-yes" unicode="&#xe803;" d="M650 779q12 0 24-5 19-8 29-23t11-35v-719q0-19-11-35t-29-23q-10-4-24-4-27 0-47 18l-246 236-246-236q-20-19-46-19-13 0-25 5-18 7-29 23t-11 35v719q0 19 11 35t29 23q12 5 25 5h585z" horiz-adv-x="714.3" />

<glyph glyph-name="attach" unicode="&#xe804;" d="M285 223q-52 0-91 38t-39 92q0 55 38 93l236 236q61 61 147 61t148-61 61-148-61-147l-369-369q-61-61-146-61-86 0-148 61t-61 148 61 147l42 41q0-61 37-110l-5-5q-30-30-30-73t30-74 74-30 74 30q61 61 183 184t184 185q30 30 30 73t-30 74q-31 30-74 30t-73-30l-237-236q-7-8-7-19t7-19 19-7 19 7l184 184q31-31 31-74 0-41-31-72l-110-111q-38-38-93-38z" horiz-adv-x="785" />

<glyph glyph-name="sys-indicator" unicode="&#xe805;" d="M406 178q34 56 214 284t194 220q12-6-96-278t-138-326q-50-86-136-36t-38 136z m94 380q-168 0-284-127t-116-311q0-30 2-46 2-22-12-37t-34-17-36 12-18 34q0 8-1 26t-1 28q0 226 145 382t355 156q72 0 134-18l-70-86q-40 4-64 4z m362-62q138-154 138-376 0-38-2-56-2-20-16-33t-34-13l-4 0q-22 4-35 20t-11 36q2 14 2 46 0 150-80 268 6 14 20 51t22 57z" horiz-adv-x="1000" />

<glyph glyph-name="catalist" unicode="&#xe806;" d="M160 660l0-161-160 0 0 161 160 0z m231 0l0-161-161 0 0 161 161 0z m-231-230l0-162-160 0 0 162 160 0z m231 0l0-162-161 0 0 162 161 0z m-231-230l0-160-160 0 0 160 160 0z m231 0l0-160-161 0 0 160 161 0z m229 460l0-161-161 0 0 161 161 0z m229 0l0-161-160 0 0 161 160 0z m-229-229l0-162-161 0 0 162 161 0z m0-231l0-160-161 0 0 160 161 0z m229 231l0-162-160 0 0 162 160 0z m0-228l0-163-160 0 0 163 160 0z" horiz-adv-x="849" />

<glyph glyph-name="refresh" unicode="&#xe807;" d="M0-150l0 402 402 0-160-160q108-107 258-107 125 0 222 75t130 192l138 0q-35-173-173-288t-317-114q-207 0-353 146z m10 598q35 174 173 288t317 114q207 0 354-146l146 146 0-402-402 0 160 160q-108 107-258 107-125 0-222-75t-130-192l-138 0z" horiz-adv-x="1000" />

<glyph glyph-name="down-cut" unicode="&#xe808;" d="M540 587l-269-473-271 473 540 0z" horiz-adv-x="540" />

<glyph glyph-name="left-cut" unicode="&#xe809;" d="M510 93l-510 256 510 259 0-515z" horiz-adv-x="510" />

<glyph glyph-name="right-cut" unicode="&#xe80a;" d="M0 608l510-257-510-258 0 515z" horiz-adv-x="510" />

<glyph glyph-name="up-cut" unicode="&#xe80b;" d="M0 114l269 473 271-473-540 0z" horiz-adv-x="540" />

<glyph glyph-name="arrow-down" unicode="&#xe80c;" d="M660 366l-330-380-330 380 192 0 0 350 276 0 0-350 192 0z" horiz-adv-x="660" />

<glyph glyph-name="arrow-left" unicode="&#xe80d;" d="M378 20l-378 330 378 330 0-190 352 0 0-278-352 0 0-192z" horiz-adv-x="730" />

<glyph glyph-name="arrow-right" unicode="&#xe80e;" d="M350 680l380-330-380-330 0 192-350 0 0 278 350 0 0 190z" horiz-adv-x="730" />

<glyph glyph-name="arrow-up" unicode="&#xe80f;" d="M660 336l-192 0 0-350-276 0 0 350-192 0 330 380z" horiz-adv-x="660" />

<glyph glyph-name="comment" unicode="&#xe810;" d="M0 96l0 713 1000 0 0-713-473 0-320-205 0 205-207 0z" horiz-adv-x="1000" />

<glyph glyph-name="file-add" unicode="&#xe811;" d="M0-150l0 818 188 182 519 0 0-348-86 0 0 260-369 0 0-156-166 0 0-668 418 0 0-88-504 0z m373 207l0 162 209 0 0 207 160 0 0-207 207 0 0-162-207 0 0-207-160 0 0 207-209 0z" horiz-adv-x="949" />

<glyph glyph-name="file-fla" unicode="&#xe812;" d="M40-100q-4 4 35 94t79 182 38 98-94 45-98 55q-4 12 84 120t180 209 96 97q6-4-74-186t-78-186 95-43 97-57q4-20-174-227t-186-201z" horiz-adv-x="400" />

<glyph glyph-name="file-doc" unicode="&#xe813;" d="M819 638q16-16 27-42t11-50v-642q0-23-15-38t-38-16h-750q-23 0-38 16t-16 38v892q0 23 16 38t38 16h500q22 0 49-11t42-27z m-248 136v-210h210q-5 17-12 23l-175 175q-6 7-23 12z m215-853v572h-232q-23 0-38 16t-16 37v233h-429v-858h715z" horiz-adv-x="857.1" />

<glyph glyph-name="login" unicode="&#xe814;" d="M661 350q0-14-11-25l-303-304q-11-10-26-10t-25 10-10 25v161h-250q-15 0-25 11t-11 25v214q0 15 11 25t25 11h250v161q0 14 10 25t25 10 26-10l303-304q11-10 11-25z m196 196v-392q0-67-47-114t-114-47h-178q-7 0-13 5t-5 13q0 2-1 11t0 15 2 13 5 11 12 3h178q37 0 64 27t26 63v392q0 37-26 64t-64 26h-174t-6 0-6 2-5 3-4 5-1 8q0 2-1 11t0 15 2 13 5 11 12 3h178q67 0 114-47t47-114z" horiz-adv-x="857.1" />

<glyph glyph-name="logout" unicode="&#xe815;" d="M357 46q0-2 1-11t0-14-2-14-5-11-12-3h-178q-67 0-114 47t-47 114v392q0 67 47 114t114 47h178q8 0 13-5t5-13q0-2 1-11t0-15-2-13-5-11-12-3h-178q-37 0-63-26t-27-64v-392q0-37 27-63t63-27h174t6 0 7-2 4-3 4-5 1-8z m518 304q0-14-11-25l-303-304q-11-10-25-10t-25 10-11 25v161h-250q-14 0-25 11t-11 25v214q0 15 11 25t25 11h250v161q0 14 11 25t25 10 25-10l303-304q11-10 11-25z" horiz-adv-x="928.6" />

<glyph glyph-name="p2p" unicode="&#xe816;" d="M799 127q46 0 79-33t33-79-33-79-78-33-79 33-33 80q0 18 8 39l-169 122q-49-50-118-50t-118 49-50 119q0 9 3 26l-134 44q-16-14-36-14-24 0-40 16t-16 40 16 39 40 16q20 0 34-13t19-31l135-45q21 41 61 65t86 24q52 0 96-31l199 199q-16 30-16 55 0 46 33 79t79 33 78-33 33-79-33-78-79-33q-26 0-55 17l-199-200q31-44 31-96 0-37-17-73l169-121q33 26 71 26z" horiz-adv-x="928" />

<glyph glyph-name="listen" unicode="&#xe817;" d="M206 714l534 116 0-704q2-42-30-81t-86-59q-64-24-110-8t-62 64q-18 48 7 97t85 73q52 20 106 10l0 376-354-82 0-490q0-42-32-81t-86-59q-64-22-109-7t-61 63q-18 48 6 97t84 73q54 20 108 10l0 592z" horiz-adv-x="740" />

<glyph glyph-name="watch" unicode="&#xe818;" d="M980 600l-100 0 0-100 100 0 0-100-100 0 0-100 100 0 0-100-100 0 0-100 100 0 0-60q0-16-12-28t-28-12l-900 0q-16 0-28 12t-12 28l0 60 100 0 0 100-100 0 0 100 100 0 0 100-100 0 0 100 100 0 0 100-100 0 0 60q0 18 12 29t28 11l900 0q16 0 28-11t12-29l0-60z m-600-400l250 150-250 150 0-300z" horiz-adv-x="980" />

<glyph glyph-name="io-moderate" unicode="&#xe819;" d="M988-7q0-30-20-50l-60-61q-22-20-51-20-29 0-50 20l-203 204q-21 20-21 50 0 29 24 53l-143 143-70-70q-8-8-19-8t-19 8q1-1 7-7t7-7 6-6 5-8 4-8 3-9 0-10q0-21-15-38-2-1-9-10t-11-11-10-9-13-9-12-5-14-3q-23 0-38 16l-228 228q-16 15-16 38 0 7 3 14t5 12 9 13 9 10 11 11 10 9q17 15 38 15 6 0 10 0t9-3 8-4 8-5 6-6 7-7 7-7q-8 8-8 19t8 19l194 194q8 8 19 8t19-8q-1 1-7 7t-7 7-6 7-5 7-3 8-4 9 0 10q0 21 15 38 2 2 9 10t11 11 10 10 13 8 12 5 14 3q23 0 38-16l228-228q16-15 16-38 0-7-3-14t-5-12-8-13-10-10-11-11-10-9q-17-15-38-15-6 0-10 0t-9 4-8 3-7 5-7 6-7 7-7 7q8-8 8-19t-8-19l-70-70 143-143q24 24 53 24 29 0 51-21l203-202q20-22 20-51z" horiz-adv-x="1000" />

<glyph glyph-name="key" unicode="&#xe81a;" d="M774 612q20-116-28-215t-150-117q-66-12-130-2l-118-194-70-12-104-166q-14-28-46-32l-76-14q-12-4-22 4t-12 22l-16 98q-8 30 12 56l258 386q-24 50-38 120-18 106 53 187t185 101q106 20 195-45t107-177z m-126-76q30 44 21 97t-51 83q-42 32-92 22t-80-54q-8-12-12-23t-1-20 5-16 13-17 18-15 22-16 23-17q6-4 22-16t23-16 19-12 19-8 17 1 18 8 16 19z" horiz-adv-x="780" />

<glyph glyph-name="check-on" unicode="&#xe81b;" d="M786 331v-177q0-67-47-114t-114-47h-464q-67 0-114 47t-47 114v464q0 66 47 113t114 48h464q35 0 65-14 9-4 10-13 2-10-5-16l-27-28q-6-5-13-5-1 0-5 1-13 3-25 3h-464q-37 0-63-26t-27-63v-464q0-37 27-63t63-27h464q37 0 63 27t26 63v141q0 8 5 13l36 35q6 6 13 6 3 0 7-2 11-4 11-16z m129 273l-455-454q-13-14-31-14t-32 14l-240 240q-14 13-14 31t14 32l61 62q14 13 32 13t32-13l147-147 361 361q13 13 31 13t32-13l62-61q13-14 13-32t-13-32z" horiz-adv-x="928.6" />

<glyph glyph-name="calendar" unicode="&#xe81c;" d="M71-79h161v161h-161v-161z m197 0h178v161h-178v-161z m-197 197h161v178h-161v-178z m197 0h178v178h-178v-178z m-197 214h161v161h-161v-161z m411-411h179v161h-179v-161z m-214 411h178v161h-178v-161z m428-411h161v161h-161v-161z m-214 197h179v178h-179v-178z m-196 482v161q0 7-6 12t-12 6h-36q-7 0-12-6t-6-12v-161q0-7 6-13t12-5h36q7 0 12 5t6 13z m410-482h161v178h-161v-178z m-214 214h179v161h-179v-161z m214 0h161v161h-161v-161z m18 268v161q0 7-5 12t-13 6h-35q-7 0-13-6t-5-12v-161q0-7 5-13t13-5h35q8 0 13 5t5 13z m215 36v-715q0-29-22-50t-50-21h-786q-29 0-50 21t-21 50v715q0 29 21 50t50 21h72v54q0 37 26 63t63 26h36q37 0 63-26t26-63v-54h214v54q0 37 27 63t63 26h35q37 0 64-26t26-63v-54h71q29 0 50-21t22-50z" horiz-adv-x="928.6" />

<glyph glyph-name="io-worldnet" unicode="&#xe81d;" d="M827 264q26-14 33-43t-7-55l-35-61q-15-26-44-33t-54 7l-149 85v-171q0-29-21-50t-50-22h-71q-29 0-51 22t-21 50v171l-148-85q-26-15-55-7t-43 33l-36 61q-14 26-7 55t34 43l148 86-148 86q-26 14-34 43t7 55l36 61q15 26 43 33t55-7l148-85v171q0 29 21 50t51 22h71q29 0 50-22t21-50v-171l149 85q26 15 54 7t44-33l35-61q15-26 7-55t-33-43l-148-86z" horiz-adv-x="928.6" />

<glyph glyph-name="sys-distribution" unicode="&#xe81e;" d="M424 256l-296-296q-110 129-110 296t110 295z m44 39l-362 360q157 130 362 142l0-502z m55 390q143-21 238-130t95-256q0-164-115-280t-278-116q-127 0-233 78l293 290 0 414z" horiz-adv-x="873" />

<glyph glyph-name="target" unicode="&#xe81f;" d="M668 279h-61q-14 0-25 10t-11 25v72q0 14 11 25t25 10h61q-18 61-63 106t-105 62v-60q0-15-11-25t-25-11h-71q-15 0-25 11t-11 25v60q-60-17-105-62t-63-106h61q15 0 25-10t11-25v-72q0-14-11-25t-25-10h-61q18-61 63-106t105-62v60q0 15 11 26t25 10h71q15 0 25-10t11-26v-60q60 18 105 62t63 106z m189 107v-72q0-14-10-25t-26-10h-79q-21-90-87-156t-155-86v-80q0-14-11-25t-25-11h-71q-15 0-25 11t-11 25v80q-90 21-155 86t-86 156h-80q-15 0-25 10t-11 25v72q0 14 11 25t25 10h80q20 90 86 156t155 86v80q0 14 11 25t25 11h71q15 0 25-11t11-25v-80q90-21 155-86t87-156h79q15 0 26-10t10-25z" horiz-adv-x="857.1" />

<glyph glyph-name="night" unicode="&#xe820;" d="M524 238q106 106 125 252t-53 270q52-26 96-72 128-128 128-309t-128-309-310-128-310 128q-40 40-72 94 124-70 271-51t253 125z" horiz-adv-x="820" />

<glyph glyph-name="deny" unicode="&#xe821;" d="M1000 349q0-136-67-251t-182-182-251-67-251 67-182 182-67 251 67 251 182 182 251 67 251-67 182-182 67-251z m-117 0q0 158-112 271t-271 112q-126 0-226-74l535-535q74 100 74 226z m-157-309l-535 535q-74-100-74-226 0-158 113-270t270-113q126 0 226 74z" horiz-adv-x="1000" />

<glyph glyph-name="announce" unicode="&#xe822;" d="M0 344l0 123q2 35 26 60t58 24l270 0q138 8 272 65t229 152q36-2 59-26t23-58l0-199q28-8 45-30t18-50q-2-30-19-51t-44-27l0-201q-1-36-26-59t-56-24q-207 184-449 211-66-33-53-127t77-142q-28-47-96-52t-105 30q-16 45-25 76t-16 71-7 78 10 72l-107 0q-35 2-60 27t-24 57z m438-10q240-44 419-183l0 508q-203-151-419-182l0-143z" horiz-adv-x="1000" />

<glyph glyph-name="download" unicode="&#xe823;" d="M968 198q18-10 27-32t3-40l-28-154q-4-20-22-33t-40-13l-816 0q-22 0-40 13t-22 33l-28 154q-10 48 32 72l158 108 98 0-170-130 178 0q8 0 12-8l40-110 300 0 40 110q8 8 12 8l178 0-170 130 98 0z m-208 322l-260-244-260 244 166 0 0 256 190 0 0-256 164 0z" horiz-adv-x="1000" />

<glyph glyph-name="network" unicode="&#xe824;" d="M224 504q-22 0-42-10-48 52-92 128 54 74 128 118 92-38 152-82-6-16-6-32 0-6 4-22-62-48-116-104-16 4-28 4z m-98-98q0-34 20-60-60-114-80-232-66 106-66 236 0 110 50 206 38-62 84-112-8-24-8-38z m336 318q-28 0-50-14-58 42-114 70 84 30 162 30 120 0 230-62-76-14-162-50-26 26-66 26z m146-460q-160 24-290 112 4 20 4 30 0 24-14 52 38 44 98 90 26-20 56-20 14 0 38 8 94-108 134-240-16-14-26-32z m128-132q38 14 54 60 58 4 108 18-46-146-166-232 6 48 6 98 0 10-1 28t-1 28z m-150 66q-190-96-304-272-90 36-158 110 12 144 80 274 6-2 20-2 30 0 52 14 142-98 310-124z m184 492q150-136 150-340 0-22-4-66-64-18-130-24-24 56-88 60-48 146-148 264 10 20 10 42l0 10q100 42 210 54z m-136-544q14-10 32-18 2-18 2-52 0-80-14-144-86-42-194-42-58 0-112 12 110 160 286 244z" horiz-adv-x="920" />

<glyph glyph-name="reply" unicode="&#xe825;" d="M900 10q-86 152-208 197t-330 45l0-218-362 334 362 322 0-192q90 0 168-27t131-70 96-95 69-104 44-95 24-69z" horiz-adv-x="900" />

<glyph glyph-name="reply-all" unicode="&#xe826;" d="M362 556l-212-188 212-196 0-138-362 334 362 322 0-134z m250-58q104 0 182-50t115-122 60-144 27-122l4-50q-86 154-168 198t-220 44l0-218-362 334 362 322 0-192z" horiz-adv-x="1000" />

<glyph glyph-name="forward" unicode="&#xe827;" d="M540 252q-210 0-332-45t-208-197q4 20 13 53t50 117 96 148 156 117 225 53l0 192 360-322-360-334 0 218z" horiz-adv-x="900" />

<glyph glyph-name="globe" unicode="&#xe828;" d="M480 830q200 0 340-141t140-339q0-200-140-340t-340-140q-198 0-339 140t-141 340q0 198 141 339t339 141z m410-480q0 132-78 239t-202 149q-18-24-16-32 4-38 18-51t30-7l32 12t20 2q22-24 0-47t-45-56-1-77q34-64 96-64 28-2 43-36t17-66q10-80-14-140-22-44 14-76 86 112 86 250z m-466 404q-112-14-199-84t-127-174q6 0 22-2t28-3 26-4 24-8 12-13q4-12-14-45t-18-61q0-30 38-56t38-46q0-28 8-68t8-44q0-12 36-54t52-42q10 0 11 22t-2 54-3 40q0 32 14 74 12 42 59 70t55 46q16 34 9 61t-17 43-34 28-41 17-37 9-22 4q-16 6-42 7t-36-3-27 11-17 29q0 10 15 27t35 37 28 30q8 14 17 21t22 16 27 21q4 4 25 17t27 23z m-72-794q66-20 128-20 128 0 226 68-26 44-118 34-24-2-65-17t-47-17q-74-16-76-16-12-2-26-14t-22-18z" horiz-adv-x="960" />

<glyph glyph-name="infinity" unicode="&#xe829;" d="M796 570q84 0 144-53t60-167q0-112-60-166t-144-54q-78 0-157 40t-139 106q-58-66-137-106t-157-40q-86 0-146 54t-60 166q0 114 60 167t146 53q78 0 157-39t137-105q58 66 138 105t158 39z m-590-352q60 0 127 37t113 95q-46 58-112 95t-128 37q-114 0-114-132t114-132z m590 0q114 0 114 132t-114 132q-62 0-129-37t-111-95q44-58 111-95t129-37z" horiz-adv-x="1000" />

<glyph glyph-name="ok" unicode="&#xe82a;" d="M375 155l441 442 59-59-500-500-232 233 58 58z" horiz-adv-x="1000" />

<glyph glyph-name="cancel" unicode="&#xe82b;" d="M791 562l-232-233 232-232-59-59-232 233-232-233-59 59 232 232-232 233 59 58 232-232 232 232z" horiz-adv-x="1000" />

<glyph glyph-name="up" unicode="&#xe82c;" d="M309 187l-59 58 250 250 250-250-59-58-191 191z" horiz-adv-x="1000" />

<glyph glyph-name="down" unicode="&#xe82d;" d="M309 503l191-191 191 191 59-59-250-250-250 250z" horiz-adv-x="1000" />

<glyph glyph-name="add" unicode="&#xe82e;" d="M791 288h-250v-250h-82v250h-250v82h250v250h82v-250h250v-82z" horiz-adv-x="1000" />

<glyph glyph-name="remove" unicode="&#xe82f;" d="M791 288h-582v82h582v-82z" horiz-adv-x="1000" />

<glyph glyph-name="person" unicode="&#xe830;" d="M500 245c111 0 334-54 334-166v-84h-668v84c0 112 223 166 334 166z m0 84c-92 0-166 74-166 166s74 168 166 168 166-76 166-168-74-166-166-166z" horiz-adv-x="1000" />

<glyph glyph-name="menu" unicode="&#xe831;" d="M125 579h750v-84h-750v84z m0-291v82h750v-82h-750z m0-209v84h750v-84h-750z" horiz-adv-x="1000" />

<glyph glyph-name="sys-database" unicode="&#xe832;" d="M686 208q14 20 14-2l0-100q0-74-104-135t-246-61q-140 0-245 61t-105 135l0 100q0 8 4 10t10-8q32-52 125-86t211-34 211 34 125 86z m2 254q8 16 12 0l0-116q0-68-102-114t-248-46q-144 0-247 46t-103 114l0 116q0 20 14 0 30-46 124-75t212-29 212 29 126 75z m-338 328q144 0 247-39t103-93l0-64q0-58-103-99t-247-41-247 41-103 99l0 64q0 54 103 93t247 39z" horiz-adv-x="700" />

<glyph glyph-name="sys-backup" unicode="&#xe833;" d="M460 810q190 0 325-135t135-325-135-325-325-135-325 135-135 325 135 325 325 135z m0-820q150 0 255 106t105 254q0 150-105 255t-255 105q-148 0-254-105t-106-255q0-148 106-254t254-106z m36 620l0-244 150-150-50-50-170 170 0 274 70 0z" horiz-adv-x="920" />

<glyph glyph-name="sys-power" unicode="&#xe834;" d="M339 75q95 0 164 69t70 166q0 97-69 166-15 15-15 36t15 36 37 15 37-15q100-100 100-238 0-140-100-240-99-99-239-99-141 0-240 99t-99 240q0 140 99 238 15 15 37 15t37-15 15-36-15-36q-69-69-69-166 0-97 69-166t166-69z m0 291q-21 0-37 15t-16 36l0 261q0 22 16 37t37 15 36-15 15-37l0-261q0-21-15-36t-36-15z" horiz-adv-x="678" />

<glyph glyph-name="edit-page" unicode="&#xe835;" d="M90 589l0-593 444 0 0 262 90 101 0-453-624 0 0 760 541 0-75-77-376 0z m749 180c35-34 32-88-3-124l-57-56 17 75-63 64-74-17 56 57c35 35 90 35 124 1z m-219-99c0 3 65 20 75 23l1 1 67-69c-4 0-23-75-23-75l-371-384-159-36-2 1 41 158z m-247-422l-45 46-35-6-23-22-10-40 46-45 39 9 23 23z" horiz-adv-x="864" />

<glyph glyph-name="edit" unicode="&#xe836;" d="M718 680q32-32 47-64t15-48l0-16-252-252-290-288-238-52 50 240 290 288 252 252q54 12 126-60z m-494-640l24 24q-2 44-52 94-22 22-45 35t-35 13l-14 2-22-24-18-80q28-16 46-34 24-24 36-48z" horiz-adv-x="780" />

<glyph glyph-name="info" unicode="&#xe88f;" d="M459 454v84h82v-84z m41-484c198 0 359 162 359 359s-161 360-359 360c-198 0-359-162-359-360s161-359 359-359z m0 775c231 0 416-185 416-416s-185-416-416-416c-230 0-416 186-416 416s186 416 416 416z m-41-625v250h82v-250z" horiz-adv-x="1000" />

<glyph glyph-name="search" unicode="&#xe8b6;" d="M397 245c103 0 187 84 187 188s-84 187-187 187-188-84-188-187 84-188 188-188z m250 0l207-207-63-62-207 207v33l-12 12c-47-41-109-65-175-65-151 0-272 119-272 270s121 271 272 271 269-121 269-271c0-67-23-129-64-176l11-12h34z" horiz-adv-x="1000" />

<glyph glyph-name="options" unicode="&#xe8b8;" d="M500 183c80 0 147 66 147 146s-67 147-147 147-146-67-146-147 66-146 146-146z m311 105l87-68c8-6 10-18 4-28l-84-144c-5-10-15-12-25-8l-103 41c-22-15-45-31-71-41l-15-109c-2-10-10-18-20-18h-168c-10 0-18 8-19 18l-16 109c-25 10-49 24-70 41l-104-41c-10-4-19-2-25 8l-84 144c-6 10-4 22 4 28l88 68c-2 14-2 28-2 41s0 28 2 41l-88 69c-8 5-10 17-4 27l84 144c6 10 15 12 25 8l104-41c21 16 45 32 70 41l16 110c1 9 9 17 19 17h168c10 0 18-8 20-17l15-110c26-9 49-23 71-41l103 41c10 4 20 2 25-8l84-144c6-10 4-22-4-27l-87-69c2-13 2-27 2-41s0-27-2-41z" horiz-adv-x="1000" />

<glyph glyph-name="sage" unicode="&#xe8d7;" d="M875 683c45 0 84-37 84-82v-584c0-45-39-84-84-84h-750c-45 0-84 39-84 84v584c0 45 39 82 84 82h250v-82h-250v-584h750v584h-250v82h250z m-375-541l-166 166h125v375h82v-375h125z" horiz-adv-x="1000" />

<glyph glyph-name="visible" unicode="&#xe8f4;" d="M500 454c68 0 125-56 125-125s-57-125-125-125-125 57-125 125 57 125 125 125z m0-334c115 0 209 94 209 209s-94 209-209 209-209-94-209-209 94-209 209-209z m0 522c209 0 387-129 459-313-72-183-250-312-459-312s-387 129-459 312c72 184 250 313 459 313z" horiz-adv-x="1000" />

<glyph glyph-name="invisible" unicode="&#xe8f5;" d="M494 454h6c68 0 125-56 125-125v-8z m-179-33c-14-27-24-59-24-92 0-115 94-209 209-209 33 0 65 10 92 24l-65 64c-7-2-17-4-27-4-68 0-125 57-125 125 0 10 2 20 4 28z m-231 230l53 53 738-738-53-53c-47 46-94 92-140 139-57-24-117-35-182-35-209 0-387 129-459 312 33 82 88 153 156 207-38 38-75 77-113 115z m416-113c-27 0-53-6-76-15l-90 89c51 20 107 30 166 30 209 0 385-129 457-313-31-78-80-144-142-197l-122 121c10 23 16 49 16 76 0 115-94 209-209 209z" horiz-adv-x="1000" />

<glyph glyph-name="hex-check" unicode="&#xe900;" d="M500 788l-375-219v-438l375-219 375 219v438l-375 219z m0-144l250-150v-288l-250-150-250 150v288l250 150z m0-75l-187-110v-218l187-110 188 110v218l-188 110z" horiz-adv-x="1000" />

<glyph glyph-name="hex-logo" unicode="&#xe901;" d="M500 788l-375-219v-438l375-219 375 219v438l-375 219z m0-144l72-44-252-436-70 42v288l250 150z m180-108l70-42v-288l-250-150-72 44 252 436z" horiz-adv-x="1000" />

<glyph glyph-name="hex" unicode="&#xe902;" d="M500 788l-375-219v-438l375-219 375 219 0 438z m0-144l250-150v-288l-250-150-250 150v288z" horiz-adv-x="1000" />

<glyph glyph-name="menu-vert" unicode="&#xe903;" d="M750 725v-750h-84v750z m-291 0h82v-750h-82z m-209 0h84v-750h-84z" horiz-adv-x="1000" />

<glyph glyph-name="hakase" unicode="&#xf020;" d="M0 350q0 95 37 182t100 149 150 100 182 37 182-37 149-100 100-149 37-182-37-182-100-150-149-100-182-37-182 37-150 100-100 150-37 182z m397-226q0-46 32-79t79-32q3 0 11-1 81 12 148 60t105 120 39 158q0 90-44 167t-118 123-164 51q60-95 60-209 0-81-31-153t-85-128q-32-33-32-77z" horiz-adv-x="937.5" />

<glyph glyph-name="spell-locked" unicode="&#xf023;" d="M179 413h285v107c0 78-64 143-143 143s-142-65-142-143v-107z m464-54v-321c0-30-24-54-54-54h-535c-30 0-54 24-54 54v321c0 30 24 54 54 54h17v107c0 137 113 250 250 250s250-113 250-250v-107h18c30 0 54-24 54-54z" horiz-adv-x="642.6" />

<glyph glyph-name="spell-pinned" unicode="&#xf08d;" d="M643 163c0-20-16-36-36-36h-239l-29-270c-1-9-8-16-17-16h-1c-8 0-16 6-17 15l-43 271h-225c-20 0-36 16-36 36 0 91 69 178 143 178v286c-39 0-72 32-72 71s33 72 72 72h357c39 0 71-33 71-72s-32-71-71-71v-286c74 0 143-87 143-178z" horiz-adv-x="642.6" />

<glyph glyph-name="check" unicode="&#xf096;" d="M625 707h-464q-37 0-63-26t-27-63v-464q0-37 27-63t63-27h464q37 0 63 27t26 63v464q0 37-26 63t-63 26z m161-89v-464q0-67-47-114t-114-47h-464q-67 0-114 47t-47 114v464q0 66 47 113t114 48h464q66 0 114-48t47-113z" horiz-adv-x="785.7" />

<glyph glyph-name="fav-no" unicode="&#xf097;" d="M643 707h-572v-693l237 227 49 47 50-47 236-227v693z m7 72q12 0 24-5 19-8 29-23t11-35v-719q0-19-11-35t-29-23q-10-4-24-4-27 0-47 18l-246 236-246-236q-20-19-46-19-13 0-25 5-18 7-29 23t-11 35v719q0 19 11 35t29 23q12 5 25 5h585z" horiz-adv-x="714.3" />

<glyph glyph-name="spell-divide" unicode="&#xf0c5;" d="M946 636q23 0 38-16t16-38v-678q0-23-16-38t-38-16h-535q-23 0-38 16t-16 38v160h-303q-23 0-38 16t-16 38v375q0 22 11 49t27 42l228 228q15 16 42 27t49 11h232q23 0 38-16t16-38v-183q38 23 71 23h232z m-303-119l-167-167h167v167z m-357 214l-167-167h167v167z m109-361l176 176v233h-214v-233q0-22-15-37t-38-16h-233v-357h286v143q0 22 11 49t27 42z m534-449v643h-215v-232q0-22-15-38t-38-15h-232v-358h500z" horiz-adv-x="1000" />

<glyph glyph-name="sort" unicode="&#xf0dc;" d="M571 243q0-15-10-25l-250-250q-11-11-25-11t-25 11l-250 250q-11 10-11 25t11 25 25 11h500q14 0 25-11t10-25z m0 214q0-14-10-25t-25-11h-500q-15 0-25 11t-11 25 11 25l250 250q10 11 25 11t25-11l250-250q10-10 10-25z" horiz-adv-x="571.4" />

<glyph glyph-name="sort-down" unicode="&#xf0dd;" d="M571 243q0-15-10-25l-250-250q-11-11-25-11t-25 11l-250 250q-11 10-11 25t11 25 25 11h500q14 0 25-11t10-25z" horiz-adv-x="571.4" />

<glyph glyph-name="sort-up" unicode="&#xf0de;" d="M571 457q0-14-10-25t-25-11h-500q-15 0-25 11t-11 25 11 25l250 250q10 11 25 11t25-11l250-250q10-10 10-25z" horiz-adv-x="571.4" />

<glyph glyph-name="file-txt" unicode="&#xf0f6;" d="M819 638q16-16 27-42t11-50v-642q0-23-15-38t-38-16h-750q-23 0-38 16t-16 38v892q0 23 16 38t38 16h500q22 0 49-11t42-27z m-248 136v-210h210q-5 17-12 23l-175 175q-6 7-23 12z m215-853v572h-232q-23 0-38 16t-16 37v233h-429v-858h715z m-572 483q0 7 5 12t13 5h393q8 0 13-5t5-12v-36q0-8-5-13t-13-5h-393q-8 0-13 5t-5 13v36z m411-125q8 0 13-5t5-13v-36q0-8-5-13t-13-5h-393q-8 0-13 5t-5 13v36q0 8 5 13t13 5h393z m0-143q8 0 13-5t5-13v-36q0-8-5-13t-13-5h-393q-8 0-13 5t-5 13v36q0 8 5 13t13 5h393z" horiz-adv-x="857.1" />

<glyph glyph-name="left" unicode="&#xf104;" d="M350 538c0-5-2-10-6-13l-219-220 219-219c4-3 6-8 6-13s-2-9-6-13l-28-27c-3-4-8-6-12-6s-10 2-13 6l-260 260c-4 3-6 8-6 12s2 10 6 13l260 260c3 4 8 6 13 6s9-2 12-6l28-28c4-3 6-7 6-12z" horiz-adv-x="375" />

<glyph glyph-name="right" unicode="&#xf105;" d="M332 305c0-4-2-9-5-12l-261-260c-3-4-8-6-12-6s-10 2-13 6l-28 27c-3 4-6 8-6 13 0 5 3 10 6 13l219 219-219 220c-3 3-6 8-6 13s3 9 6 12l28 28c3 4 8 6 13 6s9-2 12-6l261-260c3-3 5-8 5-13z" horiz-adv-x="338.9" />

<glyph glyph-name="io-commands" unicode="&#xf120;" d="M327 302l-261-261q-5-5-12-5t-13 5l-28 28q-6 6-6 13t6 13l219 219-219 220q-6 5-6 12t6 13l28 28q5 6 13 6t12-6l261-260q5-5 5-13t-5-12z m602-256v-35q0-8-5-13t-13-5h-536q-8 0-13 5t-5 13v35q0 8 5 13t13 5h536q8 0 13-5t5-13z" horiz-adv-x="928.6" />

<glyph glyph-name="io-assemble" unicode="&#xf12e;" d="M929 237q0-45-25-75t-69-30q-23 0-43 10t-33 21-32 21-39 10q-62 0-62-69 0-22 9-65t8-64v-3q-12 0-18 0-19-2-54-7t-65-7-54-3q-35 0-58 15t-23 47q0 20 9 39t22 32 21 33 10 43q0 44-31 69t-75 25q-47 0-80-26t-33-71q0-24 9-46t18-36 19-30 8-28q0-25-25-50-21-19-65-19-54 0-137 13-5 1-16 2t-15 3l-7 1q-1 0-2 0-1 0-1 1v571q1 0 10-2t19-2 12-2q83-14 137-14 44 0 65 20 25 24 25 49 0 13-8 29t-19 29-18 36-9 47q0 45 33 71t81 25q44 0 74-25t31-69q0-23-10-43t-21-33-22-31-9-40q0-32 23-47t58-14q35 0 100 8t91 9v-1q-1-1-2-9t-3-19-2-12q-13-84-13-137 0-45 19-65 25-26 50-26 12 0 28 8t30 19 36 19 46 8q46 0 71-33t26-80z" horiz-adv-x="928.6" />

<glyph glyph-name="io-firewall" unicode="&#xf132;" d="M607 314v357h-250v-634q67 35 119 76 131 103 131 201z m107 429v-429q0-48-18-95t-47-84-66-71-70-57-68-43-50-28-23-11q-7-4-15-4t-14 4q-9 4-24 11t-50 28-67 43-71 57-66 71-46 84-19 95v429q0 14 11 25t25 11h643q14 0 25-11t10-25z" horiz-adv-x="714.3" />

<glyph glyph-name="check-in" unicode="&#xf14a;" d="M382 125l343 343q11 10 11 25t-11 25l-57 57q-11 11-25 11t-25-11l-261-261-118 118q-10 11-25 11t-25-11l-57-57q-10-10-10-25t10-25l200-200q11-10 25-10t25 10z m475 493v-536q0-66-47-113t-114-48h-535q-67 0-114 48t-47 113v536q0 66 47 113t114 48h535q67 0 114-48t47-113z" horiz-adv-x="857.1" />

<glyph glyph-name="coin" unicode="&#xf15a;" d="M651 493q10-102-73-144 65-16 98-58t25-119q-4-40-18-70t-36-49-54-33-68-19-81-9v-142h-86v140q-45 0-68 1v-141h-86v142q-10 0-30 1t-31 0h-112l18 102h62q27 0 32 28v225h9q-4 0-9 0v161q-7 37-50 37h-62v92l119-1q35 0 54 1v141h86v-138q45 1 68 1v137h86v-141q44-4 78-13t63-25 46-43 20-64z m-120-304q0 20-8 35t-21 26-32 17-36 11-42 5-38 1-36 0-27-1v-189q5 0 21 0t27 0 29 1 33 2 32 5 31 8 26 11 22 17 14 22 5 29z m-39 265q0 19-7 33t-17 23-27 16-31 9-34 5-32 1-31 0-22-1v-171q3 0 20 0t26 0 27 1 31 3 29 6 27 10 21 15 15 22 5 28z" horiz-adv-x="714.3" />

<glyph glyph-name="file-doc-inv" unicode="&#xf15b;" d="M571 564v264q13-8 21-16l227-228q8-7 16-20h-264z m-71-18q0-22 16-37t38-16h303v-589q0-23-15-38t-38-16h-750q-23 0-38 16t-16 38v892q0 23 16 38t38 16h446v-304z" horiz-adv-x="857.1" />

<glyph glyph-name="file-img" unicode="&#xf1c5;" d="M819 638q16-16 27-42t11-50v-642q0-23-15-38t-38-16h-750q-23 0-38 16t-16 38v892q0 23 16 38t38 16h500q22 0 49-11t42-27z m-248 136v-210h210q-5 17-12 23l-175 175q-6 7-23 12z m215-853v572h-232q-23 0-38 16t-16 37v233h-429v-858h715z m-72 250v-178h-571v107l107 107 71-71 215 214z m-464 108q-45 0-76 31t-31 76 31 76 76 31 76-31 31-76-31-76-76-31z" horiz-adv-x="857.1" />

<glyph glyph-name="file-arc" unicode="&#xf1c6;" d="M357 636v71h-71v-71h71z m72-72v72h-72v-72h72z m-72-71v71h-71v-71h71z m72-72v72h-72v-72h72z m390 217q16-16 27-42t11-50v-642q0-23-15-38t-38-16h-750q-23 0-38 16t-16 38v892q0 23 16 38t38 16h500q22 0 49-11t42-27z m-248 136v-210h210q-5 17-12 23l-175 175q-6 7-23 12z m215-853v572h-232q-23 0-38 16t-16 37v233h-71v-72h-72v72h-286v-858h715z m-350 403l60-195q4-15 4-29 0-46-40-77t-103-30-102 30-41 77q0 14 5 29 12 35 67 221v71h71v-71h44q13 0 22-7t13-19z m-79-260q30 0 51 11t21 25-21 25-51 11-50-11-21-25 21-25 50-11z" horiz-adv-x="857.1" />

<glyph glyph-name="file-aud" unicode="&#xf1c7;" d="M819 638q16-16 27-42t11-50v-642q0-23-15-38t-38-16h-750q-23 0-38 16t-16 38v892q0 23 16 38t38 16h500q22 0 49-11t42-27z m-248 136v-210h210q-5 17-12 23l-175 175q-6 7-23 12z m215-853v572h-232q-23 0-38 16t-16 37v233h-429v-858h715z m-440 455q11-5 11-17v-304q0-12-11-16-4-1-7-1-6 0-12 5l-93 93h-73q-8 0-13 5t-5 13v107q0 8 5 13t13 5h73l93 93q8 8 19 4z m233-385q17 0 28 14 72 88 72 202t-72 203q-9 11-24 13t-27-8q-11-9-13-24t8-26q56-69 56-158t-56-157q-9-12-8-27t13-23q10-9 23-9z m-118 83q15 0 26 11 49 52 49 122t-49 122q-10 11-25 12t-26-10-11-25 10-26q29-32 29-73t-29-73q-10-11-10-26t11-25q12-9 25-9z" horiz-adv-x="857.1" />

<glyph glyph-name="file-vid" unicode="&#xf1c8;" d="M819 638q16-16 27-42t11-50v-642q0-23-15-38t-38-16h-750q-23 0-38 16t-16 38v892q0 23 16 38t38 16h500q22 0 49-11t42-27z m-248 136v-210h210q-5 17-12 23l-175 175q-6 7-23 12z m215-853v572h-232q-23 0-38 16t-16 37v233h-429v-858h715z m-357 500q29 0 50-21t21-50v-214q0-29-21-50t-50-22h-215q-29 0-50 22t-21 50v214q0 29 21 50t50 21h215z m274-1q11-4 11-16v-322q0-12-11-17-4-1-7-1-7 0-12 5l-148 149v50l148 148q5 5 12 5 3 0 7-1z" horiz-adv-x="857.1" />

<glyph glyph-name="file-cod" unicode="&#xf1c9;" d="M819 638q16-16 27-42t11-50v-642q0-23-15-38t-38-16h-750q-23 0-38 16t-16 38v892q0 23 16 38t38 16h500q22 0 49-11t42-27z m-248 136v-210h210q-5 17-12 23l-175 175q-6 7-23 12z m215-853v572h-232q-23 0-38 16t-16 37v233h-429v-858h715z m-518 500q4 7 12 7t13-3l28-21q7-5 7-12t-3-13l-102-136 102-136q4-6 3-13t-7-12l-28-21q-6-4-13-4t-12 7l-126 168q-8 11 0 22z m447-167q8-11 0-22l-126-168q-4-6-11-7t-14 4l-28 21q-6 5-7 12t3 13l102 136-102 136q-4 6-3 13t7 12l28 21q6 4 14 3t11-7z m-346-258q-7 1-11 8t-3 13l77 464q1 7 7 11t14 3l35-5q7-2 11-8t3-13l-77-464q-1-7-7-11t-13-3z" horiz-adv-x="857.1" />

<glyph glyph-name="help" unicode="&#xf1cd;" d="M500 850q102 0 194-40t160-106 106-160 40-194-40-194-106-160-160-106-194-40-194 40-160 106-106 160-40 194 40 194 106 160 160 106 194 40z m0-71q-106 0-201-51l108-108q46 16 93 16t93-16l109 108q-96 51-202 51z m-378-630l108 108q-16 46-16 93t16 93l-108 109q-51-96-51-202t51-201z m378-228q106 0 202 51l-109 108q-46-16-93-16t-93 16l-108-108q95-51 201-51z m0 215q89 0 152 63t62 151-62 152-152 62-151-62-63-152 63-151 151-63z m270 121l108-108q51 95 51 201t-51 202l-108-109q16-46 16-93t-16-93z" horiz-adv-x="1000" />

<glyph glyph-name="news" unicode="&#xf1ea;" d="M571 564h-214v-214h214v214z m72-357v-71h-357v71h357z m0 429v-357h-357v357h357z m357-429v-71h-286v71h286z m0 143v-71h-286v71h286z m0 143v-72h-286v72h286z m0 143v-72h-286v72h286z m-857-536v536h-72v-536q0-14 11-25t25-11 25 11 11 25z m928 0v607h-857v-607q0-18-6-36h828q14 0 25 11t10 25z m72 679v-679q0-45-31-76t-76-31h-929q-44 0-76 31t-31 76v607h143v72h1000z" horiz-adv-x="1142.9" />

<glyph glyph-name="sys-cleanup" unicode="&#xf1f8;" d="M286 82v393q0 8-5 13t-13 5h-36q-8 0-13-5t-5-13v-393q0-8 5-13t13-5h36q8 0 13 5t5 13z m143 0v393q0 8-5 13t-13 5h-36q-8 0-13-5t-5-13v-393q0-8 5-13t13-5h36q8 0 13 5t5 13z m142 0v393q0 8-5 13t-12 5h-36q-8 0-13-5t-5-13v-393q0-8 5-13t13-5h36q7 0 12 5t5 13z m-303 554h250l-27 65q-4 5-9 6h-177q-6-1-10-6z m518-18v-36q0-8-5-13t-13-5h-54v-529q0-46-26-80t-63-34h-464q-37 0-63 33t-27 79v531h-53q-8 0-13 5t-5 13v36q0 8 5 13t13 5h172l39 93q9 21 31 35t44 15h178q23 0 44-15t30-35l39-93h173q8 0 13-5t5-13z" horiz-adv-x="785.7" />

<glyph glyph-name="off" unicode="&#xf204;" d="M643 350q0 58-23 111t-61 91-91 61-111 23-111-23-91-61-61-91-23-111 23-111 61-91 91-61 111-23 111 23 91 61 61 91 23 111z m428 0q0 58-22 111t-61 91-91 61-111 23h-216q67-50 106-125t38-161-38-161-106-125h216q58 0 111 23t91 61 61 91 22 111z m72 0q0-72-29-139t-76-113-114-77-138-28h-429q-72 0-138 28t-114 77-76 113-29 139 29 139 76 114 114 76 138 28h429q72 0 138-28t114-76 76-114 29-139z" horiz-adv-x="1142.9" />

<glyph glyph-name="on" unicode="&#xf205;" d="M0 350q0 73 29 139t76 114 114 76 138 28h429q72 0 138-28t114-76 76-114 29-139-29-139-76-113-114-77-138-28h-429q-72 0-138 28t-114 77-76 113-29 139z m786-286q58 0 111 23t91 61 61 91 22 111-22 111-61 91-91 61-111 23-111-23-91-61-61-91-23-111 23-111 61-91 91-61 111-23z" horiz-adv-x="1142.9" />
</font>
</defs>
</svg>

BIN
assets/font/nyanfont.ttf View File


BIN
assets/font/nyanfont.woff View File


BIN
assets/font/nyanfont.woff2 View File


BIN
assets/i/bckg/bg-site.png View File

Before After
Width: 4  |  Height: 4  |  Size: 109 B

BIN
assets/i/icon/main.choice.png View File

Before After
Width: 500  |  Height: 270  |  Size: 7.1 KiB

BIN
assets/i/icon/main.exchange.png View File

Before After
Width: 494  |  Height: 460  |  Size: 6.4 KiB

BIN
assets/i/icon/main.fly.png View File

Before After
Width: 441  |  Height: 190  |  Size: 24 KiB

BIN
assets/i/icon/main.server.png View File

Before After
Width: 376  |  Height: 384  |  Size: 641 B

BIN
assets/i/icon/main.verified.png View File

Before After
Width: 300  |  Height: 300  |  Size: 3.9 KiB

+ 165
- 0
assets/js/hk.js View File

@@ -0,0 +1,165 @@
'use strict';
/* prototype shortcuts */
HTMLElement.prototype.remove=function(){ this.parentElement.removeChild(this); }
HTMLElement.prototype.show=function(){ this.style.display=''; }
HTMLElement.prototype.hide=function(){ this.style.display='none'; }
HTMLElement.prototype.reveal=function(){ this.style.visibility='visible'; }
HTMLElement.prototype.cloak=function(){ this.style.visibility='hidden'; }
HTMLElement.prototype.toggle=function(){ this.style.display=(this.style.display=='none')?'':'none'; }
HTMLElement.prototype.lock=function(){ if(this){ this.setAttribute("locked",true); this.removeAttribute("unlocked"); } }
HTMLElement.prototype.unlock=function(){ if(this && this.hasAttribute("locked")) this.removeAttribute("locked"); }
HTMLElement.prototype.offset=function(){ return this.getBoundingClientRect ? _.offset.rect(this) : _.offset.sum(this); }
/* _ framework */
var _={
w:null,h:null,
arg:null,
lcl:'lcl',
cks:'cks',
mob:false,
opt:{},
usr:{
tmp:{},
cmd:{}
},
Zeroscript:null
};
_.clear=function(e){ if(e) while(e.firstChild) e.removeChild(e.firstChild); }
_.remove=function(e){ e.parentNode.removeChild(e); }
_.id=function(id){ return document.getElementById(id); }
_.class=function(cl){ return document.getElementsByClassName(cl); }
_.selector=function(s){ return document.querySelectorAll(s); }
_.create=function(e,id){ var T=document.createElement(e); if(typeof id==='string') T.id=id; return T; }
_.define=function(id,scope){ return _.id(id)||((_.id(scope)||document.body).appendChild(_.create('div',id)));}
_.each=function(nodelist,callback){ Array.prototype.forEach.call(nodelist,callback); }
_.apply=function(selector,callback){ _.each(_.selector(selector),callback); }
_.listen=function(selector,type,callback){ _.apply(selector,function(element){ element.addEventListener(type,callback,false); }); }
_.once=function(target,type,listener){
target.addEventListener(type,function fn(event){
target.removeEventListener(type,fn);
listener(event);
});
}
_.exists=function(element){ return (null != element) && (undefined != element); };
_.ready=function(callback){ document.addEventListener('DOMContentLoaded', callback, false); };
_.string={
empty:function(str){ return (str == "") || (str == null) || (str == undefined); },
extension:function(str){ if(_.string.empty(str)) return str; return str.substr((~-str.lastIndexOf(".") >>> 0) + 2); },
digits:function(str){ if(_.string.empty(str)) return str; if(i=str.match(/\d+/)) return i[0]; return false; },
basename:function(str){ if(_.string.empty(str)) return str; if(/\//.test(str)) return str.split('/').reverse()[0]; return str.split('\\').reverse()[0]; },
pseudo:function(str){ if(_.string.empty(str)) return str; return '::'+_.string.btoa(_.string.basename(str)); },
btoa:function(str){ return btoa(encodeURIComponent(str).replace(/%([0-9A-F]{2})/g, function(match, p1) { return String.fromCharCode(parseInt(p1, 16)); })); },
atob:function(str){ return decodeURIComponent(Array.prototype.map.call(atob(str), function(c) { return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2); }).join('')); }
};
_.offset={
sum:function(elem){
var top=0,left=0;
if(elem){ top=top+parseInt(elem.offsetTop); left=left+parseInt(elem.offsetLeft); elem=elem.offsetParent; }
return {top:top,left:left};
},
rect:function(elem){
var box=elem.getBoundingClientRect(),
body=document.body,
docElem=document.documentElement,
scrollTop=window.pageYOffset||docElem.scrollTop||body.scrollTop,
scrollLeft=window.pageXOffset||docElem.scrollLeft||body.scrollLeft,
clientTop=docElem.clientTop||body.clientTop||0,
clientLeft=docElem.clientLeft||body.clientLeft||0;
return {top:Math.round(box.top+scrollTop-clientTop),left:Math.round(box.left+scrollLeft-clientLeft)};
}
};
_.cookie={
get:function(name){
var c,ca=document.cookie.split(';');
name+='=';
for(var i=0;i<ca.length;i++){
c=ca[i];
while(c.charAt(0)==' ') c=c.substring(1);
if(c.indexOf(name)==0) return decodeURIComponent(c.substring(name.length,c.length));
}
return '';
},
set:function(name, value, expires, path, domain, secure){
var d=new Date(); d.setTime(d.getTime()+(expires*24*60*60*1000));
document.cookie=
name+"="+escape(value)+
((expires)?"; expires="+d.toUTCString():"")+
((path)?"; path="+path:"")+
((domain)?"; domain="+domain:"")+
((secure)?"; secure":"");
},
del:function(name){ _.cookie.set(name,"",{expires:-1},'/'); }
};
_.local={
interface:function(name){
this.name=name;
this.data=null;
this.init=function(){
if(this.load){ return; }
else this.save();
};
this.save=function(){
localStorage.setItem(this.name,JSON.stringify(this.data));
};
this.load=function(){
var t=localStorage.getItem(name);
if(undefined!=t){
t=JSON.parse(t);
for(var o in t){
if(this.data.hasOwnProperty(o)){
this.data[o]=t[o];
}
}
return true;
}
return false;
};
this.extend={};
}
};
_.ajax={
success:function(data){ console.info(data); },
error:function(xhr,status){ console.error('HTTP '+xhr+' '+status); },
create:function(){
var XMLHttpFactories=[
function(){return new XMLHttpRequest();},
function(){return new ActiveXObject("Msxml2.XMLHTTP");},
function(){return new ActiveXObject("Msxml3.XMLHTTP");},
function(){return new ActiveXObject("Microsoft.XMLHTTP");}
];
var xmlhttp=false;
for(var i=0;i<XMLHttpFactories.length;i++){ try { xmlhttp=XMLHttpFactories[i](); } catch (e) { continue; } break; }
return xmlhttp;
},
perform:function(url,method,data,success,error,headers){
if(!data && (method=='POST')) return false;
var req=_.ajax.create();
if(!req) return false;
if(typeof success!='function') success=_.ajax.success;
if(typeof error!='function') error=_.ajax.error;
req.open(method,url,true);
if(headers!==undefined) for(var i in headers) req.setRequestHeader(i,headers[i]);
req.send(data);
req.onreadystatechange=function(){
if(req.readyState==4){
if(req.status==200 || req.status==304) success(req.responseText);
else error(req.status,req.statusText);
}
};
return req.responseText;
}
};

document.addEventListener('DOMContentLoaded',function(){
_.w=document.documentElement.clientWidth||document.body.clientWidth;
_.h=document.documentElement.clientHeight||document.body.clientHeight;
_.mob=/mobile/i.test(navigator.userAgent);
var tmp=_.cookie.get('server_settings');
if(tmp.length > 0){ // load server environment settings
_.opt.server=JSON.parse(atob(tmp));
}
if(!_.string.empty(_.opt.server.argument)){ // load client operational settings
_.opt.client=JSON.parse(atob(_.cookie.get('client_settings-'+_.opt.server.argument)));
}
_.apply("[locked]", function(e){e.unlock()});
_.apply("[unlocked]", function(e){e.lock()});
},false);

BIN
baka.gpg View File


+ 15
- 0
easter.htm View File

@@ -0,0 +1,15 @@
<p><s>We will be back soon. Expect us to be online in may 2019.</s> Wait, oh shi~</p>
<p><a title="We don't stop, we rock despite" href="https://www.youtube.com/watch?v=LeVJYu_woXU" target="_blank" rel="nofollow">What did you expect?</a></p>
<p></p>
<details>
<summary>See what we have brought upon this cursed land</summary>
<p>It is an application written on C#/ASP.Net Core 3 with EF Core for Postgre, ASP identity and Razor pages.</p>
<p>Good news: it is working locally.</p>
<p>Bad news: no time to debug (here we go again).</p>
<p>It is so much better than PHP version.</p>
<p>It is fast & stable.</p>
<p>I love it (that counts).</p>
<p>It will work under Loonix.</p>
<p>There's 5% of work left to complete. 95% were complete in 2 weeks. 5% may take years.</p>
<p style="color:white">WE HIRE YOU TODAY! If you were able to decrypt <a href="/baka.gpg" style="color:white;text-decoration:none">this</a>.</p>
</details>

+ 16
- 0
index.php View File

@@ -0,0 +1,16 @@
<?php

ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);

setlocale(LC_TIME, "en_US.utf8");
date_default_timezone_set('Europe/Moscow');

session_start();

if(isset($_SESSION['+'])){
require 'tape/init.php';
} else {
include './easter.htm';
}

+ 123
- 0
system.log View File

@@ -0,0 +1,123 @@
[Sunday 27th of May 2018 | 04:38:39] Unable to locate asset: assets/css/null.min
[Sunday 27th of May 2018 | 04:38:39] Unable to locate asset: assets/css/ui.min
[Sunday 27th of May 2018 | 04:38:39] Unable to locate asset: assets/css/theme/blackhop.min
[Sunday 27th of May 2018 | 04:40:34] Unable to locate asset: assets/css/null.min
[Sunday 27th of May 2018 | 04:40:34] Unable to locate asset: assets/css/ui.min
[Sunday 27th of May 2018 | 04:40:34] Unable to locate asset: assets/css/theme/blackhop.min
[Sunday 27th of May 2018 | 04:41:28] Unable to locate asset: assets/css/null.min
[Sunday 27th of May 2018 | 04:41:28] Unable to locate asset: assets/css/ui.min
[Sunday 27th of May 2018 | 04:41:28] Unable to locate asset: assets/css/theme/blackhop.min
[Sunday 27th of May 2018 | 04:42:17] Unable to locate asset: assets/css/null.min
[Sunday 27th of May 2018 | 04:42:17] Unable to locate asset: assets/css/ui.min
[Sunday 27th of May 2018 | 04:42:17] Unable to locate asset: assets/css/theme/blackhop.min
[Sunday 27th of May 2018 | 04:44:21] Unable to locate asset: assets/css/null.min
[Sunday 27th of May 2018 | 04:44:21] Unable to locate asset: assets/css/ui.min
[Sunday 27th of May 2018 | 04:44:21] Unable to locate asset: assets/css/theme/blackhop.min
[Sunday 27th of May 2018 | 04:44:22] Unable to locate asset: assets/css/null.min
[Sunday 27th of May 2018 | 04:44:22] Unable to locate asset: assets/css/ui.min
[Sunday 27th of May 2018 | 04:44:22] Unable to locate asset: assets/css/theme/blackhop.min
[Sunday 27th of May 2018 | 04:46:37] Unable to locate asset: assets/css/null.min
[Sunday 27th of May 2018 | 04:46:37] Unable to locate asset: assets/css/ui.min
[Sunday 27th of May 2018 | 04:46:37] Unable to locate asset: assets/css/theme/blackhop.min
[Sunday 27th of May 2018 | 04:46:39] Unable to locate asset: assets/css/null.min
[Sunday 27th of May 2018 | 04:46:39] Unable to locate asset: assets/css/ui.min
[Sunday 27th of May 2018 | 04:46:39] Unable to locate asset: assets/css/theme/blackhop.min
[Sunday 27th of May 2018 | 04:46:40] Unable to locate asset: assets/css/null.min
[Sunday 27th of May 2018 | 04:46:40] Unable to locate asset: assets/css/ui.min
[Sunday 27th of May 2018 | 04:46:40] Unable to locate asset: assets/css/theme/blackhop.min
[Sunday 27th of May 2018 | 04:47:04] Unable to locate asset: assets/css/null.min
[Sunday 27th of May 2018 | 04:47:04] Unable to locate asset: assets/css/ui.min
[Sunday 27th of May 2018 | 04:47:04] Unable to locate asset: assets/css/theme/blackhop.min
[Sunday 27th of May 2018 | 04:47:06] Unable to locate asset: assets/css/null.min
[Sunday 27th of May 2018 | 04:47:06] Unable to locate asset: assets/css/ui.min
[Sunday 27th of May 2018 | 04:47:06] Unable to locate asset: assets/css/theme/blackhop.min
[Sunday 27th of May 2018 | 04:48:46] Unable to locate asset: assets/css/null.min
[Sunday 27th of May 2018 | 04:48:46] Unable to locate asset: assets/css/ui.min
[Sunday 27th of May 2018 | 04:48:46] Unable to locate asset: assets/css/theme/blackhop.min
[Sunday 27th of May 2018 | 04:49:35] Unable to locate asset: assets/css/null.min
[Sunday 27th of May 2018 | 04:49:35] Unable to locate asset: assets/css/ui.min
[Sunday 27th of May 2018 | 04:49:35] Unable to locate asset: assets/css/theme/blackhop.min
[Sunday 27th of May 2018 | 04:49:45] Unable to locate asset: assets/css/null.min
[Sunday 27th of May 2018 | 04:49:45] Unable to locate asset: assets/css/ui.min
[Sunday 27th of May 2018 | 04:49:45] Unable to locate asset: assets/css/theme/blackhop.min
[Sunday 27th of May 2018 | 04:50:08] Unable to locate asset: assets/css/null.min
[Sunday 27th of May 2018 | 04:50:08] Unable to locate asset: assets/css/ui.min
[Sunday 27th of May 2018 | 04:50:08] Unable to locate asset: assets/css/theme/blackhop.min
[Sunday 27th of May 2018 | 04:52:10] Unable to locate asset: assets/css/null.min
[Sunday 27th of May 2018 | 04:52:10] Unable to locate asset: assets/css/ui.min
[Sunday 27th of May 2018 | 04:52:10] Unable to locate asset: assets/css/theme/blackhop.min
[Sunday 27th of May 2018 | 04:55:19] Unable to locate asset: assets/css/null.min
[Sunday 27th of May 2018 | 04:55:19] Unable to locate asset: assets/css/ui.min
[Sunday 27th of May 2018 | 04:55:19] Unable to locate asset: assets/css/theme/blackhop.min
[Sunday 27th of May 2018 | 04:56:12] Unable to locate asset: assets/css/null.min
[Sunday 27th of May 2018 | 04:56:12] Unable to locate asset: assets/css/ui.min
[Sunday 27th of May 2018 | 04:56:12] Unable to locate asset: assets/css/theme/blackhop.min
[Sunday 27th of May 2018 | 04:56:48] Unable to locate asset: assets/css/null.min
[Sunday 27th of May 2018 | 04:56:48] Unable to locate asset: assets/css/ui.min
[Sunday 27th of May 2018 | 04:56:48] Unable to locate asset: assets/css/theme/blackhop.min
[Sunday 27th of May 2018 | 04:57:17] Unable to locate asset: assets/css/null.min
[Sunday 27th of May 2018 | 04:57:17] Unable to locate asset: assets/css/ui.min
[Sunday 27th of May 2018 | 04:57:17] Unable to locate asset: assets/css/theme/blackhop.min
[Sunday 27th of May 2018 | 05:00:26] Unable to locate asset: assets/css/null.min
[Sunday 27th of May 2018 | 05:00:26] Unable to locate asset: assets/css/ui.min
[Sunday 27th of May 2018 | 05:00:26] Unable to locate asset: assets/css/theme/blackhop.min
[Sunday 27th of May 2018 | 05:00:55] Unable to locate asset: assets/css/null.min
[Sunday 27th of May 2018 | 05:00:55] Unable to locate asset: assets/css/ui.min
[Sunday 27th of May 2018 | 05:00:55] Unable to locate asset: assets/css/theme/blackhop.min
[Sunday 27th of May 2018 | 05:01:31] Unable to locate asset: assets/css/null.min
[Sunday 27th of May 2018 | 05:01:31] Unable to locate asset: assets/css/ui.min
[Sunday 27th of May 2018 | 05:01:31] Unable to locate asset: assets/css/theme/blackhop.min
[Sunday 27th of May 2018 | 05:02:14] Unable to locate asset: assets/css/null.min
[Sunday 27th of May 2018 | 05:02:14] Unable to locate asset: assets/css/ui.min
[Sunday 27th of May 2018 | 05:02:14] Unable to locate asset: assets/css/theme/blackhop.min
[Sunday 27th of May 2018 | 05:03:01] Unable to locate asset: assets/css/null.min
[Sunday 27th of May 2018 | 05:03:01] Unable to locate asset: assets/css/ui.min
[Sunday 27th of May 2018 | 05:03:01] Unable to locate asset: assets/css/theme/blackhop.min
[Sunday 27th of May 2018 | 05:03:03] Unable to locate asset: assets/css/null.min
[Sunday 27th of May 2018 | 05:03:03] Unable to locate asset: assets/css/ui.min
[Sunday 27th of May 2018 | 05:03:03] Unable to locate asset: assets/css/theme/blackhop.min
[Sunday 27th of May 2018 | 05:03:23] Unable to locate asset: assets/css/null.min
[Sunday 27th of May 2018 | 05:03:23] Unable to locate asset: assets/css/ui.min
[Sunday 27th of May 2018 | 05:03:23] Unable to locate asset: assets/css/theme/blackhop.min
[Sunday 27th of May 2018 | 05:04:34] Unable to locate asset: assets/css/null.min
[Sunday 27th of May 2018 | 05:04:34] Unable to locate asset: assets/css/ui.min
[Sunday 27th of May 2018 | 05:04:34] Unable to locate asset: assets/css/theme/blackhop.min
[Sunday 27th of May 2018 | 05:04:47] Unable to locate asset: assets/css/null.min
[Sunday 27th of May 2018 | 05:04:47] Unable to locate asset: assets/css/ui.min
[Sunday 27th of May 2018 | 05:04:47] Unable to locate asset: assets/css/theme/blackhop.min
[Sunday 27th of May 2018 | 05:05:00] Unable to locate asset: assets/css/null.min
[Sunday 27th of May 2018 | 05:05:00] Unable to locate asset: assets/css/ui.min
[Sunday 27th of May 2018 | 05:05:00] Unable to locate asset: assets/css/theme/blackhop.min
[Sunday 27th of May 2018 | 05:05:12] Unable to locate asset: assets/css/null.min
[Sunday 27th of May 2018 | 05:05:12] Unable to locate asset: assets/css/ui.min
[Sunday 27th of May 2018 | 05:05:12] Unable to locate asset: assets/css/theme/blackhop.min
[Sunday 27th of May 2018 | 05:06:47] Unable to locate asset: assets/css/null.min
[Sunday 27th of May 2018 | 05:06:47] Unable to locate asset: assets/css/ui.min
[Sunday 27th of May 2018 | 05:06:47] Unable to locate asset: assets/css/theme/blackhop.min
[Sunday 27th of May 2018 | 05:06:56] Unable to locate asset: assets/css/null.min
[Sunday 27th of May 2018 | 05:06:56] Unable to locate asset: assets/css/ui.min
[Sunday 27th of May 2018 | 05:06:56] Unable to locate asset: assets/css/theme/blackhop.min
[Sunday 27th of May 2018 | 05:07:09] Unable to locate asset: assets/css/null.min
[Sunday 27th of May 2018 | 05:07:09] Unable to locate asset: assets/css/ui.min
[Sunday 27th of May 2018 | 05:07:09] Unable to locate asset: assets/css/theme/blackhop.min
[Sunday 27th of May 2018 | 05:07:10] Unable to locate asset: assets/css/null.min
[Sunday 27th of May 2018 | 05:07:10] Unable to locate asset: assets/css/ui.min
[Sunday 27th of May 2018 | 05:07:10] Unable to locate asset: assets/css/theme/blackhop.min
[Sunday 27th of May 2018 | 05:07:11] Unable to locate asset: assets/css/null.min
[Sunday 27th of May 2018 | 05:07:11] Unable to locate asset: assets/css/ui.min
[Sunday 27th of May 2018 | 05:07:11] Unable to locate asset: assets/css/theme/blackhop.min
[Sunday 27th of May 2018 | 05:07:30] Unable to locate asset: assets/css/null.min
[Sunday 27th of May 2018 | 05:07:30] Unable to locate asset: assets/css/ui.min
[Sunday 27th of May 2018 | 05:07:30] Unable to locate asset: assets/css/theme/blackhop.min
[Sunday 27th of May 2018 | 05:07:39] Unable to locate asset: assets/css/null.min
[Sunday 27th of May 2018 | 05:07:39] Unable to locate asset: assets/css/ui.min
[Sunday 27th of May 2018 | 05:07:39] Unable to locate asset: assets/css/theme/blackhop.min
[Sunday 27th of May 2018 | 05:07:47] Unable to locate asset: assets/css/null.min
[Sunday 27th of May 2018 | 05:07:47] Unable to locate asset: assets/css/ui.min
[Sunday 27th of May 2018 | 05:07:47] Unable to locate asset: assets/css/theme/blackhop.min
[Sunday 27th of May 2018 | 05:09:27] Unable to locate asset: assets/css/null.min
[Sunday 27th of May 2018 | 05:09:27] Unable to locate asset: assets/css/ui.min
[Sunday 27th of May 2018 | 05:09:27] Unable to locate asset: assets/css/theme/blackhop.min
[Sunday 27th of May 2018 | 05:09:28] Unable to locate asset: assets/css/null.min
[Sunday 27th of May 2018 | 05:09:28] Unable to locate asset: assets/css/ui.min
[Sunday 27th of May 2018 | 05:09:28] Unable to locate asset: assets/css/theme/blackhop.min

+ 25
- 0
tape/base/base.controller.php View File

@@ -0,0 +1,25 @@
<?php

abstract class Controller {

public $data;

protected $dao;
protected $view;
protected $model;

function init__model($class){
$model = "Model\\{$class}Model";
$this->model = new $model();
}

function init__dao($class){
$dao = "DAO\\{$class}DAO";
$this->dao = new $dao();
}

function init__view($class, $template, $contents){
$this->view = new View($class, $template, $contents);
}

}

+ 45
- 0
tape/base/base.core.php View File

@@ -0,0 +1,45 @@
<?php # Core

final class Core {

/**
* Configuration
*/
static function config(){
static::init_cookies();
static::init_session();
X::$conf = new Server();
X::$user = new Controller\UserController();
X::$mobi = isset($_SERVER["MOBILE"]);
}

static function navigate(){
X::$path = array_slice(explode('/', mb_strtolower(urldecode($_SERVER['REQUEST_URI']), 'UTF-8')), 1);
if(empty($_POST)){
X::$router = new Router('app.routes');
X::$router->walk(X::$router->map, X::$path);
} else {
X::$handle = new Handler('app.events');
X::$handle->react();
}
}

/**
* Aux cookie initialization
*/
private static function init_cookies(){
ini_set("suhosin.session.cryptdocroot", "Off");
ini_set("suhosin.cookie.cryptdocroot", "Off");
ini_set('session.cookie_domain', '.'.HOST);
session_set_cookie_params(0, '/', HOST);
}

/**
* Aux session initialization
*/
private static function init_session(){
if(session_status() !== PHP_SESSION_ACTIVE) session_start();
if(!isset($_SESSION[IO])) $_SESSION[IO] = false;
if(!isset($_SESSION[NT])) $_SESSION[NT] = '';
}
}

+ 27
- 0
tape/base/base.gear.php View File

@@ -0,0 +1,27 @@
<?php
abstract class Gear {
public $map; # routing schema
protected $default = "fail!444";
protected $fallback = "fail!666";
protected $key; # path node
protected $val; # map node
function define__default($node){
if(is_array($node)){
if(isset($node['_'])){
$this->default = $node['_'];
}
}
}
function define__fallback($node){
if(is_array($node)){
if(isset($node['@'])){
$this->fallback = $node['@'];
}
}
}
}

+ 37
- 0
tape/base/base.handler.php View File

@@ -0,0 +1,37 @@
<?php
final class Handler extends Gear {
/**
* Action handle constructor.
* @throws Note
*/
function __construct($resource){
$this->map = decode($resource);
if(empty($this->map)){
throw new Note(E::ctrl__schema_invalid());
}
}
/**
* Reaction boostrapper.
* Searches for current route node according to the address;
* validates the user persistence through callback;
* may call the function or show a page according to the schema.
* @throws Note
*/
function react(){
list($this->key, $this->val, $this->validate) = $this->walkthrough(X::$path);
if(is_string($this->val)){
$this->pass($this->val);
} elseif(is_array($this->val)){
if(!isset($this->val["page"], $this->val["page"][0], $this->val["page"][1])){
fail(500);
}
$this->view($this->val["page"][0], $this->val["page"][1]);
} else {
throw new Note(E::ctrl__key_undef());
}
}
}

+ 15
- 0
tape/base/base.model.php View File

@@ -0,0 +1,15 @@
<?php

abstract class Model
{
function nf(){
$qts = decode('qts');
$key = mt_rand(0, count($qts) - 1);
$she = key($qts[$key]);
$say = $qts[$key];
return "<h5>Ничего не найдено, семпай!</h5>"
."<p><abbr title='{$she}'>{$say}</abbr>"
." очень сожалеет, что не смогла помочь. "
."Пожалуйста, попробуйте уточнить или поправить свой запрос.</p>";
}
}

+ 175
- 0
tape/base/base.router.php View File

@@ -0,0 +1,175 @@
<?php

final class Router extends Gear {

private $override = false;
private $way = [];

public $controller = null;
public $method = [];
public $arguments = [];

/**
* Router constructor.
* Qualifies the routing schema automatically.
* @throws Note
*/
function __construct($resource){
$this->map = decode($resource);
if(empty($this->map)){
throw new Note(E::ctrl__schema_invalid());
}
}

function call($c, $m, $a){
#call_user_func_array(array(__NAMESPACE__ .'\Foo', 'test'), array('Philip'));
X::$domain = &$this->controller;
if(empty($a)){
$c->$m();
} else {
$c->$m($a);
}
}

/**
* Recursive route walker.
* Seeks the address parts by overlaying the routing schema tree.
* Will skip address parts if they're not in current route node leaf set.
*/
function walk($node, $path){
$this->define__default($node);
$this->define__fallback($node);
if(count($path) > 0){
$segment = $path[0];
if(isset($node[$segment])){
$this->way[] = $segment;
if(is_array($node[$segment])){
$this->override = true;
if(count($path) > 1){