├── LICENSE
├── README.md
├── app
├── __init__.py
├── errors.py
├── routes.py
├── static
│ ├── css
│ │ ├── balloon.css
│ │ └── responsive_table.css
│ ├── faceglitch.gif
│ ├── favicon.jpg
│ ├── load.gif
│ ├── logo.png
│ └── semantic
│ │ ├── .versions
│ │ ├── LICENSE
│ │ ├── README.md
│ │ ├── fonts
│ │ ├── Lato-Black.ttf
│ │ ├── Lato-BlackItalic.ttf
│ │ ├── Lato-Bold.ttf
│ │ ├── Lato-BoldItalic.ttf
│ │ ├── Lato-Hairline.ttf
│ │ ├── Lato-HairlineItalic.ttf
│ │ ├── Lato-Heavy.ttf
│ │ ├── Lato-HeavyItalic.ttf
│ │ ├── Lato-Italic.ttf
│ │ ├── Lato-Light.ttf
│ │ ├── Lato-LightItalic.ttf
│ │ ├── Lato-Medium.ttf
│ │ ├── Lato-MediumItalic.ttf
│ │ ├── Lato-Regular.ttf
│ │ ├── Lato-Semibold.ttf
│ │ ├── Lato-SemiboldItalic.ttf
│ │ ├── Lato-Thin.ttf
│ │ ├── Lato-ThinItalic.ttf
│ │ └── OFL.txt
│ │ ├── package.json
│ │ ├── semantic.css
│ │ └── themes
│ │ └── default
│ │ └── assets
│ │ ├── fonts
│ │ ├── brand-icons.eot
│ │ ├── brand-icons.svg
│ │ ├── brand-icons.ttf
│ │ ├── brand-icons.woff
│ │ ├── brand-icons.woff2
│ │ ├── icons.eot
│ │ ├── icons.otf
│ │ ├── icons.svg
│ │ ├── icons.ttf
│ │ ├── icons.woff
│ │ ├── icons.woff2
│ │ ├── outline-icons.eot
│ │ ├── outline-icons.svg
│ │ ├── outline-icons.ttf
│ │ ├── outline-icons.woff
│ │ └── outline-icons.woff2
│ │ └── images
│ │ └── flags.png
└── templates
│ ├── base.html
│ └── index.html
├── bin
└── tmp_img
│ └── face.jpeg
├── cloakme.py
├── config.py
├── image.png
├── requirements.txt
└── setup.sh
/LICENSE:
--------------------------------------------------------------------------------
1 | Copyright (c) 2018 The Python Packaging Authority
2 |
3 | Permission is hereby granted, free of charge, to any person obtaining a copy
4 | of this software and associated documentation files (the "Software"), to deal
5 | in the Software without restriction, including without limitation the rights
6 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7 | copies of the Software, and to permit persons to whom the Software is
8 | furnished to do so, subject to the following conditions:
9 |
10 | The above copyright notice and this permission notice shall be included in all
11 | copies or substantial portions of the Software.
12 |
13 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
19 | SOFTWARE.
20 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # CloakMe
2 |
3 |
Cloak your face from Big Brother
4 |
5 |
6 | CloakMe is a web interface implementation of the [Fawkes](https://github.com/Shawn-Shan/fawkes) algorithm developed by researchers at SANDLab, University of Chicago. You can check out more information on their [website](http://sandlab.cs.uchicago.edu/fawkes/#code).
7 |
8 |
9 |
Installation
10 |
11 | #### Pre-installation
12 | You will need to install `python3.7` (version must be <3.8), `python3 pip` and `git`.
13 |
14 | #### Quick Installation (Linux Only)
15 | 1. Clone this repository:
16 |
17 | `git clone https://github.com/pluja/CloakMe`
18 |
19 | 2. Change permissions and run setup file:
20 |
21 | `chmod a+x setup.sh`
22 |
23 | `./setup.sh`
24 |
25 | #### Manual Installation
26 | 1. Clone this repository:
27 |
28 | `git clone https://github.com/pluja/CloakMe`
29 |
30 | 2. Move into the directory:
31 |
32 | `cd CloakMe`
33 |
34 | 3. Create a virtual environment:
35 |
36 | `python3 -m venv venv`
37 |
38 | 4. Activate it:
39 |
40 | `source venv/bin/activate`
41 |
42 | 5. Install requirements:
43 |
44 | `python3 -m pip install -r requirements.txt`
45 |
46 | 6. Run the flask server:
47 |
48 | `flask run --host 0.0.0.0`
49 |
50 | 7. Open the url and enjoy: [URL](http://127.0.0.0:5000)
51 |
--------------------------------------------------------------------------------
/app/__init__.py:
--------------------------------------------------------------------------------
1 | from flask import Flask
2 |
3 | app = Flask(__name__)
4 | from app import routes
--------------------------------------------------------------------------------
/app/errors.py:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pluja/CloakMe/fd55a994a6d7e096f72700832122920f38e13941/app/errors.py
--------------------------------------------------------------------------------
/app/routes.py:
--------------------------------------------------------------------------------
1 | from flask import render_template, flash, redirect, url_for, request, send_from_directory
2 | from werkzeug.utils import secure_filename
3 | from app import app
4 | import subprocess
5 | import uuid
6 | import os
7 |
8 | @app.route('/')
9 | @app.route('/index', methods=['GET', 'POST'])
10 | def index():
11 | if request.method == 'POST':
12 | # check if the post request has the file part
13 | if 'file' not in request.files:
14 | flash('No file part')
15 | return redirect(request.referrer)
16 | file = request.files['file']
17 | # if user does not select file, browser also
18 | # submit an empty part without filename
19 | if file.filename == '':
20 | flash('No selected file')
21 | return redirect(request.referrer)
22 | if file:
23 | folder = str(uuid.uuid1())
24 | os.mkdir('app/'+folder)
25 | fileName = cloak(file, folder)
26 | return send_from_directory(folder, fileName, as_attachment=True)
27 | else:
28 | return render_template('index.html')
29 |
30 | def cloak(file, folder):
31 | file.save(os.path.join('app/'+folder, file.filename))
32 | args = ("bin/fawkes", "--directory", 'app/'+folder)
33 | #Or just:
34 | #args = "bin/bar -c somefile.xml -d text.txt -r aString -f anotherString".split()
35 | popen = subprocess.Popen(args, stdout=subprocess.PIPE)
36 | popen.wait()
37 | output = popen.stdout.read()
38 | cloakedFile = file.filename.split(".")[0]+"_min_cloaked.png"
39 | return cloakedFile
--------------------------------------------------------------------------------
/app/static/css/balloon.css:
--------------------------------------------------------------------------------
1 | :root {
2 | --balloon-border-radius: 2px;
3 | --balloon-color: rgba(16, 16, 16, 0.95);
4 | --balloon-text-color: #fff;
5 | --balloon-font-size: 12px;
6 | --balloon-move: 4px; }
7 |
8 | button[aria-label][data-balloon-pos] {
9 | overflow: visible; }
10 |
11 | [aria-label][data-balloon-pos] {
12 | position: relative;
13 | cursor: pointer; }
14 | [aria-label][data-balloon-pos]:after {
15 | opacity: 0;
16 | pointer-events: none;
17 | transition: all 0.18s ease-out 0.18s;
18 | text-indent: 0;
19 | font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif;
20 | font-weight: normal;
21 | font-style: normal;
22 | text-shadow: none;
23 | font-size: var(--balloon-font-size);
24 | background: var(--balloon-color);
25 | border-radius: 2px;
26 | color: var(--balloon-text-color);
27 | border-radius: var(--balloon-border-radius);
28 | content: attr(aria-label);
29 | padding: .5em 1em;
30 | position: absolute;
31 | white-space: nowrap;
32 | z-index: 10; }
33 | [aria-label][data-balloon-pos]:before {
34 | width: 0;
35 | height: 0;
36 | border: 5px solid transparent;
37 | border-top-color: var(--balloon-color);
38 | opacity: 0;
39 | pointer-events: none;
40 | transition: all 0.18s ease-out 0.18s;
41 | content: "";
42 | position: absolute;
43 | z-index: 10; }
44 | [aria-label][data-balloon-pos]:hover:before, [aria-label][data-balloon-pos]:hover:after, [aria-label][data-balloon-pos][data-balloon-visible]:before, [aria-label][data-balloon-pos][data-balloon-visible]:after, [aria-label][data-balloon-pos]:not([data-balloon-nofocus]):focus:before, [aria-label][data-balloon-pos]:not([data-balloon-nofocus]):focus:after {
45 | opacity: 1;
46 | pointer-events: none; }
47 | [aria-label][data-balloon-pos].font-awesome:after {
48 | font-family: FontAwesome, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif; }
49 | [aria-label][data-balloon-pos][data-balloon-break]:after {
50 | white-space: pre; }
51 | [aria-label][data-balloon-pos][data-balloon-break][data-balloon-length]:after {
52 | white-space: pre-line;
53 | word-break: break-word; }
54 | [aria-label][data-balloon-pos][data-balloon-blunt]:before, [aria-label][data-balloon-pos][data-balloon-blunt]:after {
55 | transition: none; }
56 | [aria-label][data-balloon-pos][data-balloon-pos="up"]:after {
57 | bottom: 100%;
58 | left: 50%;
59 | margin-bottom: 10px;
60 | transform: translate(-50%, var(--balloon-move));
61 | transform-origin: top; }
62 | [aria-label][data-balloon-pos][data-balloon-pos="up"]:before {
63 | bottom: 100%;
64 | left: 50%;
65 | transform: translate(-50%, var(--balloon-move));
66 | transform-origin: top; }
67 | [aria-label][data-balloon-pos][data-balloon-pos="up"]:hover:after, [aria-label][data-balloon-pos][data-balloon-pos="up"][data-balloon-visible]:after {
68 | transform: translate(-50%, 0); }
69 | [aria-label][data-balloon-pos][data-balloon-pos="up"]:hover:before, [aria-label][data-balloon-pos][data-balloon-pos="up"][data-balloon-visible]:before {
70 | transform: translate(-50%, 0); }
71 | [aria-label][data-balloon-pos][data-balloon-pos="up-left"]:after {
72 | bottom: 100%;
73 | left: 0;
74 | margin-bottom: 10px;
75 | transform: translate(0, var(--balloon-move));
76 | transform-origin: top; }
77 | [aria-label][data-balloon-pos][data-balloon-pos="up-left"]:before {
78 | bottom: 100%;
79 | left: 5px;
80 | transform: translate(0, var(--balloon-move));
81 | transform-origin: top; }
82 | [aria-label][data-balloon-pos][data-balloon-pos="up-left"]:hover:after, [aria-label][data-balloon-pos][data-balloon-pos="up-left"][data-balloon-visible]:after {
83 | transform: translate(0, 0); }
84 | [aria-label][data-balloon-pos][data-balloon-pos="up-left"]:hover:before, [aria-label][data-balloon-pos][data-balloon-pos="up-left"][data-balloon-visible]:before {
85 | transform: translate(0, 0); }
86 | [aria-label][data-balloon-pos][data-balloon-pos="up-right"]:after {
87 | bottom: 100%;
88 | right: 0;
89 | margin-bottom: 10px;
90 | transform: translate(0, var(--balloon-move));
91 | transform-origin: top; }
92 | [aria-label][data-balloon-pos][data-balloon-pos="up-right"]:before {
93 | bottom: 100%;
94 | right: 5px;
95 | transform: translate(0, var(--balloon-move));
96 | transform-origin: top; }
97 | [aria-label][data-balloon-pos][data-balloon-pos="up-right"]:hover:after, [aria-label][data-balloon-pos][data-balloon-pos="up-right"][data-balloon-visible]:after {
98 | transform: translate(0, 0); }
99 | [aria-label][data-balloon-pos][data-balloon-pos="up-right"]:hover:before, [aria-label][data-balloon-pos][data-balloon-pos="up-right"][data-balloon-visible]:before {
100 | transform: translate(0, 0); }
101 | [aria-label][data-balloon-pos][data-balloon-pos="down"]:after {
102 | left: 50%;
103 | margin-top: 10px;
104 | top: 100%;
105 | transform: translate(-50%, calc(var(--balloon-move) * -1)); }
106 | [aria-label][data-balloon-pos][data-balloon-pos="down"]:before {
107 | width: 0;
108 | height: 0;
109 | border: 5px solid transparent;
110 | border-bottom-color: var(--balloon-color);
111 | left: 50%;
112 | top: 100%;
113 | transform: translate(-50%, calc(var(--balloon-move) * -1)); }
114 | [aria-label][data-balloon-pos][data-balloon-pos="down"]:hover:after, [aria-label][data-balloon-pos][data-balloon-pos="down"][data-balloon-visible]:after {
115 | transform: translate(-50%, 0); }
116 | [aria-label][data-balloon-pos][data-balloon-pos="down"]:hover:before, [aria-label][data-balloon-pos][data-balloon-pos="down"][data-balloon-visible]:before {
117 | transform: translate(-50%, 0); }
118 | [aria-label][data-balloon-pos][data-balloon-pos="down-left"]:after {
119 | left: 0;
120 | margin-top: 10px;
121 | top: 100%;
122 | transform: translate(0, calc(var(--balloon-move) * -1)); }
123 | [aria-label][data-balloon-pos][data-balloon-pos="down-left"]:before {
124 | width: 0;
125 | height: 0;
126 | border: 5px solid transparent;
127 | border-bottom-color: var(--balloon-color);
128 | left: 5px;
129 | top: 100%;
130 | transform: translate(0, calc(var(--balloon-move) * -1)); }
131 | [aria-label][data-balloon-pos][data-balloon-pos="down-left"]:hover:after, [aria-label][data-balloon-pos][data-balloon-pos="down-left"][data-balloon-visible]:after {
132 | transform: translate(0, 0); }
133 | [aria-label][data-balloon-pos][data-balloon-pos="down-left"]:hover:before, [aria-label][data-balloon-pos][data-balloon-pos="down-left"][data-balloon-visible]:before {
134 | transform: translate(0, 0); }
135 | [aria-label][data-balloon-pos][data-balloon-pos="down-right"]:after {
136 | right: 0;
137 | margin-top: 10px;
138 | top: 100%;
139 | transform: translate(0, calc(var(--balloon-move) * -1)); }
140 | [aria-label][data-balloon-pos][data-balloon-pos="down-right"]:before {
141 | width: 0;
142 | height: 0;
143 | border: 5px solid transparent;
144 | border-bottom-color: var(--balloon-color);
145 | right: 5px;
146 | top: 100%;
147 | transform: translate(0, calc(var(--balloon-move) * -1)); }
148 | [aria-label][data-balloon-pos][data-balloon-pos="down-right"]:hover:after, [aria-label][data-balloon-pos][data-balloon-pos="down-right"][data-balloon-visible]:after {
149 | transform: translate(0, 0); }
150 | [aria-label][data-balloon-pos][data-balloon-pos="down-right"]:hover:before, [aria-label][data-balloon-pos][data-balloon-pos="down-right"][data-balloon-visible]:before {
151 | transform: translate(0, 0); }
152 | [aria-label][data-balloon-pos][data-balloon-pos="left"]:after {
153 | margin-right: 10px;
154 | right: 100%;
155 | top: 50%;
156 | transform: translate(var(--balloon-move), -50%); }
157 | [aria-label][data-balloon-pos][data-balloon-pos="left"]:before {
158 | width: 0;
159 | height: 0;
160 | border: 5px solid transparent;
161 | border-left-color: var(--balloon-color);
162 | right: 100%;
163 | top: 50%;
164 | transform: translate(var(--balloon-move), -50%); }
165 | [aria-label][data-balloon-pos][data-balloon-pos="left"]:hover:after, [aria-label][data-balloon-pos][data-balloon-pos="left"][data-balloon-visible]:after {
166 | transform: translate(0, -50%); }
167 | [aria-label][data-balloon-pos][data-balloon-pos="left"]:hover:before, [aria-label][data-balloon-pos][data-balloon-pos="left"][data-balloon-visible]:before {
168 | transform: translate(0, -50%); }
169 | [aria-label][data-balloon-pos][data-balloon-pos="right"]:after {
170 | left: 100%;
171 | margin-left: 10px;
172 | top: 50%;
173 | transform: translate(calc(var(--balloon-move) * -1), -50%); }
174 | [aria-label][data-balloon-pos][data-balloon-pos="right"]:before {
175 | width: 0;
176 | height: 0;
177 | border: 5px solid transparent;
178 | border-right-color: var(--balloon-color);
179 | left: 100%;
180 | top: 50%;
181 | transform: translate(calc(var(--balloon-move) * -1), -50%); }
182 | [aria-label][data-balloon-pos][data-balloon-pos="right"]:hover:after, [aria-label][data-balloon-pos][data-balloon-pos="right"][data-balloon-visible]:after {
183 | transform: translate(0, -50%); }
184 | [aria-label][data-balloon-pos][data-balloon-pos="right"]:hover:before, [aria-label][data-balloon-pos][data-balloon-pos="right"][data-balloon-visible]:before {
185 | transform: translate(0, -50%); }
186 | [aria-label][data-balloon-pos][data-balloon-length="small"]:after {
187 | white-space: normal;
188 | width: 80px; }
189 | [aria-label][data-balloon-pos][data-balloon-length="medium"]:after {
190 | white-space: normal;
191 | width: 150px; }
192 | [aria-label][data-balloon-pos][data-balloon-length="large"]:after {
193 | white-space: normal;
194 | width: 260px; }
195 | [aria-label][data-balloon-pos][data-balloon-length="xlarge"]:after {
196 | white-space: normal;
197 | width: 380px; }
198 | @media screen and (max-width: 768px) {
199 | [aria-label][data-balloon-pos][data-balloon-length="xlarge"]:after {
200 | white-space: normal;
201 | width: 90vw; } }
202 | [aria-label][data-balloon-pos][data-balloon-length="fit"]:after {
203 | white-space: normal;
204 | width: 100%; }
--------------------------------------------------------------------------------
/app/static/css/responsive_table.css:
--------------------------------------------------------------------------------
1 | @media only screen and (max-width: 760px),(min-device-width: 768px) and (max-device-width: 1024px) {
2 |
3 | /* Force table to not be like tables anymore */
4 | table, thead, tbody, th, td, tr {
5 | display: block;
6 | }
7 |
8 | /* Hide table headers (but not display: none;, for accessibility) */
9 | thead tr {
10 | position: absolute;
11 | padding-left: 3em;
12 | top: -9999px;
13 | left: -9999px;
14 | }
15 |
16 | tr { border: 1px solid #ccc; }
17 |
18 | td {
19 | /* Behave like a "row" */
20 | border: none;
21 | border-bottom: 1px solid #eee;
22 | position: relative;
23 | padding-left: 50% !important;
24 | }
25 |
26 | td:before {
27 | /* Now like a table header */
28 | position: absolute;
29 | /* Top/left values mimic padding */
30 | top: 1em;
31 | left: 1em;
32 | width: 45%;
33 | padding-right: 10px;
34 | white-space: nowrap;
35 | }
36 |
37 | /*
38 | Label the data
39 | */
40 | td:nth-of-type(1):before { content: "Name"; }
41 | td:nth-of-type(2):before { content: "BTC"; }
42 | td:nth-of-type(3):before { content: "XMR"; }
43 | td:nth-of-type(4):before { content: "Conditions"; }
44 | td:nth-of-type(5):before { content: "Exchange"; }
45 | td:nth-of-type(6):before { content: "Buy"; }
46 | }
--------------------------------------------------------------------------------
/app/static/faceglitch.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pluja/CloakMe/fd55a994a6d7e096f72700832122920f38e13941/app/static/faceglitch.gif
--------------------------------------------------------------------------------
/app/static/favicon.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pluja/CloakMe/fd55a994a6d7e096f72700832122920f38e13941/app/static/favicon.jpg
--------------------------------------------------------------------------------
/app/static/load.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pluja/CloakMe/fd55a994a6d7e096f72700832122920f38e13941/app/static/load.gif
--------------------------------------------------------------------------------
/app/static/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pluja/CloakMe/fd55a994a6d7e096f72700832122920f38e13941/app/static/logo.png
--------------------------------------------------------------------------------
/app/static/semantic/.versions:
--------------------------------------------------------------------------------
1 | jquery@1.11.3_2
2 | meteor@1.1.6
3 | semantic:ui-css@2.0.7
4 | underscore@1.0.3
5 |
--------------------------------------------------------------------------------
/app/static/semantic/LICENSE:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) 2015 Semantic Org
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
23 |
--------------------------------------------------------------------------------
/app/static/semantic/README.md:
--------------------------------------------------------------------------------
1 | # CSS Distribution
2 |
3 | This repository is automatically synced with the main [Semantic UI](https://github.com/Semantic-Org/Semantic-UI) repository to provide lightweight CSS only version of Semantic UI.
4 |
5 | This package **does not support theming** and includes generated CSS files of the default theme only.
6 |
7 | You can view more on Semantic UI at [LearnSemantic.com](http://www.learnsemantic.com) and [Semantic-UI.com](http://www.semantic-ui.com)
8 |
--------------------------------------------------------------------------------
/app/static/semantic/fonts/Lato-Black.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pluja/CloakMe/fd55a994a6d7e096f72700832122920f38e13941/app/static/semantic/fonts/Lato-Black.ttf
--------------------------------------------------------------------------------
/app/static/semantic/fonts/Lato-BlackItalic.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pluja/CloakMe/fd55a994a6d7e096f72700832122920f38e13941/app/static/semantic/fonts/Lato-BlackItalic.ttf
--------------------------------------------------------------------------------
/app/static/semantic/fonts/Lato-Bold.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pluja/CloakMe/fd55a994a6d7e096f72700832122920f38e13941/app/static/semantic/fonts/Lato-Bold.ttf
--------------------------------------------------------------------------------
/app/static/semantic/fonts/Lato-BoldItalic.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pluja/CloakMe/fd55a994a6d7e096f72700832122920f38e13941/app/static/semantic/fonts/Lato-BoldItalic.ttf
--------------------------------------------------------------------------------
/app/static/semantic/fonts/Lato-Hairline.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pluja/CloakMe/fd55a994a6d7e096f72700832122920f38e13941/app/static/semantic/fonts/Lato-Hairline.ttf
--------------------------------------------------------------------------------
/app/static/semantic/fonts/Lato-HairlineItalic.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pluja/CloakMe/fd55a994a6d7e096f72700832122920f38e13941/app/static/semantic/fonts/Lato-HairlineItalic.ttf
--------------------------------------------------------------------------------
/app/static/semantic/fonts/Lato-Heavy.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pluja/CloakMe/fd55a994a6d7e096f72700832122920f38e13941/app/static/semantic/fonts/Lato-Heavy.ttf
--------------------------------------------------------------------------------
/app/static/semantic/fonts/Lato-HeavyItalic.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pluja/CloakMe/fd55a994a6d7e096f72700832122920f38e13941/app/static/semantic/fonts/Lato-HeavyItalic.ttf
--------------------------------------------------------------------------------
/app/static/semantic/fonts/Lato-Italic.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pluja/CloakMe/fd55a994a6d7e096f72700832122920f38e13941/app/static/semantic/fonts/Lato-Italic.ttf
--------------------------------------------------------------------------------
/app/static/semantic/fonts/Lato-Light.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pluja/CloakMe/fd55a994a6d7e096f72700832122920f38e13941/app/static/semantic/fonts/Lato-Light.ttf
--------------------------------------------------------------------------------
/app/static/semantic/fonts/Lato-LightItalic.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pluja/CloakMe/fd55a994a6d7e096f72700832122920f38e13941/app/static/semantic/fonts/Lato-LightItalic.ttf
--------------------------------------------------------------------------------
/app/static/semantic/fonts/Lato-Medium.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pluja/CloakMe/fd55a994a6d7e096f72700832122920f38e13941/app/static/semantic/fonts/Lato-Medium.ttf
--------------------------------------------------------------------------------
/app/static/semantic/fonts/Lato-MediumItalic.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pluja/CloakMe/fd55a994a6d7e096f72700832122920f38e13941/app/static/semantic/fonts/Lato-MediumItalic.ttf
--------------------------------------------------------------------------------
/app/static/semantic/fonts/Lato-Regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pluja/CloakMe/fd55a994a6d7e096f72700832122920f38e13941/app/static/semantic/fonts/Lato-Regular.ttf
--------------------------------------------------------------------------------
/app/static/semantic/fonts/Lato-Semibold.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pluja/CloakMe/fd55a994a6d7e096f72700832122920f38e13941/app/static/semantic/fonts/Lato-Semibold.ttf
--------------------------------------------------------------------------------
/app/static/semantic/fonts/Lato-SemiboldItalic.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pluja/CloakMe/fd55a994a6d7e096f72700832122920f38e13941/app/static/semantic/fonts/Lato-SemiboldItalic.ttf
--------------------------------------------------------------------------------
/app/static/semantic/fonts/Lato-Thin.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pluja/CloakMe/fd55a994a6d7e096f72700832122920f38e13941/app/static/semantic/fonts/Lato-Thin.ttf
--------------------------------------------------------------------------------
/app/static/semantic/fonts/Lato-ThinItalic.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pluja/CloakMe/fd55a994a6d7e096f72700832122920f38e13941/app/static/semantic/fonts/Lato-ThinItalic.ttf
--------------------------------------------------------------------------------
/app/static/semantic/fonts/OFL.txt:
--------------------------------------------------------------------------------
1 | Copyright (c) 2010-2015, Łukasz Dziedzic (dziedzic@typoland.com),
2 | with Reserved Font Name Lato.
3 |
4 | This Font Software is licensed under the SIL Open Font License, Version 1.1.
5 | This license is copied below, and is also available with a FAQ at:
6 | http://scripts.sil.org/OFL
7 |
8 |
9 | -----------------------------------------------------------
10 | SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
11 | -----------------------------------------------------------
12 |
13 | PREAMBLE
14 | The goals of the Open Font License (OFL) are to stimulate worldwide
15 | development of collaborative font projects, to support the font creation
16 | efforts of academic and linguistic communities, and to provide a free and
17 | open framework in which fonts may be shared and improved in partnership
18 | with others.
19 |
20 | The OFL allows the licensed fonts to be used, studied, modified and
21 | redistributed freely as long as they are not sold by themselves. The
22 | fonts, including any derivative works, can be bundled, embedded,
23 | redistributed and/or sold with any software provided that any reserved
24 | names are not used by derivative works. The fonts and derivatives,
25 | however, cannot be released under any other type of license. The
26 | requirement for fonts to remain under this license does not apply
27 | to any document created using the fonts or their derivatives.
28 |
29 | DEFINITIONS
30 | "Font Software" refers to the set of files released by the Copyright
31 | Holder(s) under this license and clearly marked as such. This may
32 | include source files, build scripts and documentation.
33 |
34 | "Reserved Font Name" refers to any names specified as such after the
35 | copyright statement(s).
36 |
37 | "Original Version" refers to the collection of Font Software components as
38 | distributed by the Copyright Holder(s).
39 |
40 | "Modified Version" refers to any derivative made by adding to, deleting,
41 | or substituting -- in part or in whole -- any of the components of the
42 | Original Version, by changing formats or by porting the Font Software to a
43 | new environment.
44 |
45 | "Author" refers to any designer, engineer, programmer, technical
46 | writer or other person who contributed to the Font Software.
47 |
48 | PERMISSION & CONDITIONS
49 | Permission is hereby granted, free of charge, to any person obtaining
50 | a copy of the Font Software, to use, study, copy, merge, embed, modify,
51 | redistribute, and sell modified and unmodified copies of the Font
52 | Software, subject to the following conditions:
53 |
54 | 1) Neither the Font Software nor any of its individual components,
55 | in Original or Modified Versions, may be sold by itself.
56 |
57 | 2) Original or Modified Versions of the Font Software may be bundled,
58 | redistributed and/or sold with any software, provided that each copy
59 | contains the above copyright notice and this license. These can be
60 | included either as stand-alone text files, human-readable headers or
61 | in the appropriate machine-readable metadata fields within text or
62 | binary files as long as those fields can be easily viewed by the user.
63 |
64 | 3) No Modified Version of the Font Software may use the Reserved Font
65 | Name(s) unless explicit written permission is granted by the corresponding
66 | Copyright Holder. This restriction only applies to the primary font name as
67 | presented to the users.
68 |
69 | 4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
70 | Software shall not be used to promote, endorse or advertise any
71 | Modified Version, except to acknowledge the contribution(s) of the
72 | Copyright Holder(s) and the Author(s) or with their explicit written
73 | permission.
74 |
75 | 5) The Font Software, modified or unmodified, in part or in whole,
76 | must be distributed entirely under this license, and must not be
77 | distributed under any other license. The requirement for fonts to
78 | remain under this license does not apply to any document created
79 | using the Font Software.
80 |
81 | TERMINATION
82 | This license becomes null and void if any of the above conditions are
83 | not met.
84 |
85 | DISCLAIMER
86 | THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
87 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
88 | MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
89 | OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
90 | COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
91 | INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
92 | DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
93 | FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
94 | OTHER DEALINGS IN THE FONT SOFTWARE.
95 |
--------------------------------------------------------------------------------
/app/static/semantic/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "semantic-ui-css",
3 | "version": "2.4.1",
4 | "title": "Semantic UI",
5 | "description": "CSS Only distribution of Semantic UI",
6 | "homepage": "http://www.semantic-ui.com",
7 | "author": "Jack Lukic ",
8 | "license": "MIT",
9 | "main": "semantic.js",
10 | "repository": {
11 | "type": "git",
12 | "url": "git://github.com/Semantic-Org/Semantic-UI-CSS.git"
13 | },
14 | "bugs": {
15 | "url": "https://github.com/Semantic-Org/Semantic-UI/issues"
16 | },
17 | "dependencies": {
18 | "jquery": "x.*"
19 | }
20 | }
--------------------------------------------------------------------------------
/app/static/semantic/themes/default/assets/fonts/brand-icons.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pluja/CloakMe/fd55a994a6d7e096f72700832122920f38e13941/app/static/semantic/themes/default/assets/fonts/brand-icons.eot
--------------------------------------------------------------------------------
/app/static/semantic/themes/default/assets/fonts/brand-icons.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pluja/CloakMe/fd55a994a6d7e096f72700832122920f38e13941/app/static/semantic/themes/default/assets/fonts/brand-icons.ttf
--------------------------------------------------------------------------------
/app/static/semantic/themes/default/assets/fonts/brand-icons.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pluja/CloakMe/fd55a994a6d7e096f72700832122920f38e13941/app/static/semantic/themes/default/assets/fonts/brand-icons.woff
--------------------------------------------------------------------------------
/app/static/semantic/themes/default/assets/fonts/brand-icons.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pluja/CloakMe/fd55a994a6d7e096f72700832122920f38e13941/app/static/semantic/themes/default/assets/fonts/brand-icons.woff2
--------------------------------------------------------------------------------
/app/static/semantic/themes/default/assets/fonts/icons.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pluja/CloakMe/fd55a994a6d7e096f72700832122920f38e13941/app/static/semantic/themes/default/assets/fonts/icons.eot
--------------------------------------------------------------------------------
/app/static/semantic/themes/default/assets/fonts/icons.otf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pluja/CloakMe/fd55a994a6d7e096f72700832122920f38e13941/app/static/semantic/themes/default/assets/fonts/icons.otf
--------------------------------------------------------------------------------
/app/static/semantic/themes/default/assets/fonts/icons.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pluja/CloakMe/fd55a994a6d7e096f72700832122920f38e13941/app/static/semantic/themes/default/assets/fonts/icons.ttf
--------------------------------------------------------------------------------
/app/static/semantic/themes/default/assets/fonts/icons.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pluja/CloakMe/fd55a994a6d7e096f72700832122920f38e13941/app/static/semantic/themes/default/assets/fonts/icons.woff
--------------------------------------------------------------------------------
/app/static/semantic/themes/default/assets/fonts/icons.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pluja/CloakMe/fd55a994a6d7e096f72700832122920f38e13941/app/static/semantic/themes/default/assets/fonts/icons.woff2
--------------------------------------------------------------------------------
/app/static/semantic/themes/default/assets/fonts/outline-icons.eot:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pluja/CloakMe/fd55a994a6d7e096f72700832122920f38e13941/app/static/semantic/themes/default/assets/fonts/outline-icons.eot
--------------------------------------------------------------------------------
/app/static/semantic/themes/default/assets/fonts/outline-icons.svg:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
367 |
--------------------------------------------------------------------------------
/app/static/semantic/themes/default/assets/fonts/outline-icons.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pluja/CloakMe/fd55a994a6d7e096f72700832122920f38e13941/app/static/semantic/themes/default/assets/fonts/outline-icons.ttf
--------------------------------------------------------------------------------
/app/static/semantic/themes/default/assets/fonts/outline-icons.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pluja/CloakMe/fd55a994a6d7e096f72700832122920f38e13941/app/static/semantic/themes/default/assets/fonts/outline-icons.woff
--------------------------------------------------------------------------------
/app/static/semantic/themes/default/assets/fonts/outline-icons.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pluja/CloakMe/fd55a994a6d7e096f72700832122920f38e13941/app/static/semantic/themes/default/assets/fonts/outline-icons.woff2
--------------------------------------------------------------------------------
/app/static/semantic/themes/default/assets/images/flags.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pluja/CloakMe/fd55a994a6d7e096f72700832122920f38e13941/app/static/semantic/themes/default/assets/images/flags.png
--------------------------------------------------------------------------------
/app/templates/base.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | CloakMe
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 | {% with messages = get_flashed_messages() %}
16 | {% if messages %}
17 |