├── .gitattributes ├── README.md ├── crawler_flask.py ├── model.py ├── requirements.txt ├── static ├── css │ ├── bootstrap.min.css │ └── styles.css ├── fonts │ ├── glyphicons-halflings-regular.eot │ ├── glyphicons-halflings-regular.svg │ ├── glyphicons-halflings-regular.ttf │ └── glyphicons-halflings-regular.woff └── js │ ├── bootstrap.min.js │ ├── jquery-1.11.1.min.js │ └── lumino.glyphs.js └── templates ├── images.html ├── indent.html ├── index.html ├── links.html └── text.html /.gitattributes: -------------------------------------------------------------------------------- 1 | special-vendored-path/* linguist-vendored 2 | /static/js/lumino.glyphs.js linguist-vendored 3 | /static/css/styles.css linguist-vendored 4 | /static/css/bootstrap.min.css linguist-vendored 5 | /templates/*.html linguist-vendored 6 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # webpage-scraper 2 | `webpage-scraper` is a *flask* based application which allows the users to : 3 | 4 | - Input URL with the freedom of inputting it with/ without the protocol and sub-domain specifiers. 5 | - Fetch a list of URLs to all the images on the webpage with an option to download all the images in a directory with name specified by the user. 6 | - Get a list of all the hyperlinks on the webpage. Save them into a text file with a name specified by the user. 7 | - Get the indented html source code of the webpage and save it in a .html file with a user-provided name. 8 | - Fetch the text on the webpage stripping the html code. Save it in a text file with a filename of user's choice. 9 | - The database is deployed on [mLab](http://mlab.com/) and uses *MongoDB* for fast access to long list of images, hyperlinks and text for a URL that has been requested by some other user in the past, thus, reducing processing time for subsequent users. 10 | 11 | ## Pre- requisites 12 | 13 | To install requirements: 14 | 15 | ``` 16 | [sudo] pip install requirements 17 | ``` 18 | 19 | If you don't have [pip](https://pip.pypa.io) installed, [this Python installation guide](http://docs.python-guide.org/en/latest/starting/installation) can guide you through the process. 20 | 21 | 22 | To install MongoDB Community Edition: 23 | 24 | - on OSX, refer to: 25 | https://docs.mongodb.com/manual/tutorial/install-mongodb-on-os-x/ 26 | 27 | - on Ubuntu, refer to: 28 | https://docs.mongodb.com/manual/tutorial/install-mongodb-on-ubuntu/ 29 | 30 | - on Windows, refer to: 31 | https://docs.mongodb.com/manual/tutorial/install-mongodb-on-windows/ 32 | 33 | 34 | **Make sure you have MongoDB installed** 35 | 36 | ## Getting started 37 | ``` 38 | git clone http://github.com/mansimarkaur/webpage-scraper 39 | cd webpage-scraper 40 | python crawler_flask.py 41 | ``` 42 | 43 | Open **http://127.0.0.1:5000/** in your browser. 44 | Input URL and **have fun** :+1: 45 | 46 | 47 | 48 | -------------------------------------------------------------------------------- /crawler_flask.py: -------------------------------------------------------------------------------- 1 | import urllib2 2 | import urllib 3 | import os 4 | import sys 5 | from flask import Flask, flash, request, render_template 6 | from bs4 import BeautifulSoup 7 | from flask_mongoalchemy import MongoAlchemy 8 | 9 | crawler = Flask(__name__) 10 | crawler.secret_key = 'continents9794' 11 | 12 | from model import * 13 | #from model import text_db 14 | 15 | @crawler.route("/") 16 | def main() : 17 | return render_template("index.html") 18 | 19 | @crawler.route("/driver", methods = ['POST']) 20 | def driver() : 21 | global url 22 | url = request.form["inputName"] #fetches user entered URL 23 | print url 24 | if not(url.startswith("http://") or url.startswith("https://")) : 25 | if not url.startswith("www.") : 26 | url = "www." + url 27 | url = "http://" + url 28 | if not url.endswith("/") : 29 | url = url + "/" 30 | print url 31 | try : 32 | link = urllib2.urlopen(url) #returns obj 33 | except : 34 | flash('Webpage did not return a OK status') 35 | return render_template("index.html") 36 | global soup 37 | soup = BeautifulSoup(link, 'html.parser') #returns beautifulsoup obj 38 | job = request.form["submit"] 39 | dict = { 40 | "images" : image, 41 | "hyperlinks" : hyperlinks, 42 | "text" : text, 43 | "formatter" : formatter 44 | } 45 | func = dict.get(job) #calls function acc to button pressed 46 | return func() 47 | 48 | 49 | #displays image URLs 50 | @crawler.route("/download_images", methods = ['POST']) 51 | def image() : 52 | images = images_db.query.images_query(url).first() 53 | if images == None : 54 | img = soup.find_all("img") #finds all 55 | if len(img) == 0 : 56 | return render_template("index.html", text = ["No images to fetch"]) 57 | images = [] 58 | for i in img : 59 | images.append(url + i.get("src")) #adds src attribute value to images list 60 | images_db(sites = url, images = images).save() 61 | else : 62 | images = images.images 63 | try : 64 | to_download = bool(request.form['submit']) 65 | dir_name = request.form['name'] 66 | except : 67 | to_download = False 68 | if to_download : 69 | download(images, dir_name) 70 | flash('Download completed') 71 | return render_template("images.html", text = images) 72 | 73 | 74 | def download(image, dir_name) : 75 | try : 76 | os.stat(dir_name) 77 | except : 78 | os.mkdir(dir_name) 79 | for i in image : 80 | name = i[i.rfind("/")+1:] 81 | if name == -1 : 82 | name = i 83 | print dir_name+'/'+name 84 | urllib.urlretrieve(i, dir_name+'/'+name) 85 | 86 | #displays hyperlinks 87 | @crawler.route('/download_links', methods = ['POST']) 88 | def hyperlinks() : 89 | links = links_db.query.links_query(url).first() 90 | if links == None : 91 | print "me" 92 | link = soup.find_all("a") #finds all 93 | if len(link) == 0 : 94 | return render_template("index.html", text = ["No links to fetch"]) 95 | links = [] 96 | for i in link : 97 | l = i.get("href") #adds href attribute value to links list 98 | if l[:4] != "http" : 99 | l = url + l 100 | links.append(l) 101 | links_db(sites = url, links = links).save() 102 | else : 103 | links = links.links 104 | try : 105 | to_download = bool(request.form['submit']) 106 | file_name = request.form['name'] 107 | except : 108 | to_download = False 109 | if to_download : 110 | with open(file_name + ".txt", "w+") as getlink : 111 | for i in links : 112 | getlink.write(i) 113 | flash('Download completed') 114 | return render_template("links.html", text = links) 115 | 116 | #displays text after stripping html tags from src code 117 | @crawler.route('/text', methods = ['POST']) 118 | def text() : 119 | t = text_db.query.text_query(url).first() 120 | if t == None : 121 | t = soup.get_text()#.encode('UTF-8') 122 | text_db(sites = url, text = t).save() 123 | else : 124 | t = t.text 125 | try : 126 | to_download = bool(request.form['submit']) 127 | file_name = request.form['name'] 128 | except : 129 | to_download = False 130 | if to_download : 131 | with open(file_name + ".txt", "w+") as pretty : 132 | pretty.write(t.encode('UTF-8')) 133 | flash('Download completed') 134 | return render_template("text.html", text = t) 135 | 136 | #displays formatted html src code 137 | @crawler.route('/download_code', methods = ['POST']) 138 | def formatter() : 139 | code = indent_db.query.indent_query(url).first() 140 | if code == None : 141 | code = soup.prettify()#.encode('UTF-8') 142 | indent_db(sites = url, indent = code).save() 143 | else : 144 | code = code.indent 145 | try : 146 | to_download = bool(request.form['submit']) 147 | file_name = request.form['name'] 148 | except : 149 | to_download = False 150 | if to_download : 151 | with open(file_name + ".html", "w+") as source_code : 152 | source_code.write(code.encode('UTF-8')) 153 | flash('Download completed') 154 | return render_template("indent.html", text = code) 155 | 156 | 157 | 158 | if __name__ == "__main__" : 159 | crawler.run() 160 | 161 | -------------------------------------------------------------------------------- /model.py: -------------------------------------------------------------------------------- 1 | from flask_mongoalchemy import MongoAlchemy, BaseQuery 2 | from flask import Flask 3 | 4 | crawler = Flask(__name__) 5 | crawler.secret_key = 'continents9794' 6 | crawler.config['MONGOALCHEMY_DATABASE'] = 'website-scraper' 7 | crawler.config['MONGOALCHEMY_CONNECTION_STRING'] = 'mongodb://scraper:continents@ds023495.mlab.com:23495/website-scraper' 8 | 9 | db = MongoAlchemy(crawler) 10 | 11 | class db_query(BaseQuery) : 12 | def text_query(self, url) : 13 | return self.filter(self.type.sites == url).fields('text') 14 | 15 | def images_query(self, url) : 16 | return self.filter(self.type.sites == url).fields('images') 17 | 18 | def links_query(self, url) : 19 | return self.filter(self.type.sites == url).fields('links') 20 | 21 | def indent_query(self, url) : 22 | return self.filter(self.type.sites == url).fields('indent') 23 | 24 | class images_db(db.Document) : 25 | query_class = db_query 26 | sites = db.StringField() 27 | images = db.ListField(db.StringField()) 28 | 29 | class links_db(db.Document) : 30 | query_class = db_query 31 | sites = db.StringField() 32 | links = db.ListField(db.StringField()) 33 | 34 | class indent_db(db.Document) : 35 | query_class = db_query 36 | sites = db.StringField() 37 | indent = db.StringField() 38 | 39 | class text_db(db.Document) : 40 | query_class = db_query 41 | sites = db.StringField() 42 | text = db.StringField() 43 | 44 | 45 | 46 | -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | Flask==0.11 2 | requests==2.10.0 3 | BeautifulSoup4==4.4.0 4 | flask_mongoalchemy==0.7.2 -------------------------------------------------------------------------------- /static/css/styles.css: -------------------------------------------------------------------------------- 1 | 2 | body { 3 | background: #f1f4f7; 4 | padding-top: 50px; 5 | color: #5f6468; 6 | } 7 | 8 | #foot-er{ 9 | background-color: #222; 10 | width: 100%; 11 | bottom: 0px; 12 | } 13 | 14 | .row{ 15 | margin-bottom: 7%; 16 | margin-top: 8%; 17 | } 18 | 19 | #panel{ 20 | float: none; 21 | margin-left: 18%; 22 | } 23 | 24 | #hyperlinks{ 25 | padding-left: 4px !important; 26 | } 27 | 28 | p { 29 | color: #777; 30 | } 31 | 32 | a, a:hover, a:focus { 33 | color: #30a5ff; 34 | } 35 | 36 | h1, h2, h3, h4, h5, h6 { 37 | color: #5f6468; 38 | } 39 | 40 | h1 { 41 | font-weight: 300; 42 | font-size: 40px; 43 | } 44 | 45 | h2 { 46 | font-weight: 300; 47 | margin-bottom: 20px; 48 | } 49 | 50 | h3, h4 { 51 | font-weight: 300; 52 | } 53 | 54 | .large { 55 | font-size: 2em; 56 | } 57 | 58 | .text-muted { 59 | color: #9fadbb; 60 | } 61 | 62 | .color-gray { color: #5f6468; } 63 | .color-blue { color: #30a5ff; } 64 | .color-teal { color: #1ebfae; } 65 | .color-orange { color: #ffb53e; } 66 | .color-red { color: #f9243f; } 67 | 68 | .bg-primary .glyphicon-remove { color: #5f6468;} 69 | .bg-primary .glyphicon-remove:hover { color: #ef4040;} 70 | 71 | .no-padding { 72 | padding: 0; margin: 0; 73 | } 74 | 75 | .glyphicon-xl { 76 | font-size: 6em; 77 | } 78 | 79 | .glyphicon-l { 80 | font-size: 3em; 81 | } 82 | 83 | .glyphicon-m { 84 | font-size: 1.5em; 85 | } 86 | 87 | .glyphicon-s { 88 | font-size: 0.75em; 89 | } 90 | 91 | .form-control { 92 | border: 1px solid #eee; 93 | box-shadow: none; 94 | margin-top: 10%; 95 | } 96 | 97 | .form-control:focus { 98 | border: 1px solid #30a5ff; 99 | outline: 0; 100 | box-shadow: inset 0px 0px 0px 1px #30a5ff; 101 | } 102 | 103 | .navbar-header .navbar-brand { 104 | color: #fff; 105 | font-size: 16px; 106 | text-transform: uppercase; 107 | font-weight: 500; 108 | letter-spacing: 2px; 109 | } 110 | 111 | #name{ 112 | float: right; 113 | } 114 | 115 | .navbar-header .navbar-brand span { 116 | color: #30a5ff; 117 | } 118 | 119 | .butt{ 120 | width: 20%; 121 | padding: 0px; 122 | border: none; 123 | margin-left: 2%; 124 | margin-right: 2%; 125 | } 126 | 127 | /*Buttons*/ 128 | 129 | a.btn:hover, 130 | button:hover { 131 | opacity: 0.8; 132 | } 133 | 134 | a.btn:active, 135 | button:active { 136 | box-shadow: inset 0px 0px 500px rgba(0,0,0,.1); 137 | opacity: 1; 138 | } 139 | 140 | .btn-default, 141 | .btn-default:hover, 142 | .btn-default:focus, 143 | .btn-default:active, 144 | .btn-default.active, 145 | .open > .dropdown-toggle.btn-default, 146 | .btn-default.disabled, 147 | .btn-default[disabled], 148 | fieldset[disabled] .btn-default, 149 | .btn-default.disabled:hover, 150 | .btn-default[disabled]:hover, 151 | fieldset[disabled] .btn-default:hover, 152 | .btn-default.disabled:focus, 153 | .btn-default[disabled]:focus, 154 | fieldset[disabled] .btn-default:focus, 155 | .btn-default.disabled:active, 156 | .btn-default[disabled]:active, 157 | fieldset[disabled] .btn-default:active, 158 | .btn-default.disabled.active, 159 | .btn-default[disabled].active, 160 | fieldset[disabled] .btn-default.active { 161 | background-color: #e9ecf2; 162 | border-color: #e9ecf2; 163 | color: #1b3548; 164 | } 165 | 166 | .btn-primary, 167 | .btn-primary:hover, 168 | .btn-primary:focus, 169 | .btn-primary:active, 170 | .btn-primary.active, 171 | .open > .dropdown-toggle.btn-primary, 172 | .btn-primary.disabled, 173 | .btn-primary[disabled], 174 | fieldset[disabled] .btn-primary, 175 | .btn-primary.disabled:hover, 176 | .btn-primary[disabled]:hover, 177 | fieldset[disabled] .btn-primary:hover, 178 | .btn-primary.disabled:focus, 179 | .btn-primary[disabled]:focus, 180 | fieldset[disabled] .btn-primary:focus, 181 | .btn-primary.disabled:active, 182 | .btn-primary[disabled]:active, 183 | fieldset[disabled] .btn-primary:active, 184 | .btn-primary.disabled.active, 185 | .btn-primary[disabled].active, 186 | fieldset[disabled] .btn-primary.active { 187 | background-color: #30a5ff; 188 | border-color: #30a5ff; 189 | } 190 | 191 | .btn-success, 192 | .btn-success:hover, 193 | .btn-success:focus, 194 | .btn-success:active, 195 | .btn-success.active, 196 | .open > .dropdown-toggle.btn-success, 197 | .btn-success.disabled, 198 | .btn-success[disabled], 199 | fieldset[disabled] .btn-success, 200 | .btn-success.disabled:hover, 201 | .btn-success[disabled]:hover, 202 | fieldset[disabled] .btn-success:hover, 203 | .btn-success.disabled:focus, 204 | .btn-success[disabled]:focus, 205 | fieldset[disabled] .btn-success:focus, 206 | .btn-success.disabled:active, 207 | .btn-success[disabled]:active, 208 | fieldset[disabled] .btn-success:active, 209 | .btn-success.disabled.active, 210 | .btn-success[disabled].active, 211 | fieldset[disabled] .btn-success.active { 212 | background-color: #8ad919; 213 | border-color: #8ad919; 214 | } 215 | 216 | .btn-warning, 217 | .btn-warning:hover, 218 | .btn-warning:focus, 219 | .btn-warning:active, 220 | .btn-warning.active, 221 | .open > .dropdown-toggle.btn-warning, 222 | .btn-warning.disabled, 223 | .btn-warning[disabled], 224 | fieldset[disabled] .btn-warning, 225 | .btn-warning.disabled:hover, 226 | .btn-warning[disabled]:hover, 227 | fieldset[disabled] .btn-warning:hover, 228 | .btn-warning.disabled:focus, 229 | .btn-warning[disabled]:focus, 230 | fieldset[disabled] .btn-warning:focus, 231 | .btn-warning.disabled:active, 232 | .btn-warning[disabled]:active, 233 | fieldset[disabled] .btn-warning:active, 234 | .btn-warning.disabled.active, 235 | .btn-warning[disabled].active, 236 | fieldset[disabled] .btn-warning.active { 237 | background-color: #ffb53e; 238 | border-color: #ffb53e; 239 | } 240 | 241 | .btn-danger, 242 | .btn-danger:hover, 243 | .btn-danger:focus, 244 | .btn-danger:active, 245 | .btn-danger.active, 246 | .open > .dropdown-toggle.btn-danger, 247 | .btn-danger.disabled, 248 | .btn-danger[disabled], 249 | fieldset[disabled] .btn-danger, 250 | .btn-danger.disabled:hover, 251 | .btn-danger[disabled]:hover, 252 | fieldset[disabled] .btn-danger:hover, 253 | .btn-danger.disabled:focus, 254 | .btn-danger[disabled]:focus, 255 | fieldset[disabled] .btn-danger:focus, 256 | .btn-danger.disabled:active, 257 | .btn-danger[disabled]:active, 258 | fieldset[disabled] .btn-danger:active, 259 | .btn-danger.disabled.active, 260 | .btn-danger[disabled].active, 261 | fieldset[disabled] .btn-danger.active { 262 | background-color: #f9243f; 263 | border-color: #f9243f; 264 | } 265 | 266 | /*Backgrounds*/ 267 | 268 | .bg-primary { 269 | color: #1b3548; 270 | background-color: #e9ecf2; 271 | } 272 | a.bg-primary:hover { 273 | background-color: #e9ecf2; 274 | } 275 | .bg-success { 276 | color: #fff; 277 | background-color: #8ad919; 278 | } 279 | a.bg-success:hover { 280 | background-color: #8ad919; 281 | } 282 | .bg-success a { 283 | color: rgba(255, 255, 255, .75); 284 | } 285 | .bg-info { 286 | color: #fff; 287 | background-color: #30a5ff; 288 | } 289 | a.bg-info:hover { 290 | background-color: #30a5ff; 291 | } 292 | .bg-info a { 293 | color: rgba(255, 255, 255, .75); 294 | } 295 | .bg-warning { 296 | color: #fff; 297 | background-color: #ffb53e; 298 | } 299 | a.bg-warning:hover { 300 | background-color: #ffb53e; 301 | } 302 | .bg-warning a { 303 | color: rgba(255, 255, 255, .75); 304 | } 305 | .bg-danger { 306 | color: #fff; 307 | background-color: #f9243f; 308 | } 309 | a.bg-danger:hover { 310 | background-color: #f9243f; 311 | } 312 | .bg-danger a { 313 | color: rgba(255, 255, 255, .75); 314 | } 315 | 316 | /*Panels*/ 317 | 318 | .panel { 319 | border: 0; 320 | } 321 | 322 | .panel-heading { 323 | font-size: 18px; 324 | font-weight: 300; 325 | letter-spacing: 0.025em; 326 | height: 66px; 327 | line-height: 45px; 328 | } 329 | 330 | .panel-default .panel-heading { 331 | background: #fff; 332 | border-bottom: 1px solid #eee; 333 | color: #5f6468; 334 | } 335 | 336 | .panel-footer { 337 | background: #fff; 338 | border-top: 1px solid #eee; 339 | } 340 | 341 | .panel-widget { 342 | padding: 0; 343 | position: relative; 344 | } 345 | 346 | .panel-widget .panel-footer { 347 | border: 0; 348 | text-align: center; 349 | } 350 | 351 | .panel-footer .input-group { 352 | padding: 0px; 353 | margin: 0 -5px; 354 | } 355 | 356 | .panel-footer .input-group-btn:last-child>.btn, 357 | .panel-footer .input-group-btn:last-child>.btn-group { 358 | margin: 0; 359 | } 360 | 361 | .panel-widget .panel-footer a { 362 | color: #999; 363 | } 364 | 365 | .panel-widget .panel-footer a:hover { 366 | color: #666; 367 | text-decoration: none; 368 | } 369 | 370 | .panel-blue { background: #30a5ff; color: #fff; } 371 | .panel-teal { background: #1ebfae; color: #fff; } 372 | .panel-orange { background: #ffb53e; color: #fff; } 373 | .panel-red { background: #f9243f; color: #fff; } 374 | 375 | .panel-blue .panel-body p, 376 | .panel-teal .panel-body p, 377 | .panel-orange .panel-body p, 378 | .panel-red .panel-body p { 379 | color: #fff; 380 | color: rgba(255, 255, 255, .8); 381 | } 382 | 383 | .panel-blue .panel-heading, 384 | .panel-teal .panel-heading, 385 | .panel-orange .panel-heading, 386 | .panel-red .panel-heading { 387 | border-bottom: 1px solid rgba(255, 255, 255, .2); 388 | } 389 | 390 | .panel-blue .text-muted, 391 | .panel-teal .text-muted, 392 | .panel-orange .text-muted, 393 | .panel-red .text-muted { 394 | color: rgba(255, 255, 255, .5); 395 | } 396 | 397 | .dark-overlay { 398 | background: rgba(0, 0, 0, .05); 399 | text-align: center; 400 | } 401 | 402 | .widget-left { 403 | height: 80px; 404 | padding-top: 15px; 405 | text-align: center; 406 | border-top-left-radius: 4px; 407 | border-bottom-left-radius: 4px; 408 | } 409 | 410 | .widget-right { 411 | text-align: left; 412 | line-height: 1.6em; 413 | margin: 0px; 414 | padding: 20px; 415 | height: 80px; 416 | color: #999; 417 | font-weight: 300; 418 | background: #fff; 419 | border-top-right-radius: 4px; 420 | border-bottom-right-radius: 4px; 421 | } 422 | 423 | @media (max-width: 768px) { 424 | .widget-right { 425 | width: 100%; 426 | margin: 0; 427 | text-align: center; 428 | border-top-left-radius: 0px; 429 | border-top-right-radius: 0px; 430 | border-bottom-left-radius: 4px; 431 | border-bottom-right-radius: 4px; 432 | } 433 | } 434 | 435 | @media (max-width: 768px) { 436 | .widget-left { 437 | border-top-left-radius: 4px; 438 | border-top-right-radius: 4px; 439 | border-bottom-left-radius: 0px; 440 | border-bottom-right-radius: 0px; 441 | } 442 | } 443 | 444 | .widget-right .text-muted { 445 | color: #9fadbb; 446 | } 447 | .widget-right .large { 448 | color: #5f6468; 449 | } 450 | 451 | .panel-blue .widget-left { background: #30a5ff; color: #fff; } 452 | .panel-teal .widget-left { background: #1ebfae; color: #fff; } 453 | .panel-orange .widget-left { background: #ffb53e; color: #fff; } 454 | .panel-red .widget-left { background: #f9243f; color: #fff; } 455 | 456 | .panel-widget { 457 | background: #fff; 458 | margin-bottom: 0px; 459 | } 460 | 461 | /*Jumbotron*/ 462 | 463 | .jumbotron { 464 | background: #fff; 465 | border-bottom: 1px solid #eee; 466 | color: #5f6468; 467 | width: 50%; 468 | margin-left: 25%; 469 | margin-top: 5%; 470 | margin-bottom: 5%; 471 | } 472 | 473 | /*Tabs*/ 474 | 475 | .panel .tabs { 476 | margin: 0; 477 | padding: 0; 478 | } 479 | 480 | .tab-content { 481 | padding: 15px; 482 | } 483 | 484 | 485 | /*Navbar*/ 486 | 487 | .navbar { 488 | border: 0; 489 | } 490 | 491 | .navbar input { 492 | border: 0; 493 | background: #444; 494 | color: #fff; 495 | } 496 | 497 | .navbar input:focus { 498 | color: #fff; 499 | background: #555; 500 | border: 1px solid #30a5ff; 501 | outline: 0; 502 | box-shadow: inset 0px 0px 0px 1px #30a5ff; 503 | } 504 | 505 | @media (min-width: 768px) { 506 | .navbar-header { 507 | width: 100%; 508 | } 509 | } 510 | 511 | /*Breadcrumbs*/ 512 | 513 | .breadcrumb { 514 | border-radius: 0; 515 | padding: 10px 15px; 516 | background: #e9ecf2; 517 | box-shadow: 0 1px 1px rgba(0, 0, 0, .05); 518 | margin: 0 ; 519 | } 520 | 521 | h1.page-header { 522 | margin-top: 30px; 523 | border-bottom: 0; 524 | } 525 | 526 | .panel-heading .glyphicon { 527 | margin-right: 10px; 528 | } 529 | 530 | /*Todo List Widget*/ 531 | 532 | .todo-list-item .glyphicon { 533 | margin-right:5px; 534 | color: #9fadbb; 535 | } 536 | 537 | .todo-list-item .glyphicon:hover { 538 | margin-right:5px; 539 | color: #1b3548; 540 | } 541 | 542 | .todo-list { 543 | padding: 0; 544 | margin: -15px; 545 | background: #fff; 546 | color: #5f6468; 547 | } 548 | 549 | #checkbox { 550 | margin: 0; 551 | } 552 | 553 | .todo-list .checkbox { 554 | display:inline-block; 555 | margin: 0px; 556 | } 557 | 558 | .panel-body input[type=checkbox]:checked + label { 559 | text-decoration: none; 560 | color: #777; 561 | } 562 | 563 | .todo-list-item { 564 | list-style: none; 565 | line-height: 0.9; 566 | padding: 14px 15px 8px 15px; 567 | } 568 | 569 | .todo-list-item:hover, a.todo-list-item:focus { 570 | text-decoration: none; 571 | background-color: #f6f6f6; 572 | } 573 | 574 | .todo-list-item .trash .glyph:hover { 575 | color: #ef4040; 576 | } 577 | 578 | /*Icons*/ 579 | 580 | 581 | .sidebar .glyph, .user-menu .glyph { 582 | height: 16px; 583 | width: 16px; 584 | margin: 0 10px 0 0; 585 | stroke-width: 3px; 586 | } 587 | 588 | .user-menu .glyph { 589 | stroke-width: 4px; 590 | } 591 | 592 | .breadcrumb .glyph { 593 | height: 14px; 594 | width: 14px; 595 | margin: -2px 0 0 0; 596 | stroke-width: 4px; 597 | } 598 | 599 | .alert .glyph, .panel-heading .glyph { 600 | width: 26px; 601 | height: 26px; 602 | margin: 0 10px 0 0; 603 | stroke-width: 2px; 604 | } 605 | 606 | .panel-widget .glyph { 607 | stroke-width: 2px; 608 | } 609 | 610 | .todo-list .glyph { 611 | width: 14px; 612 | height: 14px; 613 | stroke-width: 4px; 614 | color: #999; 615 | } 616 | 617 | .glyph.table { 618 | background: none; 619 | border: none; 620 | } 621 | 622 | /*Icon Grid*/ 623 | 624 | .icon-grid div { 625 | border: 1px solid #ddd; 626 | margin: 0 0 -1px -1px; 627 | text-align: center; 628 | padding: 10px 0 20px 0; 629 | } 630 | 631 | .icon-grid svg { 632 | width: 35%; 633 | display: block; 634 | margin: 0 auto; 635 | } 636 | 637 | .icon-grid h4 { 638 | display: none; 639 | } 640 | 641 | .icon-grid pre { 642 | margin: 10px 10px -10px 10px; 643 | border-radius: 0; 644 | font-size: 10px; 645 | border-color: #ddd; 646 | height: 65px; 647 | overflow: scroll; 648 | } 649 | 650 | 651 | 652 | 653 | 654 | 655 | 656 | 657 | 658 | -------------------------------------------------------------------------------- /static/fonts/glyphicons-halflings-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mansimarkaur/webpage-scraper/f495b9f1fca00d7db03ddbcd649522cc9fdf21f1/static/fonts/glyphicons-halflings-regular.eot -------------------------------------------------------------------------------- /static/fonts/glyphicons-halflings-regular.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | 142 | 143 | 144 | 145 | 146 | 147 | 148 | 149 | 150 | 151 | 152 | 153 | 154 | 155 | 156 | 157 | 158 | 159 | 160 | 161 | 162 | 163 | 164 | 165 | 166 | 167 | 168 | 169 | 170 | 171 | 172 | 173 | 174 | 175 | 176 | 177 | 178 | 179 | 180 | 181 | 182 | 183 | 184 | 185 | 186 | 187 | 188 | 189 | 190 | 191 | 192 | 193 | 194 | 195 | 196 | 197 | 198 | 199 | 200 | 201 | 202 | 203 | 204 | 205 | 206 | 207 | 208 | 209 | 210 | 211 | 212 | 213 | 214 | 215 | 216 | 217 | 218 | 219 | 220 | 221 | 222 | 223 | 224 | 225 | 226 | 227 | 228 | 229 | -------------------------------------------------------------------------------- /static/fonts/glyphicons-halflings-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mansimarkaur/webpage-scraper/f495b9f1fca00d7db03ddbcd649522cc9fdf21f1/static/fonts/glyphicons-halflings-regular.ttf -------------------------------------------------------------------------------- /static/fonts/glyphicons-halflings-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/mansimarkaur/webpage-scraper/f495b9f1fca00d7db03ddbcd649522cc9fdf21f1/static/fonts/glyphicons-halflings-regular.woff -------------------------------------------------------------------------------- /static/js/bootstrap.min.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Bootstrap v3.2.0 (http://getbootstrap.com) 3 | * Copyright 2011-2014 Twitter, Inc. 4 | * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) 5 | */ 6 | if("undefined"==typeof jQuery)throw new Error("Bootstrap's JavaScript requires jQuery");+function(a){"use strict";function b(){var a=document.createElement("bootstrap"),b={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(var c in b)if(void 0!==a.style[c])return{end:b[c]};return!1}a.fn.emulateTransitionEnd=function(b){var c=!1,d=this;a(this).one("bsTransitionEnd",function(){c=!0});var e=function(){c||a(d).trigger(a.support.transition.end)};return setTimeout(e,b),this},a(function(){a.support.transition=b(),a.support.transition&&(a.event.special.bsTransitionEnd={bindType:a.support.transition.end,delegateType:a.support.transition.end,handle:function(b){return a(b.target).is(this)?b.handleObj.handler.apply(this,arguments):void 0}})})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var c=a(this),e=c.data("bs.alert");e||c.data("bs.alert",e=new d(this)),"string"==typeof b&&e[b].call(c)})}var c='[data-dismiss="alert"]',d=function(b){a(b).on("click",c,this.close)};d.VERSION="3.2.0",d.prototype.close=function(b){function c(){f.detach().trigger("closed.bs.alert").remove()}var d=a(this),e=d.attr("data-target");e||(e=d.attr("href"),e=e&&e.replace(/.*(?=#[^\s]*$)/,""));var f=a(e);b&&b.preventDefault(),f.length||(f=d.hasClass("alert")?d:d.parent()),f.trigger(b=a.Event("close.bs.alert")),b.isDefaultPrevented()||(f.removeClass("in"),a.support.transition&&f.hasClass("fade")?f.one("bsTransitionEnd",c).emulateTransitionEnd(150):c())};var e=a.fn.alert;a.fn.alert=b,a.fn.alert.Constructor=d,a.fn.alert.noConflict=function(){return a.fn.alert=e,this},a(document).on("click.bs.alert.data-api",c,d.prototype.close)}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.button"),f="object"==typeof b&&b;e||d.data("bs.button",e=new c(this,f)),"toggle"==b?e.toggle():b&&e.setState(b)})}var c=function(b,d){this.$element=a(b),this.options=a.extend({},c.DEFAULTS,d),this.isLoading=!1};c.VERSION="3.2.0",c.DEFAULTS={loadingText:"loading..."},c.prototype.setState=function(b){var c="disabled",d=this.$element,e=d.is("input")?"val":"html",f=d.data();b+="Text",null==f.resetText&&d.data("resetText",d[e]()),d[e](null==f[b]?this.options[b]:f[b]),setTimeout(a.proxy(function(){"loadingText"==b?(this.isLoading=!0,d.addClass(c).attr(c,c)):this.isLoading&&(this.isLoading=!1,d.removeClass(c).removeAttr(c))},this),0)},c.prototype.toggle=function(){var a=!0,b=this.$element.closest('[data-toggle="buttons"]');if(b.length){var c=this.$element.find("input");"radio"==c.prop("type")&&(c.prop("checked")&&this.$element.hasClass("active")?a=!1:b.find(".active").removeClass("active")),a&&c.prop("checked",!this.$element.hasClass("active")).trigger("change")}a&&this.$element.toggleClass("active")};var d=a.fn.button;a.fn.button=b,a.fn.button.Constructor=c,a.fn.button.noConflict=function(){return a.fn.button=d,this},a(document).on("click.bs.button.data-api",'[data-toggle^="button"]',function(c){var d=a(c.target);d.hasClass("btn")||(d=d.closest(".btn")),b.call(d,"toggle"),c.preventDefault()})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.carousel"),f=a.extend({},c.DEFAULTS,d.data(),"object"==typeof b&&b),g="string"==typeof b?b:f.slide;e||d.data("bs.carousel",e=new c(this,f)),"number"==typeof b?e.to(b):g?e[g]():f.interval&&e.pause().cycle()})}var c=function(b,c){this.$element=a(b).on("keydown.bs.carousel",a.proxy(this.keydown,this)),this.$indicators=this.$element.find(".carousel-indicators"),this.options=c,this.paused=this.sliding=this.interval=this.$active=this.$items=null,"hover"==this.options.pause&&this.$element.on("mouseenter.bs.carousel",a.proxy(this.pause,this)).on("mouseleave.bs.carousel",a.proxy(this.cycle,this))};c.VERSION="3.2.0",c.DEFAULTS={interval:5e3,pause:"hover",wrap:!0},c.prototype.keydown=function(a){switch(a.which){case 37:this.prev();break;case 39:this.next();break;default:return}a.preventDefault()},c.prototype.cycle=function(b){return b||(this.paused=!1),this.interval&&clearInterval(this.interval),this.options.interval&&!this.paused&&(this.interval=setInterval(a.proxy(this.next,this),this.options.interval)),this},c.prototype.getItemIndex=function(a){return this.$items=a.parent().children(".item"),this.$items.index(a||this.$active)},c.prototype.to=function(b){var c=this,d=this.getItemIndex(this.$active=this.$element.find(".item.active"));return b>this.$items.length-1||0>b?void 0:this.sliding?this.$element.one("slid.bs.carousel",function(){c.to(b)}):d==b?this.pause().cycle():this.slide(b>d?"next":"prev",a(this.$items[b]))},c.prototype.pause=function(b){return b||(this.paused=!0),this.$element.find(".next, .prev").length&&a.support.transition&&(this.$element.trigger(a.support.transition.end),this.cycle(!0)),this.interval=clearInterval(this.interval),this},c.prototype.next=function(){return this.sliding?void 0:this.slide("next")},c.prototype.prev=function(){return this.sliding?void 0:this.slide("prev")},c.prototype.slide=function(b,c){var d=this.$element.find(".item.active"),e=c||d[b](),f=this.interval,g="next"==b?"left":"right",h="next"==b?"first":"last",i=this;if(!e.length){if(!this.options.wrap)return;e=this.$element.find(".item")[h]()}if(e.hasClass("active"))return this.sliding=!1;var j=e[0],k=a.Event("slide.bs.carousel",{relatedTarget:j,direction:g});if(this.$element.trigger(k),!k.isDefaultPrevented()){if(this.sliding=!0,f&&this.pause(),this.$indicators.length){this.$indicators.find(".active").removeClass("active");var l=a(this.$indicators.children()[this.getItemIndex(e)]);l&&l.addClass("active")}var m=a.Event("slid.bs.carousel",{relatedTarget:j,direction:g});return a.support.transition&&this.$element.hasClass("slide")?(e.addClass(b),e[0].offsetWidth,d.addClass(g),e.addClass(g),d.one("bsTransitionEnd",function(){e.removeClass([b,g].join(" ")).addClass("active"),d.removeClass(["active",g].join(" ")),i.sliding=!1,setTimeout(function(){i.$element.trigger(m)},0)}).emulateTransitionEnd(1e3*d.css("transition-duration").slice(0,-1))):(d.removeClass("active"),e.addClass("active"),this.sliding=!1,this.$element.trigger(m)),f&&this.cycle(),this}};var d=a.fn.carousel;a.fn.carousel=b,a.fn.carousel.Constructor=c,a.fn.carousel.noConflict=function(){return a.fn.carousel=d,this},a(document).on("click.bs.carousel.data-api","[data-slide], [data-slide-to]",function(c){var d,e=a(this),f=a(e.attr("data-target")||(d=e.attr("href"))&&d.replace(/.*(?=#[^\s]+$)/,""));if(f.hasClass("carousel")){var g=a.extend({},f.data(),e.data()),h=e.attr("data-slide-to");h&&(g.interval=!1),b.call(f,g),h&&f.data("bs.carousel").to(h),c.preventDefault()}}),a(window).on("load",function(){a('[data-ride="carousel"]').each(function(){var c=a(this);b.call(c,c.data())})})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.collapse"),f=a.extend({},c.DEFAULTS,d.data(),"object"==typeof b&&b);!e&&f.toggle&&"show"==b&&(b=!b),e||d.data("bs.collapse",e=new c(this,f)),"string"==typeof b&&e[b]()})}var c=function(b,d){this.$element=a(b),this.options=a.extend({},c.DEFAULTS,d),this.transitioning=null,this.options.parent&&(this.$parent=a(this.options.parent)),this.options.toggle&&this.toggle()};c.VERSION="3.2.0",c.DEFAULTS={toggle:!0},c.prototype.dimension=function(){var a=this.$element.hasClass("width");return a?"width":"height"},c.prototype.show=function(){if(!this.transitioning&&!this.$element.hasClass("in")){var c=a.Event("show.bs.collapse");if(this.$element.trigger(c),!c.isDefaultPrevented()){var d=this.$parent&&this.$parent.find("> .panel > .in");if(d&&d.length){var e=d.data("bs.collapse");if(e&&e.transitioning)return;b.call(d,"hide"),e||d.data("bs.collapse",null)}var f=this.dimension();this.$element.removeClass("collapse").addClass("collapsing")[f](0),this.transitioning=1;var g=function(){this.$element.removeClass("collapsing").addClass("collapse in")[f](""),this.transitioning=0,this.$element.trigger("shown.bs.collapse")};if(!a.support.transition)return g.call(this);var h=a.camelCase(["scroll",f].join("-"));this.$element.one("bsTransitionEnd",a.proxy(g,this)).emulateTransitionEnd(350)[f](this.$element[0][h])}}},c.prototype.hide=function(){if(!this.transitioning&&this.$element.hasClass("in")){var b=a.Event("hide.bs.collapse");if(this.$element.trigger(b),!b.isDefaultPrevented()){var c=this.dimension();this.$element[c](this.$element[c]())[0].offsetHeight,this.$element.addClass("collapsing").removeClass("collapse").removeClass("in"),this.transitioning=1;var d=function(){this.transitioning=0,this.$element.trigger("hidden.bs.collapse").removeClass("collapsing").addClass("collapse")};return a.support.transition?void this.$element[c](0).one("bsTransitionEnd",a.proxy(d,this)).emulateTransitionEnd(350):d.call(this)}}},c.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()};var d=a.fn.collapse;a.fn.collapse=b,a.fn.collapse.Constructor=c,a.fn.collapse.noConflict=function(){return a.fn.collapse=d,this},a(document).on("click.bs.collapse.data-api",'[data-toggle="collapse"]',function(c){var d,e=a(this),f=e.attr("data-target")||c.preventDefault()||(d=e.attr("href"))&&d.replace(/.*(?=#[^\s]+$)/,""),g=a(f),h=g.data("bs.collapse"),i=h?"toggle":e.data(),j=e.attr("data-parent"),k=j&&a(j);h&&h.transitioning||(k&&k.find('[data-toggle="collapse"][data-parent="'+j+'"]').not(e).addClass("collapsed"),e[g.hasClass("in")?"addClass":"removeClass"]("collapsed")),b.call(g,i)})}(jQuery),+function(a){"use strict";function b(b){b&&3===b.which||(a(e).remove(),a(f).each(function(){var d=c(a(this)),e={relatedTarget:this};d.hasClass("open")&&(d.trigger(b=a.Event("hide.bs.dropdown",e)),b.isDefaultPrevented()||d.removeClass("open").trigger("hidden.bs.dropdown",e))}))}function c(b){var c=b.attr("data-target");c||(c=b.attr("href"),c=c&&/#[A-Za-z]/.test(c)&&c.replace(/.*(?=#[^\s]*$)/,""));var d=c&&a(c);return d&&d.length?d:b.parent()}function d(b){return this.each(function(){var c=a(this),d=c.data("bs.dropdown");d||c.data("bs.dropdown",d=new g(this)),"string"==typeof b&&d[b].call(c)})}var e=".dropdown-backdrop",f='[data-toggle="dropdown"]',g=function(b){a(b).on("click.bs.dropdown",this.toggle)};g.VERSION="3.2.0",g.prototype.toggle=function(d){var e=a(this);if(!e.is(".disabled, :disabled")){var f=c(e),g=f.hasClass("open");if(b(),!g){"ontouchstart"in document.documentElement&&!f.closest(".navbar-nav").length&&a('').insertAfter(a(this)).on("click",b);var h={relatedTarget:this};if(f.trigger(d=a.Event("show.bs.dropdown",h)),d.isDefaultPrevented())return;e.trigger("focus"),f.toggleClass("open").trigger("shown.bs.dropdown",h)}return!1}},g.prototype.keydown=function(b){if(/(38|40|27)/.test(b.keyCode)){var d=a(this);if(b.preventDefault(),b.stopPropagation(),!d.is(".disabled, :disabled")){var e=c(d),g=e.hasClass("open");if(!g||g&&27==b.keyCode)return 27==b.which&&e.find(f).trigger("focus"),d.trigger("click");var h=" li:not(.divider):visible a",i=e.find('[role="menu"]'+h+', [role="listbox"]'+h);if(i.length){var j=i.index(i.filter(":focus"));38==b.keyCode&&j>0&&j--,40==b.keyCode&&j').appendTo(this.$body),this.$element.on("click.dismiss.bs.modal",a.proxy(function(a){a.target===a.currentTarget&&("static"==this.options.backdrop?this.$element[0].focus.call(this.$element[0]):this.hide.call(this))},this)),e&&this.$backdrop[0].offsetWidth,this.$backdrop.addClass("in"),!b)return;e?this.$backdrop.one("bsTransitionEnd",b).emulateTransitionEnd(150):b()}else if(!this.isShown&&this.$backdrop){this.$backdrop.removeClass("in");var f=function(){c.removeBackdrop(),b&&b()};a.support.transition&&this.$element.hasClass("fade")?this.$backdrop.one("bsTransitionEnd",f).emulateTransitionEnd(150):f()}else b&&b()},c.prototype.checkScrollbar=function(){document.body.clientWidth>=window.innerWidth||(this.scrollbarWidth=this.scrollbarWidth||this.measureScrollbar())},c.prototype.setScrollbar=function(){var a=parseInt(this.$body.css("padding-right")||0,10);this.scrollbarWidth&&this.$body.css("padding-right",a+this.scrollbarWidth)},c.prototype.resetScrollbar=function(){this.$body.css("padding-right","")},c.prototype.measureScrollbar=function(){var a=document.createElement("div");a.className="modal-scrollbar-measure",this.$body.append(a);var b=a.offsetWidth-a.clientWidth;return this.$body[0].removeChild(a),b};var d=a.fn.modal;a.fn.modal=b,a.fn.modal.Constructor=c,a.fn.modal.noConflict=function(){return a.fn.modal=d,this},a(document).on("click.bs.modal.data-api",'[data-toggle="modal"]',function(c){var d=a(this),e=d.attr("href"),f=a(d.attr("data-target")||e&&e.replace(/.*(?=#[^\s]+$)/,"")),g=f.data("bs.modal")?"toggle":a.extend({remote:!/#/.test(e)&&e},f.data(),d.data());d.is("a")&&c.preventDefault(),f.one("show.bs.modal",function(a){a.isDefaultPrevented()||f.one("hidden.bs.modal",function(){d.is(":visible")&&d.trigger("focus")})}),b.call(f,g,this)})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.tooltip"),f="object"==typeof b&&b;(e||"destroy"!=b)&&(e||d.data("bs.tooltip",e=new c(this,f)),"string"==typeof b&&e[b]())})}var c=function(a,b){this.type=this.options=this.enabled=this.timeout=this.hoverState=this.$element=null,this.init("tooltip",a,b)};c.VERSION="3.2.0",c.DEFAULTS={animation:!0,placement:"top",selector:!1,template:'',trigger:"hover focus",title:"",delay:0,html:!1,container:!1,viewport:{selector:"body",padding:0}},c.prototype.init=function(b,c,d){this.enabled=!0,this.type=b,this.$element=a(c),this.options=this.getOptions(d),this.$viewport=this.options.viewport&&a(this.options.viewport.selector||this.options.viewport);for(var e=this.options.trigger.split(" "),f=e.length;f--;){var g=e[f];if("click"==g)this.$element.on("click."+this.type,this.options.selector,a.proxy(this.toggle,this));else if("manual"!=g){var h="hover"==g?"mouseenter":"focusin",i="hover"==g?"mouseleave":"focusout";this.$element.on(h+"."+this.type,this.options.selector,a.proxy(this.enter,this)),this.$element.on(i+"."+this.type,this.options.selector,a.proxy(this.leave,this))}}this.options.selector?this._options=a.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},c.prototype.getDefaults=function(){return c.DEFAULTS},c.prototype.getOptions=function(b){return b=a.extend({},this.getDefaults(),this.$element.data(),b),b.delay&&"number"==typeof b.delay&&(b.delay={show:b.delay,hide:b.delay}),b},c.prototype.getDelegateOptions=function(){var b={},c=this.getDefaults();return this._options&&a.each(this._options,function(a,d){c[a]!=d&&(b[a]=d)}),b},c.prototype.enter=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget).data("bs."+this.type);return c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c)),clearTimeout(c.timeout),c.hoverState="in",c.options.delay&&c.options.delay.show?void(c.timeout=setTimeout(function(){"in"==c.hoverState&&c.show()},c.options.delay.show)):c.show()},c.prototype.leave=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget).data("bs."+this.type);return c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c)),clearTimeout(c.timeout),c.hoverState="out",c.options.delay&&c.options.delay.hide?void(c.timeout=setTimeout(function(){"out"==c.hoverState&&c.hide()},c.options.delay.hide)):c.hide()},c.prototype.show=function(){var b=a.Event("show.bs."+this.type);if(this.hasContent()&&this.enabled){this.$element.trigger(b);var c=a.contains(document.documentElement,this.$element[0]);if(b.isDefaultPrevented()||!c)return;var d=this,e=this.tip(),f=this.getUID(this.type);this.setContent(),e.attr("id",f),this.$element.attr("aria-describedby",f),this.options.animation&&e.addClass("fade");var g="function"==typeof this.options.placement?this.options.placement.call(this,e[0],this.$element[0]):this.options.placement,h=/\s?auto?\s?/i,i=h.test(g);i&&(g=g.replace(h,"")||"top"),e.detach().css({top:0,left:0,display:"block"}).addClass(g).data("bs."+this.type,this),this.options.container?e.appendTo(this.options.container):e.insertAfter(this.$element);var j=this.getPosition(),k=e[0].offsetWidth,l=e[0].offsetHeight;if(i){var m=g,n=this.$element.parent(),o=this.getPosition(n);g="bottom"==g&&j.top+j.height+l-o.scroll>o.height?"top":"top"==g&&j.top-o.scroll-l<0?"bottom":"right"==g&&j.right+k>o.width?"left":"left"==g&&j.left-kg.top+g.height&&(e.top=g.top+g.height-i)}else{var j=b.left-f,k=b.left+f+c;jg.width&&(e.left=g.left+g.width-k)}return e},c.prototype.getTitle=function(){var a,b=this.$element,c=this.options;return a=b.attr("data-original-title")||("function"==typeof c.title?c.title.call(b[0]):c.title)},c.prototype.getUID=function(a){do a+=~~(1e6*Math.random());while(document.getElementById(a));return a},c.prototype.tip=function(){return this.$tip=this.$tip||a(this.options.template)},c.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".tooltip-arrow")},c.prototype.validate=function(){this.$element[0].parentNode||(this.hide(),this.$element=null,this.options=null)},c.prototype.enable=function(){this.enabled=!0},c.prototype.disable=function(){this.enabled=!1},c.prototype.toggleEnabled=function(){this.enabled=!this.enabled},c.prototype.toggle=function(b){var c=this;b&&(c=a(b.currentTarget).data("bs."+this.type),c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c))),c.tip().hasClass("in")?c.leave(c):c.enter(c)},c.prototype.destroy=function(){clearTimeout(this.timeout),this.hide().$element.off("."+this.type).removeData("bs."+this.type)};var d=a.fn.tooltip;a.fn.tooltip=b,a.fn.tooltip.Constructor=c,a.fn.tooltip.noConflict=function(){return a.fn.tooltip=d,this}}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.popover"),f="object"==typeof b&&b;(e||"destroy"!=b)&&(e||d.data("bs.popover",e=new c(this,f)),"string"==typeof b&&e[b]())})}var c=function(a,b){this.init("popover",a,b)};if(!a.fn.tooltip)throw new Error("Popover requires tooltip.js");c.VERSION="3.2.0",c.DEFAULTS=a.extend({},a.fn.tooltip.Constructor.DEFAULTS,{placement:"right",trigger:"click",content:"",template:''}),c.prototype=a.extend({},a.fn.tooltip.Constructor.prototype),c.prototype.constructor=c,c.prototype.getDefaults=function(){return c.DEFAULTS},c.prototype.setContent=function(){var a=this.tip(),b=this.getTitle(),c=this.getContent();a.find(".popover-title")[this.options.html?"html":"text"](b),a.find(".popover-content").empty()[this.options.html?"string"==typeof c?"html":"append":"text"](c),a.removeClass("fade top bottom left right in"),a.find(".popover-title").html()||a.find(".popover-title").hide()},c.prototype.hasContent=function(){return this.getTitle()||this.getContent()},c.prototype.getContent=function(){var a=this.$element,b=this.options;return a.attr("data-content")||("function"==typeof b.content?b.content.call(a[0]):b.content)},c.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".arrow")},c.prototype.tip=function(){return this.$tip||(this.$tip=a(this.options.template)),this.$tip};var d=a.fn.popover;a.fn.popover=b,a.fn.popover.Constructor=c,a.fn.popover.noConflict=function(){return a.fn.popover=d,this}}(jQuery),+function(a){"use strict";function b(c,d){var e=a.proxy(this.process,this);this.$body=a("body"),this.$scrollElement=a(a(c).is("body")?window:c),this.options=a.extend({},b.DEFAULTS,d),this.selector=(this.options.target||"")+" .nav li > a",this.offsets=[],this.targets=[],this.activeTarget=null,this.scrollHeight=0,this.$scrollElement.on("scroll.bs.scrollspy",e),this.refresh(),this.process()}function c(c){return this.each(function(){var d=a(this),e=d.data("bs.scrollspy"),f="object"==typeof c&&c;e||d.data("bs.scrollspy",e=new b(this,f)),"string"==typeof c&&e[c]()})}b.VERSION="3.2.0",b.DEFAULTS={offset:10},b.prototype.getScrollHeight=function(){return this.$scrollElement[0].scrollHeight||Math.max(this.$body[0].scrollHeight,document.documentElement.scrollHeight)},b.prototype.refresh=function(){var b="offset",c=0;a.isWindow(this.$scrollElement[0])||(b="position",c=this.$scrollElement.scrollTop()),this.offsets=[],this.targets=[],this.scrollHeight=this.getScrollHeight();var d=this;this.$body.find(this.selector).map(function(){var d=a(this),e=d.data("target")||d.attr("href"),f=/^#./.test(e)&&a(e);return f&&f.length&&f.is(":visible")&&[[f[b]().top+c,e]]||null}).sort(function(a,b){return a[0]-b[0]}).each(function(){d.offsets.push(this[0]),d.targets.push(this[1])})},b.prototype.process=function(){var a,b=this.$scrollElement.scrollTop()+this.options.offset,c=this.getScrollHeight(),d=this.options.offset+c-this.$scrollElement.height(),e=this.offsets,f=this.targets,g=this.activeTarget;if(this.scrollHeight!=c&&this.refresh(),b>=d)return g!=(a=f[f.length-1])&&this.activate(a);if(g&&b<=e[0])return g!=(a=f[0])&&this.activate(a);for(a=e.length;a--;)g!=f[a]&&b>=e[a]&&(!e[a+1]||b<=e[a+1])&&this.activate(f[a])},b.prototype.activate=function(b){this.activeTarget=b,a(this.selector).parentsUntil(this.options.target,".active").removeClass("active");var c=this.selector+'[data-target="'+b+'"],'+this.selector+'[href="'+b+'"]',d=a(c).parents("li").addClass("active");d.parent(".dropdown-menu").length&&(d=d.closest("li.dropdown").addClass("active")),d.trigger("activate.bs.scrollspy")};var d=a.fn.scrollspy;a.fn.scrollspy=c,a.fn.scrollspy.Constructor=b,a.fn.scrollspy.noConflict=function(){return a.fn.scrollspy=d,this},a(window).on("load.bs.scrollspy.data-api",function(){a('[data-spy="scroll"]').each(function(){var b=a(this);c.call(b,b.data())})})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.tab");e||d.data("bs.tab",e=new c(this)),"string"==typeof b&&e[b]()})}var c=function(b){this.element=a(b)};c.VERSION="3.2.0",c.prototype.show=function(){var b=this.element,c=b.closest("ul:not(.dropdown-menu)"),d=b.data("target");if(d||(d=b.attr("href"),d=d&&d.replace(/.*(?=#[^\s]*$)/,"")),!b.parent("li").hasClass("active")){var e=c.find(".active:last a")[0],f=a.Event("show.bs.tab",{relatedTarget:e});if(b.trigger(f),!f.isDefaultPrevented()){var g=a(d);this.activate(b.closest("li"),c),this.activate(g,g.parent(),function(){b.trigger({type:"shown.bs.tab",relatedTarget:e})})}}},c.prototype.activate=function(b,c,d){function e(){f.removeClass("active").find("> .dropdown-menu > .active").removeClass("active"),b.addClass("active"),g?(b[0].offsetWidth,b.addClass("in")):b.removeClass("fade"),b.parent(".dropdown-menu")&&b.closest("li.dropdown").addClass("active"),d&&d()}var f=c.find("> .active"),g=d&&a.support.transition&&f.hasClass("fade");g?f.one("bsTransitionEnd",e).emulateTransitionEnd(150):e(),f.removeClass("in")};var d=a.fn.tab;a.fn.tab=b,a.fn.tab.Constructor=c,a.fn.tab.noConflict=function(){return a.fn.tab=d,this},a(document).on("click.bs.tab.data-api",'[data-toggle="tab"], [data-toggle="pill"]',function(c){c.preventDefault(),b.call(a(this),"show")})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.affix"),f="object"==typeof b&&b;e||d.data("bs.affix",e=new c(this,f)),"string"==typeof b&&e[b]()})}var c=function(b,d){this.options=a.extend({},c.DEFAULTS,d),this.$target=a(this.options.target).on("scroll.bs.affix.data-api",a.proxy(this.checkPosition,this)).on("click.bs.affix.data-api",a.proxy(this.checkPositionWithEventLoop,this)),this.$element=a(b),this.affixed=this.unpin=this.pinnedOffset=null,this.checkPosition()};c.VERSION="3.2.0",c.RESET="affix affix-top affix-bottom",c.DEFAULTS={offset:0,target:window},c.prototype.getPinnedOffset=function(){if(this.pinnedOffset)return this.pinnedOffset;this.$element.removeClass(c.RESET).addClass("affix");var a=this.$target.scrollTop(),b=this.$element.offset();return this.pinnedOffset=b.top-a},c.prototype.checkPositionWithEventLoop=function(){setTimeout(a.proxy(this.checkPosition,this),1)},c.prototype.checkPosition=function(){if(this.$element.is(":visible")){var b=a(document).height(),d=this.$target.scrollTop(),e=this.$element.offset(),f=this.options.offset,g=f.top,h=f.bottom;"object"!=typeof f&&(h=g=f),"function"==typeof g&&(g=f.top(this.$element)),"function"==typeof h&&(h=f.bottom(this.$element));var i=null!=this.unpin&&d+this.unpin<=e.top?!1:null!=h&&e.top+this.$element.height()>=b-h?"bottom":null!=g&&g>=d?"top":!1;if(this.affixed!==i){null!=this.unpin&&this.$element.css("top","");var j="affix"+(i?"-"+i:""),k=a.Event(j+".bs.affix");this.$element.trigger(k),k.isDefaultPrevented()||(this.affixed=i,this.unpin="bottom"==i?this.getPinnedOffset():null,this.$element.removeClass(c.RESET).addClass(j).trigger(a.Event(j.replace("affix","affixed"))),"bottom"==i&&this.$element.offset({top:b-this.$element.height()-h}))}}};var d=a.fn.affix;a.fn.affix=b,a.fn.affix.Constructor=c,a.fn.affix.noConflict=function(){return a.fn.affix=d,this},a(window).on("load",function(){a('[data-spy="affix"]').each(function(){var c=a(this),d=c.data();d.offset=d.offset||{},d.offsetBottom&&(d.offset.bottom=d.offsetBottom),d.offsetTop&&(d.offset.top=d.offsetTop),b.call(c,d)})})}(jQuery); -------------------------------------------------------------------------------- /static/js/lumino.glyphs.js: -------------------------------------------------------------------------------- 1 | var icons = '\x0D\x0A\x20\x20\x20\x20\x3Cpath\x20d\x3D\x22M41\x2018H3c\x2D.6\x200\x2D1\x2D.4\x2D1\x2D1v\x2D2C2\x208.9\x206.9\x204\x2013\x204h18c6\x200\x2011\x204.9\x2011\x2011v2c0\x20.6\x2D.4\x201\x2D1\x201zM39\x2037H5c\x2D1.7\x200\x2D3\x2D1.3\x2D3\x2D3v\x2D2c0\x2D.6.4\x2D1\x201\x2D1h38c.5\x200\x201\x20.5\x201\x201v2c0\x201.7\x2D1.3\x203\x2D3\x203zM1\x2027h42M1\x2022c3.5\x200\x203.5\x202\x207\x202s3.5\x2D2\x207\x2D2\x203.5\x202\x207\x202\x203.5\x2D2\x207\x2D2\x203.5\x202\x207\x202\x203.5\x2D2\x207\x2D2\x22\x20class\x3D\x22line\x22\x20fill\x3D\x22none\x22\x20stroke\x3D\x22\x23000\x22\x20stroke\x2Dwidth\x3D\x222\x22\x20stroke\x2Dlinecap\x3D\x22round\x22\x20stroke\x2Dmiterlimit\x3D\x2210\x22\x2F\x3E\x0D\x0A\x0D\x0A\x20\x20\x20\x20\x3Cpath\x20class\x3D\x22line\x22\x20fill\x3D\x22none\x22\x20stroke\x3D\x22\x23000\x22\x20stroke\x2Dwidth\x3D\x222\x22\x20stroke\x2Dlinejoin\x3D\x22round\x22\x20stroke\x2Dmiterlimit\x3D\x2210\x22\x20d\x3D\x22M31.6\x2043H12.4L9\x209h26z\x22\x2F\x3E\x0D\x0A\x20\x20\x20\x20\x3Cpath\x20d\x3D\x22M35\x206H9V2c0\x2D.6.4\x2D1\x201\x2D1h24c.6\x200\x201\x20.4\x201\x201v4z\x22\x20class\x3D\x22line\x22\x20fill\x3D\x22none\x22\x20stroke\x3D\x22\x23000\x22\x20stroke\x2Dwidth\x3D\x222\x22\x20stroke\x2Dmiterlimit\x3D\x2210\x22\x2F\x3E\x0D\x0A\x20\x20\x20\x20\x3Cpath\x20class\x3D\x22line\x22\x20fill\x3D\x22none\x22\x20stroke\x3D\x22\x23000\x22\x20stroke\x2Dwidth\x3D\x222\x22\x20stroke\x2Dlinejoin\x3D\x22round\x22\x20stroke\x2Dmiterlimit\x3D\x2210\x22\x20d\x3D\x22M7\x206h30v3H7zM9.8\x2017h24.4M11.6\x2035h20.8\x22\x2F\x3E\x0D\x0A\x0D\x0A\x20\x20\x20\x20\x3Cpath\x20d\x3D\x22M33\x2011v16c0\x208.8\x2D7.2\x2016\x2D16\x2016S1\x2035.8\x201\x2027V11h32zM37\x2027h\x2D4V15h4c3.3\x200\x206\x202.7\x206\x206s\x2D2.7\x206\x2D6\x206z\x22\x20class\x3D\x22line\x22\x20fill\x3D\x22none\x22\x20stroke\x3D\x22\x23000\x22\x20stroke\x2Dwidth\x3D\x222\x22\x20stroke\x2Dmiterlimit\x3D\x2210\x22\x2F\x3E\x0D\x0A\x0D\x0A\x20\x20\x20\x20\x3Cpath\x20class\x3D\x22line\x22\x20fill\x3D\x22none\x22\x20stroke\x3D\x22\x23000\x22\x20stroke\x2Dwidth\x3D\x222\x22\x20stroke\x2Dmiterlimit\x3D\x2210\x22\x20d\x3D\x22M33\x2027v3h\x2D3M39\x2027v3h\x2D3\x22\x2F\x3E\x0D\x0A\x20\x20\x20\x20\x3Cpath\x20d\x3D\x22M41\x2034H3c\x2D1.1\x200\x2D2\x2D.9\x2D2\x2D2v\x2D6c0\x2D1.1.9\x2D2\x202\x2D2h38c1.1\x200\x202\x20.9\x202\x202v6c0\x201.1\x2D.9\x202\x2D2\x202z\x22\x20class\x3D\x22line\x22\x20fill\x3D\x22none\x22\x20stroke\x3D\x22\x23000\x22\x20stroke\x2Dwidth\x3D\x222\x22\x20stroke\x2Dlinejoin\x3D\x22round\x22\x20stroke\x2Dmiterlimit\x3D\x2210\x22\x2F\x3E\x0D\x0A\x20\x20\x20\x20\x3Cpath\x20class\x3D\x22line\x22\x20fill\x3D\x22none\x22\x20stroke\x3D\x22\x23000\x22\x20stroke\x2Dwidth\x3D\x222\x22\x20stroke\x2Dmiterlimit\x3D\x2210\x22\x20d\x3D\x22M5\x2034h6v3H5zM33\x2034h6v3h\x2D6z\x22\x2F\x3E\x0D\x0A\x20\x20\x20\x20\x3Cpath\x20class\x3D\x22line\x22\x20fill\x3D\x22none\x22\x20stroke\x3D\x22\x23000\x22\x20stroke\x2Dwidth\x3D\x222\x22\x20stroke\x2Dlinejoin\x3D\x22round\x22\x20stroke\x2Dmiterlimit\x3D\x2210\x22\x20d\x3D\x22M14\x2024L7\x2013.3M30\x2024l7\x2D10.7\x22\x2F\x3E\x0D\x0A\x20\x20\x20\x20\x3Cpath\x20d\x3D\x22M25.4\x2015c\x2D.7\x2D1.2\x2D2\x2D2\x2D3.4\x2D2s\x2D2.7.8\x2D3.4\x201.9M29.4\x2010.3C27.6\x208.3\x2024.9\x207\x2022\x207c\x2D2.9\x200\x2D5.5\x201.3\x2D7.4\x203.3\x22\x20class\x3D\x22line\x22\x20fill\x3D\x22none\x22\x20stroke\x3D\x22\x23000\x22\x20stroke\x2Dwidth\x3D\x222\x22\x20stroke\x2Dmiterlimit\x3D\x2210\x22\x2F\x3E\x0D\x0A\x0D\x0A\x20\x20\x20\x20\x3Cpath\x20class\x3D\x22line\x22\x20fill\x3D\x22none\x22\x20stroke\x3D\x22\x23000\x22\x20stroke\x2Dwidth\x3D\x222\x22\x20stroke\x2Dmiterlimit\x3D\x2210\x22\x20d\x3D\x22M26.7\x206L38\x2017.3l\x2D6.3\x2013.4L2\x2042l11.3\x2D29.7zM2\x2042l19.1\x2D19.1\x22\x2F\x3E\x0D\x0A\x20\x20\x20\x20\x3Ccircle\x20cx\x3D\x2223.2\x22\x20cy\x3D\x2220.8\x22\x20r\x3D\x223\x22\x20class\x3D\x22line\x22\x20fill\x3D\x22none\x22\x20stroke\x3D\x22\x23000\x22\x20stroke\x2Dwidth\x3D\x222\x22\x20stroke\x2Dmiterlimit\x3D\x2210\x22\x2F\x3E\x0D\x0A\x20\x20\x20\x20\x3Cpath\x20d\x3D\x22M30.5\x201.3l12.2\x2012.2c.5.5.4\x201.3\x2D.3\x201.6L38\x2017.3\x2026.7\x206l2.2\x2D4.4c.3\x2D.7\x201.1\x2D.8\x201.6\x2D.3z\x22\x20class\x3D\x22line\x22\x20fill\x3D\x22none\x22\x20stroke\x3D\x22\x23000\x22\x20stroke\x2Dwidth\x3D\x222\x22\x20stroke\x2Dmiterlimit\x3D\x2210\x22\x2F\x3E\x0D\x0A\x0D\x0A\x20\x20\x20\x20\x3Cpath\x20d\x3D\x22M30\x2043H14c\x2D1.1\x200\x2D2\x2D.9\x2D2\x2D2V11h20v30c0\x201.1\x2D.9\x202\x2D2\x202zM15\x201h14v10H15z\x22\x20class\x3D\x22line\x22\x20fill\x3D\x22none\x22\x20stroke\x3D\x22\x23000\x22\x20stroke\x2Dwidth\x3D\x222\x22\x20stroke\x2Dmiterlimit\x3D\x2210\x22\x2F\x3E\x0D\x0A\x20\x20\x20\x20\x3Cpath\x20class\x3D\x22line\x22\x20fill\x3D\x22none\x22\x20stroke\x3D\x22\x23000\x22\x20stroke\x2Dwidth\x3D\x222\x22\x20stroke\x2Dmiterlimit\x3D\x2210\x22\x20d\x3D\x22M20\x204v3h\x2D3M25\x204v3h\x2D3\x22\x2F\x3E\x0D\x0A\x0D\x0A\x20\x20\x20\x20\x3Cpath\x20d\x3D\x22M9.9\x201H33c3.9\x200\x207\x205.8\x207\x2013s\x2D3.1\x2013\x2D6.9\x2013H9.9C6.1\x2027\x203\x2021.2\x203\x2014S6.1\x201\x209.9\x201z\x22\x20class\x3D\x22line\x22\x20fill\x3D\x22none\x22\x20stroke\x3D\x22\x23000\x22\x20stroke\x2Dwidth\x3D\x222\x22\x20stroke\x2Dmiterlimit\x3D\x2210\x22\x2F\x3E\x0D\x0A\x20\x20\x20\x20\x3Cellipse\x20cx\x3D\x2233\x22\x20cy\x3D\x2214\x22\x20rx\x3D\x227\x22\x20ry\x3D\x2213\x22\x20class\x3D\x22line\x22\x20fill\x3D\x22none\x22\x20stroke\x3D\x22\x23000\x22\x20stroke\x2Dwidth\x3D\x222\x22\x20stroke\x2Dmiterlimit\x3D\x2210\x22\x2F\x3E\x0D\x0A\x20\x20\x20\x20\x3Cellipse\x20cx\x3D\x2233\x22\x20cy\x3D\x2214\x22\x20rx\x3D\x223\x22\x20ry\x3D\x227\x22\x20class\x3D\x22line\x22\x20fill\x3D\x22none\x22\x20stroke\x3D\x22\x23000\x22\x20stroke\x2Dwidth\x3D\x222\x22\x20stroke\x2Dmiterlimit\x3D\x2210\x22\x2F\x3E\x0D\x0A\x20\x20\x20\x20\x3Cpath\x20d\x3D\x22M33.1\x2027c3.8\x200\x206.9\x2D5.8\x206.9\x2D13v29l\x2D4\x2D2\x2D4\x202\x2D4\x2D2\x2D4\x202\x2D4\x2D2\x2D3\x202V27h16.1z\x22\x20class\x3D\x22line\x22\x20fill\x3D\x22none\x22\x20stroke\x3D\x22\x23000\x22\x20stroke\x2Dwidth\x3D\x222\x22\x20stroke\x2Dlinejoin\x3D\x22round\x22\x20stroke\x2Dmiterlimit\x3D\x2210\x22\x2F\x3E\x0D\x0A\x0D\x0A\x20\x20\x20\x20\x3Cpath\x20d\x3D\x22M13.7\x2036.9l\x2D7.1\x2D7.1L34.9\x201.6c.8\x2D.8\x202\x2D.8\x202.8\x200L42\x205.8c.8.8.8\x202\x200\x202.8L13.7\x2036.9zM1\x2042.6l5.7\x2D12.7\x207\x207zM32.8\x203.7l7.1\x207.1\x22\x20class\x3D\x22line\x22\x20fill\x3D\x22none\x22\x20stroke\x3D\x22\x23000\x22\x20stroke\x2Dwidth\x3D\x222\x22\x20stroke\x2Dlinejoin\x3D\x22round\x22\x20stroke\x2Dmiterlimit\x3D\x2210\x22\x2F\x3E\x0D\x0A\x0D\x0A\x20\x20\x20\x20\x3Cpath\x20d\x3D\x22M18.6\x2030l\x2D3.9\x2D3.9c\x2D.4\x2D.4\x2D.4\x2D1\x200\x2D1.4L38.1\x202.5c1.1\x2D1.1\x203\x2D1.1\x204.1.1\x201.1\x201.1\x201.1\x202.9.1\x204.1L20.1\x2030c\x2D.4.4\x2D1.1.4\x2D1.5\x200z\x22\x20class\x3D\x22line\x22\x20fill\x3D\x22none\x22\x20stroke\x3D\x22\x23000\x22\x20stroke\x2Dwidth\x3D\x222\x22\x20stroke\x2Dmiterlimit\x3D\x2210\x22\x2F\x3E\x0D\x0A\x20\x20\x20\x20\x3Cpath\x20d\x3D\x22M1\x2039.9s4.1\x2D3.3\x205.4\x2D7.7c1.1\x2D3.7\x203.6\x2D6.2\x207.1\x2D5.6\x203.5.6\x205.7\x204.4\x204.2\x207.6\x2D1.6\x203.3\x2D8\x206.3\x2D16.7\x205.7z\x22\x20class\x3D\x22line\x22\x20fill\x3D\x22none\x22\x20stroke\x3D\x22\x23000\x22\x20stroke\x2Dwidth\x3D\x222\x22\x20stroke\x2Dlinejoin\x3D\x22round\x22\x20stroke\x2Dmiterlimit\x3D\x2210\x22\x2F\x3E\x0D\x0A\x0D\x0A\x20\x20\x20\x20\x3Cpath\x20class\x3D\x22line\x22\x20fill\x3D\x22none\x22\x20stroke\x3D\x22\x23000\x22\x20stroke\x2Dwidth\x3D\x222\x22\x20stroke\x2Dlinejoin\x3D\x22round\x22\x20stroke\x2Dmiterlimit\x3D\x2210\x22\x20d\x3D\x22M1\x209h42v26H1z\x22\x2F\x3E\x0D\x0A\x20\x20\x20\x20\x3Cpath\x20class\x3D\x22line\x22\x20fill\x3D\x22none\x22\x20stroke\x3D\x22\x23000\x22\x20stroke\x2Dwidth\x3D\x222\x22\x20stroke\x2Dlinejoin\x3D\x22round\x22\x20stroke\x2Dmiterlimit\x3D\x2210\x22\x20d\x3D\x22M17.1\x2022L1\x2035h42L26.9\x2022\x22\x2F\x3E\x0D\x0A\x20\x20\x20\x20\x3Cpath\x20class\x3D\x22line\x22\x20fill\x3D\x22none\x22\x20stroke\x3D\x22\x23000\x22\x20stroke\x2Dwidth\x3D\x222\x22\x20stroke\x2Dlinejoin\x3D\x22round\x22\x20stroke\x2Dmiterlimit\x3D\x2210\x22\x20d\x3D\x22M22\x2026L1\x209h42z\x22\x2F\x3E\x0D\x0A\x0D\x0A\x20\x20\x20\x20\x3Cpath\x20class\x3D\x22line\x22\x20fill\x3D\x22none\x22\x20stroke\x3D\x22\x23000\x22\x20stroke\x2Dwidth\x3D\x222\x22\x20stroke\x2Dlinejoin\x3D\x22round\x22\x20stroke\x2Dmiterlimit\x3D\x2210\x22\x20d\x3D\x22M22\x2026l21\x2017H1z\x22\x2F\x3E\x0D\x0A\x20\x20\x20\x20\x3Cpath\x20class\x3D\x22line\x22\x20fill\x3D\x22none\x22\x20stroke\x3D\x22\x23000\x22\x20stroke\x2Dwidth\x3D\x222\x22\x20stroke\x2Dlinejoin\x3D\x22round\x22\x20stroke\x2Dmiterlimit\x3D\x2210\x22\x20d\x3D\x22M1\x2017v26h42V17\x22\x2F\x3E\x0D\x0A\x20\x20\x20\x20\x3Cpath\x20class\x3D\x22line\x22\x20fill\x3D\x22none\x22\x20stroke\x3D\x22\x23000\x22\x20stroke\x2Dwidth\x3D\x222\x22\x20stroke\x2Dlinejoin\x3D\x22round\x22\x20stroke\x2Dmiterlimit\x3D\x2210\x22\x20d\x3D\x22M26.9\x2030L43\x2017\x2022\x201\x201\x2017l16.1\x2013\x22\x2F\x3E\x0D\x0A\x0D\x0A\x20\x20\x20\x20\x3Cpath\x20d\x3D\x22M33\x2031H1v3c0\x20.6.4\x201\x201\x201h31\x22\x20class\x3D\x22line\x22\x20fill\x3D\x22none\x22\x20stroke\x3D\x22\x23000\x22\x20stroke\x2Dwidth\x3D\x222\x22\x20stroke\x2Dmiterlimit\x3D\x2210\x22\x2F\x3E\x0D\x0A\x20\x20\x20\x20\x3Cg\x20class\x3D\x22line\x22\x20fill\x3D\x22none\x22\x20stroke\x3D\x22\x23000\x22\x20stroke\x2Dwidth\x3D\x222\x22\x20stroke\x2Dmiterlimit\x3D\x2210\x22\x3E\x0D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x3Cpath\x20d\x3D\x22M42\x2037h\x2D8c\x2D.6\x200\x2D1\x2D.4\x2D1\x2D1V18c0\x2D.6.4\x2D1\x201\x2D1h8c.6\x200\x201\x20.4\x201\x201v18c0\x20.6\x2D.4\x201\x2D1\x201zM33\x2021h10M33\x2033h10\x22\x2F\x3E\x0D\x0A\x20\x20\x20\x20\x3C\x2Fg\x3E\x0D\x0A\x20\x20\x20\x20\x3Cpath\x20d\x3D\x22M39\x2017v\x2D7c0\x2D.6\x2D.4\x2D1\x2D1\x2D1H6c\x2D.6\x200\x2D1\x20.4\x2D1\x201v21h28\x22\x20class\x3D\x22line\x22\x20fill\x3D\x22none\x22\x20stroke\x3D\x22\x23000\x22\x20stroke\x2Dwidth\x3D\x222\x22\x20stroke\x2Dmiterlimit\x3D\x2210\x22\x2F\x3E\x0D\x0A\x0D\x0A\x20\x20\x20\x20\x3Cpath\x20d\x3D\x22M21.7\x2022L12\x2011.7C9.7\x209.2\x2011.5\x205\x2015\x205h12.9c3.4\x200\x205.3\x204.1\x203\x206.6L21.7\x2022zM21.7\x2022L12\x2032.3c\x2D2.3\x202.5\x2D.5\x206.7\x203\x206.7h12.9c3.4\x200\x205.3\x2D4.1\x203\x2D6.6L21.7\x2022zM33.2\x205h\x2D24c\x2D.6\x200\x2D1\x2D.4\x2D1\x2D1V2c0\x2D.6.4\x2D1\x201\x2D1h24c.6\x200\x201\x20.4\x201\x201v2c0\x20.6\x2D.4\x201\x2D1\x201zM33.2\x2043h\x2D24c\x2D.6\x200\x2D1\x2D.4\x2D1\x2D1v\x2D2c0\x2D.6.4\x2D1\x201\x2D1h24c.6\x200\x201\x20.4\x201\x201v2c0\x20.6\x2D.4\x201\x2D1\x201z\x22\x20class\x3D\x22line\x22\x20fill\x3D\x22none\x22\x20stroke\x3D\x22\x23000\x22\x20stroke\x2Dwidth\x3D\x222\x22\x20stroke\x2Dmiterlimit\x3D\x2210\x22\x2F\x3E\x0D\x0A\x20\x20\x20\x20\x3Cpath\x20class\x3D\x22line\x22\x20fill\x3D\x22none\x22\x20stroke\x3D\x22\x23000\x22\x20stroke\x2Dmiterlimit\x3D\x2210\x22\x20d\x3D\x22M14.1\x2013.5h15M11.6\x2034.5h4.8c.6\x200\x201.1\x2D.1\x201.6\x2D.3l2.1\x2D.9c1\x2D.5\x202.2\x2D.5\x203.2\x200l2.1.9c.5.2\x201.1.3\x201.6.3h4.5\x22\x2F\x3E\x0D\x0A\x0D\x0A\x20\x20\x20\x20\x3Cpath\x20d\x3D\x22M34.1\x207H9.9C8.2\x207\x206.6\x208.1\x206.1\x209.7L1.6\x2023.2c\x2D.4\x201.2\x2D.6\x202.5\x2D.6\x203.7V32c0\x202.2\x201.8\x204\x204\x204h34c2.2\x200\x204\x2D1.8\x204\x2D4v\x2D5.1c0\x2D1.3\x2D.2\x2D2.6\x2D.6\x2D3.8L37.9\x209.7C37.4\x208.1\x2035.8\x207\x2034.1\x207z\x22\x20class\x3D\x22line\x22\x20fill\x3D\x22none\x22\x20stroke\x3D\x22\x23000\x22\x20stroke\x2Dwidth\x3D\x222\x22\x20stroke\x2Dlinejoin\x3D\x22round\x22\x20stroke\x2Dmiterlimit\x3D\x2210\x22\x2F\x3E\x0D\x0A\x20\x20\x20\x20\x3Cpath\x20d\x3D\x22M32.2\x2013.7c3\x203.4\x2D.6\x208\x2D10.2\x208s\x2D13.2\x2D4.7\x2D10.2\x2D8c1.9\x2D2.1\x206.2\x2D3.3\x2010.2\x2D3.3s8.3\x201.2\x2010.2\x203.3z\x22\x20class\x3D\x22line\x22\x20fill\x3D\x22none\x22\x20stroke\x3D\x22\x23000\x22\x20stroke\x2Dwidth\x3D\x222\x22\x20stroke\x2Dlinejoin\x3D\x22round\x22\x20stroke\x2Dmiterlimit\x3D\x2210\x22\x2F\x3E\x0D\x0A\x20\x20\x20\x20\x3Cpath\x20d\x3D\x22M24.3\x2015.6c.7.7\x2D.1\x201.7\x2D2.3\x201.7s\x2D3\x2D1\x2D2.3\x2D1.7c.4\x2D.4\x201.4\x2D.7\x202.3\x2D.7s1.9.3\x202.3.7z\x22\x20class\x3D\x22line\x22\x20fill\x3D\x22none\x22\x20stroke\x3D\x22\x23000\x22\x20stroke\x2Dlinejoin\x3D\x22round\x22\x20stroke\x2Dmiterlimit\x3D\x2210\x22\x2F\x3E\x0D\x0A\x20\x20\x20\x20\x3Cpath\x20class\x3D\x22line\x22\x20fill\x3D\x22none\x22\x20stroke\x3D\x22\x23000\x22\x20stroke\x2Dwidth\x3D\x222\x22\x20stroke\x2Dlinejoin\x3D\x22round\x22\x20stroke\x2Dmiterlimit\x3D\x2210\x22\x20d\x3D\x22M1\x2026h42\x22\x2F\x3E\x0D\x0A\x20\x20\x20\x20\x3Cpath\x20class\x3D\x22line\x22\x20fill\x3D\x22none\x22\x20stroke\x3D\x22\x23000\x22\x20stroke\x2Dwidth\x3D\x222\x22\x20stroke\x2Dlinecap\x3D\x22round\x22\x20stroke\x2Dlinejoin\x3D\x22round\x22\x20stroke\x2Dmiterlimit\x3D\x2210\x22\x20d\x3D\x22M14.3\x2019.6l3.3\x2D1.6\x22\x2F\x3E\x0D\x0A\x20\x20\x20\x20\x3Cpath\x20class\x3D\x22line\x22\x20fill\x3D\x22none\x22\x20stroke\x3D\x22\x23000\x22\x20stroke\x2Dwidth\x3D\x222\x22\x20stroke\x2Dlinejoin\x3D\x22round\x22\x20stroke\x2Dmiterlimit\x3D\x2210\x22\x20d\x3D\x22M6\x2029v4M9\x2029v4M12\x2029v4M15\x2029v4\x22\x2F\x3E\x0D\x0A\x20\x20\x20\x20\x3Cpath\x20class\x3D\x22line\x22\x20fill\x3D\x22none\x22\x20stroke\x3D\x22\x23000\x22\x20stroke\x2Dwidth\x3D\x222\x22\x20stroke\x2Dlinecap\x3D\x22round\x22\x20stroke\x2Dlinejoin\x3D\x22round\x22\x20stroke\x2Dmiterlimit\x3D\x2210\x22\x20d\x3D\x22M33\x2031h6\x22\x2F\x3E\x0D\x0A\x0D\x0A\x20\x20\x20\x20\x3Cpath\x20d\x3D\x22M34.1\x207H9.9C8.2\x207\x206.6\x208.1\x206.1\x209.7L1.6\x2023.2c\x2D.4\x201.2\x2D.6\x202.5\x2D.6\x203.7V32c0\x202.2\x201.8\x204\x204\x204h34c2.2\x200\x204\x2D1.8\x204\x2D4v\x2D5.1c0\x2D1.3\x2D.2\x2D2.6\x2D.6\x2D3.8L37.9\x209.7C37.4\x208.1\x2035.8\x207\x2034.1\x207zM1\x2026h42\x22\x20class\x3D\x22line\x22\x20fill\x3D\x22none\x22\x20stroke\x3D\x22\x23000\x22\x20stroke\x2Dwidth\x3D\x222\x22\x20stroke\x2Dlinejoin\x3D\x22round\x22\x20stroke\x2Dmiterlimit\x3D\x2210\x22\x2F\x3E\x0D\x0A\x20\x20\x20\x20\x3Cpath\x20class\x3D\x22line\x22\x20fill\x3D\x22none\x22\x20stroke\x3D\x22\x23000\x22\x20stroke\x2Dwidth\x3D\x222\x22\x20stroke\x2Dlinecap\x3D\x22round\x22\x20stroke\x2Dlinejoin\x3D\x22round\x22\x20stroke\x2Dmiterlimit\x3D\x2210\x22\x20d\x3D\x22M33\x2031h6M5\x2031h2\x22\x2F\x3E\x0D\x0A\x0D\x0A\x20\x20\x20\x20\x3Cpath\x20class\x3D\x22line\x22\x20fill\x3D\x22none\x22\x20stroke\x3D\x22\x23000\x22\x20stroke\x2Dwidth\x3D\x222\x22\x20stroke\x2Dmiterlimit\x3D\x2210\x22\x20d\x3D\x22M9\x203v41M37\x2018.2C25.9\x2014\x2020.1\x2024\x209\x2019.8v\x2D16C20.1\x208\x2025.9\x2D2\x2037\x202.2v16z\x22\x2F\x3E\x0D\x0A\x0D\x0A\x20\x20\x20\x20\x3Cpath\x20d\x3D\x22M39\x2019V8c0\x2D1.1\x2D.9\x2D2\x2D2\x2D2H3c\x2D1.1\x200\x2D2\x20.9\x2D2\x202v22c0\x201.1.9\x202\x202\x202h30M27\x2032l1.3\x204.5c.4\x201.3\x2D.6\x202.5\x2D1.9\x202.5h\x2D8.7c\x2D1.3\x200\x2D2.3\x2D1.3\x2D1.9\x2D2.5L17\x2032M1\x2027h32\x22\x20class\x3D\x22line\x22\x20fill\x3D\x22none\x22\x20stroke\x3D\x22\x23000\x22\x20stroke\x2Dwidth\x3D\x222\x22\x20stroke\x2Dmiterlimit\x3D\x2210\x22\x2F\x3E\x0D\x0A\x20\x20\x20\x20\x3Cg\x20class\x3D\x22line\x22\x20fill\x3D\x22none\x22\x20stroke\x3D\x22\x23000\x22\x20stroke\x2Dwidth\x3D\x222\x22\x20stroke\x2Dmiterlimit\x3D\x2210\x22\x3E\x0D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x3Cpath\x20d\x3D\x22M42\x2039h\x2D8c\x2D.6\x200\x2D1\x2D.4\x2D1\x2D1V20c0\x2D.6.4\x2D1\x201\x2D1h8c.6\x200\x201\x20.4\x201\x201v18c0\x20.6\x2D.4\x201\x2D1\x201zM33\x2023h10M33\x2035h10\x22\x2F\x3E\x0D\x0A\x20\x20\x20\x20\x3C\x2Fg\x3E\x0D\x0A\x0D\x0A\x20\x20\x20\x20\x3Cpath\x20d\x3D\x22M42\x206c0\x2D2.8\x2D9\x2D5\x2D20\x2D5S2\x203.2\x202\x206v32c0\x202.8\x209\x205\x2020\x205s20\x2D2.2\x2020\x2D5V6z\x22\x20class\x3D\x22line\x22\x20fill\x3D\x22none\x22\x20stroke\x3D\x22\x23000\x22\x20stroke\x2Dwidth\x3D\x222\x22\x20stroke\x2Dmiterlimit\x3D\x2210\x22\x2F\x3E\x0D\x0A\x20\x20\x20\x20\x3Cpath\x20d\x3D\x22M42\x206c0\x202.8\x2D9\x205\x2D20\x205S2\x208.8\x202\x206M42\x2017c0\x202.8\x2D9\x205\x2D20\x205S2\x2019.8\x202\x2017M42\x2027c0\x202.8\x2D9\x205\x2D20\x205S2\x2029.8\x202\x2027\x22\x20class\x3D\x22line\x22\x20fill\x3D\x22none\x22\x20stroke\x3D\x22\x23000\x22\x20stroke\x2Dwidth\x3D\x222\x22\x20stroke\x2Dmiterlimit\x3D\x2210\x22\x2F\x3E\x0D\x0A\x0D\x0A\x20\x20\x20\x20\x3Cpath\x20d\x3D\x22M33.1\x2018.3c\x2D.7\x200\x2D1.4.3\x2D2\x20.8\x2D.4\x2D1.3\x2D1.6\x2D2.2\x2D3\x2D2.2\x2D1\x200\x2D1.8.4\x2D2.4\x201.1\x2D.5\x2D1\x2D1.6\x2D1.7\x2D2.7\x2D1.7\x2D1.3\x200\x2D2.6.8\x2D3.1\x202V4c0\x2D1.7\x2D1.3\x2D3\x2D3\x2D3s\x2D3\x201.3\x2D3\x203v19.9c\x2D1.7\x2D2.1\x2D3.8\x2D3.7\x2D6.5\x2D4\x2D3.6\x2D.4\x2D4.2\x202.8\x2D2.9\x203.5\x203.6\x201.8\x206.9\x207\x208.5\x2010.4\x202.1\x205.2\x202.5\x209.3\x2011.3\x209.3\x204.8\x200\x207.9\x2D1.6\x209.7\x2D5.6\x201.5\x2D3.3\x202.1\x2D7.1\x202.1\x2D14v\x2D1.9c.2\x2D1.8\x2D1.3\x2D3.4\x2D3\x2D3.3z\x22\x20class\x3D\x22line\x22\x20fill\x3D\x22none\x22\x20stroke\x3D\x22\x23000\x22\x20stroke\x2Dwidth\x3D\x222\x22\x20stroke\x2Dlinejoin\x3D\x22round\x22\x20stroke\x2Dmiterlimit\x3D\x2210\x22\x2F\x3E\x0D\x0A\x0D\x0A\x20\x20\x20\x20\x3Cpath\x20class\x3D\x22line\x22\x20fill\x3D\x22none\x22\x20stroke\x3D\x22\x23000\x22\x20stroke\x2Dwidth\x3D\x222\x22\x20stroke\x2Dlinejoin\x3D\x22round\x22\x20stroke\x2Dmiterlimit\x3D\x2210\x22\x20d\x3D\x22M6\x201l6.5\x2040.5\x207.9\x2D8.9L26.9\x2043l7.6\x2D4.8\x2D6.4\x2D10.3\x2011.4\x2D3.3z\x22\x2F\x3E\x0D\x0A\x0D\x0A\x20\x20\x20\x20\x3Ccircle\x20cx\x3D\x2222\x22\x20cy\x3D\x2222\x22\x20r\x3D\x2221\x22\x20class\x3D\x22line\x22\x20fill\x3D\x22none\x22\x20stroke\x3D\x22\x23000\x22\x20stroke\x2Dwidth\x3D\x222\x22\x20stroke\x2Dmiterlimit\x3D\x2210\x22\x2F\x3E\x0D\x0A\x20\x20\x20\x20\x3Cpath\x20class\x3D\x22line\x22\x20fill\x3D\x22none\x22\x20stroke\x3D\x22\x23000\x22\x20stroke\x2Dwidth\x3D\x222\x22\x20stroke\x2Dmiterlimit\x3D\x2210\x22\x20d\x3D\x22M11.4\x2027.7L22\x2017.1l10.6\x2010.6\x22\x2F\x3E\x0D\x0A\x0D\x0A\x20\x20\x20\x20\x3Ccircle\x20cx\x3D\x2222\x22\x20cy\x3D\x2222\x22\x20r\x3D\x2221\x22\x20class\x3D\x22line\x22\x20fill\x3D\x22none\x22\x20stroke\x3D\x22\x23000\x22\x20stroke\x2Dwidth\x3D\x222\x22\x20stroke\x2Dmiterlimit\x3D\x2210\x22\x2F\x3E\x0D\x0A\x20\x20\x20\x20\x3Cpath\x20class\x3D\x22line\x22\x20fill\x3D\x22none\x22\x20stroke\x3D\x22\x23000\x22\x20stroke\x2Dwidth\x3D\x222\x22\x20stroke\x2Dmiterlimit\x3D\x2210\x22\x20d\x3D\x22M16.7\x2011.4L27.3\x2022\x2016.7\x2032.6\x22\x2F\x3E\x0D\x0A\x0D\x0A\x20\x20\x20\x20\x3Ccircle\x20cx\x3D\x2222\x22\x20cy\x3D\x2222\x22\x20r\x3D\x2221\x22\x20class\x3D\x22line\x22\x20fill\x3D\x22none\x22\x20stroke\x3D\x22\x23000\x22\x20stroke\x2Dwidth\x3D\x222\x22\x20stroke\x2Dmiterlimit\x3D\x2210\x22\x2F\x3E\x0D\x0A\x20\x20\x20\x20\x3Cpath\x20class\x3D\x22line\x22\x20fill\x3D\x22none\x22\x20stroke\x3D\x22\x23000\x22\x20stroke\x2Dwidth\x3D\x222\x22\x20stroke\x2Dmiterlimit\x3D\x2210\x22\x20d\x3D\x22M27.3\x2032.6L16.7\x2022l10.6\x2D10.6\x22\x2F\x3E\x0D\x0A\x0D\x0A\x20\x20\x20\x20\x3Ccircle\x20cx\x3D\x2222\x22\x20cy\x3D\x2222\x22\x20r\x3D\x2221\x22\x20class\x3D\x22line\x22\x20fill\x3D\x22none\x22\x20stroke\x3D\x22\x23000\x22\x20stroke\x2Dwidth\x3D\x222\x22\x20stroke\x2Dmiterlimit\x3D\x2210\x22\x2F\x3E\x0D\x0A\x20\x20\x20\x20\x3Cpath\x20class\x3D\x22line\x22\x20fill\x3D\x22none\x22\x20stroke\x3D\x22\x23000\x22\x20stroke\x2Dwidth\x3D\x222\x22\x20stroke\x2Dmiterlimit\x3D\x2210\x22\x20d\x3D\x22M11.4\x2016.7L22\x2027.3l10.6\x2D10.6\x22\x2F\x3E\x0D\x0A\x0D\x0A\x20\x20\x20\x20\x3Ccircle\x20cx\x3D\x2222\x22\x20cy\x3D\x2222\x22\x20r\x3D\x2221\x22\x20class\x3D\x22line\x22\x20fill\x3D\x22none\x22\x20stroke\x3D\x22\x23000\x22\x20stroke\x2Dwidth\x3D\x222\x22\x20stroke\x2Dmiterlimit\x3D\x2210\x22\x2F\x3E\x0D\x0A\x20\x20\x20\x20\x3Cg\x20class\x3D\x22line\x22\x20fill\x3D\x22none\x22\x20stroke\x3D\x22\x23000\x22\x20stroke\x2Dwidth\x3D\x222\x22\x20stroke\x2Dmiterlimit\x3D\x2210\x22\x3E\x0D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x3Cpath\x20d\x3D\x22M12.1\x2021.1l9.9\x2D9.9\x209.9\x209.9M22\x2034.2v\x2D23\x22\x2F\x3E\x0D\x0A\x20\x20\x20\x20\x3C\x2Fg\x3E\x0D\x0A\x0D\x0A\x20\x20\x20\x20\x3Ccircle\x20cx\x3D\x2222\x22\x20cy\x3D\x2222\x22\x20r\x3D\x2221\x22\x20class\x3D\x22line\x22\x20fill\x3D\x22none\x22\x20stroke\x3D\x22\x23000\x22\x20stroke\x2Dwidth\x3D\x222\x22\x20stroke\x2Dmiterlimit\x3D\x2210\x22\x2F\x3E\x0D\x0A\x20\x20\x20\x20\x3Cg\x20class\x3D\x22line\x22\x20fill\x3D\x22none\x22\x20stroke\x3D\x22\x23000\x22\x20stroke\x2Dwidth\x3D\x222\x22\x20stroke\x2Dmiterlimit\x3D\x2210\x22\x3E\x0D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x3Cpath\x20d\x3D\x22M22.9\x2012.1l9.9\x209.9\x2D9.9\x209.9M9.8\x2022h23\x22\x2F\x3E\x0D\x0A\x20\x20\x20\x20\x3C\x2Fg\x3E\x0D\x0A\x0D\x0A\x20\x20\x20\x20\x3Ccircle\x20cx\x3D\x2222\x22\x20cy\x3D\x2222\x22\x20r\x3D\x2221\x22\x20class\x3D\x22line\x22\x20fill\x3D\x22none\x22\x20stroke\x3D\x22\x23000\x22\x20stroke\x2Dwidth\x3D\x222\x22\x20stroke\x2Dmiterlimit\x3D\x2210\x22\x2F\x3E\x0D\x0A\x20\x20\x20\x20\x3Cg\x20class\x3D\x22line\x22\x20fill\x3D\x22none\x22\x20stroke\x3D\x22\x23000\x22\x20stroke\x2Dwidth\x3D\x222\x22\x20stroke\x2Dmiterlimit\x3D\x2210\x22\x3E\x0D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x3Cpath\x20d\x3D\x22M19.7\x2031.9L9.8\x2022l9.9\x2D9.9M32.8\x2022h\x2D23\x22\x2F\x3E\x0D\x0A\x20\x20\x20\x20\x3C\x2Fg\x3E\x0D\x0A\x0D\x0A\x20\x20\x20\x20\x3Ccircle\x20cx\x3D\x2222\x22\x20cy\x3D\x2222\x22\x20r\x3D\x2221\x22\x20class\x3D\x22line\x22\x20fill\x3D\x22none\x22\x20stroke\x3D\x22\x23000\x22\x20stroke\x2Dwidth\x3D\x222\x22\x20stroke\x2Dmiterlimit\x3D\x2210\x22\x2F\x3E\x0D\x0A\x20\x20\x20\x20\x3Cg\x20class\x3D\x22line\x22\x20fill\x3D\x22none\x22\x20stroke\x3D\x22\x23000\x22\x20stroke\x2Dwidth\x3D\x222\x22\x20stroke\x2Dmiterlimit\x3D\x2210\x22\x3E\x0D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x3Cpath\x20d\x3D\x22M31.9\x2024.3L22\x2034.2l\x2D9.9\x2D9.9M22\x2011.2v23\x22\x2F\x3E\x0D\x0A\x20\x20\x20\x20\x3C\x2Fg\x3E\x0D\x0A\x0D\x0A\x20\x20\x20\x20\x3Cg\x20class\x3D\x22line\x22\x20fill\x3D\x22none\x22\x20stroke\x3D\x22\x23000\x22\x20stroke\x2Dwidth\x3D\x222\x22\x20stroke\x2Dmiterlimit\x3D\x2210\x22\x3E\x0D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x3Cpath\x20d\x3D\x22M1\x2033V3c0\x2D1.1.9\x2D2\x202\x2D2h38c1.1\x200\x202\x20.9\x202\x202v30c0\x201.1\x2D.9\x202\x2D2\x202H3c\x2D1.1\x200\x2D2\x2D.9\x2D2\x2D2zM43\x2027H1\x22\x20stroke\x2Dlinejoin\x3D\x22round\x22\x2F\x3E\x0D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x3Cpath\x20d\x3D\x22M25.653\x2015.832l\x2D6.197\x204.13c\x2D.665.444\x2D1.555\x2D.032\x2D1.555\x2D.83v\x2D8.264c0\x2D.8.89\x2D1.275\x201.557\x2D.832l6.197\x204.13c.594.398.594\x201.27\x200\x201.666z\x22\x2F\x3E\x0D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x3Cpath\x20stroke\x2Dlinejoin\x3D\x22round\x22\x20d\x3D\x22M5\x2031h34\x22\x2F\x3E\x0D\x0A\x20\x20\x20\x20\x3C\x2Fg\x3E\x0D\x0A\x0D\x0A\x20\x20\x20\x20\x3Cpath\x20d\x3D\x22M40.476\x2040.98c1.21\x200\x202.144\x2D1.068\x201.982\x2D2.267l\x2D.005\x2D.037c\x2D.273\x2D2.062\x2D1.634\x2D3.818\x2D3.58\x2D4.555\x2D3.146\x2D1.19\x2D7.507\x2D2.84\x2D8.05\x2D3.04\x2D.4\x2D.14\x2D1.08\x2D1.3\x2D1.32\x2D1.84\x2D.24\x2D.52\x2D1.86\x2D1.58\x2D2.28\x2D1.64l\x2D.06\x2D2.2\x207.26\x2D2.68s\x2D1.58\x2D2.94\x2D2.06\x2D4.58c\x2D.48\x2D1.64\x2D.78\x2D4.2\x2D.78\x2D4.44\x200\x2D.24\x2D.98\x2D6.12\x2D1.52\x2D7.26\x2D.52\x2D1.14\x2D1.26\x2D2.7\x2D2.5\x2D3.46\x2D1.22\x2D.76\x2D3.06\x2D1.84\x2D5.7\x2D1.98h\x2D.24c\x2D2.64.14\x2D4.48\x201.22\x2D5.7\x201.98\x2D1.24.76\x2D1.98\x202.32\x2D2.5\x203.46\x2D.54\x201.14\x2D1.52\x207.02\x2D1.52\x207.26\x200\x20.24\x2D.28\x202.9\x2D.74\x204.54\x2D.48\x201.64\x2D2.1\x204.48\x2D2.1\x204.48l7.26\x202.68\x2D.06\x202.2c\x2D.42.06\x2D2.04\x201.12\x2D2.28\x201.64\x2D.24.54\x2D.92\x201.7\x2D1.32\x201.84\x2D.53.197\x2D4.715\x201.704\x2D7.843\x202.83\x2D2.07.744\x2D3.523\x202.596\x2D3.8\x204.777l\x2D.005.038C.863\x2039.92\x201.795\x2040.98\x203\x2040.98h37.476z\x22\x20class\x3D\x22line\x22\x20fill\x3D\x22none\x22\x20stroke\x3D\x22\x23000\x22\x20stroke\x2Dwidth\x3D\x222\x22\x20stroke\x2Dlinejoin\x3D\x22round\x22\x20stroke\x2Dmiterlimit\x3D\x2210\x22\x2F\x3E\x0D\x0A\x0D\x0A\x20\x20\x20\x20\x3Cg\x20class\x3D\x22line\x22\x20fill\x3D\x22none\x22\x20stroke\x3D\x22\x23000\x22\x20stroke\x2Dwidth\x3D\x222\x22\x20stroke\x2Dmiterlimit\x3D\x2210\x22\x3E\x0D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x3Cpath\x20d\x3D\x22M39\x2043H3c\x2D1.1\x200\x2D2\x2D.9\x2D2\x2D2V3c0\x2D1.1.9\x2D2\x202\x2D2h36c1.1\x200\x202\x20.9\x202\x202v38c0\x201.1\x2D.9\x202\x2D2\x202zM9\x201v42M33\x201v42M33\x2022H9\x22\x20stroke\x2Dlinejoin\x3D\x22round\x22\x2F\x3E\x0D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x3Cpath\x20d\x3D\x22M3\x208h2.993V5M3\x2014h2.993v\x2D3M3\x2020h2.993v\x2D3M3\x2026h2.993v\x2D3M3\x2032h2.993v\x2D3M3\x2038h2.993v\x2D3M35\x208h2.993V5M35\x2014h2.993v\x2D3M35\x2020h2.993v\x2D3M35\x2026h2.993v\x2D3M35\x2032h2.993v\x2D3M35\x2038h2.993v\x2D3\x22\x2F\x3E\x0D\x0A\x20\x20\x20\x20\x3C\x2Fg\x3E\x0D\x0A\x0D\x0A\x20\x20\x20\x20\x3Cpath\x20d\x3D\x22M1\x2038.207c0\x2D1.983\x201.168\x2D3.777\x202.983\x2D4.575\x202.325\x2D1.022\x205.505\x2D2.42\x207.638\x2D3.366\x201.925\x2D.85\x202.34\x2D1.363\x204.28\x2D2.235\x200\x200\x20.2\x2D1.012.13\x2D1.615h1.516s.347.206\x200\x2D2.176c0\x200\x2D1.85\x2D.5\x2D1.936\x2D4.294\x200\x200\x2D1.39.476\x2D1.475\x2D1.823\x2D.058\x2D1.56\x2D1.243\x2D2.912.462\x2D4.03l\x2D.867\x2D2.38s\x2D1.733\x2D9.617\x203.25\x2D8.206c\x2D2.1\x2D2.56\x2011.92\x2D5.117\x2012.83\x203\x200\x200\x20.65\x204.38\x200\x207.38\x200\x200\x202.05\x2D.24.68\x203.765\x200\x200\x2D.75\x202.882\x2D1.907\x202.235\x200\x200\x20.19\x203.646\x2D1.632\x204.265\x200\x200\x20.13\x201.94.13\x202.073l1.736.265s\x2D.26\x201.588.043\x201.764c0\x200\x202.49\x201.29\x204.506\x202.074\x202.378.917\x204.86\x202.002\x206.714\x202.84\x201.788.81\x202.932\x202.592\x202.93\x204.555\x200\x20.847.003\x201.63.01\x202.007.023\x201.224\x2D.873\x202.27\x2D2.1\x202.27H3.105C1.943\x2042\x201\x2041.057\x201\x2039.895v\x2D1.688z\x22\x20class\x3D\x22line\x22\x20fill\x3D\x22none\x22\x20stroke\x3D\x22\x23000\x22\x20stroke\x2Dwidth\x3D\x222\x22\x20stroke\x2Dlinejoin\x3D\x22round\x22\x20stroke\x2Dmiterlimit\x3D\x2210\x22\x2F\x3E\x0D\x0A\x0D\x0A\x20\x20\x20\x20\x3Cg\x20class\x3D\x22line\x22\x20fill\x3D\x22none\x22\x20stroke\x3D\x22\x23000\x22\x20stroke\x2Dwidth\x3D\x222\x22\x20stroke\x2Dmiterlimit\x3D\x2210\x22\x3E\x0D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x3Cpath\x20d\x3D\x22M17\x2014.414h8c1.105\x200\x202\x20.895\x202\x202v22c0\x201.105\x2D.895\x202\x2D2\x202H3c\x2D1.105\x200\x2D2\x2D.895\x2D2\x2D2v\x2D22c0\x2D1.105.895\x2D2\x202\x2D2h8M14\x2027.414v\x2D26M8.002\x207.412L14\x201.414l5.998\x205.998\x22\x2F\x3E\x0D\x0A\x20\x20\x20\x20\x3C\x2Fg\x3E\x0D\x0A\x0D\x0A\x20\x20\x20\x20\x3Cg\x20class\x3D\x22line\x22\x20fill\x3D\x22none\x22\x20stroke\x3D\x22\x23000\x22\x20stroke\x2Dwidth\x3D\x222\x22\x20stroke\x2Dmiterlimit\x3D\x2210\x22\x3E\x0D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x3Cpath\x20d\x3D\x22M1\x201h42v28H1z\x22\x2F\x3E\x0D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x3Cpath\x20stroke\x2Dlinejoin\x3D\x22round\x22\x20d\x3D\x22M17\x2029v4M27\x2029v4M32\x2033H12\x22\x2F\x3E\x0D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x3Cpath\x20d\x3D\x22M38\x2026h2M35\x2026h2\x22\x2F\x3E\x0D\x0A\x20\x20\x20\x20\x3C\x2Fg\x3E\x0D\x0A\x0D\x0A\x20\x20\x20\x20\x3Cg\x20class\x3D\x22line\x22\x20fill\x3D\x22none\x22\x20stroke\x3D\x22\x23000\x22\x20stroke\x2Dwidth\x3D\x222\x22\x20stroke\x2Dmiterlimit\x3D\x2210\x22\x3E\x0D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x3Cpath\x20d\x3D\x22M4\x205l4\x2038h24l4\x2D38zM0\x205h40M12\x205V1h16v4\x22\x2F\x3E\x0D\x0A\x20\x20\x20\x20\x3C\x2Fg\x3E\x0D\x0A\x0D\x0A\x20\x20\x20\x20\x3Cpath\x20class\x3D\x22line\x22\x20fill\x3D\x22none\x22\x20stroke\x3D\x22currentColor\x22\x20stroke\x2Dwidth\x3D\x222\x22\x20stroke\x2Dmiterlimit\x3D\x2210\x22\x20d\x3D\x22M1\x200v32h43.004\x22\x2F\x3E\x0D\x0A\x20\x20\x20\x20\x3Cpath\x20class\x3D\x22line\x22\x20fill\x3D\x22none\x22\x20stroke\x3D\x22currentColor\x22\x20stroke\x2Dwidth\x3D\x222\x22\x20stroke\x2Dlinejoin\x3D\x22round\x22\x20stroke\x2Dmiterlimit\x3D\x2210\x22\x20d\x3D\x22M43\x2032H1v\x2D5l14\x2D14\x2014\x208L43\x204z\x22\x2F\x3E\x0D\x0A\x0D\x0A\x20\x20\x20\x20\x3Cg\x20clip\x2Drule\x3D\x22evenodd\x22\x20class\x3D\x22line\x22\x20fill\x3D\x22none\x22\x20stroke\x3D\x22\x23000\x22\x20stroke\x2Dwidth\x3D\x222\x22\x20stroke\x2Dmiterlimit\x3D\x2210\x22\x3E\x0D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x3Cpath\x20d\x3D\x22M40.555\x2025.002l\x2D15.56\x2015.56c\x2D.78.78\x2D2.04.785\x2D2.813.012L1.576\x2019.968c\x2D.373\x2D.374\x2D.58\x2D.882\x2D.576\x2D1.413l.143\x2D15.557C1.153\x201.9\x202.05\x201.01\x203.148\x201.01L18.558\x201c.525\x200\x201.027.207\x201.397.576L40.568\x2022.19c.772.772.767\x202.032\x2D.013\x202.812z\x22\x2F\x3E\x0D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x3Ccircle\x20cx\x3D\x229.44\x22\x20cy\x3D\x229.447\x22\x20r\x3D\x223\x22\x2F\x3E\x0D\x0A\x20\x20\x20\x20\x3C\x2Fg\x3E\x0D\x0A\x0D\x0A\x20\x20\x20\x20\x3Cg\x20class\x3D\x22line\x22\x20fill\x3D\x22none\x22\x20stroke\x3D\x22\x23000\x22\x20stroke\x2Dwidth\x3D\x222\x22\x20stroke\x2Dmiterlimit\x3D\x2210\x22\x3E\x0D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x3Cpath\x20d\x3D\x22M29\x2043H3c\x2D1.105\x200\x2D2\x2D.895\x2D2\x2D2V3c0\x2D1.105.895\x2D2\x202\x2D2h26c1.105\x200\x202\x20.895\x202\x202v38c0\x201.105\x2D.895\x202\x2D2\x202zM1\x2037h30M1\x207h30M15\x2040h2\x22\x2F\x3E\x0D\x0A\x20\x20\x20\x20\x3C\x2Fg\x3E\x0D\x0A\x0D\x0A\x20\x20\x20\x20\x3Cg\x20class\x3D\x22line\x22\x20fill\x3D\x22none\x22\x20stroke\x3D\x22\x23000\x22\x20stroke\x2Dwidth\x3D\x222\x22\x20stroke\x2Dmiterlimit\x3D\x2210\x22\x3E\x0D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x3Cpath\x20d\x3D\x22M1\x201h42v32H1z\x22\x2F\x3E\x0D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x3Cpath\x20stroke\x2Dlinejoin\x3D\x22round\x22\x20d\x3D\x22M43\x209H1M43\x2017H1M43\x2025H1M4\x205h8M4\x2013h8M4\x2021h8M4\x2029h8M18\x205h8M32\x205h8M15\x201v32M29\x201v32\x22\x2F\x3E\x0D\x0A\x20\x20\x20\x20\x3C\x2Fg\x3E\x0D\x0A\x0D\x0A\x20\x20\x20\x20\x3Cpath\x20d\x3D\x22M22.652\x202.15l4.53\x209.666c.282.604.848\x201.027\x201.507\x201.128l10.29\x201.575c1.61.244\x202.265\x202.205\x201.13\x203.37l\x2D7.576\x207.78c\x2D.442.453\x2D.643\x201.09\x2D.54\x201.716l1.77\x2010.87c.267\x201.65\x2D1.483\x202.88\x2D2.944\x202.072l\x2D9.012\x2D4.99c\x2D.603\x2D.335\x2D1.335\x2D.335\x2D1.938\x200l\x2D9.013\x204.99c\x2D1.46.808\x2D3.21\x2D.424\x2D2.943\x2D2.072l1.77\x2D10.87c.102\x2D.627\x2D.1\x2D1.264\x2D.54\x2D1.718L1.567\x2017.89c\x2D1.135\x2D1.165\x2D.478\x2D3.126\x201.13\x2D3.373L12.99\x2012.94c.66\x2D.1\x201.223\x2D.523\x201.506\x2D1.127l4.53\x2D9.665c.722\x2D1.534\x202.905\x2D1.534\x203.625\x200z\x22\x20clip\x2Drule\x3D\x22evenodd\x22\x20class\x3D\x22line\x22\x20fill\x3D\x22none\x22\x20stroke\x3D\x22\x23000\x22\x20stroke\x2Dwidth\x3D\x222\x22\x20stroke\x2Dmiterlimit\x3D\x2210\x22\x2F\x3E\x0D\x0A\x0D\x0A\x20\x20\x20\x20\x3Cg\x20class\x3D\x22line\x22\x20fill\x3D\x22none\x22\x20stroke\x3D\x22\x23000\x22\x20stroke\x2Dwidth\x3D\x222\x22\x20stroke\x2Dmiterlimit\x3D\x2210\x22\x3E\x0D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x3Cpath\x20d\x3D\x22M9\x2023.002H2c\x2D.552\x200\x2D1\x2D.448\x2D1\x2D1v\x2D12c0\x2D.552.448\x2D1\x201\x2D1h7v14zM19.445\x2029.965L9\x2023.002v\x2D14l10.4\x2D7.8c.66\x2D.494\x201.6\x2D.024\x201.6.8v27.13c0\x20.8\x2D.89\x201.276\x2D1.555.833zM27\x2016.002h10M25.464\x2022.466l7.072\x207.07M25.464\x209.537l7.072\x2D7.07\x22\x2F\x3E\x0D\x0A\x20\x20\x20\x20\x3C\x2Fg\x3E\x0D\x0A\x0D\x0A\x20\x20\x20\x20\x3Cg\x20class\x3D\x22line\x22\x20fill\x3D\x22none\x22\x20stroke\x3D\x22\x23000\x22\x20stroke\x2Dwidth\x3D\x222\x22\x20stroke\x2Dmiterlimit\x3D\x2210\x22\x3E\x0D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x3Cpath\x20d\x3D\x22M9\x2034H3c\x2D1.105\x200\x2D2\x2D.895\x2D2\x2D2V16c0\x2D1.105.895\x2D2\x202\x2D2h38c1.105\x200\x202\x20.895\x202\x202v16c0\x201.105\x2D.895\x202\x2D2\x202h\x2D6\x22\x20clip\x2Drule\x3D\x22evenodd\x22\x2F\x3E\x0D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x3Cpath\x20clip\x2Drule\x3D\x22evenodd\x22\x20d\x3D\x22M9\x2029h26v13H9zM9\x2014V1h26v13\x22\x2F\x3E\x0D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x3Cpath\x20d\x3D\x22M1\x2022h42\x22\x2F\x3E\x0D\x0A\x20\x20\x20\x20\x3C\x2Fg\x3E\x0D\x0A\x0D\x0A\x20\x20\x20\x20\x3Cg\x20class\x3D\x22line\x22\x20fill\x3D\x22none\x22\x20stroke\x3D\x22\x23000\x22\x20stroke\x2Dwidth\x3D\x222\x22\x20stroke\x2Dmiterlimit\x3D\x2210\x22\x3E\x0D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x3Ccircle\x20cx\x3D\x2222\x22\x20cy\x3D\x2222\x22\x20r\x3D\x2221\x22\x2F\x3E\x0D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x3Cpath\x20d\x3D\x22M11\x2022h22M22\x2010v23\x22\x2F\x3E\x0D\x0A\x20\x20\x20\x20\x3C\x2Fg\x3E\x0D\x0A\x0D\x0A\x20\x20\x20\x20\x3Cg\x20class\x3D\x22line\x22\x20fill\x3D\x22none\x22\x20stroke\x3D\x22\x23000\x22\x20stroke\x2Dwidth\x3D\x222\x22\x20stroke\x2Dmiterlimit\x3D\x2210\x22\x3E\x0D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x3Cpath\x20d\x3D\x22M41\x2033H3c\x2D1.105\x200\x2D2\x2D.895\x2D2\x2D2V3c0\x2D1.105.895\x2D2\x202\x2D2h38c1.105\x200\x202\x20.895\x202\x202v28c0\x201.105\x2D.895\x202\x2D2\x202z\x22\x2F\x3E\x0D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x3Cpath\x20stroke\x2Dlinejoin\x3D\x22round\x22\x20d\x3D\x22M1\x2022.417l13\x2D13\x2012.708\x2015.708\x209.25\x2D6.25L43.168\x2028\x22\x2F\x3E\x0D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x3Ccircle\x20cx\x3D\x2232.167\x22\x20cy\x3D\x2210\x22\x20r\x3D\x223\x22\x2F\x3E\x0D\x0A\x20\x20\x20\x20\x3C\x2Fg\x3E\x0D\x0A\x0D\x0A\x20\x20\x20\x20\x3Cpath\x20d\x3D\x22M39\x2019.872L18.588\x2040.285c\x2D4.01\x204.01\x2D10.57\x204.01\x2D14.58\x200s\x2D4.01\x2D10.57\x200\x2D14.58l22.6\x2D22.6c2.807\x2D2.807\x207.4\x2D2.807\x2010.206\x200\x202.807\x202.807\x202.807\x207.4\x200\x2010.206L16.4\x2033.726c\x2D1.604\x201.604\x2D4.228\x201.604\x2D5.832\x200s\x2D1.604\x2D4.228\x200\x2D5.832L28.794\x209.666\x22\x20class\x3D\x22line\x22\x20fill\x3D\x22none\x22\x20stroke\x3D\x22\x23000\x22\x20stroke\x2Dwidth\x3D\x222\x22\x20stroke\x2Dmiterlimit\x3D\x2210\x22\x2F\x3E\x0D\x0A\x0D\x0A\x20\x20\x20\x20\x3Cg\x20class\x3D\x22line\x22\x20fill\x3D\x22none\x22\x20stroke\x3D\x22\x23000\x22\x20stroke\x2Dwidth\x3D\x222\x22\x20stroke\x2Dmiterlimit\x3D\x2210\x22\x3E\x0D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x3Cpath\x20d\x3D\x22M41\x2043H3c\x2D1.105\x200\x2D2\x2D.895\x2D2\x2D2V6c0\x2D1.105.895\x2D2\x202\x2D2h38c1.105\x200\x202\x20.895\x202\x202v35c0\x201.105\x2D.895\x202\x2D2\x202zM1\x2015h42M9\x200v8M35\x200v8M5\x2021h34M5\x2026h34M5\x2031h34M5\x2036h34\x22\x2F\x3E\x0D\x0A\x20\x20\x20\x20\x3C\x2Fg\x3E\x0D\x0A\x0D\x0A\x20\x20\x20\x20\x3Cg\x20class\x3D\x22line\x22\x20fill\x3D\x22none\x22\x20stroke\x3D\x22\x23000\x22\x20stroke\x2Dwidth\x3D\x222\x22\x20stroke\x2Dmiterlimit\x3D\x2210\x22\x3E\x0D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x3Cpath\x20d\x3D\x22M36\x2010.623l\x2D23\x204V6.305c0\x2D.972.7\x2D1.804\x201.657\x2D1.97l19\x2D3.304C34.88.82\x2036\x201.76\x2036\x203v7.623zM8\x2042.623H6c\x2D2.76\x200\x2D5\x2D2.24\x2D5\x2D5s2.24\x2D5\x205\x2D5h7v5c0\x202.76\x2D2.24\x205\x2D5\x205zM12.995\x2014.626v22.85M31\x2038.623h\x2D2c\x2D2.76\x200\x2D5\x2D2.24\x2D5\x2D5s2.24\x2D5\x205\x2D5h7v5c0\x202.76\x2D2.24\x205\x2D5\x205zM35.995\x2010.626v22.85\x22\x2F\x3E\x0D\x0A\x20\x20\x20\x20\x3C\x2Fg\x3E\x0D\x0A\x0D\x0A\x20\x20\x20\x20\x3Cg\x20class\x3D\x22line\x22\x20fill\x3D\x22none\x22\x20stroke\x3D\x22\x23000\x22\x20stroke\x2Dwidth\x3D\x222\x22\x20stroke\x2Dmiterlimit\x3D\x2210\x22\x3E\x0D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x3Cpath\x20d\x3D\x22M21\x2043H3c\x2D1.105\x200\x2D2\x2D.895\x2D2\x2D2V3c0\x2D1.105.895\x2D2\x202\x2D2h18c1.105\x200\x202\x20.895\x202\x202v38c0\x201.105\x2D.895\x202\x2D2\x202zM1\x2037h22M1\x207h22M10\x204h4M11\x2040h2\x22\x2F\x3E\x0D\x0A\x20\x20\x20\x20\x3C\x2Fg\x3E\x0D\x0A\x0D\x0A\x20\x20\x20\x20\x3Cg\x20class\x3D\x22line\x22\x20fill\x3D\x22none\x22\x20stroke\x3D\x22\x23000\x22\x20stroke\x2Dwidth\x3D\x222\x22\x20stroke\x2Dlinejoin\x3D\x22round\x22\x20stroke\x2Dmiterlimit\x3D\x2210\x22\x3E\x0D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x3Cpath\x20d\x3D\x22M40.962\x2018.79c.01\x2D.217.038\x2D.43.038\x2D.647C41\x208.675\x2032.046\x201\x2021\x201S1\x208.675\x201\x2018.143c0\x204.466\x202.01\x208.52\x205.275\x2011.572\x2D.612\x202.002\x2D1.97\x205.11\x2D4.83\x207.05\x200\x200\x206.747\x2D.76\x2011.067\x2D3.117\x202.58\x201.04\x205.45\x201.638\x208.49\x201.638.253\x200\x20.5\x2D.025.752\x2D.033\x22\x2F\x3E\x0D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x3Cpath\x20d\x3D\x22M29\x2013c7.732\x200\x2014\x205.373\x2014\x2012\x200\x203.127\x2D1.407\x205.965\x2D3.692\x208.1.428\x201.4\x201.38\x203.577\x203.382\x204.935\x200\x200\x2D4.724\x2D.533\x2D7.748\x2D2.182C33.136\x2036.58\x2031.128\x2037\x2029\x2037c\x2D7.732\x200\x2D14\x2D5.373\x2D14\x2D12s6.268\x2D12\x2014\x2D12z\x22\x2F\x3E\x0D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x3Ccircle\x20cx\x3D\x2221\x22\x20cy\x3D\x2225\x22\x20r\x3D\x222\x22\x2F\x3E\x0D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x3Ccircle\x20cx\x3D\x2229\x22\x20cy\x3D\x2225\x22\x20r\x3D\x222\x22\x2F\x3E\x0D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x3Ccircle\x20cx\x3D\x2237\x22\x20cy\x3D\x2225\x22\x20r\x3D\x222\x22\x2F\x3E\x0D\x0A\x20\x20\x20\x20\x3C\x2Fg\x3E\x0D\x0A\x0D\x0A\x20\x20\x20\x20\x3Cpath\x20d\x3D\x22M22\x201C10.402\x201\x201\x209.06\x201\x2019c0\x204.69\x202.11\x208.947\x205.538\x2012.15\x2D.643\x202.102\x2D2.07\x205.365\x2D5.073\x207.403\x200\x200\x207.086\x2D.8\x2011.62\x2D3.273C15.795\x2036.372\x2018.81\x2037\x2022\x2037c11.598\x200\x2021\x2D8.06\x2021\x2D18S33.598\x201\x2022\x201z\x22\x20class\x3D\x22line\x22\x20fill\x3D\x22none\x22\x20stroke\x3D\x22\x23000\x22\x20stroke\x2Dwidth\x3D\x222\x22\x20stroke\x2Dlinejoin\x3D\x22round\x22\x20stroke\x2Dmiterlimit\x3D\x2210\x22\x2F\x3E\x0D\x0A\x0D\x0A\x20\x20\x20\x20\x3Cg\x20class\x3D\x22line\x22\x20fill\x3D\x22none\x22\x20stroke\x3D\x22\x23000\x22\x20stroke\x2Dwidth\x3D\x222\x22\x20stroke\x2Dmiterlimit\x3D\x2210\x22\x3E\x0D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x3Cpath\x20d\x3D\x22M43\x2032.42l\x2D14\x205\x2D14\x2D5\x2D14\x205v\x2D31l14\x2D5\x2014\x205\x2014\x2D5zM15\x201.42v31M29\x206.42v31\x22\x2F\x3E\x0D\x0A\x20\x20\x20\x20\x3C\x2Fg\x3E\x0D\x0A\x0D\x0A\x20\x20\x20\x20\x3Cg\x20class\x3D\x22line\x22\x20fill\x3D\x22none\x22\x20stroke\x3D\x22\x23000\x22\x20stroke\x2Dwidth\x3D\x222\x22\x20stroke\x2Dmiterlimit\x3D\x2210\x22\x3E\x0D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x3Cpath\x20d\x3D\x22M1\x2014v24c0\x20.552.448\x201\x201\x201h30c.552\x200\x201\x2D.448\x201\x2D1V14c0\x2D.552\x2D.448\x2D1\x2D1\x2D1H2c\x2D.552\x200\x2D1\x20.448\x2D1\x201zM8\x2013V6c0\x2D2.76\x202.24\x2D5\x205\x2D5h8c2.76\x200\x205\x202.24\x205\x205v7\x22\x2F\x3E\x0D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x3Ccircle\x20cx\x3D\x2217\x22\x20cy\x3D\x2224\x22\x20r\x3D\x223\x22\x2F\x3E\x0D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x3Cpath\x20d\x3D\x22M17\x2027v5\x22\x2F\x3E\x0D\x0A\x20\x20\x20\x20\x3C\x2Fg\x3E\x0D\x0A\x0D\x0A\x20\x20\x20\x20\x3Cg\x20class\x3D\x22line\x22\x20fill\x3D\x22none\x22\x20stroke\x3D\x22\x23000\x22\x20stroke\x2Dwidth\x3D\x222\x22\x20stroke\x2Dlinejoin\x3D\x22round\x22\x20stroke\x2Dmiterlimit\x3D\x2210\x22\x3E\x0D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x3Cpath\x20d\x3D\x22M29\x2015c0\x2011.58\x2D14\x2028\x2D14\x2028S1\x2027.024\x201\x2015C1\x207.268\x207.268\x201\x2015\x201s14\x206.268\x2014\x2014z\x22\x2F\x3E\x0D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x3Ccircle\x20cx\x3D\x2215\x22\x20cy\x3D\x2215\x22\x20r\x3D\x226\x22\x2F\x3E\x0D\x0A\x20\x20\x20\x20\x3C\x2Fg\x3E\x0D\x0A\x0D\x0A\x20\x20\x20\x20\x3Cg\x20clip\x2Drule\x3D\x22evenodd\x22\x20class\x3D\x22line\x22\x20fill\x3D\x22none\x22\x20stroke\x3D\x22\x23000\x22\x20stroke\x2Dwidth\x3D\x222\x22\x20stroke\x2Dmiterlimit\x3D\x2210\x22\x3E\x0D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x3Cpath\x20d\x3D\x22M18.43\x2021.26l2.828\x202.827c1.556\x201.556\x204.1\x201.556\x205.657\x200L37.522\x2013.48c1.556\x2D1.556\x201.556\x2D4.1\x200\x2D5.657l\x2D5.657\x2D5.657c\x2D1.556\x2D1.556\x2D4.1\x2D1.556\x2D5.657\x200l\x2D9.192\x209.192\x22\x2F\x3E\x0D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x3Cpath\x20d\x3D\x22M21.26\x2018.43l\x2D2.83\x2D2.828c\x2D1.555\x2D1.556\x2D4.1\x2D1.556\x2D5.656\x200L2.167\x2026.208c\x2D1.556\x201.556\x2D1.556\x204.1\x200\x205.657l5.657\x205.657c1.556\x201.556\x204.1\x201.556\x205.657\x200l9.194\x2D9.192\x22\x2F\x3E\x0D\x0A\x20\x20\x20\x20\x3C\x2Fg\x3E\x0D\x0A\x0D\x0A\x20\x20\x20\x20\x3Cg\x20class\x3D\x22line\x22\x20fill\x3D\x22none\x22\x20stroke\x3D\x22\x23000\x22\x20stroke\x2Dwidth\x3D\x222\x22\x20stroke\x2Dmiterlimit\x3D\x2210\x22\x3E\x0D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x3Ccircle\x20cx\x3D\x2228.284\x22\x20cy\x3D\x2213\x22\x20r\x3D\x2212\x22\x2F\x3E\x0D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x3Cpath\x20d\x3D\x22M19.8\x2021.485L.706\x2040.577M2.828\x2038.456l7.07\x2D7.07\x204.244\x204.242\x2D7.07\x207.07z\x22\x2F\x3E\x0D\x0A\x20\x20\x20\x20\x3C\x2Fg\x3E\x0D\x0A\x0D\x0A\x20\x20\x20\x20\x3Cpath\x20d\x3D\x22M42.087\x2017.245C40.037\x2022.188\x2027.21\x2032.09\x2023.2\x2035.103c\x2D.712.535\x2D1.68.535\x2D2.393\x200\x2D4.01\x2D3.01\x2D16.843\x2D12.915\x2D18.894\x2D17.858C\x2D.543\x2011.323\x202.126\x204.47\x207.876\x201.94\x2013.126\x2D.37\x2019.126\x201.723\x2022\x206.61c2.874\x2D4.887\x208.874\x2D6.98\x2014.124\x2D4.67\x205.75\x202.53\x208.42\x209.383\x205.963\x2015.305z\x22\x20clip\x2Drule\x3D\x22evenodd\x22\x20class\x3D\x22line\x22\x20fill\x3D\x22none\x22\x20stroke\x3D\x22\x23000\x22\x20stroke\x2Dwidth\x3D\x222\x22\x20stroke\x2Dmiterlimit\x3D\x2210\x22\x2F\x3E\x0D\x0A\x0D\x0A\x20\x20\x20\x20\x3Cg\x20class\x3D\x22line\x22\x20fill\x3D\x22none\x22\x20stroke\x3D\x22\x23000\x22\x20stroke\x2Dwidth\x3D\x222\x22\x20stroke\x2Dmiterlimit\x3D\x2210\x22\x3E\x0D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x3Cpath\x20d\x3D\x22M42.723\x2023.448l\x2D21\x2D22\x2D21\x2022\x22\x2F\x3E\x0D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x3Cpath\x20d\x3D\x22M5.723\x2018.448v24h11v\x2D16h10v16h11v\x2D24\x22\x2F\x3E\x0D\x0A\x20\x20\x20\x20\x3C\x2Fg\x3E\x0D\x0A\x0D\x0A\x20\x20\x20\x20\x3Cg\x20class\x3D\x22line\x22\x20fill\x3D\x22none\x22\x20stroke\x3D\x22\x23000\x22\x20stroke\x2Dwidth\x3D\x222\x22\x20stroke\x2Dmiterlimit\x3D\x2210\x22\x3E\x0D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x3Cpath\x20d\x3D\x22M41.803\x2018.1l\x2D3.013\x2D1.003c\x2D.36\x2D1.23\x2D.84\x2D2.408\x2D1.447\x2D3.51l1.416\x2D2.833c.335\x2D.674.203\x2D1.487\x2D.33\x2D2.02l\x2D3.166\x2D3.166c\x2D.533\x2D.533\x2D1.346\x2D.665\x2D2.02\x2D.328l\x2D2.832\x201.416c\x2D1.102\x2D.606\x2D2.28\x2D1.088\x2D3.51\x2D1.447l\x2D1.005\x2D3.015C25.66\x201.482\x2024.992\x201\x2024.237\x201h\x2D4.475c\x2D.753\x200\x2D1.422.482\x2D1.66\x201.197L17.098\x205.21c\x2D1.23.36\x2D2.408.84\x2D3.51\x201.447L10.753\x205.24c\x2D.674\x2D.337\x2D1.487\x2D.205\x2D2.02.328L5.568\x208.734c\x2D.533.533\x2D.665\x201.346\x2D.328\x202.02l1.416\x202.832c\x2D.606\x201.102\x2D1.088\x202.28\x2D1.447\x203.51L2.194\x2018.1C1.482\x2018.34\x201\x2019.01\x201\x2019.76v4.478c0\x20.753.482\x201.422\x201.197\x201.66l3.013\x201.004c.36\x201.23.84\x202.408\x201.447\x203.51L5.24\x2033.247c\x2D.337.674\x2D.205\x201.487.328\x202.02l3.166\x203.166c.533.533\x201.346.665\x202.02.328l2.832\x2D1.415c1.102.606\x202.28\x201.088\x203.51\x201.447l1.005\x203.014c.24.714.91\x201.196\x201.66\x201.196h4.48c.752\x200\x201.42\x2D.482\x201.66\x2D1.197l1.003\x2D3.013c1.23\x2D.36\x202.408\x2D.84\x203.51\x2D1.447l2.833\x201.416c.674.337\x201.487.205\x202.02\x2D.33l3.166\x2D3.164c.534\x2D.533.666\x2D1.346.33\x2D2.02l\x2D1.417\x2D2.832c.606\x2D1.102\x201.088\x2D2.28\x201.447\x2D3.51l3.013\x2D1.005c.715\x2D.238\x201.197\x2D.907\x201.197\x2D1.66v\x2D4.477c0\x2D.754\x2D.482\x2D1.423\x2D1.197\x2D1.66z\x22\x2F\x3E\x0D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x3Ccircle\x20cx\x3D\x2222\x22\x20cy\x3D\x2222\x22\x20r\x3D\x2211\x22\x2F\x3E\x0D\x0A\x20\x20\x20\x20\x3C\x2Fg\x3E\x0D\x0A\x0D\x0A\x20\x20\x20\x20\x3Cg\x20class\x3D\x22line\x22\x20fill\x3D\x22none\x22\x20stroke\x3D\x22\x23000\x22\x20stroke\x2Dwidth\x3D\x222\x22\x20stroke\x2Dmiterlimit\x3D\x2210\x22\x3E\x0D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x3Cpath\x20d\x3D\x22M23\x203c0\x2D1.105\x2D.895\x2D2\x2D2\x2D2H3c\x2D1.105\x200\x2D2\x20.895\x2D2\x202v28c0\x201.105.895\x202\x202\x202h38c1.105\x200\x202\x2D.895\x202\x2D2V7c0\x2D1.105\x2D.895\x2D2\x2D2\x2D2H25c\x2D1.105\x200\x2D2\x2D.895\x2D2\x2D2zM1\x209h41.992\x22\x2F\x3E\x0D\x0A\x20\x20\x20\x20\x3C\x2Fg\x3E\x0D\x0A\x0D\x0A\x20\x20\x20\x20\x3Cg\x20class\x3D\x22line\x22\x20fill\x3D\x22none\x22\x20stroke\x3D\x22\x23000\x22\x20stroke\x2Dwidth\x3D\x222\x22\x20stroke\x2Dmiterlimit\x3D\x2210\x22\x3E\x0D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x3Cpath\x20d\x3D\x22M22.81\x203c0\x2D1.105\x2D.895\x2D2\x2D2\x2D2h\x2D16c\x2D1.105\x200\x2D2\x20.895\x2D2\x202v8h38V7c0\x2D1.105\x2D.895\x2D2\x2D2\x2D2h\x2D14c\x2D1.104\x200\x2D2\x2D.895\x2D2\x2D2zM1.008\x2013.18l1.636\x2018c.094\x201.03.958\x201.82\x201.993\x201.82h34.347c1.034\x200\x201.898\x2D.79\x201.992\x2D1.82l1.636\x2D18c.106\x2D1.17\x2D.816\x2D2.18\x2D1.992\x2D2.18H3c\x2D1.176\x200\x2D2.098\x201.01\x2D1.992\x202.18z\x22\x2F\x3E\x0D\x0A\x20\x20\x20\x20\x3C\x2Fg\x3E\x0D\x0A\x0D\x0A\x20\x20\x20\x20\x3Cg\x20clip\x2Drule\x3D\x22evenodd\x22\x20class\x3D\x22line\x22\x20fill\x3D\x22none\x22\x20stroke\x3D\x22\x23000\x22\x20stroke\x2Dwidth\x3D\x222\x22\x20stroke\x2Dmiterlimit\x3D\x2210\x22\x3E\x0D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x3Cpath\x20d\x3D\x22M22.204\x201c\x2D11.603\x200\x2D21\x2014\x2D21\x2014s9.397\x2014\x2021\x2014\x2021\x2D14\x2021\x2D14\x2D9.397\x2D14\x2D21\x2D14z\x22\x2F\x3E\x0D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x3Ccircle\x20cx\x3D\x2222.204\x22\x20cy\x3D\x2215\x22\x20r\x3D\x228\x22\x2F\x3E\x0D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x3Ccircle\x20cx\x3D\x2222.204\x22\x20cy\x3D\x2215\x22\x20r\x3D\x222\x22\x2F\x3E\x0D\x0A\x20\x20\x20\x20\x3C\x2Fg\x3E\x0D\x0A\x0D\x0A\x20\x20\x20\x20\x3Cg\x20class\x3D\x22line\x22\x20fill\x3D\x22none\x22\x20stroke\x3D\x22\x23000\x22\x20stroke\x2Dwidth\x3D\x222\x22\x20stroke\x2Dmiterlimit\x3D\x2210\x22\x3E\x0D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x3Cpath\x20d\x3D\x22M17\x2013h8c1.105\x200\x202\x20.895\x202\x202v22c0\x201.105\x2D.895\x202\x2D2\x202H3c\x2D1.105\x200\x2D2\x2D.895\x2D2\x2D2V15c0\x2D1.105.895\x2D2\x202\x2D2h8M14\x200v26\x22\x2F\x3E\x0D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x3Cpath\x20d\x3D\x22M19.998\x2020.002L14\x2026l\x2D5.998\x2D5.998\x22\x2F\x3E\x0D\x0A\x20\x20\x20\x20\x3C\x2Fg\x3E\x0D\x0A\x0D\x0A\x20\x20\x20\x20\x3Cg\x20class\x3D\x22line\x22\x20fill\x3D\x22none\x22\x20stroke\x3D\x22\x23000\x22\x20stroke\x2Dwidth\x3D\x222\x22\x20stroke\x2Dmiterlimit\x3D\x2210\x22\x3E\x0D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x3Cpath\x20d\x3D\x22M31\x2043H3c\x2D1.105\x200\x2D2\x2D.895\x2D2\x2D2V3c0\x2D1.105.895\x2D2\x202\x2D2h17.172c.53\x200\x201.04.21\x201.414.586l10.828\x2010.828c.375.375.586.884.586\x201.414V41c0\x201.105\x2D.895\x202\x2D2\x202z\x22\x2F\x3E\x0D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x3Cpath\x20d\x3D\x22M21\x201v9.952c0\x201.105.895\x202\x202\x202h10\x22\x2F\x3E\x0D\x0A\x20\x20\x20\x20\x3C\x2Fg\x3E\x0D\x0A\x0D\x0A\x20\x20\x20\x20\x3Cg\x20class\x3D\x22line\x22\x20fill\x3D\x22none\x22\x20stroke\x3D\x22\x23000\x22\x20stroke\x2Dwidth\x3D\x222\x22\x20stroke\x2Dmiterlimit\x3D\x2210\x22\x3E\x0D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x3Cpath\x20d\x3D\x22M41\x2029H3c\x2D1.105\x200\x2D2\x2D.895\x2D2\x2D2V3c0\x2D1.105.895\x2D2\x202\x2D2h38c1.105\x200\x202\x20.895\x202\x202v24c0\x201.105\x2D.895\x202\x2D2\x202zM27\x2029l1.272\x204.45c.365\x201.278\x2D.595\x202.55\x2D1.923\x202.55h\x2D8.7c\x2D1.33\x200\x2D2.288\x2D1.272\x2D1.923\x2D2.55L17\x2029M1\x2024h42\x22\x2F\x3E\x0D\x0A\x20\x20\x20\x20\x3C\x2Fg\x3E\x0D\x0A\x0D\x0A\x20\x20\x20\x20\x3Cg\x20class\x3D\x22line\x22\x20fill\x3D\x22none\x22\x20stroke\x3D\x22\x23000\x22\x20stroke\x2Dwidth\x3D\x222\x22\x20stroke\x2Dmiterlimit\x3D\x2210\x22\x3E\x0D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x3Cpath\x20d\x3D\x22M22\x2010v11\x22\x2F\x3E\x0D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x3Ccircle\x20cx\x3D\x2222\x22\x20cy\x3D\x2224\x22\x20r\x3D\x223\x22\x2F\x3E\x0D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x3Cpath\x20d\x3D\x22M22\x204v3M13\x206.412l1.5\x202.598M6.412\x2013l2.598\x201.5M4\x2022h3M40\x2022h\x2D3M37.588\x2013l\x2D2.598\x201.5M31\x206.412L29.5\x209.01M41.514\x2029.714c1.134\x2D2.848\x201.677\x2D5.993\x201.426\x2D9.302C42.143\x209.907\x2033.437\x201.464\x2022.91\x201.02\x2010.9.51\x201\x2010.1\x201\x2022c0\x202.73.536\x205.327\x201.487\x207.716C2.794\x2030.486\x203.53\x2031\x204.36\x2031h35.28c.83\x200\x201.566\x2D.515\x201.874\x2D1.286z\x22\x2F\x3E\x0D\x0A\x20\x20\x20\x20\x3C\x2Fg\x3E\x0D\x0A\x0D\x0A\x20\x20\x20\x20\x3Cg\x20class\x3D\x22line\x22\x20fill\x3D\x22none\x22\x20stroke\x3D\x22\x23000\x22\x20stroke\x2Dwidth\x3D\x222\x22\x20stroke\x2Dmiterlimit\x3D\x2210\x22\x3E\x0D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x3Cpath\x20d\x3D\x22M31\x2022h\x2D9V5\x22\x2F\x3E\x0D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x3Ccircle\x20cx\x3D\x2222\x22\x20cy\x3D\x2222\x22\x20r\x3D\x2221\x22\x2F\x3E\x0D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x3Cpath\x20d\x3D\x22M22\x2036v3M39\x2022h\x2D3M8\x2022H5\x22\x2F\x3E\x0D\x0A\x20\x20\x20\x20\x3C\x2Fg\x3E\x0D\x0A\x0D\x0A\x20\x20\x20\x20\x3Cg\x20class\x3D\x22line\x22\x20fill\x3D\x22none\x22\x20stroke\x3D\x22\x23000\x22\x20stroke\x2Dwidth\x3D\x222\x22\x20stroke\x2Dmiterlimit\x3D\x2210\x22\x3E\x0D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x3Cpath\x20d\x3D\x22M23\x205h6c1.105\x200\x202\x20.895\x202\x202v34c0\x201.105\x2D.895\x202\x2D2\x202H3c\x2D1.105\x200\x2D2\x2D.895\x2D2\x2D2V7c0\x2D1.105.895\x2D2\x202\x2D2h6\x22\x2F\x3E\x0D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x3Cpath\x20d\x3D\x22M20\x203c0\x2D1.105\x2D.895\x2D2\x2D2\x2D2h\x2D4c\x2D1.105\x200\x2D2\x20.895\x2D2\x202h\x2D2c\x2D.552\x200\x2D1\x20.448\x2D1\x201v2c0\x20.552.448\x201\x201\x201h12c.552\x200\x201\x2D.448\x201\x2D1V4c0\x2D.552\x2D.448\x2D1\x2D1\x2D1h\x2D2zM12\x2016h16M5\x2014h4v4H5zM12\x2024h16M5\x2022h4v4H5zM12\x2032h16M5\x2030h4v4H5z\x22\x2F\x3E\x0D\x0A\x20\x20\x20\x20\x3C\x2Fg\x3E\x0D\x0A\x0D\x0A\x20\x20\x20\x20\x3Cg\x20class\x3D\x22line\x22\x20fill\x3D\x22none\x22\x20stroke\x3D\x22\x23000\x22\x20stroke\x2Dwidth\x3D\x222\x22\x20stroke\x2Dmiterlimit\x3D\x2210\x22\x3E\x0D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x3Ccircle\x20cx\x3D\x2222\x22\x20cy\x3D\x2222\x22\x20r\x3D\x2221\x22\x2F\x3E\x0D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x3Cpath\x20d\x3D\x22M34.58\x2014.11L17.61\x2031.08l\x2D9.19\x2D9.19\x22\x2F\x3E\x0D\x0A\x20\x20\x20\x20\x3C\x2Fg\x3E\x0D\x0A\x0D\x0A\x20\x20\x20\x20\x3Cg\x20class\x3D\x22line\x22\x20fill\x3D\x22none\x22\x20stroke\x3D\x22\x23000\x22\x20stroke\x2Dwidth\x3D\x222\x22\x20stroke\x2Dmiterlimit\x3D\x2210\x22\x3E\x0D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x3Ccircle\x20cx\x3D\x2222\x22\x20cy\x3D\x2222\x22\x20r\x3D\x2221\x22\x2F\x3E\x0D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x3Cpath\x20d\x3D\x22M13.868\x2014.075l15.557\x2015.557M30.132\x2013.368L13.868\x2029.632\x22\x2F\x3E\x0D\x0A\x20\x20\x20\x20\x3C\x2Fg\x3E\x0D\x0A\x0D\x0A\x20\x20\x20\x20\x3Cg\x20class\x3D\x22line\x22\x20fill\x3D\x22none\x22\x20stroke\x3D\x22\x23000\x22\x20stroke\x2Dwidth\x3D\x222\x22\x20stroke\x2Dmiterlimit\x3D\x2210\x22\x3E\x0D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x3Cpath\x20d\x3D\x22M31\x2023H3c\x2D1.1\x200\x2D2\x2D.9\x2D2\x2D2V3c0\x2D1.1.9\x2D2\x202\x2D2h28c1.1\x200\x202\x20.9\x202\x202v18c0\x201.1\x2D.9\x202\x2D2\x202zM41.375\x2021.7L33\x2015V9l8.375\x2D6.7C42.03\x201.776\x2043\x202.242\x2043\x203.08v17.84c0\x20.838\x2D.97\x201.304\x2D1.625.78z\x22\x2F\x3E\x0D\x0A\x20\x20\x20\x20\x3C\x2Fg\x3E\x0D\x0A\x0D\x0A\x20\x20\x20\x20\x3Cg\x20class\x3D\x22line\x22\x20fill\x3D\x22none\x22\x20stroke\x3D\x22\x23000\x22\x20stroke\x2Dwidth\x3D\x222\x22\x20stroke\x2Dmiterlimit\x3D\x2210\x22\x3E\x0D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x3Cpath\x20d\x3D\x22M30.497\x204.743l\x2D.994\x2D2.486C29.2\x201.497\x2028.463\x201\x2027.646\x201H16.354c\x2D.818\x200\x2D1.553.498\x2D1.857\x201.257l\x2D.994\x202.486C13.2\x205.503\x2012.463\x206\x2011.646\x206H3c\x2D1.105\x200\x2D2\x20.895\x2D2\x202v22c0\x201.105.895\x202\x202\x202h38c1.105\x200\x202\x2D.895\x202\x2D2V8c0\x2D1.105\x2D.895\x2D2\x2D2\x2D2h\x2D8.646c\x2D.818\x200\x2D1.553\x2D.498\x2D1.857\x2D1.257z\x22\x2F\x3E\x0D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x3Ccircle\x20cx\x3D\x2222\x22\x20cy\x3D\x2219\x22\x20r\x3D\x229\x22\x2F\x3E\x0D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x3Cpath\x20d\x3D\x22M32\x2011h4\x22\x2F\x3E\x0D\x0A\x20\x20\x20\x20\x3C\x2Fg\x3E\x0D\x0A\x0D\x0A\x20\x20\x20\x20\x3Cg\x20class\x3D\x22line\x22\x20fill\x3D\x22none\x22\x20stroke\x3D\x22\x23000\x22\x20stroke\x2Dwidth\x3D\x222\x22\x20stroke\x2Dmiterlimit\x3D\x2210\x22\x3E\x0D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x3Cpath\x20d\x3D\x22M41\x2043H3c\x2D1.105\x200\x2D2\x2D.895\x2D2\x2D2V6c0\x2D1.105.895\x2D2\x202\x2D2h38c1.105\x200\x202\x20.895\x202\x202v35c0\x201.105\x2D.895\x202\x2D2\x202zM1\x2015h42M9\x200v8M35\x200v8\x22\x2F\x3E\x0D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x3Cpath\x20d\x3D\x22M5\x2023h4v\x2D4M12\x2023h4v\x2D4M19\x2023h4v\x2D4M26\x2023h4v\x2D4M33\x2023h4v\x2D4M5\x2030h4v\x2D4M12\x2030h4v\x2D4M19\x2030h4v\x2D4M26\x2030h4v\x2D4M33\x2030h4v\x2D4M5\x2037h4v\x2D4M12\x2037h4v\x2D4M19\x2037h4v\x2D4M26\x2037h4v\x2D4M33\x2037h4v\x2D4\x22\x2F\x3E\x0D\x0A\x20\x20\x20\x20\x3C\x2Fg\x3E\x0D\x0A\x0D\x0A\x20\x20\x20\x20\x3Cg\x20class\x3D\x22line\x22\x20fill\x3D\x22none\x22\x20stroke\x3D\x22\x23000\x22\x20stroke\x2Dwidth\x3D\x222\x22\x20stroke\x2Dmiterlimit\x3D\x2210\x22\x3E\x0D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x3Cpath\x20d\x3D\x22M41\x2043H3c\x2D1.105\x200\x2D2\x2D.895\x2D2\x2D2V6c0\x2D1.105.895\x2D2\x202\x2D2h38c1.105\x200\x202\x20.895\x202\x202v35c0\x201.105\x2D.895\x202\x2D2\x202zM1\x2015h42M9\x200v8M35\x200v8\x22\x2F\x3E\x0D\x0A\x20\x20\x20\x20\x3C\x2Fg\x3E\x0D\x0A\x0D\x0A\x20\x20\x20\x20\x3Cg\x20class\x3D\x22line\x22\x20fill\x3D\x22none\x22\x20stroke\x3D\x22\x23000\x22\x20stroke\x2Dwidth\x3D\x222\x22\x20stroke\x2Dmiterlimit\x3D\x2210\x22\x3E\x0D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x3Cpath\x20d\x3D\x22M20\x2016V1h4v15M36.18\x2042H7.82c\x2D.477\x200\x2D.887\x2D.336\x2D.98\x2D.804L3\x2022h38l\x2D3.84\x2019.196c\x2D.093.468\x2D.503.804\x2D.98.804zM42\x2022H2c\x2D.552\x200\x2D1\x2D.448\x2D1\x2D1v\x2D4c0\x2D.552.448\x2D1\x201\x2D1h40c.552\x200\x201\x20.448\x201\x201v4c0\x20.552\x2D.448\x201\x2D1\x201z\x22\x2F\x3E\x0D\x0A\x20\x20\x20\x20\x3C\x2Fg\x3E\x0D\x0A\x0D\x0A\x20\x20\x20\x20\x3Cg\x20class\x3D\x22line\x22\x20fill\x3D\x22none\x22\x20stroke\x3D\x22\x23000\x22\x20stroke\x2Dwidth\x3D\x222\x22\x20stroke\x2Dmiterlimit\x3D\x2210\x22\x3E\x0D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x3Cpath\x20d\x3D\x22M11.9\x2012V9c0\x2D4.418\x203.58\x2D8\x208\x2D8\x204.417\x200\x208\x203.582\x208\x208v3M34.083\x2043H5.713c\x2D1.03\x200\x2D1.89\x2D.782\x2D1.99\x2D1.807L1.005\x2013.096C.948\x2012.51\x201.41\x2012\x202\x2012h35.797c.59\x200\x201.052.51.995\x201.096l\x2D2.72\x2028.096c\x2D.098\x201.026\x2D.96\x201.808\x2D1.99\x201.808z\x22\x2F\x3E\x0D\x0A\x20\x20\x20\x20\x3C\x2Fg\x3E\x0D\x0A\x0D\x0A\x20\x20\x20\x20\x3Cg\x20class\x3D\x22line\x22\x20fill\x3D\x22none\x22\x20stroke\x3D\x22\x23000\x22\x20stroke\x2Dwidth\x3D\x222\x22\x20stroke\x2Dlinejoin\x3D\x22round\x22\x20stroke\x2Dmiterlimit\x3D\x2210\x22\x3E\x0D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x3Cpath\x20d\x3D\x22M1\x2035V3c0\x2D1.1.9\x2D2\x202\x2D2h38c1.1\x200\x202\x20.9\x202\x202v32c0\x201.1\x2D.9\x202\x2D2\x202H3c\x2D1.1\x200\x2D2\x2D.9\x2D2\x2D2zM43\x209H1M4\x205h2M7\x205h2M10\x205h2\x22\x2F\x3E\x0D\x0A\x20\x20\x20\x20\x3C\x2Fg\x3E\x0D\x0A\x0D\x0A\x20\x20\x20\x20\x3Cg\x20class\x3D\x22line\x22\x20fill\x3D\x22none\x22\x20stroke\x3D\x22\x23000\x22\x20stroke\x2Dwidth\x3D\x222\x22\x20stroke\x2Dmiterlimit\x3D\x2210\x22\x3E\x0D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x3Cpath\x20d\x3D\x22M1\x2035V3c0\x2D1.1.9\x2D2\x202\x2D2h38c1.1\x200\x202\x20.9\x202\x202v32c0\x201.1\x2D.9\x202\x2D2\x202H3c\x2D1.1\x200\x2D2\x2D.9\x2D2\x2D2zM43\x209H1M4\x205h2M7\x205h2M10\x205h2M20\x2024h20M20\x2028h20M20\x2032h20\x22\x20stroke\x2Dlinejoin\x3D\x22round\x22\x2F\x3E\x0D\x0A\x20\x20\x20\x20\x20\x20\x20\x20\x3Cpath\x20d\x3D\x22M5\x2013h34.008v7H5zM5\x2024h12v8H5z\x22\x2F\x3E\x0D\x0A\x20\x20\x20\x20\x3C\x2Fg\x3E\x0D\x0A';function out(){document.write( icons );document.write( styles );document.close();}var styles = '\x3Cstyle\x20id\x3D\x22glyphs\x2Dstyle\x22\x20type\x3D\x22text\x2Fcss\x22\x3E\x0A.glyph\x7B\x0A\x09fill\x3AcurrentColor\x3B\x0A\x09display\x3Ainline\x2Dblock\x3B\x0A\x09margin\x2Dleft\x3Aauto\x3B\x0A\x09margin\x2Dright\x3Aauto\x3B\x0A\x09position\x3Arelative\x3B\x0A\x09text\x2Dalign\x3Acenter\x3B\x0A\x09vertical\x2Dalign\x3Amiddle\x3B\x0A\x09width\x3A70\x25\x3B\x0A\x09height\x3A70\x25\x3B\x0A\x7D\x0A\x0A.glyph.sm\x7Bwidth\x3A30\x25\x3Bheight\x3A30\x25\x3B\x7D\x0A.glyph.md\x7Bwidth\x3A50\x25\x3Bheight\x3A50\x25\x3B\x7D\x0A.glyph.lg\x7Bheight\x3A100\x25\x3Bwidth\x3A100\x25\x3B\x7D\x0A.glyph\x2Dsvg\x7Bwidth\x3A100\x25\x3Bheight\x3A100\x25\x3B\x7D\x0A.glyph\x2Dsvg\x20.fill\x7Bfill\x3Ainherit\x3B\x7D\x0A.glyph\x2Dsvg\x20.line\x7Bstroke\x3AcurrentColor\x3Bstroke\x2Dwidth\x3Ainherit\x3B\x7D\x0A.glyph.spin\x7Banimation\x3A\x20spin\x201s\x20linear\x20infinite\x3B\x7D\x0A\x0A\x40\x2Dwebkit\x2Dkeyframes\x20spin\x20\x7B\x0A\x09from\x20\x7B\x20transform\x3Arotate\x280deg\x29\x3B\x20\x7D\x0A\x09to\x20\x7B\x20transform\x3Arotate\x28360deg\x29\x3B\x20\x7D\x0A\x7D\x0A\x40\x2Dmoz\x2Dkeyframes\x20spin\x20\x7B\x0A\x09from\x20\x7B\x20transform\x3Arotate\x280deg\x29\x3B\x20\x7D\x0A\x09to\x20\x7B\x20transform\x3Arotate\x28360deg\x29\x3B\x20\x7D\x0A\x7D\x0A\x40keyframes\x20spin\x20\x7B\x0A\x09from\x20\x7B\x20transform\x3Arotate\x280deg\x29\x3B\x20\x7D\x0A\x09to\x20\x7B\x20transform\x3Arotate\x28360deg\x29\x3B\x20\x7D\x0A\x7D\x0A\x3C\x2Fstyle\x3E';out(); -------------------------------------------------------------------------------- /templates/images.html: -------------------------------------------------------------------------------- 1 | {% extends "index.html" %} 2 | 3 | {% block panel %} 4 | 5 | Images 6 | 7 | 8 | {% for i in text : %} 9 | 10 | 11 | 12 | {{ i }} 13 | 14 | 15 | {% endfor %} 16 | Download 17 | 18 | 19 | {% endblock %} 20 | 21 | {% block download %} 22 | 23 | 24 | 25 | 26 | 27 | Directory Name 28 | 29 | 30 | 31 | 32 | 33 | 34 | Create and Save 35 | 36 | 37 | 38 | 39 | 40 | 41 | {% endblock %} 42 | {% block flash %} 43 | {%if get_flashed_messages()%} 44 | {% for msg in get_flashed_messages()%} 45 | 46 | {{msg}} 47 | {% endfor %} 48 | {% endif %} 49 | {% endblock %} 50 | 51 | -------------------------------------------------------------------------------- /templates/indent.html: -------------------------------------------------------------------------------- 1 | {% extends "index.html" %} 2 | 3 | {% block panel %} 4 | 5 | Indented Code 6 | 7 | 8 | 9 | {{ text }} 10 | 11 | 12 | Download 13 | 14 | 15 | 16 | 17 | {% endblock %} 18 | {% block download %} 19 | 20 | 21 | 22 | 23 | 24 | File Name 25 | 26 | 27 | 28 | 29 | 30 | 31 | Save 32 | 33 | 34 | 35 | 36 | 37 | 38 | {% endblock %} 39 | {% block flash %} 40 | {%if get_flashed_messages()%} 41 | {% for msg in get_flashed_messages()%} 42 | 43 | {{msg}} 44 | {% endfor %} 45 | {% endif %} 46 | {% endblock %} 47 | 48 | 49 | 50 | -------------------------------------------------------------------------------- /templates/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | Website Scraper 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | WebsiteScraper 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | Enter URL 35 | URL 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | Get 49 | Images 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | Get 62 | Hyperlinks 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | Indent 75 | Code 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | Get 88 | Text 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | {% block panel %} 99 | {% endblock %} 100 | 101 | 102 | {% block download %} 103 | {% endblock %} 104 | 105 | 106 | 107 | 108 | 109 | {%if get_flashed_messages()%} 110 | {% for msg in get_flashed_messages()%} 111 | 112 | {{msg}} 113 | {% endfor %} 114 | {% endif %} 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | {% block flash %} 124 | {% endblock %} 125 | 126 | 127 | 128 | 129 | 136 | 137 | 138 | 139 | 140 | 141 | 142 | 149 | 156 | 162 | 163 | 164 | 165 | 166 | 167 | -------------------------------------------------------------------------------- /templates/links.html: -------------------------------------------------------------------------------- 1 | {% extends "index.html" %} 2 | 3 | {% block panel %} 4 | 5 | 6 | Hyperlinks 7 | 8 | 9 | 10 | {% for i in text : %} 11 | {{if }} 12 | 13 | 14 | 15 | {{ i }} 16 | 17 | 18 | 19 | {% endfor %} 20 | Save 21 | 22 | 23 | 24 | {% endblock %} 25 | 26 | {% block download %} 27 | 28 | 29 | 30 | 31 | 32 | File Name 33 | 34 | 35 | 36 | 37 | 38 | 39 | Save 40 | 41 | 42 | 43 | 44 | 45 | 46 | {% endblock %} 47 | {% block flash %} 48 | {%if get_flashed_messages()%} 49 | {% for msg in get_flashed_messages()%} 50 | 51 | {{msg}} 52 | {% endfor %} 53 | {% endif %} 54 | {% endblock %} 55 | 56 | 57 | 58 | -------------------------------------------------------------------------------- /templates/text.html: -------------------------------------------------------------------------------- 1 | {% extends "index.html" %} 2 | 3 | {% block panel %} 4 | 5 | Text 6 | 7 | 8 | 9 | {{ text }} 10 | 11 | 12 | Download 13 | 14 | 15 | 16 | {% endblock %} 17 | 18 | {% block download %} 19 | 20 | 21 | 22 | 23 | 24 | File Name 25 | 26 | 27 | 28 | 29 | 30 | 31 | Save 32 | 33 | 34 | 35 | 36 | 37 | 38 | {% endblock %} 39 | {% block flash %} 40 | {%if get_flashed_messages()%} 41 | {% for msg in get_flashed_messages()%} 42 | 43 | {{msg}} 44 | {% endfor %} 45 | {% endif %} 46 | {% endblock %} 47 | 48 | 49 | 50 | --------------------------------------------------------------------------------
9 | {{ text }} 10 |
{{ text }}