diff --git a/app.py b/app.py index ad60b1a3..5a7d45f7 100644 --- a/app.py +++ b/app.py @@ -3,19 +3,21 @@ import logging import os import signal +import subprocess import sys import threading import time +from functools import wraps import cherrypy import psutil -from flask import (Flask, flash, redirect, render_template, request, send_file, - send_from_directory, url_for) +from flask import (Flask, flash, make_response, redirect, render_template, + request, send_file, send_from_directory, url_for) import karaoke from constants import VERSION -from get_platform import get_platform -from vlcclient import get_default_vlc_path +from lib.get_platform import get_platform +from lib.vlcclient import get_default_vlc_path try: from urllib.parse import quote, unquote @@ -26,7 +28,7 @@ app = Flask(__name__) app.secret_key = os.urandom(24) site_name = "PiKaraoke" - +admin_password = None def filename_from_path(file_path, remove_youtube_id=True): rc = os.path.basename(file_path) @@ -44,6 +46,16 @@ def url_escape(filename): return quote(filename.encode("utf8")) +def is_admin(): + if (admin_password == None): + return True + if ('admin' in request.cookies): + a = request.cookies.get("admin") + if (a == admin_password): + return True + return False + + @app.route("/") def home(): return render_template( @@ -52,18 +64,47 @@ def home(): title="Home", show_transpose=k.use_vlc, transpose_value=k.now_playing_transpose, + admin=is_admin() ) +@app.route("/auth", methods=["POST"]) +def auth(): + d = request.form.to_dict() + p = d["admin-password"] + if (p == admin_password): + resp = make_response(redirect('/')) + resp.set_cookie('admin', admin_password) + flash("Admin mode granted!", "is-success") + else: + resp = make_response(redirect(url_for('login'))) + flash("Incorrect admin password!", "is-danger") + return resp + +@app.route("/login") +def login(): + return render_template("login.html") + +@app.route("/logout") +def logout(): + resp = make_response(redirect('/')) + resp.set_cookie('admin', '') + flash("Logged out of admin mode!", "is-success") + return resp + @app.route("/nowplaying") def nowplaying(): try: if len(k.queue) >= 1: - next_song = filename_from_path(k.queue[0]) + next_song = k.queue[0]["title"] + next_user = k.queue[0]["user"] else: next_song = None + next_user = None rc = { "now_playing": k.now_playing, + "now_playing_user": k.now_playing_user, "up_next": next_song, + "next_user": next_user, "is_paused": k.is_paused, "transpose_value": k.now_playing_transpose, } @@ -76,9 +117,15 @@ def nowplaying(): @app.route("/queue") def queue(): return render_template( - "queue.html", queue=k.queue, site_title=site_name, title="Queue" + "queue.html", queue=k.queue, site_title=site_name, title="Queue", admin=is_admin() ) +@app.route("/get_queue") +def get_queue(): + if len(k.queue) >= 1: + return json.dumps(k.queue) + else: + return json.dumps([]) @app.route("/queue/addrandom", methods=["GET"]) def add_random(): @@ -128,13 +175,20 @@ def enqueue(): song = request.args["song"] else: d = request.form.to_dict() - song = d["song_to_add"] - rc = k.enqueue(song) - if rc: - flash("Song added to queue: " + filename_from_path(song), "is-success") + song = d["song-to-add"] + if "user" in request.args: + user = request.args["user"] else: - flash("Song is already in queue: " + filename_from_path(song), "is-danger") - return redirect(url_for("home")) + d = request.form.to_dict() + user = d["song-added-by"] + rc = k.enqueue(song, user) + song_title = filename_from_path(song) + # if rc: + # flash("Song added to queue: " + song_title, "is-success") + # else: + # flash("Song is already in queue: " + song_title, "is-danger") + #return redirect(url_for("home")) + return json.dumps({"song": song_title, "success": rc }) @app.route("/skip") @@ -177,7 +231,10 @@ def vol_down(): def search(): if "search_string" in request.args: search_string = request.args["search_string"] - search_results = k.get_karaoke_search_results(search_string) + if ("non_karaoke" in request.args and request.args["non_karaoke"] == "true"): + search_results = k.get_search_results(search_string) + else: + search_results = k.get_karaoke_search_results(search_string) else: search_string = None search_results = None @@ -206,6 +263,7 @@ def browse(): site_title=site_name, title="Browse", songs=songs, + admin=is_admin() ) @@ -213,13 +271,14 @@ def browse(): def download(): d = request.form.to_dict() song = d["song-url"] + user = d["song-added-by"] if "queue" in d and d["queue"] == "on": queue = True else: queue = False # download in the background since this can take a few minutes - t = threading.Thread(target=k.download_video, args=[song, queue]) + t = threading.Thread(target=k.download_video, args=[song, queue, user]) t.daemon = True t.start() @@ -281,7 +340,7 @@ def edit_file(): if "new_file_name" in d and "old_file_name" in d: new_name = d["new_file_name"] old_name = d["old_file_name"] - if old_name in k.queue: + if k.is_song_in_queue(old_name): # check one more time just in case someone added it during editing flash(queue_error_msg + song_path, "is-danger") else: @@ -343,7 +402,7 @@ def info(): # youtube-dl youtubedl_version = k.youtubedl_version - show_shutdown = get_platform() == "raspberry_pi" + is_pi = get_platform() == "raspberry_pi" return render_template( "info.html", @@ -354,8 +413,10 @@ def info(): cpu=cpu, disk=disk, youtubedl_version=youtubedl_version, - show_shutdown=show_shutdown, - pikaraoke_version=VERSION + is_pi=is_pi, + pikaraoke_version=VERSION, + admin=is_admin(), + admin_enabled=admin_password != None ) @@ -372,55 +433,83 @@ def delayed_halt(cmd): os.system("shutdown now") if cmd == 2: os.system("reboot") - + if cmd == 3: + process = subprocess.Popen(["raspi-config", "--expand-rootfs"]) + process.wait() + os.system("reboot") def update_youtube_dl(): time.sleep(3) k.upgrade_youtubedl() - @app.route("/update_ytdl") def update_ytdl(): - flash( - "Updating youtube-dl! Should take a minute or two... ", - "is-warning", - ) - th = threading.Thread(target=update_youtube_dl) - th.start() + if (is_admin()): + flash( + "Updating youtube-dl! Should take a minute or two... ", + "is-warning", + ) + th = threading.Thread(target=update_youtube_dl) + th.start() + else: + flash("You don't have permission to update youtube-dl", "is-danger") return redirect(url_for("home")) @app.route("/refresh") def refresh(): - k.get_available_songs() + if (is_admin()): + k.get_available_songs() + else: + flash("You don't have permission to shut down", "is-danger") return redirect(url_for("browse")) @app.route("/quit") def quit(): - flash("Quitting pikaraoke now!", "is-warning") - th = threading.Thread(target=delayed_halt, args=[0]) - th.start() + if (is_admin()): + flash("Quitting pikaraoke now!", "is-warning") + th = threading.Thread(target=delayed_halt, args=[0]) + th.start() + else: + flash("You don't have permission to quit", "is-danger") return redirect(url_for("home")) @app.route("/shutdown") def shutdown(): - flash("Shutting down system now!", "is-danger") - th = threading.Thread(target=delayed_halt, args=[1]) - th.start() + if (is_admin()): + flash("Shutting down system now!", "is-danger") + th = threading.Thread(target=delayed_halt, args=[1]) + th.start() + else: + flash("You don't have permission to shut down", "is-danger") return redirect(url_for("home")) @app.route("/reboot") def reboot(): - flash("Rebooting system now!", "is-danger") - th = threading.Thread(target=delayed_halt, args=[2]) - th.start() + if (is_admin()): + flash("Rebooting system now!", "is-danger") + th = threading.Thread(target=delayed_halt, args=[2]) + th.start() + else: + flash("You don't have permission to Reboot", "is-danger") return redirect(url_for("home")) +@app.route("/expand_fs") +def expand_fs(): + if (is_admin() and platform == "raspberry_pi"): + flash("Expanding filesystem and rebooting system now!", "is-danger") + th = threading.Thread(target=delayed_halt, args=[3]) + th.start() + elif (platform != "raspberry_pi"): + flash("Cannot expand fs on non-raspberry pi devices!", "is-danger") + else: + flash("You don't have permission to resize the filesystem", "is-danger") + return redirect(url_for("home")) -# Handle sigterm, apparently cherrypy won't shut down without explicit handling -signal.signal(signal.SIGTERM, lambda signum, stack_frame: sys.exit(1)) +# Handle sigterm, apparently cherrypy won't shut down without explicit handling +signal.signal(signal.SIGTERM, lambda signum, stack_frame: k.stop()) def get_default_youtube_dl_path(platform): if platform == "windows": @@ -578,27 +667,37 @@ def get_default_dl_dir(platform): required=False, ), parser.add_argument( - "--logo_path", + "--logo-path", help="Path to a custom logo image file for the splash screen. Recommended dimensions ~ 500x500px", default=None, required=False, - ) + ), + parser.add_argument( + "--show-overlay", + action="store_true", + help="Show overlay on top of video with pikaraoke QR code and IP", + required=False, + ), + parser.add_argument( + "--admin-password", + help="Administrator password, for locking down certain features of the web UI such as queue editing, player controls, song editing, and system shutdown. If unspecified, everyone is an admin.", + default=None, + required=False, + ), + parser.add_argument( + "--developer-mode", + help="Run in flask developer mode. Only useful for tweaking the web UI in real time. Will disable the splash screen due to pygame main thread conflicts and may require FLASK_ENV=development env variable for full dev mode features.", + action="store_true", + required=False, + ), args = parser.parse_args() + if (args.admin_password): + admin_password = args.admin_password + app.jinja_env.globals.update(filename_from_path=filename_from_path) app.jinja_env.globals.update(url_escape=quote) - cherrypy.tree.graft(app, "/") - # Set the configuration of the web server - cherrypy.config.update( - { - "engine.autoreload.on": False, - "log.screen": True, - "server.socket_port": int(args.port), - "server.socket_host": "0.0.0.0", - } - ) - # Handle OMX player if specified if platform == "raspberry_pi" and args.use_omxplayer: args.use_vlc = False @@ -628,10 +727,11 @@ def get_default_dl_dir(platform): print("Creating download path: " + dl_path) os.makedirs(dl_path) - # Start the CherryPy WSGI web server - cherrypy.engine.start() + if (args.developer_mode): + logging.warning("Splash screen is disabled in developer mode due to main thread conflicts") + args.hide_splash_screen = True - # Start karaoke process + # Configure karaoke process global k k = karaoke.Karaoke( port=args.port, @@ -651,8 +751,27 @@ def get_default_dl_dir(platform): vlc_path=args.vlc_path, vlc_port=args.vlc_port, logo_path=args.logo_path, + show_overlay=args.show_overlay ) - k.run() - cherrypy.engine.exit() + if (args.developer_mode): + th = threading.Thread(target=k.run) + th.start() + app.run(debug=True, port=args.port) + else: + # Start the CherryPy WSGI web server + cherrypy.tree.graft(app, "/") + # Set the configuration of the web server + cherrypy.config.update( + { + "engine.autoreload.on": False, + "log.screen": True, + "server.socket_port": int(args.port), + "server.socket_host": "0.0.0.0", + } + ) + cherrypy.engine.start() + k.run() + cherrypy.engine.exit() + sys.exit() diff --git a/constants.py b/constants.py index 369b4e07..81424b89 100644 --- a/constants.py +++ b/constants.py @@ -1 +1 @@ -VERSION = "1.0.0" \ No newline at end of file +VERSION = "1.1.0" \ No newline at end of file diff --git a/karaoke.py b/karaoke.py index 914da454..fbf376d7 100644 --- a/karaoke.py +++ b/karaoke.py @@ -15,9 +15,8 @@ import qrcode from unidecode import unidecode -import omxclient -import vlcclient -from get_platform import get_platform +from lib import omxclient, vlcclient +from lib.get_platform import get_platform if get_platform() != "windows": from signal import SIGALRM, alarm, signal @@ -33,6 +32,7 @@ class Karaoke: available_songs = [] now_playing = None now_playing_filename = None + now_playing_user = None now_playing_transpose = 0 is_paused = True process = None @@ -55,12 +55,13 @@ def __init__( log_level=logging.DEBUG, splash_delay=2, youtubedl_path="/usr/local/bin/youtube-dl", - omxplayer_path="/usr/bin/omxplayer", + omxplayer_path=None, use_omxplayer=False, use_vlc=True, vlc_path=None, vlc_port=None, logo_path=None, + show_overlay=False ): # override with supplied constructor args if provided @@ -80,6 +81,7 @@ def __init__( self.vlc_path = vlc_path self.vlc_port = vlc_port self.logo_path = self.default_logo_path if logo_path == None else logo_path + self.show_overlay = show_overlay # other initializations self.platform = get_platform() @@ -111,7 +113,8 @@ def __init__( Use VLC: %s VLC path: %s VLC port: %s - log_level: %s""" + log_level: %s + show overlay: %s""" % ( self.port, self.hide_ip, @@ -130,6 +133,7 @@ def __init__( self.vlc_path, self.vlc_port, log_level, + self.show_overlay ) ) @@ -161,16 +165,20 @@ def __init__( # clean up old sessions self.kill_player() + self.generate_qr_code() if self.use_vlc: - self.vlcclient = vlcclient.VLCClient(port=self.vlc_port, path=self.vlc_path) + if (self.show_overlay): + self.vlcclient = vlcclient.VLCClient(port=self.vlc_port, path=self.vlc_path, qrcode=self.qr_code_path, url=self.url) + else: + self.vlcclient = vlcclient.VLCClient(port=self.vlc_port, path=self.vlc_path) else: self.omxclient = omxclient.OMXClient(path=self.omxplayer_path, adev=self.omxplayer_adev, dual_screen=self.dual_screen, volume_offset=self.volume_offset) if not self.hide_splash_screen: - self.generate_qr_code() self.initialize_screen() self.render_splash_screen() + # Other ip-getting methods are unreliable and sometimes return 127.0.0.1 # https://stackoverflow.com/a/28950776 def get_ip(self): @@ -224,7 +232,14 @@ def is_network_connected(self): def generate_qr_code(self): logging.debug("Generating URL QR code") - img = qrcode.make(self.url) + qr = qrcode.QRCode( + version=1, + box_size=1, + border=4, + ) + qr.add_data(self.url) + qr.make() + img = qr.make_image() self.qr_code_path = os.path.join(self.base_path, "qrcode.png") img.save(self.qr_code_path) @@ -302,26 +317,29 @@ def render_splash_screen(self): logo_rect = logo.get_rect(center=self.screen.get_rect().center) self.screen.blit(logo, logo_rect) + blitY = self.screen.get_rect().bottomleft[1] - 40 + if not self.hide_ip: p_image = pygame.image.load(self.qr_code_path) p_image = pygame.transform.scale(p_image, (150, 150)) - self.screen.blit(p_image, (20, 20)) + self.screen.blit(p_image, (20, blitY - 125)) if not self.is_network_connected(): text = self.font.render( "Wifi/Network not connected. Shutting down in 10s...", True, (255, 255, 255), ) - self.screen.blit(text, (p_image.get_width() + 35, 20)) + self.screen.blit(text, (p_image.get_width() + 35, blitY)) time.sleep(10) - sys.exit( + logging.info( "No IP found. Network/Wifi configuration required. For wifi config, try: sudo raspi-config or the desktop GUI: startx" ) + self.stop() else: text = self.font.render( "Connect at: " + self.url, True, (255, 255, 255) ) - self.screen.blit(text, (p_image.get_width() + 35, 20)) + self.screen.blit(text, (p_image.get_width() + 35, blitY)) if ( self.raspi_wifi_config_installed @@ -342,28 +360,32 @@ def render_splash_screen(self): True, (255, 255, 255), ) - y1 = self.height - text1.get_height() - 80 - y2 = self.height - text2.get_height() - 40 - y3 = self.height - text2.get_height() - 5 - self.screen.blit(text1, (10, y1)) - self.screen.blit(text2, (10, y2)) - self.screen.blit(text3, (10, y3)) + self.screen.blit(text1, (10, 10)) + self.screen.blit(text2, (10, 50)) + self.screen.blit(text3, (10, 90)) def render_next_song_to_splash_screen(self): if not self.hide_splash_screen: self.render_splash_screen() if len(self.queue) >= 1: logging.debug("Rendering next song to splash screen") - next_song = self.filename_from_path(self.queue[0]) + next_song = self.queue[0]["title"] + max_length = 60 + if (len(next_song) > max_length): + next_song = next_song[0:max_length] + "..." + next_user = self.queue[0]["user"] font_next_song = pygame.font.SysFont(pygame.font.get_default_font(), 60) text = font_next_song.render( - "Up next: %s" % unidecode(next_song), True, (0, 128, 0) + "Up next: %s" % (unidecode(next_song)), True, (0, 128, 0) ) - up_next = font_next_song.render("Up next: ", True, (255, 255, 0)) + up_next = font_next_song.render("Up next: " , True, (255, 255, 0)) + font_user_name = pygame.font.SysFont(pygame.font.get_default_font(), 50) + user_name = font_user_name.render("Added by: %s " % next_user, True, (255, 120, 0)) x = self.width - text.get_width() - 10 - y = self.height - text.get_height() - 5 + y = 5 self.screen.blit(text, (x, y)) self.screen.blit(up_next, (x, y)) + self.screen.blit(user_name, (self.width - user_name.get_width() - 10, y + 50)) return True else: logging.debug("Could not render next song to splash. No song in queue") @@ -394,7 +416,7 @@ def get_search_results(self, textToSearch): def get_karaoke_search_results(self, songTitle): return self.get_search_results(songTitle + " karaoke") - def download_video(self, video_url, enqueue=False): + def download_video(self, video_url, enqueue=False, user="Pikaraoke"): logging.info("Downloading video: " + video_url) dl_path = self.download_path + "%(title)s---%(id)s.%(ext)s" file_quality = ( @@ -415,7 +437,7 @@ def download_video(self, video_url, enqueue=False): y = self.get_youtube_id_from_url(video_url) s = self.find_song_by_youtube_id(y) if s: - self.enqueue(s) + self.enqueue(s, user) else: logging.error("Error queueing song: " + video_url) else: @@ -522,13 +544,19 @@ def is_file_playing(self): self.now_playing = None return False - def enqueue(self, song_path): - if song_path in self.queue: - logging.warn("Song already in queue, will not add: " + song_path) + def is_song_in_queue(self, song_path): + for each in self.queue: + if each["file"] == song_path: + return True + return False + + def enqueue(self, song_path, user="Pikaraoke"): + if (self.is_song_in_queue(song_path)): + logging.warn("Song is already in queue, will not add: " + song_path) return False else: - logging.info("Adding video to queue: " + song_path) - self.queue.append(song_path) + logging.info("'%s' is adding song to queue: %s" % (user, song_path)) + self.queue.append({"user": user, "file": song_path, "title": self.filename_from_path(song_path)}) return True def queue_add_random(self, amount): @@ -540,10 +568,10 @@ def queue_add_random(self, amount): i = 0 while i < amount: r = random.randint(0, len(songs) - 1) - if songs[r] in self.queue: + if self.is_song_in_queue(songs[r]): logging.warn("Song already in queue, trying another... " + songs[r]) else: - self.queue.append(songs[r]) + self.queue.append({"user": "Randomizer", "file": songs[r], "title": self.filename_from_path(songs[r])}) i += 1 songs.pop(r) if len(songs) == 0: @@ -558,38 +586,38 @@ def queue_clear(self): def queue_edit(self, song_name, action): index = 0 - song_path = None + song = None for each in self.queue: - if song_name in each: - song_path = each + if song_name in each["file"]: + song = each break else: index += 1 - if song_path == None: - logging.error("Song not found in queue: " + song_name) + if song == None: + logging.error("Song not found in queue: " + song["file"]) return False if action == "up": if index < 1: - logging.warn("Song is up next, can't bump up in queue: " + song_path) + logging.warn("Song is up next, can't bump up in queue: " + song["file"]) return False else: - logging.info("Bumping song up in queue: " + song_path) + logging.info("Bumping song up in queue: " + song["file"]) del self.queue[index] - self.queue.insert(index - 1, song_path) + self.queue.insert(index - 1, song) return True elif action == "down": if index == len(self.queue) - 1: logging.warn( - "Song is already last, can't bump down in queue: " + song_path + "Song is already last, can't bump down in queue: " + song["file"] ) return False else: - logging.info("Bumping song down in queue: " + song_path) + logging.info("Bumping song down in queue: " + song["file"]) del self.queue[index] - self.queue.insert(index + 1, song_path) + self.queue.insert(index + 1, song) return True elif action == "delete": - logging.info("Deleting song from queue: " + song_path) + logging.info("Deleting song from queue: " + song["file"]) del self.queue[index] return True else: @@ -696,6 +724,7 @@ def pygame_reset_screen(self): def reset_now_playing(self): self.now_playing = None self.now_playing_filename = None + self.now_playing_user = None self.is_paused = True self.now_playing_transpose = 0 @@ -716,7 +745,8 @@ def run(self): while i < (self.splash_delay * 1000): self.handle_run_loop() i += self.loop_interval - self.play_file(self.queue[0]) + self.play_file(self.queue[0]["file"]) + self.now_playing_user=self.queue[0]["user"] self.queue.pop(0) elif not pygame.display.get_active() and not self.is_file_playing(): self.pygame_reset_screen() diff --git a/lib/__init__.py b/lib/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/get_platform.py b/lib/get_platform.py similarity index 100% rename from get_platform.py rename to lib/get_platform.py diff --git a/omxclient.py b/lib/omxclient.py similarity index 100% rename from omxclient.py rename to lib/omxclient.py diff --git a/vlcclient.py b/lib/vlcclient.py similarity index 94% rename from vlcclient.py rename to lib/vlcclient.py index 028f8725..8cdcb7b1 100644 --- a/vlcclient.py +++ b/lib/vlcclient.py @@ -12,7 +12,7 @@ import requests -from get_platform import get_platform +from lib.get_platform import get_platform def get_default_vlc_path(platform): @@ -28,7 +28,7 @@ def get_default_vlc_path(platform): return "/usr/bin/vlc" class VLCClient: - def __init__(self, port=5002, path=None): + def __init__(self, port=5002, path=None, qrcode=None, url=None): # HTTP remote control server self.http_password = "".join( @@ -39,6 +39,9 @@ def __init__(self, port=5002, path=None): self.http_command_endpoint = self.http_endpoint + "?command=" self.is_transposing = False + self.qrcode = qrcode + self.url = url + # Handle vlc paths self.platform = get_platform() if path == None: @@ -82,11 +85,16 @@ def __init__(self, port=5002, path=None): "--macosx-continue-playback", "0", ] + if self.qrcode and self.url: + self.cmd_base += self.get_marquee_cmd() logging.info("VLC command base: " + " ".join(self.cmd_base)) self.volume_offset = 10 self.process = None + + def get_marquee_cmd(self): + return ["--sub-source", 'logo{file=%s,position=9,x=2,opacity=200}:marq{marquee="Pikaraoke - connect at: \n%s",position=9,x=38,color=0xFFFFFF,size=11,opacity=200}' % (self.qrcode, self.url)] def handle_zipped_cdg(self, file_path): extracted_dir = os.path.join(self.tmp_dir, "extracted") diff --git a/scripts/prepare_pi_image.sh b/scripts/prepare_pi_image.sh index 69233022..592704ee 100755 --- a/scripts/prepare_pi_image.sh +++ b/scripts/prepare_pi_image.sh @@ -10,26 +10,24 @@ cd ~/pikaraoke git checkout master git pull -echo echo "*** Clearing the songs dir ***" sudo rm -rf /usr/lib/pikaraoke -echo echo "*** Removing WPA supplicant saved wifi settings ***" sudo rm -rf /etc/wpa_supplicant/wpa_supplicant.conf -echo echo "*** Double-checking /usr/share/alsa/alsa.conf" cat /usr/share/alsa/alsa.conf | grep "defaults.ctl.card " cat /usr/share/alsa/alsa.conf | grep "defaults.pcm.card " echo "^ the above values should be set to 0, not 1" -echo echo "*** Double-checking /etc/rc.local expecting to see a line about launching pikaraoke:" cat /etc/rc.local | grep pikaraoke -echo echo "*** Double-checking we have a wpa_supplicant example file in /boot" ls -la /boot/wpa_supplicant.conf.example +echo "*** Expecting hostname to be 'pikaraoke'" +hostname + fi \ No newline at end of file diff --git a/static/fontello-old/LICENSE.txt b/static/fontello-old/LICENSE.txt new file mode 100644 index 00000000..afd323bd --- /dev/null +++ b/static/fontello-old/LICENSE.txt @@ -0,0 +1,39 @@ +Font license info + + +## Font Awesome + + Copyright (C) 2016 by Dave Gandy + + Author: Dave Gandy + License: SIL () + Homepage: http://fortawesome.github.com/Font-Awesome/ + + +## Entypo + + Copyright (C) 2012 by Daniel Bruce + + Author: Daniel Bruce + License: SIL (http://scripts.sil.org/OFL) + Homepage: http://www.entypo.com + + +## Elusive + + Copyright (C) 2013 by Aristeides Stathopoulos + + Author: Aristeides Stathopoulos + License: SIL (http://scripts.sil.org/OFL) + Homepage: http://aristeides.com/ + + +## Typicons + + (c) Stephen Hutchings 2012 + + Author: Stephen Hutchings + License: SIL (http://scripts.sil.org/OFL) + Homepage: http://typicons.com/ + + diff --git a/static/fontello-old/README.txt b/static/fontello-old/README.txt new file mode 100644 index 00000000..d870892e --- /dev/null +++ b/static/fontello-old/README.txt @@ -0,0 +1,75 @@ +This webfont is generated by https://fontello.com open source project. + + +================================================================================ +Please, note, that you should obey original font licenses, used to make this +webfont pack. Details available in LICENSE.txt file. + +- Usually, it's enough to publish content of LICENSE.txt file somewhere on your + site in "About" section. + +- If your project is open-source, usually, it will be ok to make LICENSE.txt + file publicly available in your repository. + +- Fonts, used in Fontello, don't require a clickable link on your site. + But any kind of additional authors crediting is welcome. +================================================================================ + + +Comments on archive content +--------------------------- + +- /font/* - fonts in different formats + +- /css/* - different kinds of css, for all situations. Should be ok with + twitter bootstrap. Also, you can skip style and assign icon classes + directly to text elements, if you don't mind about IE7. + +- demo.html - demo file, to show your webfont content + +- LICENSE.txt - license info about source fonts, used to build your one. + +- config.json - keeps your settings. You can import it back into fontello + anytime, to continue your work + + +Why so many CSS files ? +----------------------- + +Because we like to fit all your needs :) + +- basic file, .css - is usually enough, it contains @font-face + and character code definitions + +- *-ie7.css - if you need IE7 support, but still don't wish to put char codes + directly into html + +- *-codes.css and *-ie7-codes.css - if you like to use your own @font-face + rules, but still wish to benefit from css generation. That can be very + convenient for automated asset build systems. When you need to update font - + no need to manually edit files, just override old version with archive + content. See fontello source code for examples. + +- *-embedded.css - basic css file, but with embedded WOFF font, to avoid + CORS issues in Firefox and IE9+, when fonts are hosted on the separate domain. + We strongly recommend to resolve this issue by `Access-Control-Allow-Origin` + server headers. But if you ok with dirty hack - this file is for you. Note, + that data url moved to separate @font-face to avoid problems with + + + + + + + +
+

fontello font demo

+ +
+
+
+
icon-play0xe800
+
icon-pause0xe801
+
icon-to-end0xe802
+
icon-home0xe802
+
+
+
icon-to-start0xe803
+
icon-volume-down0xe804
+
icon-search0xe804
+
icon-volume-up0xe805
+
+
+
icon-folder-open0xe805
+
icon-mic-10xe806
+
icon-info-circled0xe806
+
icon-mic-circled0xe807
+
+
+
icon-cog0xe807
+
icon-cancel-circled-outline0xe808
+
icon-cog-alt0xe808
+
icon-cancel-circled-10xe809
+
+
+
icon-trash-empty0xe80a
+
icon-edit-10xe80b
+
icon-pencil0xe80c
+
icon-down-big0xe80c
+
+
+
icon-th-list0xe80d
+
icon-left-big0xe80d
+
icon-th-list-outline0xe80e
+
icon-right-big0xe80e
+
+
+
icon-music0xe80f
+
icon-list-add0xe810
+
icon-up-big0xe810
+
icon-trash0xe811
+
+
+
icon-plus0xe812
+
icon-plus-circled0xe813
+
icon-left-circled0xf0a8
+
icon-right-circled0xf0a9
+
+
+
icon-up-circled0xf0aa
+
icon-down-circled0xf0ab
+
icon-list-bullet0xf0ca
+
icon-list-numbered0xf0cb
+
+
+
icon-sort-down0xf0dd
+
icon-sort-up0xf0de
+
icon-folder-open-empty0xf115
+
+
+ + + \ No newline at end of file diff --git a/static/fontello-old/font/fontello.eot b/static/fontello-old/font/fontello.eot new file mode 100644 index 00000000..90b4d27e Binary files /dev/null and b/static/fontello-old/font/fontello.eot differ diff --git a/static/fontello-old/font/fontello.svg b/static/fontello-old/font/fontello.svg new file mode 100644 index 00000000..d07ee3f3 --- /dev/null +++ b/static/fontello-old/font/fontello.svg @@ -0,0 +1,88 @@ + + + +Copyright (C) 2021 by original authors @ fontello.com + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/static/fontello-old/font/fontello.ttf b/static/fontello-old/font/fontello.ttf new file mode 100644 index 00000000..98c46256 Binary files /dev/null and b/static/fontello-old/font/fontello.ttf differ diff --git a/static/fontello-old/font/fontello.woff b/static/fontello-old/font/fontello.woff new file mode 100644 index 00000000..a3e6d11c Binary files /dev/null and b/static/fontello-old/font/fontello.woff differ diff --git a/static/fontello-old/font/fontello.woff2 b/static/fontello-old/font/fontello.woff2 new file mode 100644 index 00000000..1bc3ff28 Binary files /dev/null and b/static/fontello-old/font/fontello.woff2 differ diff --git a/static/fontello/LICENSE.txt b/static/fontello/LICENSE.txt index 4b0d90dc..931d48fc 100644 --- a/static/fontello/LICENSE.txt +++ b/static/fontello/LICENSE.txt @@ -10,6 +10,15 @@ Font license info Homepage: http://fortawesome.github.com/Font-Awesome/ +## Entypo + + Copyright (C) 2012 by Daniel Bruce + + Author: Daniel Bruce + License: SIL (http://scripts.sil.org/OFL) + Homepage: http://www.entypo.com + + ## Elusive Copyright (C) 2013 by Aristeides Stathopoulos @@ -28,12 +37,21 @@ Font license info Homepage: http://typicons.com/ -## Entypo +## Iconic + + Copyright (C) 2012 by P.J. Onori + + Author: P.J. Onori + License: SIL (http://scripts.sil.org/OFL) + Homepage: http://somerandomdude.com/work/iconic/ + + +## MFG Labs Copyright (C) 2012 by Daniel Bruce - Author: Daniel Bruce + Author: MFG Labs License: SIL (http://scripts.sil.org/OFL) - Homepage: http://www.entypo.com + Homepage: http://www.mfglabs.com/ diff --git a/static/fontello/README.txt b/static/fontello/README.txt index beaab336..d870892e 100644 --- a/static/fontello/README.txt +++ b/static/fontello/README.txt @@ -1,4 +1,4 @@ -This webfont is generated by http://fontello.com open source project. +This webfont is generated by https://fontello.com open source project. ================================================================================ diff --git a/static/fontello/config.json b/static/fontello/config.json index f222b0c9..97f4e86a 100644 --- a/static/fontello/config.json +++ b/static/fontello/config.json @@ -44,7 +44,7 @@ }, { "uid": "8ca5f77677a66dbe813213ca75ac1474", - "css": "mic", + "css": "mic-1", "code": 59398, "src": "elusive" }, @@ -62,7 +62,7 @@ }, { "uid": "3327862df439988139b61814143b7a42", - "css": "cancel-circled", + "css": "cancel-circled-1", "code": 59401, "src": "typicons" }, @@ -74,7 +74,7 @@ }, { "uid": "jqzwo6i8oicjbn049sh2856d8anrqoli", - "css": "edit", + "css": "edit-1", "code": 59403, "src": "typicons" }, @@ -125,6 +125,162 @@ "css": "trash", "code": 59409, "src": "entypo" + }, + { + "uid": "513ac180ff85bd275f2b736720cbbf5e", + "css": "home", + "code": 59394, + "src": "entypo" + }, + { + "uid": "f6766a8b042c2453a4e153af03294383", + "css": "list-numbered", + "code": 61643, + "src": "fontawesome" + }, + { + "uid": "a2a74f5e7b7d9ba054897d8c795a326a", + "css": "list-bullet", + "code": 61642, + "src": "fontawesome" + }, + { + "uid": "9dd9e835aebe1060ba7190ad2b2ed951", + "css": "search", + "code": 59396, + "src": "fontawesome" + }, + { + "uid": "6533bdc16ab201eb3f3b27ce989cab33", + "css": "folder-open-empty", + "code": 61717, + "src": "fontawesome" + }, + { + "uid": "c95735c17a10af81448c7fed98a04546", + "css": "folder-open", + "code": 59397, + "src": "fontawesome" + }, + { + "uid": "e99461abfef3923546da8d745372c995", + "css": "cog", + "code": 59399, + "src": "fontawesome" + }, + { + "uid": "98687378abd1faf8f6af97c254eb6cd6", + "css": "cog-alt", + "code": 59400, + "src": "fontawesome" + }, + { + "uid": "6855131631509e8795730ce062045ea1", + "css": "left-circled", + "code": 61608, + "src": "fontawesome" + }, + { + "uid": "19b04848ae7332d2c0ea2a9e19064037", + "css": "right-circled", + "code": 61609, + "src": "fontawesome" + }, + { + "uid": "2b8e9b027181aafd210bf29c5486d4a0", + "css": "up-circled", + "code": 61610, + "src": "fontawesome" + }, + { + "uid": "55ae6ea25cd707fe34af5b52b2001cdc", + "css": "down-circled", + "code": 61611, + "src": "fontawesome" + }, + { + "uid": "1c4068ed75209e21af36017df8871802", + "css": "down-big", + "code": 59404, + "src": "fontawesome" + }, + { + "uid": "555ef8c86832e686fef85f7af2eb7cde", + "css": "left-big", + "code": 59405, + "src": "fontawesome" + }, + { + "uid": "ad6b3fbb5324abe71a9c0b6609cbb9f1", + "css": "right-big", + "code": 59406, + "src": "fontawesome" + }, + { + "uid": "95376bf082bfec6ce06ea1cda7bd7ead", + "css": "up-big", + "code": 59408, + "src": "fontawesome" + }, + { + "uid": "44e04715aecbca7f266a17d5a7863c68", + "css": "plus", + "code": 59410, + "src": "fontawesome" + }, + { + "uid": "4ba33d2607902cf690dd45df09774cb0", + "css": "plus-circled", + "code": 59411, + "src": "fontawesome" + }, + { + "uid": "d7271d490b71df4311e32cdacae8b331", + "css": "home-1", + "code": 59412, + "src": "fontawesome" + }, + { + "uid": "w3nzesrlbezu6f30q7ytyq919p6gdlb6", + "css": "home-2", + "code": 59413, + "src": "typicons" + }, + { + "uid": "7222571caa5c15f83dcfd447c58d68d9", + "css": "search-1", + "code": 59414, + "src": "entypo" + }, + { + "uid": "ec21fe3492bb04d9e29103c319556ed8", + "css": "search-2", + "code": 62733, + "src": "mfglabs" + }, + { + "uid": "e45e9f27ce40ba9837cc984076d98067", + "css": "search-3", + "code": 59415, + "src": "elusive" + }, + { + "uid": "e82cedfa1d5f15b00c5a81c9bd731ea2", + "css": "info-circled", + "code": 59398, + "src": "fontawesome" + }, + { + "uid": "7e4164950ffa4990961958b2d6318658", + "css": "info-circled-1", + "code": 59416, + "src": "entypo" + }, + { + "uid": "ccd52a22af21fbaa98a9c85fb50fca6b", + "css": "info", + "code": 59417, + "src": "iconic" } ] } \ No newline at end of file diff --git a/static/fontello/css/fontello-codes.css b/static/fontello/css/fontello-codes.css index 6a612da4..9c267f1e 100644 --- a/static/fontello/css/fontello-codes.css +++ b/static/fontello/css/fontello-codes.css @@ -2,20 +2,46 @@ .icon-play:before { content: '\e800'; } /* '' */ .icon-pause:before { content: '\e801'; } /* '' */ .icon-to-end:before { content: '\e802'; } /* '' */ +.icon-home:before { content: '\e802'; } /* '' */ .icon-to-start:before { content: '\e803'; } /* '' */ .icon-volume-down:before { content: '\e804'; } /* '' */ +.icon-search:before { content: '\e804'; } /* '' */ .icon-volume-up:before { content: '\e805'; } /* '' */ -.icon-mic:before { content: '\e806'; } /* '' */ +.icon-folder-open:before { content: '\e805'; } /* '' */ +.icon-mic-1:before { content: '\e806'; } /* '' */ +.icon-info-circled:before { content: '\e806'; } /* '' */ .icon-mic-circled:before { content: '\e807'; } /* '' */ +.icon-cog:before { content: '\e807'; } /* '' */ .icon-cancel-circled-outline:before { content: '\e808'; } /* '' */ -.icon-cancel-circled:before { content: '\e809'; } /* '' */ +.icon-cog-alt:before { content: '\e808'; } /* '' */ +.icon-cancel-circled-1:before { content: '\e809'; } /* '' */ .icon-trash-empty:before { content: '\e80a'; } /* '' */ -.icon-edit:before { content: '\e80b'; } /* '' */ +.icon-edit-1:before { content: '\e80b'; } /* '' */ .icon-pencil:before { content: '\e80c'; } /* '' */ +.icon-down-big:before { content: '\e80c'; } /* '' */ .icon-th-list:before { content: '\e80d'; } /* '' */ +.icon-left-big:before { content: '\e80d'; } /* '' */ .icon-th-list-outline:before { content: '\e80e'; } /* '' */ +.icon-right-big:before { content: '\e80e'; } /* '' */ .icon-music:before { content: '\e80f'; } /* '' */ .icon-list-add:before { content: '\e810'; } /* '' */ +.icon-up-big:before { content: '\e810'; } /* '' */ .icon-trash:before { content: '\e811'; } /* '' */ +.icon-plus:before { content: '\e812'; } /* '' */ +.icon-plus-circled:before { content: '\e813'; } /* '' */ +.icon-home-1:before { content: '\e814'; } /* '' */ +.icon-home-2:before { content: '\e815'; } /* '' */ +.icon-search-1:before { content: '\e816'; } /* '' */ +.icon-search-3:before { content: '\e817'; } /* '' */ +.icon-info-circled-1:before { content: '\e818'; } /* '' */ +.icon-info:before { content: '\e819'; } /* '' */ +.icon-left-circled:before { content: '\f0a8'; } /* '' */ +.icon-right-circled:before { content: '\f0a9'; } /* '' */ +.icon-up-circled:before { content: '\f0aa'; } /* '' */ +.icon-down-circled:before { content: '\f0ab'; } /* '' */ +.icon-list-bullet:before { content: '\f0ca'; } /* '' */ +.icon-list-numbered:before { content: '\f0cb'; } /* '' */ .icon-sort-down:before { content: '\f0dd'; } /* '' */ -.icon-sort-up:before { content: '\f0de'; } /* '' */ \ No newline at end of file +.icon-sort-up:before { content: '\f0de'; } /* '' */ +.icon-folder-open-empty:before { content: '\f115'; } /* '' */ +.icon-search-2:before { content: '\f50d'; } /* '' */ \ No newline at end of file diff --git a/static/fontello/css/fontello-embedded.css b/static/fontello/css/fontello-embedded.css index 3e26edfb..ba0d359e 100644 --- a/static/fontello/css/fontello-embedded.css +++ b/static/fontello/css/fontello-embedded.css @@ -1,15 +1,15 @@ @font-face { font-family: 'fontello'; - src: url('../font/fontello.eot?87438577'); - src: url('../font/fontello.eot?87438577#iefix') format('embedded-opentype'), - url('../font/fontello.svg?87438577#fontello') format('svg'); + src: url('../font/fontello.eot?8809407'); + src: url('../font/fontello.eot?8809407#iefix') format('embedded-opentype'), + url('../font/fontello.svg?8809407#fontello') format('svg'); font-weight: normal; font-style: normal; } @font-face { font-family: 'fontello'; - src: url('data:application/octet-stream;base64,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') format('woff'), - url('data:application/octet-stream;base64,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') format('truetype'); + src: url('data:application/octet-stream;base64,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') format('woff'), + url('data:application/octet-stream;base64,AAEAAAAPAIAAAwBwR1NVQiCLJXoAAAD8AAAAVE9TLzI+NVaTAAABUAAAAFZjbWFwsB6csgAAAagAAAOCY3Z0IAAAAAAAADcEAAAADmZwZ21iLvl6AAA3FAAADgxnYXNwAAAAEAAANvwAAAAIZ2x5ZtYt9t0AAAUsAAArHGhlYWQbfExrAAAwSAAAADZoaGVhB3gDvAAAMIAAAAAkaG10eJ62/9IAADCkAAAAvGxvY2H2gwDSAAAxYAAAAGBtYXhwAe4PhAAAMcAAAAAgbmFtZc2dGBkAADHgAAACzXBvc3S2yt+KAAA0sAAAAklwcmVwfrY7tgAARSAAAACcAAEAAAAKADAAPgACREZMVAAObGF0bgAaAAQAAAAAAAAAAQAAAAQAAAAAAAAAAQAAAAFsaWdhAAgAAAABAAAAAQAEAAQAAAABAAgAAQAGAAAAAQAAAAEDYAGQAAUAAAJ6ArwAAACMAnoCvAAAAeAAMQECAAACAAUDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFBmRWQAwOgA9Q0DUv9qAFoDaQCrAAAAAQAAAAAAAAAAAAUAAAADAAAALAAAAAQAAAHCAAEAAAAAALwAAwABAAAALAADAAoAAAHCAAQAkAAAAA4ACAACAAboGfCr8Mvw3vEV9Q3//wAA6ADwqPDK8N3xFfUN//8AAAAAAAAAAAAAAAAAAQAOAEAARgBIAEoASgAAAAEAAgADAAUABgAIAAoADAAOABAAEQASABMAFQAXABkAGgAcAB0AHgAfACAAIQAiACMAJAAlACYAJwAoACkAKgArACwALQAuAAABBgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAHAAAAAAAAAACQAAOgAAADoAAAAAAEAAOgBAADoAQAAAAIAAOgCAADoAgAAAAMAAOgDAADoAwAAAAUAAOgEAADoBAAAAAYAAOgFAADoBQAAAAgAAOgGAADoBgAAAAoAAOgHAADoBwAAAAwAAOgIAADoCAAAAA4AAOgJAADoCQAAABAAAOgKAADoCgAAABEAAOgLAADoCwAAABIAAOgMAADoDAAAABMAAOgNAADoDQAAABUAAOgOAADoDgAAABcAAOgPAADoDwAAABkAAOgQAADoEAAAABoAAOgRAADoEQAAABwAAOgSAADoEgAAAB0AAOgTAADoEwAAAB4AAOgUAADoFAAAAB8AAOgVAADoFQAAACAAAOgWAADoFgAAACEAAOgXAADoFwAAACIAAOgYAADoGAAAACMAAOgZAADoGQAAACQAAPCoAADwqAAAACUAAPCpAADwqQAAACYAAPCqAADwqgAAACcAAPCrAADwqwAAACgAAPDKAADwygAAACkAAPDLAADwywAAACoAAPDdAADw3QAAACsAAPDeAADw3gAAACwAAPEVAADxFQAAAC0AAPUNAAD1DQAAAC4AAAABAAD/qgMRAxMACwAGswcCATIrCQEGJjURNDYXARYUAwT9Gw0SEg0C5Q0BTf5kBwoPAzYODAj+ZAcUAAACAAD/sQNaAwsADwAfAB5AGxgQCAAEAAEBTAMBAQABhQIBAAB2NTU1MwQGGisBERQGIyEiJicRNDYzITIWBREUBiMhIiYnETQ2MyEyFgNZFBD+4w8UARYOAR0PFv4LFBD+4w8UARYOAR0PFgLn/O4OFhYOAxIOFhYO/O4OFhYOAxIOFhYAAAAAAf///64CPAMPAB0AGUAWGxoSAwEAAUwAAAEAhQABAXY1PQIGGCsXBiY3ETQ2FwEWFxE0NjsBMhYHERQGKwEiJjcRBgcZChABDgsBjAUDFA9IDhYBFA9IDhYBAwVHCwYPAzYOCAz+dAUFAXoOFhYO/O4OFhYOAXsGBQAAAAH//P/MA4gC8gAaACFAHgAFAAWFBAEAAgCFAAIBAoUDAQEBdhQjIREkIgYGHCsBFgYrAREUDgErAREjESMiJjURIyImNwE2MhcDeBAKFlQCDhDMzMIcDlQWChABkBAsEAFQEBb+yg4ODAE2/soUFAE2FhABkhAQAAEAAP+tAjsDDgAdABlAFhsaEgMAAQFMAAEAAYUAAAB2NT0CBhgrATYWFREUBicBJicRFAYrASImJxE0NjsBMhYXETY3AiILDg4L/nQFAhYORw8UARYORw8UAQIFAwMLBg/8yg4IDAGMBQb+hQ4WFg4DEg4WFg7+hgUFAAACAAAAAAKDArEAEwAuACpAJycKAgMEAUwAAgEChQABBAGFAAQDBIUAAwADhQAAAHYvFxIWJgUGGysBERQGJi8BIyImJzU0NjczNzYyFhMUBgcGIyImNzQ+Ay4ENzQ2FzIXHgEBrRYcC7qSDxQBFg6SugoeFNcwJwUJDhYBDBYQEAQIGA4UBBQPCQUnMAKO/aAOFgIJuhYO1g8UAboKFP7BKkoPAxQQDBAMDB4gIAgSCBAPFgEDD0oAAv///2oDoQMNAAgAIQAyQC8fAQEADgEDAQJMAAIDAoYABAAAAQQAaQABAwMBWQABAQNhAAMBA1EXIxQTEgUGGysBNC4BBhQWPgEBFAYiLwEGIyIuAj4EHgIXFAcXFgKDktCSktCSAR4sOhS/ZHtQkmhAAjxsjqSObDwBRb8VAYJnkgKWypgGjP6aHSoVv0U+apCijm46BEJmlk17ZL8VAAQAAP/RA6EC6wATAC4ASwBsAEpARycKAgMENwEFAFQBBwUDTGgBAkoAAgYChQAGAQaFAAEEAYUABAMEhQADAAOFAAAFAIUABQcFhQAHB3ZSUEdGKC8XEhYmCAYcKwERFAYmLwEjIiYnNTQ2NzM3NjIWExQGBwYjIiY3ND4DLgQ3NDYXMhceARcUBgcGIyImNzQ3Njc+ATQmJyYnJjU0NjMyFx4BFxQGBwYjIiYnND8BNjc+AS4BJyYnLgEnJjU0NjcyFx4BAa0WHAu6kg8UARYOkroKHhTXMCcFCQ4WAQwWEBAECBgOFAQUDwkFJzCPYE0HBw8WARUgCykuLikLIBUUDwgHTl6QjnYHBw8UARYZGRVETgJKRhUZBBIDFhYOBwd2jgKO/aAOFgIJuhYO1g8UAboKFP7BKkoPAxQQDBAMDB4gIAgSCBAPFgEDD0oqVZIgAxYOFgsQCR5aaFoeCRALFg4WAyGQVoDYMgMWDhQNDA4OM5iqmDMPDQMGAw0UDxQBAzPWAAAAAv////kEGQMLABIAKQAsQCkAAwQDhQABAgACAQCAAAAAhAAEAgIEVwAEBAJfAAIEAk8jOiM2NQUGGysBFA8BDgEjISIuAT8BPgEzITIWJxUhIgYPAicmNxE0NjsBMhYdASEyFgQZErsYVib9oRMcARG8GFYlAl8THsD+MDVyI7wCAQEBSjOzM0oBLzRIAT8RFN0cKA4iFN0cKA6vWjQp3QMHBQICGDNKSjMSSgAAAAADAAD/agKcA1IAEwApADMAt0AiJiQhGhcVBgQFJxQGAwQIAAkAAgEILywQDQQKAwRMHwEFSkuwD1BYQDgABQQFhQcGAgQABIUCAQAIAIUACAEIhQAKAwkJCnIAAQADCgEDZwsBCQwMCVcLAQkJDGAADAkMUBtAOQAFBAWFBwYCBAAEhQIBAAgAhQAIAQiFAAoDCQMKCYAAAQADCgEDZwsBCQwMCVcLAQkJDGAADAkMUFlAFDMyMTAuLSsqFRQREhkWEhIRDQYfKzURMxUWIDc1MxEGBwYHNSMVJicmNxE2NxUzNTY3FTM1FhcVMzUWFxEGIgczNRYyNxUzFSFAeAEseEAfIVJguF9TIU4eJzYmJTYlKDYlHmL+SGstXi1r/nKDARr4YGD4/uYbFzUSICASNRd1AiUZFHGGDAKUlAQKhm8SGf3bUN9cCAhcRAAAAAAD//3/sQNfAwsAHgAuADsASUBGKCACBgUOBgICARgBAgQAA0wACAAFBggFZwAGAAECBgFnAAIDAQAEAgBpAAQHBwRXAAQEB2EABwQHURUWJiYmESYjIwkGHyslNTQmKwERNCYrASIGHQEUFjsBFSMiBh0BFBY7ATI2AzU0JisBIgYdARQWOwEyNgUUDgEiLgI+ATIeAQI7Cgc2CgiyCAoKCDU1CAoKCPoHCkcKCGsICgoIawgKAWVyxujIbgZ6vPS6flJZCAoBHggKCghZCAqzCghZCAoKAfxZCAoKCFkICgrgdcR0dMTqxHR0xAAAAAAEAAD/aQPqA1MACAAcADIAPADQQCMyMC0mIyEGBwkgHRoXBAYDFAkCBAY6NxANBA0CBEwoAQkBS0uwDVBYQEIKCAIHCQMJBwOABQEDBgkDBn4OAQwNCwQMcgAAAAkHAAlpAAYABAIGBGkAAgANDAINaQALAQELVwALCwFhAAELAVEbQEMKCAIHCQMJBwOABQEDBgkDBn4OAQwNCw0MC4AAAAAJBwAJaQAGAAQCBgRpAAIADQwCDWkACwEBC1cACwsBYQABCwFRWUAYPDs5ODY1NDMvLiwrFBUSEhIWFxMSDwYfKxE0AAQAAgAEACUWFxYXNTMVNjc2NzUjFQYiJzUjFxYyNxEmJxUjNSYnFSM1IgcVIzUGBxMhNSM1BiInFSMBJgGcASgE/uD+XP7iARcUFzU+dj41FxQrTMRMK0dApEATGSQXGSQZFyQZEw8BBkgeOh5IAV7PASYC/t7+Xv7eAgEmQRIOIwwWFgwjDhK3oj8/on01NQFmDwxIVwYCX18IV0oOD/2qKzwFBTwAAAAAAgAA/7EDWgMLAAgAagBFQEJlWUxBBAAEOwoCAQA0KBsQBAMBA0wABQQFhQYBBAAEhQAAAQCFAAEDAYUAAwIDhQACAnZcW1NRSUgrKiIgExIHBhgrATQmIg4BFjI2JRUUBg8BBgcWFxYUBw4BJyIvAQYHBgcGKwEiJjUnJicHBiInJicmNDc+ATcmLwEuASc1NDY/ATY3JicmNDc+ATMyHwE2NzY3NjsBMhYfARYXNzYyFxYXFhQHDgEHFh8BHgECO1J4UgJWdFYBHAgHaAoLEygGBQ9QDQcHTRkaCQcEEHwIDBAbF08GEAZGFgQFCCgKDwhmBwgBCgVoCA4XJQYFD1ANBwhNGBoJCAMRfAcMAQ8cF08FDwdIFAQECSgKDwhmBwoBXjtUVHZUVHh8BwwBEB4VGzIGDgYVUAEFPA0ITBwQCgdnCQw8BQZAHgUOBgwyDxwbDwEMB3wHDAEQGRogLQcMBxRQBTwNCEwcEAoHZwkLOwUFQxwFDgYMMg8cGhABDAAAAAP///+HA6sDNwAIABEAKQBGQEMlIBkDBAMBTAUBBAMCAwQCgAYBAAADBAADaQcBAgEBAlkHAQICAWEAAQIBUQoJAQAdGxcVDg0JEQoRBQQACAEICAYWKwEyABIABAASABMyNhAmIAYQFhMXFgYjIi8BBwYjIiY/AScmNh8BNzYWBwHVwgESAv7q/oD+6gIBEsKX1tb+0tbWu4sMDhELCImKBwsRDgyLixImEYqJEiYSAzP+7v56/vAEARgBfgEa/LrWAS7W1v7S1gFtiQ0gB4uLByANiYoRJhKKihImEQAABgAA/3IELwNJAAgAEgAbAHoAtgDxAJxAme7ZAgQOal0CBQjQvHADAAW+rKB1UkxFIx0JAQCznkADAgE6LQIGApWAAgsDB0zn2wIOSoIBC0kKAQgJBQkIBYAABgIHAgYHgAAOAAQJDgRpAAkIAAlXAAUNAQABBQBpAAIGAQJZDAEBAAcDAQdnAAMLCwNZAAMDC2EACwMLUeXjx8aqqIuKbWxkYlpZNDIrKhMUFBQTEg8GHCsBNCYiBhQWMjYFNCYOARcUFjI2AzQmIgYeATI2BxUUBg8BBgcWFxYUBw4BIi8BBgcGBwYrASImNScmJwcGIicmNTQ3PgE3Ji8BLgE9ATQ2PwE2NyYnJjQ3PgEzMh8BNjc2NzY7ATIWHwEWFzc2MhcWFRQPAQYHFh8BHgEBFRQHBgcWFRQHBiMiLwEGIicOAQciJyY1NDcmJyY9ATQ3NjcmNTQ/ATYzMhYXNxc2PwEyFxYVFAcWFxYRFRQHBgcWFRQHBiMiJicGIicOASInJjU0NyYnJj0BNDc2NyY1ND8BNjMyFhc3FzY/ATIXFhUUBxYXFgH0VHZUVHZUAa0sOCwBKjosASw4LAEqOizYCARXBgwTHwQEDEQQBUAVFgYHBA1oBgoNExdCBA0GUAQFJAgNB1UFCAgFVgcLEx8EBAxECgYGQBMYBgcDDWgGCgENExdBBQ0FUQQYEQgNBlUGBgFmUwYKHAJEAQUVHQsMCwcsAwFEAx0KB1NTBwodAzQQAQQqCBERHBcEAkMCHAkHU1MGChwCRAEFKggLDAsHLAREAx0KB1NTBwodAzQQAQQqCBERHBcEAkMCHAkHUwFeO1RUdlRU4x0sAigfHSoqAlkdKio7KirNZwYKAQ4TFxslBgwEEUIEMgsGPBsNCAZVBgwyBARLDwUFCCwMGBYNAQgHaAUKAQ4TFxslBgwFEEIEMgoIPBoNCAZVBgsxBARLDwQGHhUNGxMMAgj+z04JCA8OPw4CAigbJQEBCzQBKAICDj8ODwgJTgkJEA0/DgICHgk0DAEBKBcBJwICDj8NEAkCM04JCQ8OPw4CAic0DAEBDDQnAgIOPw4PCQlOCQgQDT8OAgIeCTQLAQEnFwEnAgIOPw0QCAAAAv///70DQwMBAAgAJAA7QDgfGBEKBAQCAUwGAQADAQIEAAJpBQEEAQEEWQUBBAQBYQABBAFRAQAiIR0cFBMPDgUEAAgBCAcGFisBMhYSBgQmEjYBJzc2NC4BDwEnJiIGFB8BBwYUFjI/ARcWMjY0AaCt9AL4/qr2AvIBb3h4Dx4sD3h2DyweD3d3Dx8pEXZ4ESkfAv/0/qbyAvYBVvj95Xh4DywcAhB3dw8eKhB4eA8qHxB3dxAfKgAAAAAGAAD/sQMSAwsADwAfAC8AOwBDAGcAZEBhV0UCBggpIRkRCQEGAAECTAUDAgEGAAYBAIAEAgIABwYAB34ADgAJCA4JZw8NAggMCgIGAQgGZwAHCwsHVwAHBwtfAAsHC09lZGFeW1lTUk9MSUdBPxQkFCYmJiYmIxAGHysBERQGKwEiJjURNDY7ATIWFxEUBisBIiY1ETQ2OwEyFhcRFAYrASImNRE0NjsBMhYTESERFB4BMyEyPgEBMycmJyMGBwUVFAYrAREUBiMhIiYnESMiJj0BNDY7ATc+ATczMhYfATMyFgEeCggkCAoKCCQICo8KCCQICgoIJAgKjgoHJAgKCggkBwpI/gwICAIB0AIICP6J+hsEBbEGBAHrCgg2NCX+MCU0ATUICgoIrCcJLBayFyoJJ60ICgG3/r8ICgoIAUEICgoI/r8ICgoIAUEICgoI/r8ICgoIAUEICgr+ZAIR/e8MFAoKFAJlQQUBAQVTJAgK/e8uREIuAhMKCCQICl0VHAEeFF0KAAUAAP9vA94DTQAVABkAHAAqAC4ATUBKLi0CAQIsGAIFAR4aGRcEBQMFA0wAAgEChQABAAUDAQVnAAMABAYDBGcHAQYAAAZXBwEGBgBfAAAGAE8dHR0qHSoVJRcSJTcIBhwrARYUDwERFAYHISImJxE0NhchNzYyFwkBJwEHHwEFEQcOAQcjNTQ2PwEhEQE3JwcDxhgYuR4W/VwWHgEgFQHUuRg+GP6LAUdw/rgVBFgBFacUViWfFhSl/sgCwENyQwKfF0AXuf4rFR4BIBQCpRUgAbkYGP2EAUhw/rksVgTNATigFBoBnylSFKf9wgJOQ3JDAAAEAAD/sQNNAv8ABgAUABkAJACGQBceAQIFHRYOBwQDAhkDAgMAAwEBAQAETEuwElBYQCcABQIFhQACAwKFAAMAA4UAAAEBAHAGAQEEBAFXBgEBAQRgAAQBBFAbQCYABQIFhQACAwKFAAMAA4UAAAEAhQYBAQQEAVcGAQEBBGAABAEEUFlAEgAAISAYFxAPCQgABgAGFAcGFysXNycHFTMVATQjIgcBBhUUMzI3ATYnFwEjNQEUDwEnNzYyHwEWyzKDM0gBXwwFBP7RBA0FBAEvAx7o/jDoA00UXehdFDsWgxQHM4MzPEcCBgwE/tIEBgwEAS4Ecej+L+kBmh0VXelcFRWDFgAAAAABAAD/zwODAwsAHgAgQB0YDwIAAQFMAAIBAoUDAQEAAYUAAAB2FTUXFAQGGisBFAcBBiInASY0PwE2Mh8BETQ2NzMyFhURNzYyHwEWA4MV/pUWOhX+lRUVKRY6FaQqHkcdKqUUOxYpFQGCHhT+lBUVAWwUOxYpFRWkAYkdKgEsHP53pBUVKRYABgAA/28DxQNNAAsAFwAkACkALgAzAHZAcwAKBAqFAAsFCAULCIAACAIFCAJ+AAkDBgMJBoAABgADBgB+AAcBB4YOAQQABQsEBWcNAQIAAwkCA2cMAQABAQBXDAEAAAFfAAEAAU8ZGA0MAQAzMjEwLi0sKykoJyYgHRgkGSMTEAwXDRYHBAALAQoPBhYrJTIeAQYHISIuATYXATIeAQYjISIuATYzATIWFxQGByEiJj4BNwE0IBAgETQgECARNCAQIANcKzwBPir+kyw8AkAqAW0rPAJAKf6TLDwCQCoBbSs8AT4q/pMqQAI8LP4RAQT+/AEE/vwBBP78Wj5WPAE+VEABAWw+VD4+VD4BbT4qLDwBPlY8Afy+gv78Ae+C/vwB74L+/AAAAAABAAD/iANZAu0AHQAkQCEAAgMChQABAAGGAAMAAANXAAMDAF8AAAMATyYXFiMEBhorARUUBiMhFxYUDwEGIicBJjQ3ATYyHwEWFA8BITIWA1kkHf53pBUVKhU7Ff6UFBQBbBU6FioVFaQBiR0kAV5HHiqkFDwUKxQUAWwVOhYBaxUVKRY6FqQoAAAAAAwAAP9VBBIDaQALABcAIwAvADsARwBXAFsAawBvAH8AgwC4QLUiFB0DChYcAggJCghnIxcCCRUBCwYJC2cgEBsDBhIaAgQFBgRnIRMCBREBBwIFB2ceDBkDAg4YAgABAgBnHw8CAQMDAVcfDwIBAQNfDQEDAQNPgIBxcGxsXVxYWElIPTwyMCUkGhgNDAIAgIOAg4KBeXZwf3F+bG9sb25tZWJca11qWFtYW1pZUU5IV0lWQ0A8Rz1GODUwOzI7KygkLyUuIB0YIxojExAMFw0WCAUACwILJAYWKyUhIgYeATMhMjY0JicyFg4BByEiLgE2FwEhIgYeATchMjY0JicyFg4BByEiLgE2FwEhIgYeATMhMjY0JicyFg4BByEiLgE2FwEyFh0BFAYHIyImJzU0NjMXNSMVEzIWHQEUBgcjIiY9ATQ2Mxc1IxUTMhYdARQGByMiJj0BNDYzFzUjFQN1/pQVIAIcFwFsFSAgFUFcAlhD/pRBWgJePwFs/pQVIAIcFwFsFSAgFUFcAlhD/pRBWgJePwFs/pQVIAIcFwFsFSAgFUFcAlhD/pRBWgJeP/7ILDw+KmkrPAE8LGlpaSw8PCxpLDw8LGlpaSo+PCxpLDw+KmlpJiAqHh4qIGhcgloBXIBeAQEFICogAR4sHmlcgloBXIBeAQEEHiweHiweaVyCWgFcgF4B/SY+KmgsPAE+K2gqPtBoaAI9PippKzwBPippKj7RaWkCPj4raCs8AT4qaCs+0WhoAAAAAQAA/4gDNQLtAB4AJEAhAAMCA4UAAAEAhgACAQECVwACAgFfAAECAU8WJSYUBAYaKwEUBwEGIi8BJjQ/ASEiJj0BNDYXIScmND8BNjIXARYDNRT+lRY6FSoWFqP+dx0kJB0BiaMWFioVOhYBaxQBOh4U/pQUFCoVPBWjKh5HHioBpRQ8FCoVFf6VFAAB////aQNaAwsAKwA3QDQSEQIBBBABAwEiAQADA0wABAEEhQADAAIDWQABAAACAQBpAAMDAmEAAgMCUScYGCcVBQYbKwERFA4CLgM+AzcyFxEFERQOAi4DPgI/ATIXETQ2NyU2MzIWA1kmOjowPDgoAiQ8OBo6Mf5TJjo6MDw4KAIkPBw2OjEUEgHQBwkWIALV/Y8cLBYOAgoaKDwoGgoBFgEshP50HCwWDgIKGig8KBwDBhUCGxEeBY4DIAAAAAAEAAAAAAPoAlgACwAXACsANwBZQFYPCgIJAAsACQtnCA4EDAQABwUCAQIAAWcNAQIDAwJXDQECAgNhBgEDAgNRLSwZGA0MAQAzMCw3LTYpKCYkIyEfHhwaGCsZKxMQDBcNFgcEAAsBChAGFisBMhYUBiMhIiY0NjMFMhYUBiMhIiY0NjMlMhQrARUUIj0BIyI0OwE1NDIdASUyFhQGIyEiJjQ2MwFeFhweFP7UFB4cFgEsFhweFP7UFB4cFgOYHh6qZKQeHqRk/j4WHB4U/tQUHhwWAZAeKB4eKB7IHigeHigeyGSqHh6qZKoeHqrIHigeHigeAAAAAAEAAP+xA4MC5wAeACBAHRAHAgADAUwAAwADhQIBAAEAhQABAXYXFTUUBAYaKwEUDwEGIi8BERQGByMiJjURBwYiLwEmNDcBNjIXARYDgxUpFjsUpSgfRx4qpBQ8FCoVFQFrFDwVAWsVATQcFioVFaT+dx0kASYcAYmkFRUqFTsVAWsVFf6VFgADAAD/gAL4A0AACwAfACsAe7UDAQACAUxLsBNQWEAtAAcFBAQHcgAAAgECAAGAAAEBhAADAAUHAwVnBgEEAgIEVwYBBAQCYgACBAJSG0AuAAcFBAUHBIAAAAIBAgABgAABAYQAAwAFBwMFZwYBBAICBFcGAQQEAmIAAgQCUllACxESMhI4GhURCAYeKxMWIDcDDgIiLgEnAR4BHQEUBiAmPQE0Nj8BNjsBMhcHMy4BKwEiDwEzNzMyegGgejYCQoaUhEQCAbJegOD+yOCAXioWMFw0EgxUXBoSZhYKalRAUgHKRkb+Gg4sKiosDgMSEkoiCjpSUjoKIkoSMBoaoG4gEH5CAAEAAP/5AxIDCwAjAClAJgAEAwSFAAEAAYYFAQMAAANXBQEDAwBfAgEAAwBPIzMlIzMjBgYcKwEVFAYnIxUUBgcjIiY3NSMiJic1NDY3MzU0NjsBMhYXFTMyFgMSIBboIBZrFiAB6BceASAW6B4XaxceAegXHgG3axYgAekWHgEgFekeF2sXHgHoFiAgFuggAAL//f+xA18DCwAjADAAQUA+DQEAAR8BBAMCTAIBAAEDAQADgAUBAwQBAwR+AAcAAQAHAWcABAYGBFcABAQGYQAGBAZRFRUjJCUjJBQIBh4rATU0JgcjNTQmJyMiBgcVIyIGFxUUFjczFRQWFzMyNjc1MzI2NxQOASIuAj4BMh4BAqcWDo8WDkcPFAGPDhYBFA+PFg5HDxQBjw4WsnLG6MhuBnq89Lp+ATpIDhYBjw8UARYOjxQPSA4WAY8PFAEWDo8UM3XEdHTE6sR0dMQAAAACAAD/+QOSAsUAEAAxAC5AKy4mJRgVDw4NCAEDDAEAAQJMBAEDAQOFAAEAAYUCAQAAdiooIyIhERQFBhkrAREUBgcjNSMVIyImJxEJARY3BwYHIyInCQEGJi8BJjY3ATYyHwE1NDY7ATIWHQEXFhQDEhYO1o/WDxQBAUEBQQF8IgUHAgcF/n7+fgcNBSMEAgUBkRIwE4gKCGsICnoGASj+9Q8UAdbWFg4BDwEI/vgBJCkFAQMBQv6+BAIFKQYOBQFODw9xbAgKCgjjZgQQAAAAAf///4kEEQMzACAAG0AYBAEAAgCFAAIBAoUDAQEBdiMzEzMmBQYbKwEAFxYVFAYnIxEUBisBIiYnNSMVFAYrASImNREjIi4BNwIJAUKyFB4VaR4VnBYeAdEeFZwVIGcWHgIUAzP+6ZYQGBUgAf6UFSAgFdDQFSAgFQFsHiwSAAACAAD/wgMiAuoAEQAaACxAKREBAgMGAQACAkwAAQADAgEDaQACAAACWQACAgBhAAACAFETFxMnBAYaKyUWDwEGLwEGIyImEDYgFhUUByUUFjI2NCYiBgMEHhguJCC+SlKAvrQBAMAu/hiIsH6IsH5OIhwuICC+Kr4BALa+gFhKqliIfrKGfgAAAgAA/2oD0QNSAA4AFwAwQC0BAQIDDQEBAgJMDgEBSQAAAAMCAANpAAIBAQJZAAICAWEAAQIBURMVIxYEBhorNTczJjU0NiAWEAYHIicHExQWPgE0LgEGugJD+gFk+vqyalvCmYzEjIzEjAi6aXuy+vr+nPgBMMECPWKMAojIiASQAAAAA//8/5ADmgMsAAgAEwApAGJAXwwBAwIjIhgXBAUHAkwABwYFBgcFgAAFBAYFBH4IAQAJAQIDAAJpAAMABgcDBmkKAQQBAQRZCgEEBAFhAAEEAVEVFAoJAQAmJCAeGxkUKRUpEA4JEwoTBQQACAEICwYWKwE2ABIABAACABciBhUGFjMyNjU0AzI2NycGIyI/ATYjIgYHFzYzMg8BBgHGvgEQBv72/oT+7gYBDPIqLgIiICYutB5sNBIwGA4KKhowHnY4EDQWDAwkGgMqAv74/oT+7gYBCgF8ARKWMBocICwgOv2uNDQYJCagYDouGiIimGgAAAIAAP+fAdADHQASABcAO0A4AAUABgEFBmkAAQcBAAIBAGkEAQIDAwJZBAECAgNfAAMCA08BABcWFRQNCwoJCAYDAgASARIIBhYrEyM1IREUFjsBFSE1MzI2JzU0JhM0MgYmSjgBTyIWN/5COBciASAg4ALcAV9v/noYIHFxIBjfGCABTnDgAgAC//3/sQNfAwsAHQAqADNAMAAAAQMBAAOAAAMCAQMCfgAFAAEABQFpAAIEBAJZAAICBGEABAIEURUVJhcWIwYGHCsBNTQmByE3NjQvASYiDwEGFB8BFjI/ATY0LwEhMjY3FA4BIi4CPgEyHgECyhQP/udqCwszCh4K/QoK/QoeCjMKCmoBGQ4WjnLG6MhuBnq89Lp+ATpIDhYBagscCzMKCv0KHgr9CgozCh4KahQzdcR0dMTqxHR0xAAAAAL//f+xA18DCwAeACsAM0AwAAEAAgABAoAAAgMAAgN+AAUAAAEFAGkAAwQEA1kAAwMEYQAEAwRRFRcWFiYUBgYcKwE0LwEmIg8BBhQfASEiBgcVFBY3IQcGFB8BFjI/ATY3FA4BIi4CPgEyHgECzQr9Ch4KMwoKav7oDxQBFg4BGGoKCjMKHgr9CoxyxujIbgZ6vPS6fgFeDwr9CgozCh4KahQPSA4WAWoKHgozCgr9Cg91xHR0xOrEdHTEAAAAAAL//f+xA18DCwAeACsAOEA1GA8CAQAXAQIBAkwDAQEAAgABAoAABQAAAQUAaQACBAQCVwACAgRhAAQCBFEVFxU1FxQGBhwrATQvASYiDwEGFB8BFjI/AREUFjsBMjY3ERcWMj8BNjcUDgEiLgI+ATIeAQLNCv0KHgr9CgozCh4KaRYORw8UAWoKHgozCoxyxujIbgZ6vPS6fgFfDwr9Cgr9Ch4LMgoKaf7oDhYWDgEYaQsLMgsOdcR0dMTqxHR0xAAAAAAC//3/sQNfAwsAIAAtADhANQ8BAAEQBwIDAAJMAgEAAQMBAAOAAAUAAQAFAWcAAwQEA1kAAwMEYQAEAwRRFRgYFSYUBgYcKwE0LwEmIg8BETQmJyMiBgcRJyYiDwEGFB8CFjI/AjY3FA4BIi4CPgEyHgECzQozCh4KahYORw8UAWkLHAszCgrKMwoeCjPKCoxyxujIbgZ6vPS6fgFdEAoyCgppARgPFAEWDv7oaQsLMgogCcoyCgoyygoQdcR0dMTqxHR0xAAAAAYAAP/UA+kC5wAIABEAIQAqADoASgBfQFxEPDsDCgs0LAIICRsTAgQFA0wACwAKBgsKZwAHAAYDBwZpAAkACAIJCGcAAwACAQMCaQABBQABWQAFAAQABQRnAAEBAGEAAAEAUUhGQD84NiUTFRcWExQTEgwGHys3FAYuATQ+ARY1FAYiJjQ2MhYBFRQGJyEiJj0BNDY3ITIWARQGIiY0NjIWARUUBiMhIiY9ATQ2MyEyFgMVFAYHISImPQE0NjMhMhbWPlo+Plo+Plo+Plo+AxIKCP1aCAoKCAKmBwz87T5aPj5aPgMSCgj9WggKCggCpgcMAQoI/VoICgoIAqYHDEAsQAI8XDwCQPItPj5aPj7+62sHDAEKCGsHCgEMAgAtPj5aPj7+62wHCgoHbAcKCgEWawcKAQwGawgKCgAGAAD/agPpA00AHwA9AE0AXQBtAH0CF0A3WllVAxQPd24CDhRvAQ0OMAEHCGcvKgMKEkccAgMFPx0OAwsEBgEBAgUBAAEJTF8BChcTAgMCS0uwDFBYQGMADxQPhRUBChIRCQpyAAQDCwMEcgACCwEDAnIAFA4NFFcWEAIOEwENCA4NZwAIAAcSCAdpABIAEQkSEWcACQAGBQkGaAADBAUDWQwBBQALAgULZwABAAABWQABAQBhAAABAFEbS7AlUFhAZAAPFA+FFQEKEhEJCnIABAMLAwRyAAILAQsCAYAAFA4NFFcWEAIOEwENCA4NZwAIAAcSCAdpABIAEQkSEWcACQAGBQkGaAADBAUDWQwBBQALAgULZwABAAABWQABAQBhAAABAFEbS7AqUFhAZQAPFA+FFQEKEhESChGAAAQDCwMEcgACCwELAgGAABQODRRXFhACDhMBDQgODWcACAAHEggHaQASABEJEhFnAAkABgUJBmgAAwQFA1kMAQUACwIFC2cAAQAAAVkAAQEAYQAAAQBRG0BmAA8UD4UVAQoSERIKEYAABAMLAwQLgAACCwELAgGAABQODRRXFhACDhMBDQgODWcACAAHEggHaQASABEJEhFnAAkABgUJBmgAAwQFA1kMAQUACwIFC2cAAQAAAVkAAQEAYQAAAQBRWVlZQCxOTiAge3lzcmtpY2FOXU5dXFtSUVBPS0lDQiA9ID08OyQbFhESGBMjIhcGHysXFAYHIic3FjMyNjU0Byc2PwE2NzUiBicVIzUzFQceARMVIyY1ND4DNzQmByIHJz4BMzIWFRQOAgczNQUVFAYnISImPQE0NjMhMhYBFSM1MzU0NzUjBgcnNzMVBRUUBiMhIiY9ATQ2MyEyFgMVFAYHISImPQE0NjMhMhbVPiw8JB8cIBAYOw4EDhgKCgkkCTu6NRwiAcoEHCIoFgMSDRkULw02ICg4Ji4mAUcDTQoI/VoICgoIAqYHDPztuzwBAQUXKEw7A04KCP1aCAoKCAKmBwwBCgj9WggKCggCpgcMNi0yASUxGRAQIwQfBhIfDQgBAgEeVTFBBioBQlkUCh0uHhgYDQ4QASAhHCAuKBwuGh4PIrJrBwwBCghrCAoMAfA4OEMtFwcKFCpH4dhsBwoKB2wHCgoBFmsHCgEMBmsICgoAAQAA/9UCPAEXAA4AF0AUAAEAAQFMAAEAAYUAAAB2JhQCBhgrJRQPAQYiLwEmNDY3ITIWAjsK+gscC/oLFg4B9A4W8w8K+gsL+goeFAEWAAAB//8AAAI7AucADgARQA4AAQABhQAAAHYVMgIGGCsBFAYjISIuAT8BNjIfARYCOxQP/gwPFAIM+goeCvoKAckOFhYcC/oLC/oKAAAAAwAA//kEKQMLABEAJwBFAEpARyQBAQABTAAGAAQHBgRnAAcAAwIHA2cICQICAAABAgBnAAEFBQFXAAEBBV8ABQEFTxMSQkA9Ozg1MC0hHhkWEicTJzYxCgYYKwE0IyEiBg8BBhUUMyEyNj8BNiUhNTQmByEiJic1NCYHIyIGFRE3PgEFFA8BDgEjISImNRE0NjsBMhYdASEyFhcVMzIWFxYD4h79oRY0DaQLHgJfFzIPpAr9gwGtIBb+vxceAR4XsxYgjxlQAuoZpRhSJf2hM0pKM7MzSgEvNEgBax40CwgBSxMYEcsNCRQaEMsMZFoWIAEgFiQWIAEeF/4krx4mWiMgyx4mSjMCGDNKSjMSSjNaGhsRAAAAAAL/9P+fA30DHQAdACcAMkAvDAEDBBcBAgMCTAABAgGGAAAABAMABGkAAwICA1kAAwMCYQACAwJRExYlHBUFBhsrEyY2Nz4BMhYXHgEGBxYfARYUBiIvASYnBiMiJicmNxQWMj4BJiIHBgsXLkAwfIN8MDQyCCAcFa4jRmQjrRYIRk9CfDBAToO5ggKFt0NBAXdXrEAxMjIxNIaMPggVrSNkRiOuFB0jMjBArV2CgrqDQkEAAAEAAAABAACzleyyXw889QAPA+gAAAAA3BsEZAAAAADcGwRk//T/VQQvA2kAAAAIAAIAAAAAAAAAAQAAA1L/agAABC//9P/zBC8AAQAAAAAAAAAAAAAAAAAAAC8D6AAAAxEAAANZAAACO///A4T//AI7AAACggAAA6D//wOgAAAEL///ApwAAANZ//0D6AAAA1kAAAOq//8ELwAAA0L//wMRAAAD3gAAA1kAAAOgAAADxAAAA1kAAAQRAAADWQAAA1n//wPoAAADoAAAAvgAAAMRAAADWf/9A6AAAAQR//8DFQAAA9EAAAOY//wB4gAAA1n//QNZ//0DWf/9A1n//QPoAAAD6AAAAjsAAAI7//8ELwAAA3z/9AAAAAAAHgBiAKAA3AEaAXYBxgKKAuIDigQCBMoFjAX8B6AH/gjCCTwJwAoECpgK3gv8DEIMog0eDWIN5A4sDpQO/A88D4APwhA8EIAQ3hE+EaASBBKiFFoUghSoFTQVjgABAAAALwDyAAwAAAAAAAIASACEAI0AAADdDgwAAAAAAAAAEgDeAAEAAAAAAAAANQAAAAEAAAAAAAEACAA1AAEAAAAAAAIABwA9AAEAAAAAAAMACABEAAEAAAAAAAQACABMAAEAAAAAAAUACwBUAAEAAAAAAAYACABfAAEAAAAAAAoAKwBnAAEAAAAAAAsAEwCSAAMAAQQJAAAAagClAAMAAQQJAAEAEAEPAAMAAQQJAAIADgEfAAMAAQQJAAMAEAEtAAMAAQQJAAQAEAE9AAMAAQQJAAUAFgFNAAMAAQQJAAYAEAFjAAMAAQQJAAoAVgFzAAMAAQQJAAsAJgHJQ29weXJpZ2h0IChDKSAyMDIxIGJ5IG9yaWdpbmFsIGF1dGhvcnMgQCBmb250ZWxsby5jb21mb250ZWxsb1JlZ3VsYXJmb250ZWxsb2ZvbnRlbGxvVmVyc2lvbiAxLjBmb250ZWxsb0dlbmVyYXRlZCBieSBzdmcydHRmIGZyb20gRm9udGVsbG8gcHJvamVjdC5odHRwOi8vZm9udGVsbG8uY29tAEMAbwBwAHkAcgBpAGcAaAB0ACAAKABDACkAIAAyADAAMgAxACAAYgB5ACAAbwByAGkAZwBpAG4AYQBsACAAYQB1AHQAaABvAHIAcwAgAEAAIABmAG8AbgB0AGUAbABsAG8ALgBjAG8AbQBmAG8AbgB0AGUAbABsAG8AUgBlAGcAdQBsAGEAcgBmAG8AbgB0AGUAbABsAG8AZgBvAG4AdABlAGwAbABvAFYAZQByAHMAaQBvAG4AIAAxAC4AMABmAG8AbgB0AGUAbABsAG8ARwBlAG4AZQByAGEAdABlAGQAIABiAHkAIABzAHYAZwAyAHQAdABmACAAZgByAG8AbQAgAEYAbwBuAHQAZQBsAGwAbwAgAHAAcgBvAGoAZQBjAHQALgBoAHQAdABwADoALwAvAGYAbwBuAHQAZQBsAGwAbwAuAGMAbwBtAAAAAAIAAAAAAAAACgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALwECAQMBBAEFAQYBBwEIAQkBCgELAQwBDQEOAQ8BEAERARIBEwEUARUBFgEXARgBGQEaARsBHAEdAR4BHwEgASEBIgEjASQBJQEmAScBKAEpASoBKwEsAS0BLgEvATAABHBsYXkFcGF1c2UGdG8tZW5kBGhvbWUIdG8tc3RhcnQLdm9sdW1lLWRvd24Gc2VhcmNoCXZvbHVtZS11cAtmb2xkZXItb3BlbgVtaWMtMQxpbmZvLWNpcmNsZWQLbWljLWNpcmNsZWQDY29nFmNhbmNlbC1jaXJjbGVkLW91dGxpbmUHY29nLWFsdBBjYW5jZWwtY2lyY2xlZC0xC3RyYXNoLWVtcHR5BmVkaXQtMQZwZW5jaWwIZG93bi1iaWcHdGgtbGlzdAhsZWZ0LWJpZw90aC1saXN0LW91dGxpbmUJcmlnaHQtYmlnBW11c2ljCGxpc3QtYWRkBnVwLWJpZwV0cmFzaARwbHVzDHBsdXMtY2lyY2xlZAZob21lLTEGaG9tZS0yCHNlYXJjaC0xCHNlYXJjaC0zDmluZm8tY2lyY2xlZC0xBGluZm8MbGVmdC1jaXJjbGVkDXJpZ2h0LWNpcmNsZWQKdXAtY2lyY2xlZAxkb3duLWNpcmNsZWQLbGlzdC1idWxsZXQNbGlzdC1udW1iZXJlZAlzb3J0LWRvd24Hc29ydC11cBFmb2xkZXItb3Blbi1lbXB0eQhzZWFyY2gtMgAAAAAAAAEAAf//AA8AAAAAAAAAAAAAAAAAAAAAsAAsILAAVVhFWSAgS7gADlFLsAZTWliwNBuwKFlgZiCKVViwAiVhuQgACABjYyNiGyEhsABZsABDI0SyAAEAQ2BCLbABLLAgYGYtsAIsIyEjIS2wAywgZLMDFBUAQkOwE0MgYGBCsQIUQ0KxJQNDsAJDVHggsAwjsAJDQ2FksARQeLICAgJDYEKwIWUcIbACQ0OyDhUBQhwgsAJDI0KyEwETQ2BCI7AAUFhlWbIWAQJDYEItsAQssAMrsBVDWCMhIyGwFkNDI7AAUFhlWRsgZCCwwFCwBCZasigBDUNFY0WwBkVYIbADJVlSW1ghIyEbilggsFBQWCGwQFkbILA4UFghsDhZWSCxAQ1DRWNFYWSwKFBYIbEBDUNFY0UgsDBQWCGwMFkbILDAUFggZiCKimEgsApQWGAbILAgUFghsApgGyCwNlBYIbA2YBtgWVlZG7ACJbAMQ2OwAFJYsABLsApQWCGwDEMbS7AeUFghsB5LYbgQAGOwDENjuAUAYllZZGFZsAErWVkjsABQWGVZWSBksBZDI0JZLbAFLCBFILAEJWFkILAHQ1BYsAcjQrAII0IbISFZsAFgLbAGLCMhIyGwAysgZLEHYkIgsAgjQrAGRVgbsQENQ0VjsQENQ7AAYEVjsAUqISCwCEMgiiCKsAErsTAFJbAEJlFYYFAbYVJZWCNZIVkgsEBTWLABKxshsEBZI7AAUFhlWS2wByywCUMrsgACAENgQi2wCCywCSNCIyCwACNCYbACYmawAWOwAWCwByotsAksICBFILAOQ2O4BABiILAAUFiwQGBZZrABY2BEsAFgLbAKLLIJDgBDRUIqIbIAAQBDYEItsAsssABDI0SyAAEAQ2BCLbAMLCAgRSCwASsjsABDsAQlYCBFiiNhIGQgsCBQWCGwABuwMFBYsCAbsEBZWSOwAFBYZVmwAyUjYUREsAFgLbANLCAgRSCwASsjsABDsAQlYCBFiiNhIGSwJFBYsAAbsEBZI7AAUFhlWbADJSNhRESwAWAtsA4sILAAI0KzDQwAA0VQWCEbIyFZKiEtsA8ssQICRbBkYUQtsBAssAFgICCwD0NKsABQWCCwDyNCWbAQQ0qwAFJYILAQI0JZLbARLCCwEGJmsAFjILgEAGOKI2GwEUNgIIpgILARI0IjLbASLEtUWLEEZERZJLANZSN4LbATLEtRWEtTWLEEZERZGyFZJLATZSN4LbAULLEAEkNVWLESEkOwAWFCsBErWbAAQ7ACJUKxDwIlQrEQAiVCsAEWIyCwAyVQWLEBAENgsAQlQoqKIIojYbAQKiEjsAFhIIojYbAQKiEbsQEAQ2CwAiVCsAIlYbAQKiFZsA9DR7AQQ0dgsAJiILAAUFiwQGBZZrABYyCwDkNjuAQAYiCwAFBYsEBgWWawAWNgsQAAEyNEsAFDsAA+sgEBAUNgQi2wFSwAsQACRVRYsBIjQiBFsA4jQrANI7AAYEIgYLcYGAEAEQATAEJCQopgILAUI0KwAWGxFAgrsIsrGyJZLbAWLLEAFSstsBcssQEVKy2wGCyxAhUrLbAZLLEDFSstsBossQQVKy2wGyyxBRUrLbAcLLEGFSstsB0ssQcVKy2wHiyxCBUrLbAfLLEJFSstsCssIyCwEGJmsAFjsAZgS1RYIyAusAFdGyEhWS2wLCwjILAQYmawAWOwFmBLVFgjIC6wAXEbISFZLbAtLCMgsBBiZrABY7AmYEtUWCMgLrABchshIVktsCAsALAPK7EAAkVUWLASI0IgRbAOI0KwDSOwAGBCIGCwAWG1GBgBABEAQkKKYLEUCCuwiysbIlktsCEssQAgKy2wIiyxASArLbAjLLECICstsCQssQMgKy2wJSyxBCArLbAmLLEFICstsCcssQYgKy2wKCyxByArLbApLLEIICstsCossQkgKy2wLiwgPLABYC2wLywgYLAYYCBDI7ABYEOwAiVhsAFgsC4qIS2wMCywLyuwLyotsDEsICBHICCwDkNjuAQAYiCwAFBYsEBgWWawAWNgI2E4IyCKVVggRyAgsA5DY7gEAGIgsABQWLBAYFlmsAFjYCNhOBshWS2wMiwAsQACRVRYsQ4GRUKwARawMSqxBQEVRVgwWRsiWS2wMywAsA8rsQACRVRYsQ4GRUKwARawMSqxBQEVRVgwWRsiWS2wNCwgNbABYC2wNSwAsQ4GRUKwAUVjuAQAYiCwAFBYsEBgWWawAWOwASuwDkNjuAQAYiCwAFBYsEBgWWawAWOwASuwABa0AAAAAABEPiM4sTQBFSohLbA2LCA8IEcgsA5DY7gEAGIgsABQWLBAYFlmsAFjYLAAQ2E4LbA3LC4XPC2wOCwgPCBHILAOQ2O4BABiILAAUFiwQGBZZrABY2CwAENhsAFDYzgtsDkssQIAFiUgLiBHsAAjQrACJUmKikcjRyNhIFhiGyFZsAEjQrI4AQEVFCotsDossAAWsBcjQrAEJbAEJUcjRyNhsQwAQrALQytlii4jICA8ijgtsDsssAAWsBcjQrAEJbAEJSAuRyNHI2EgsAYjQrEMAEKwC0MrILBgUFggsEBRWLMEIAUgG7MEJgUaWUJCIyCwCkMgiiNHI0cjYSNGYLAGQ7ACYiCwAFBYsEBgWWawAWNgILABKyCKimEgsARDYGQjsAVDYWRQWLAEQ2EbsAVDYFmwAyWwAmIgsABQWLBAYFlmsAFjYSMgILAEJiNGYTgbI7AKQ0awAiWwCkNHI0cjYWAgsAZDsAJiILAAUFiwQGBZZrABY2AjILABKyOwBkNgsAErsAUlYbAFJbACYiCwAFBYsEBgWWawAWOwBCZhILAEJWBkI7ADJWBkUFghGyMhWSMgILAEJiNGYThZLbA8LLAAFrAXI0IgICCwBSYgLkcjRyNhIzw4LbA9LLAAFrAXI0IgsAojQiAgIEYjR7ABKyNhOC2wPiywABawFyNCsAMlsAIlRyNHI2GwAFRYLiA8IyEbsAIlsAIlRyNHI2EgsAUlsAQlRyNHI2GwBiWwBSVJsAIlYbkIAAgAY2MjIFhiGyFZY7gEAGIgsABQWLBAYFlmsAFjYCMuIyAgPIo4IyFZLbA/LLAAFrAXI0IgsApDIC5HI0cjYSBgsCBgZrACYiCwAFBYsEBgWWawAWMjICA8ijgtsEAsIyAuRrACJUawF0NYUBtSWVggPFkusTABFCstsEEsIyAuRrACJUawF0NYUhtQWVggPFkusTABFCstsEIsIyAuRrACJUawF0NYUBtSWVggPFkjIC5GsAIlRrAXQ1hSG1BZWCA8WS6xMAEUKy2wQyywOisjIC5GsAIlRrAXQ1hQG1JZWCA8WS6xMAEUKy2wRCywOyuKICA8sAYjQoo4IyAuRrACJUawF0NYUBtSWVggPFkusTABFCuwBkMusDArLbBFLLAAFrAEJbAEJiAgIEYjR2GwDCNCLkcjRyNhsAtDKyMgPCAuIzixMAEUKy2wRiyxCgQlQrAAFrAEJbAEJSAuRyNHI2EgsAYjQrEMAEKwC0MrILBgUFggsEBRWLMEIAUgG7MEJgUaWUJCIyBHsAZDsAJiILAAUFiwQGBZZrABY2AgsAErIIqKYSCwBENgZCOwBUNhZFBYsARDYRuwBUNgWbADJbACYiCwAFBYsEBgWWawAWNhsAIlRmE4IyA8IzgbISAgRiNHsAErI2E4IVmxMAEUKy2wRyyxADorLrEwARQrLbBILLEAOyshIyAgPLAGI0IjOLEwARQrsAZDLrAwKy2wSSywABUgR7AAI0KyAAEBFRQTLrA2Ki2wSiywABUgR7AAI0KyAAEBFRQTLrA2Ki2wSyyxAAEUE7A3Ki2wTCywOSotsE0ssAAWRSMgLiBGiiNhOLEwARQrLbBOLLAKI0KwTSstsE8ssgAARistsFAssgABRistsFEssgEARistsFIssgEBRistsFMssgAARystsFQssgABRystsFUssgEARystsFYssgEBRystsFcsswAAAEMrLbBYLLMAAQBDKy2wWSyzAQAAQystsFosswEBAEMrLbBbLLMAAAFDKy2wXCyzAAEBQystsF0sswEAAUMrLbBeLLMBAQFDKy2wXyyyAABFKy2wYCyyAAFFKy2wYSyyAQBFKy2wYiyyAQFFKy2wYyyyAABIKy2wZCyyAAFIKy2wZSyyAQBIKy2wZiyyAQFIKy2wZyyzAAAARCstsGgsswABAEQrLbBpLLMBAABEKy2waiyzAQEARCstsGssswAAAUQrLbBsLLMAAQFEKy2wbSyzAQABRCstsG4sswEBAUQrLbBvLLEAPCsusTABFCstsHAssQA8K7BAKy2wcSyxADwrsEErLbByLLAAFrEAPCuwQistsHMssQE8K7BAKy2wdCyxATwrsEErLbB1LLAAFrEBPCuwQistsHYssQA9Ky6xMAEUKy2wdyyxAD0rsEArLbB4LLEAPSuwQSstsHkssQA9K7BCKy2weiyxAT0rsEArLbB7LLEBPSuwQSstsHwssQE9K7BCKy2wfSyxAD4rLrEwARQrLbB+LLEAPiuwQCstsH8ssQA+K7BBKy2wgCyxAD4rsEIrLbCBLLEBPiuwQCstsIIssQE+K7BBKy2wgyyxAT4rsEIrLbCELLEAPysusTABFCstsIUssQA/K7BAKy2whiyxAD8rsEErLbCHLLEAPyuwQistsIgssQE/K7BAKy2wiSyxAT8rsEErLbCKLLEBPyuwQistsIsssgsAA0VQWLAGG7IEAgNFWCMhGyFZWUIrsAhlsAMkUHixBQEVRVgwWS0AS7gAyFJYsQEBjlmwAbkIAAgAY3CxAAdCsQAAKrEAB0KxAAoqsQAHQrEACiqxAAdCuQAAAAsqsQAHQrkAAAALKrkAAwAARLEkAYhRWLBAiFi5AAMAZESxKAGIUVi4CACIWLkAAwAARFkbsScBiFFYugiAAAEEQIhjVFi5AAMAAERZWVlZWbEADiq4Af+FsASNsQIARLMFZAYAREQ=') format('truetype'); } /* Chrome hack: SVG is rendered more smooth in Windozze. 100% magic, uncomment if you need it. */ /* Note, that will break hinting! In other OS-es font will be not as sharp as it could be */ @@ -17,7 +17,7 @@ @media screen and (-webkit-min-device-pixel-ratio:0) { @font-face { font-family: 'fontello'; - src: url('../font/fontello.svg?87438577#fontello') format('svg'); + src: url('../font/fontello.svg?8809407#fontello') format('svg'); } } */ @@ -48,6 +48,10 @@ /* you can be more comfortable with increased icons size */ /* font-size: 120%; */ + + /* Font smoothing. That was taken from TWBS */ + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; /* Uncomment for 3D effect */ /* text-shadow: 1px 1px 1px rgba(127, 127, 127, 0.3); */ @@ -55,20 +59,46 @@ .icon-play:before { content: '\e800'; } /* '' */ .icon-pause:before { content: '\e801'; } /* '' */ .icon-to-end:before { content: '\e802'; } /* '' */ +.icon-home:before { content: '\e802'; } /* '' */ .icon-to-start:before { content: '\e803'; } /* '' */ .icon-volume-down:before { content: '\e804'; } /* '' */ +.icon-search:before { content: '\e804'; } /* '' */ .icon-volume-up:before { content: '\e805'; } /* '' */ -.icon-mic:before { content: '\e806'; } /* '' */ +.icon-folder-open:before { content: '\e805'; } /* '' */ +.icon-mic-1:before { content: '\e806'; } /* '' */ +.icon-info-circled:before { content: '\e806'; } /* '' */ .icon-mic-circled:before { content: '\e807'; } /* '' */ +.icon-cog:before { content: '\e807'; } /* '' */ .icon-cancel-circled-outline:before { content: '\e808'; } /* '' */ -.icon-cancel-circled:before { content: '\e809'; } /* '' */ +.icon-cog-alt:before { content: '\e808'; } /* '' */ +.icon-cancel-circled-1:before { content: '\e809'; } /* '' */ .icon-trash-empty:before { content: '\e80a'; } /* '' */ -.icon-edit:before { content: '\e80b'; } /* '' */ +.icon-edit-1:before { content: '\e80b'; } /* '' */ .icon-pencil:before { content: '\e80c'; } /* '' */ +.icon-down-big:before { content: '\e80c'; } /* '' */ .icon-th-list:before { content: '\e80d'; } /* '' */ +.icon-left-big:before { content: '\e80d'; } /* '' */ .icon-th-list-outline:before { content: '\e80e'; } /* '' */ +.icon-right-big:before { content: '\e80e'; } /* '' */ .icon-music:before { content: '\e80f'; } /* '' */ .icon-list-add:before { content: '\e810'; } /* '' */ +.icon-up-big:before { content: '\e810'; } /* '' */ .icon-trash:before { content: '\e811'; } /* '' */ +.icon-plus:before { content: '\e812'; } /* '' */ +.icon-plus-circled:before { content: '\e813'; } /* '' */ +.icon-home-1:before { content: '\e814'; } /* '' */ +.icon-home-2:before { content: '\e815'; } /* '' */ +.icon-search-1:before { content: '\e816'; } /* '' */ +.icon-search-3:before { content: '\e817'; } /* '' */ +.icon-info-circled-1:before { content: '\e818'; } /* '' */ +.icon-info:before { content: '\e819'; } /* '' */ +.icon-left-circled:before { content: '\f0a8'; } /* '' */ +.icon-right-circled:before { content: '\f0a9'; } /* '' */ +.icon-up-circled:before { content: '\f0aa'; } /* '' */ +.icon-down-circled:before { content: '\f0ab'; } /* '' */ +.icon-list-bullet:before { content: '\f0ca'; } /* '' */ +.icon-list-numbered:before { content: '\f0cb'; } /* '' */ .icon-sort-down:before { content: '\f0dd'; } /* '' */ -.icon-sort-up:before { content: '\f0de'; } /* '' */ \ No newline at end of file +.icon-sort-up:before { content: '\f0de'; } /* '' */ +.icon-folder-open-empty:before { content: '\f115'; } /* '' */ +.icon-search-2:before { content: '\f50d'; } /* '' */ \ No newline at end of file diff --git a/static/fontello/css/fontello-ie7-codes.css b/static/fontello/css/fontello-ie7-codes.css index 6ea544fd..ccbd0ba2 100644 --- a/static/fontello/css/fontello-ie7-codes.css +++ b/static/fontello/css/fontello-ie7-codes.css @@ -2,20 +2,46 @@ .icon-play { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } .icon-pause { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } .icon-to-end { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } +.icon-home { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } .icon-to-start { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } .icon-volume-down { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } +.icon-search { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } .icon-volume-up { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } -.icon-mic { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } +.icon-folder-open { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } +.icon-mic-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } +.icon-info-circled { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } .icon-mic-circled { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } +.icon-cog { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } .icon-cancel-circled-outline { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } -.icon-cancel-circled { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } +.icon-cog-alt { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } +.icon-cancel-circled-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } .icon-trash-empty { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } -.icon-edit { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } +.icon-edit-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } .icon-pencil { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } +.icon-down-big { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } .icon-th-list { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } +.icon-left-big { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } .icon-th-list-outline { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } +.icon-right-big { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } .icon-music { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } .icon-list-add { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } +.icon-up-big { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } .icon-trash { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } +.icon-plus { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } +.icon-plus-circled { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } +.icon-home-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } +.icon-home-2 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } +.icon-search-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } +.icon-search-3 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } +.icon-info-circled-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } +.icon-info { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } +.icon-left-circled { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } +.icon-right-circled { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } +.icon-up-circled { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } +.icon-down-circled { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } +.icon-list-bullet { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } +.icon-list-numbered { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } .icon-sort-down { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } -.icon-sort-up { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } \ No newline at end of file +.icon-sort-up { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } +.icon-folder-open-empty { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } +.icon-search-2 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } \ No newline at end of file diff --git a/static/fontello/css/fontello-ie7.css b/static/fontello/css/fontello-ie7.css index 51441af7..6b17823e 100644 --- a/static/fontello/css/fontello-ie7.css +++ b/static/fontello/css/fontello-ie7.css @@ -13,20 +13,46 @@ .icon-play { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } .icon-pause { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } .icon-to-end { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } +.icon-home { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } .icon-to-start { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } .icon-volume-down { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } +.icon-search { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } .icon-volume-up { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } -.icon-mic { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } +.icon-folder-open { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } +.icon-mic-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } +.icon-info-circled { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } .icon-mic-circled { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } +.icon-cog { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } .icon-cancel-circled-outline { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } -.icon-cancel-circled { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } +.icon-cog-alt { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } +.icon-cancel-circled-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } .icon-trash-empty { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } -.icon-edit { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } +.icon-edit-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } .icon-pencil { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } +.icon-down-big { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } .icon-th-list { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } +.icon-left-big { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } .icon-th-list-outline { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } +.icon-right-big { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } .icon-music { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } .icon-list-add { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } +.icon-up-big { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } .icon-trash { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } +.icon-plus { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } +.icon-plus-circled { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } +.icon-home-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } +.icon-home-2 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } +.icon-search-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } +.icon-search-3 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } +.icon-info-circled-1 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } +.icon-info { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } +.icon-left-circled { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } +.icon-right-circled { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } +.icon-up-circled { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } +.icon-down-circled { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } +.icon-list-bullet { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } +.icon-list-numbered { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } .icon-sort-down { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } -.icon-sort-up { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } \ No newline at end of file +.icon-sort-up { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } +.icon-folder-open-empty { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } +.icon-search-2 { *zoom: expression( this.runtimeStyle['zoom'] = '1', this.innerHTML = ' '); } \ No newline at end of file diff --git a/static/fontello/css/fontello.css b/static/fontello/css/fontello.css index 4cd44b95..2ad24901 100644 --- a/static/fontello/css/fontello.css +++ b/static/fontello/css/fontello.css @@ -1,11 +1,11 @@ @font-face { font-family: 'fontello'; - src: url('../font/fontello.eot?21267495'); - src: url('../font/fontello.eot?21267495#iefix') format('embedded-opentype'), - url('../font/fontello.woff2?21267495') format('woff2'), - url('../font/fontello.woff?21267495') format('woff'), - url('../font/fontello.ttf?21267495') format('truetype'), - url('../font/fontello.svg?21267495#fontello') format('svg'); + src: url('../font/fontello.eot?91447784'); + src: url('../font/fontello.eot?91447784#iefix') format('embedded-opentype'), + url('../font/fontello.woff2?91447784') format('woff2'), + url('../font/fontello.woff?91447784') format('woff'), + url('../font/fontello.ttf?91447784') format('truetype'), + url('../font/fontello.svg?91447784#fontello') format('svg'); font-weight: normal; font-style: normal; } @@ -15,7 +15,7 @@ @media screen and (-webkit-min-device-pixel-ratio:0) { @font-face { font-family: 'fontello'; - src: url('../font/fontello.svg?21267495#fontello') format('svg'); + src: url('../font/fontello.svg?91447784#fontello') format('svg'); } } */ @@ -58,20 +58,46 @@ .icon-play:before { content: '\e800'; } /* '' */ .icon-pause:before { content: '\e801'; } /* '' */ .icon-to-end:before { content: '\e802'; } /* '' */ +.icon-home:before { content: '\e802'; } /* '' */ .icon-to-start:before { content: '\e803'; } /* '' */ .icon-volume-down:before { content: '\e804'; } /* '' */ +.icon-search:before { content: '\e804'; } /* '' */ .icon-volume-up:before { content: '\e805'; } /* '' */ -.icon-mic:before { content: '\e806'; } /* '' */ +.icon-folder-open:before { content: '\e805'; } /* '' */ +.icon-mic-1:before { content: '\e806'; } /* '' */ +.icon-info-circled:before { content: '\e806'; } /* '' */ .icon-mic-circled:before { content: '\e807'; } /* '' */ +.icon-cog:before { content: '\e807'; } /* '' */ .icon-cancel-circled-outline:before { content: '\e808'; } /* '' */ -.icon-cancel-circled:before { content: '\e809'; } /* '' */ +.icon-cog-alt:before { content: '\e808'; } /* '' */ +.icon-cancel-circled-1:before { content: '\e809'; } /* '' */ .icon-trash-empty:before { content: '\e80a'; } /* '' */ -.icon-edit:before { content: '\e80b'; } /* '' */ +.icon-edit-1:before { content: '\e80b'; } /* '' */ .icon-pencil:before { content: '\e80c'; } /* '' */ +.icon-down-big:before { content: '\e80c'; } /* '' */ .icon-th-list:before { content: '\e80d'; } /* '' */ +.icon-left-big:before { content: '\e80d'; } /* '' */ .icon-th-list-outline:before { content: '\e80e'; } /* '' */ +.icon-right-big:before { content: '\e80e'; } /* '' */ .icon-music:before { content: '\e80f'; } /* '' */ .icon-list-add:before { content: '\e810'; } /* '' */ +.icon-up-big:before { content: '\e810'; } /* '' */ .icon-trash:before { content: '\e811'; } /* '' */ +.icon-plus:before { content: '\e812'; } /* '' */ +.icon-plus-circled:before { content: '\e813'; } /* '' */ +.icon-home-1:before { content: '\e814'; } /* '' */ +.icon-home-2:before { content: '\e815'; } /* '' */ +.icon-search-1:before { content: '\e816'; } /* '' */ +.icon-search-3:before { content: '\e817'; } /* '' */ +.icon-info-circled-1:before { content: '\e818'; } /* '' */ +.icon-info:before { content: '\e819'; } /* '' */ +.icon-left-circled:before { content: '\f0a8'; } /* '' */ +.icon-right-circled:before { content: '\f0a9'; } /* '' */ +.icon-up-circled:before { content: '\f0aa'; } /* '' */ +.icon-down-circled:before { content: '\f0ab'; } /* '' */ +.icon-list-bullet:before { content: '\f0ca'; } /* '' */ +.icon-list-numbered:before { content: '\f0cb'; } /* '' */ .icon-sort-down:before { content: '\f0dd'; } /* '' */ -.icon-sort-up:before { content: '\f0de'; } /* '' */ \ No newline at end of file +.icon-sort-up:before { content: '\f0de'; } /* '' */ +.icon-folder-open-empty:before { content: '\f115'; } /* '' */ +.icon-search-2:before { content: '\f50d'; } /* '' */ \ No newline at end of file diff --git a/static/fontello/demo.html b/static/fontello/demo.html index df03a547..2d5fb028 100644 --- a/static/fontello/demo.html +++ b/static/fontello/demo.html @@ -229,11 +229,11 @@ } @font-face { font-family: 'fontello'; - src: url('./font/fontello.eot?91398366'); - src: url('./font/fontello.eot?91398366#iefix') format('embedded-opentype'), - url('./font/fontello.woff?91398366') format('woff'), - url('./font/fontello.ttf?91398366') format('truetype'), - url('./font/fontello.svg?91398366#fontello') format('svg'); + src: url('./font/fontello.eot?35824043'); + src: url('./font/fontello.eot?35824043#iefix') format('embedded-opentype'), + url('./font/fontello.woff?35824043') format('woff'), + url('./font/fontello.ttf?35824043') format('truetype'), + url('./font/fontello.svg?35824043#fontello') format('svg'); font-weight: normal; font-style: normal; } @@ -301,33 +301,73 @@

fontello font demo

icon-play0xe800
icon-pause0xe801
icon-to-end0xe802
-
icon-to-start0xe803
+
icon-home0xe802
+
icon-to-start0xe803
icon-volume-down0xe804
+
icon-search0xe804
icon-volume-up0xe805
-
icon-mic0xe806
+
+
+
icon-folder-open0xe805
+
icon-mic-10xe806
+
icon-info-circled0xe806
icon-mic-circled0xe807
+
icon-cog0xe807
icon-cancel-circled-outline0xe808
-
icon-cancel-circled0xe809
-
icon-trash-empty0xe80a
-
icon-edit0xe80b
+
icon-cog-alt0xe808
+
icon-cancel-circled-10xe809
+
icon-trash-empty0xe80a
+
icon-edit-10xe80b
icon-pencil0xe80c
+
icon-down-big0xe80c
+
+
icon-th-list0xe80d
+
icon-left-big0xe80d
icon-th-list-outline0xe80e
-
icon-music0xe80f
+
icon-right-big0xe80e
+
icon-music0xe80f
icon-list-add0xe810
+
icon-up-big0xe810
icon-trash0xe811
+
+
+
icon-plus0xe812
+
icon-plus-circled0xe813
+
icon-home-10xe814
+
icon-home-20xe815
+
+
+
icon-search-10xe816
+
icon-search-30xe817
+
icon-info-circled-10xe818
+
icon-info0xe819
+
+
+
icon-left-circled0xf0a8
+
icon-right-circled0xf0a9
+
icon-up-circled0xf0aa
+
icon-down-circled0xf0ab
+
+
+
icon-list-bullet0xf0ca
+
icon-list-numbered0xf0cb
icon-sort-down0xf0dd
icon-sort-up0xf0de
+
+
icon-folder-open-empty0xf115
+
icon-search-20xf50d
+
- + \ No newline at end of file diff --git a/static/fontello/font/fontello.eot b/static/fontello/font/fontello.eot index bc4bd7f2..c20c45bf 100644 Binary files a/static/fontello/font/fontello.eot and b/static/fontello/font/fontello.eot differ diff --git a/static/fontello/font/fontello.svg b/static/fontello/font/fontello.svg index cd5de288..27b4b535 100644 --- a/static/fontello/font/fontello.svg +++ b/static/fontello/font/fontello.svg @@ -1,7 +1,7 @@ -Copyright (C) 2020 by original authors @ fontello.com +Copyright (C) 2021 by original authors @ fontello.com @@ -12,39 +12,91 @@ + + + + - + + + + + + + - + + + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/static/fontello/font/fontello.ttf b/static/fontello/font/fontello.ttf index b6e7d0a6..7949b0f1 100644 Binary files a/static/fontello/font/fontello.ttf and b/static/fontello/font/fontello.ttf differ diff --git a/static/fontello/font/fontello.woff b/static/fontello/font/fontello.woff index 77511537..0d6ece18 100644 Binary files a/static/fontello/font/fontello.woff and b/static/fontello/font/fontello.woff differ diff --git a/static/fontello/font/fontello.woff2 b/static/fontello/font/fontello.woff2 index d15008d6..8f906834 100644 Binary files a/static/fontello/font/fontello.woff2 and b/static/fontello/font/fontello.woff2 differ diff --git a/static/js.cookie-2.2.1.min.js b/static/js.cookie-2.2.1.min.js new file mode 100644 index 00000000..f5f4c36c --- /dev/null +++ b/static/js.cookie-2.2.1.min.js @@ -0,0 +1,3 @@ +/*! js-cookie v2.2.1 | MIT */ + +!function(a){var b;if("function"==typeof define&&define.amd&&(define(a),b=!0),"object"==typeof exports&&(module.exports=a(),b=!0),!b){var c=window.Cookies,d=window.Cookies=a();d.noConflict=function(){return window.Cookies=c,d}}}(function(){function a(){for(var a=0,b={};a + * Copyright OpenJS Foundation and other contributors + * Released under MIT license + * Based on Underscore.js 1.8.3 + * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors + */ +(function(){function n(n,t,r){switch(r.length){case 0:return n.call(t);case 1:return n.call(t,r[0]);case 2:return n.call(t,r[0],r[1]);case 3:return n.call(t,r[0],r[1],r[2])}return n.apply(t,r)}function t(n,t,r,e){for(var u=-1,i=null==n?0:n.length;++u-1}function f(n,t,r){for(var e=-1,u=null==n?0:n.length;++e-1;);return r}function W(n,t){for(var r=n.length;r--&&y(t,n[r],0)>-1;);return r}function L(n,t){for(var r=n.length,e=0;r--;)n[r]===t&&++e;return e}function C(n){return"\\"+Gr[n]}function U(n,t){ +return null==n?Y:n[t]}function B(n){return Dr.test(n)}function T(n){return Mr.test(n)}function $(n){for(var t,r=[];!(t=n.next()).done;)r.push(t.value);return r}function D(n){var t=-1,r=Array(n.size);return n.forEach(function(n,e){r[++t]=[e,n]}),r}function M(n,t){return function(r){return n(t(r))}}function F(n,t){for(var r=-1,e=n.length,u=0,i=[];++r>>1,Un=[["ary",dn],["bind",sn],["bindKey",hn],["curry",_n],["curryRight",vn],["flip",wn],["partial",gn],["partialRight",yn],["rearg",bn]],Bn="[object Arguments]",Tn="[object Array]",$n="[object AsyncFunction]",Dn="[object Boolean]",Mn="[object Date]",Fn="[object DOMException]",Nn="[object Error]",Pn="[object Function]",qn="[object GeneratorFunction]",Zn="[object Map]",Kn="[object Number]",Vn="[object Null]",Gn="[object Object]",Hn="[object Promise]",Jn="[object Proxy]",Yn="[object RegExp]",Qn="[object Set]",Xn="[object String]",nt="[object Symbol]",tt="[object Undefined]",rt="[object WeakMap]",et="[object WeakSet]",ut="[object ArrayBuffer]",it="[object DataView]",ot="[object Float32Array]",ft="[object Float64Array]",ct="[object Int8Array]",at="[object Int16Array]",lt="[object Int32Array]",st="[object Uint8Array]",ht="[object Uint8ClampedArray]",pt="[object Uint16Array]",_t="[object Uint32Array]",vt=/\b__p \+= '';/g,gt=/\b(__p \+=) '' \+/g,yt=/(__e\(.*?\)|\b__t\)) \+\n'';/g,dt=/&(?:amp|lt|gt|quot|#39);/g,bt=/[&<>"']/g,wt=RegExp(dt.source),mt=RegExp(bt.source),xt=/<%-([\s\S]+?)%>/g,jt=/<%([\s\S]+?)%>/g,At=/<%=([\s\S]+?)%>/g,kt=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,Ot=/^\w*$/,It=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Rt=/[\\^$.*+?()[\]{}|]/g,zt=RegExp(Rt.source),Et=/^\s+|\s+$/g,St=/^\s+/,Wt=/\s+$/,Lt=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,Ct=/\{\n\/\* \[wrapped with (.+)\] \*/,Ut=/,? & /,Bt=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g,Tt=/\\(\\)?/g,$t=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g,Dt=/\w*$/,Mt=/^[-+]0x[0-9a-f]+$/i,Ft=/^0b[01]+$/i,Nt=/^\[object .+?Constructor\]$/,Pt=/^0o[0-7]+$/i,qt=/^(?:0|[1-9]\d*)$/,Zt=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g,Kt=/($^)/,Vt=/['\n\r\u2028\u2029\\]/g,Gt="\\ud800-\\udfff",Ht="\\u0300-\\u036f",Jt="\\ufe20-\\ufe2f",Yt="\\u20d0-\\u20ff",Qt=Ht+Jt+Yt,Xt="\\u2700-\\u27bf",nr="a-z\\xdf-\\xf6\\xf8-\\xff",tr="\\xac\\xb1\\xd7\\xf7",rr="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",er="\\u2000-\\u206f",ur=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",ir="A-Z\\xc0-\\xd6\\xd8-\\xde",or="\\ufe0e\\ufe0f",fr=tr+rr+er+ur,cr="['\u2019]",ar="["+Gt+"]",lr="["+fr+"]",sr="["+Qt+"]",hr="\\d+",pr="["+Xt+"]",_r="["+nr+"]",vr="[^"+Gt+fr+hr+Xt+nr+ir+"]",gr="\\ud83c[\\udffb-\\udfff]",yr="(?:"+sr+"|"+gr+")",dr="[^"+Gt+"]",br="(?:\\ud83c[\\udde6-\\uddff]){2}",wr="[\\ud800-\\udbff][\\udc00-\\udfff]",mr="["+ir+"]",xr="\\u200d",jr="(?:"+_r+"|"+vr+")",Ar="(?:"+mr+"|"+vr+")",kr="(?:"+cr+"(?:d|ll|m|re|s|t|ve))?",Or="(?:"+cr+"(?:D|LL|M|RE|S|T|VE))?",Ir=yr+"?",Rr="["+or+"]?",zr="(?:"+xr+"(?:"+[dr,br,wr].join("|")+")"+Rr+Ir+")*",Er="\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",Sr="\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])",Wr=Rr+Ir+zr,Lr="(?:"+[pr,br,wr].join("|")+")"+Wr,Cr="(?:"+[dr+sr+"?",sr,br,wr,ar].join("|")+")",Ur=RegExp(cr,"g"),Br=RegExp(sr,"g"),Tr=RegExp(gr+"(?="+gr+")|"+Cr+Wr,"g"),$r=RegExp([mr+"?"+_r+"+"+kr+"(?="+[lr,mr,"$"].join("|")+")",Ar+"+"+Or+"(?="+[lr,mr+jr,"$"].join("|")+")",mr+"?"+jr+"+"+kr,mr+"+"+Or,Sr,Er,hr,Lr].join("|"),"g"),Dr=RegExp("["+xr+Gt+Qt+or+"]"),Mr=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/,Fr=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"],Nr=-1,Pr={}; +Pr[ot]=Pr[ft]=Pr[ct]=Pr[at]=Pr[lt]=Pr[st]=Pr[ht]=Pr[pt]=Pr[_t]=!0,Pr[Bn]=Pr[Tn]=Pr[ut]=Pr[Dn]=Pr[it]=Pr[Mn]=Pr[Nn]=Pr[Pn]=Pr[Zn]=Pr[Kn]=Pr[Gn]=Pr[Yn]=Pr[Qn]=Pr[Xn]=Pr[rt]=!1;var qr={};qr[Bn]=qr[Tn]=qr[ut]=qr[it]=qr[Dn]=qr[Mn]=qr[ot]=qr[ft]=qr[ct]=qr[at]=qr[lt]=qr[Zn]=qr[Kn]=qr[Gn]=qr[Yn]=qr[Qn]=qr[Xn]=qr[nt]=qr[st]=qr[ht]=qr[pt]=qr[_t]=!0,qr[Nn]=qr[Pn]=qr[rt]=!1;var Zr={"\xc0":"A","\xc1":"A","\xc2":"A","\xc3":"A","\xc4":"A","\xc5":"A","\xe0":"a","\xe1":"a","\xe2":"a","\xe3":"a","\xe4":"a","\xe5":"a", +"\xc7":"C","\xe7":"c","\xd0":"D","\xf0":"d","\xc8":"E","\xc9":"E","\xca":"E","\xcb":"E","\xe8":"e","\xe9":"e","\xea":"e","\xeb":"e","\xcc":"I","\xcd":"I","\xce":"I","\xcf":"I","\xec":"i","\xed":"i","\xee":"i","\xef":"i","\xd1":"N","\xf1":"n","\xd2":"O","\xd3":"O","\xd4":"O","\xd5":"O","\xd6":"O","\xd8":"O","\xf2":"o","\xf3":"o","\xf4":"o","\xf5":"o","\xf6":"o","\xf8":"o","\xd9":"U","\xda":"U","\xdb":"U","\xdc":"U","\xf9":"u","\xfa":"u","\xfb":"u","\xfc":"u","\xdd":"Y","\xfd":"y","\xff":"y","\xc6":"Ae", +"\xe6":"ae","\xde":"Th","\xfe":"th","\xdf":"ss","\u0100":"A","\u0102":"A","\u0104":"A","\u0101":"a","\u0103":"a","\u0105":"a","\u0106":"C","\u0108":"C","\u010a":"C","\u010c":"C","\u0107":"c","\u0109":"c","\u010b":"c","\u010d":"c","\u010e":"D","\u0110":"D","\u010f":"d","\u0111":"d","\u0112":"E","\u0114":"E","\u0116":"E","\u0118":"E","\u011a":"E","\u0113":"e","\u0115":"e","\u0117":"e","\u0119":"e","\u011b":"e","\u011c":"G","\u011e":"G","\u0120":"G","\u0122":"G","\u011d":"g","\u011f":"g","\u0121":"g", +"\u0123":"g","\u0124":"H","\u0126":"H","\u0125":"h","\u0127":"h","\u0128":"I","\u012a":"I","\u012c":"I","\u012e":"I","\u0130":"I","\u0129":"i","\u012b":"i","\u012d":"i","\u012f":"i","\u0131":"i","\u0134":"J","\u0135":"j","\u0136":"K","\u0137":"k","\u0138":"k","\u0139":"L","\u013b":"L","\u013d":"L","\u013f":"L","\u0141":"L","\u013a":"l","\u013c":"l","\u013e":"l","\u0140":"l","\u0142":"l","\u0143":"N","\u0145":"N","\u0147":"N","\u014a":"N","\u0144":"n","\u0146":"n","\u0148":"n","\u014b":"n","\u014c":"O", +"\u014e":"O","\u0150":"O","\u014d":"o","\u014f":"o","\u0151":"o","\u0154":"R","\u0156":"R","\u0158":"R","\u0155":"r","\u0157":"r","\u0159":"r","\u015a":"S","\u015c":"S","\u015e":"S","\u0160":"S","\u015b":"s","\u015d":"s","\u015f":"s","\u0161":"s","\u0162":"T","\u0164":"T","\u0166":"T","\u0163":"t","\u0165":"t","\u0167":"t","\u0168":"U","\u016a":"U","\u016c":"U","\u016e":"U","\u0170":"U","\u0172":"U","\u0169":"u","\u016b":"u","\u016d":"u","\u016f":"u","\u0171":"u","\u0173":"u","\u0174":"W","\u0175":"w", +"\u0176":"Y","\u0177":"y","\u0178":"Y","\u0179":"Z","\u017b":"Z","\u017d":"Z","\u017a":"z","\u017c":"z","\u017e":"z","\u0132":"IJ","\u0133":"ij","\u0152":"Oe","\u0153":"oe","\u0149":"'n","\u017f":"s"},Kr={"&":"&","<":"<",">":">",'"':""","'":"'"},Vr={"&":"&","<":"<",">":">",""":'"',"'":"'"},Gr={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"},Hr=parseFloat,Jr=parseInt,Yr="object"==typeof global&&global&&global.Object===Object&&global,Qr="object"==typeof self&&self&&self.Object===Object&&self,Xr=Yr||Qr||Function("return this")(),ne="object"==typeof exports&&exports&&!exports.nodeType&&exports,te=ne&&"object"==typeof module&&module&&!module.nodeType&&module,re=te&&te.exports===ne,ee=re&&Yr.process,ue=function(){ +try{var n=te&&te.require&&te.require("util").types;return n?n:ee&&ee.binding&&ee.binding("util")}catch(n){}}(),ie=ue&&ue.isArrayBuffer,oe=ue&&ue.isDate,fe=ue&&ue.isMap,ce=ue&&ue.isRegExp,ae=ue&&ue.isSet,le=ue&&ue.isTypedArray,se=m("length"),he=x(Zr),pe=x(Kr),_e=x(Vr),ve=function p(x){function q(n){if(oc(n)&&!yh(n)&&!(n instanceof Bt)){if(n instanceof H)return n;if(yl.call(n,"__wrapped__"))return to(n)}return new H(n)}function G(){}function H(n,t){this.__wrapped__=n,this.__actions__=[],this.__chain__=!!t, +this.__index__=0,this.__values__=Y}function Bt(n){this.__wrapped__=n,this.__actions__=[],this.__dir__=1,this.__filtered__=!1,this.__iteratees__=[],this.__takeCount__=Wn,this.__views__=[]}function Gt(){var n=new Bt(this.__wrapped__);return n.__actions__=Uu(this.__actions__),n.__dir__=this.__dir__,n.__filtered__=this.__filtered__,n.__iteratees__=Uu(this.__iteratees__),n.__takeCount__=this.__takeCount__,n.__views__=Uu(this.__views__),n}function Ht(){if(this.__filtered__){var n=new Bt(this);n.__dir__=-1, +n.__filtered__=!0}else n=this.clone(),n.__dir__*=-1;return n}function Jt(){var n=this.__wrapped__.value(),t=this.__dir__,r=yh(n),e=t<0,u=r?n.length:0,i=Ai(0,u,this.__views__),o=i.start,f=i.end,c=f-o,a=e?f:o-1,l=this.__iteratees__,s=l.length,h=0,p=Vl(c,this.__takeCount__);if(!r||!e&&u==c&&p==c)return du(n,this.__actions__);var _=[];n:for(;c--&&h-1}function cr(n,t){var r=this.__data__,e=Er(r,n);return e<0?(++this.size,r.push([n,t])):r[e][1]=t,this}function ar(n){var t=-1,r=null==n?0:n.length;for(this.clear();++t=t?n:t)),n}function Dr(n,t,e,u,i,o){var f,c=t&on,a=t&fn,l=t&cn;if(e&&(f=i?e(n,u,i,o):e(n)),f!==Y)return f;if(!ic(n))return n;var s=yh(n);if(s){if(f=Ii(n),!c)return Uu(n,f)}else{var h=Is(n),p=h==Pn||h==qn;if(bh(n))return ku(n,c);if(h==Gn||h==Bn||p&&!i){if(f=a||p?{}:Ri(n),!c)return a?$u(n,Lr(f,n)):Tu(n,Wr(f,n))}else{if(!qr[h])return i?n:{};f=zi(n,h,c)}}o||(o=new dr);var _=o.get(n);if(_)return _;o.set(n,f),jh(n)?n.forEach(function(r){f.add(Dr(r,t,e,r,n,o))}):mh(n)&&n.forEach(function(r,u){ +f.set(u,Dr(r,t,e,u,n,o))});var v=l?a?gi:vi:a?Nc:Fc,g=s?Y:v(n);return r(g||n,function(r,u){g&&(u=r,r=n[u]),zr(f,u,Dr(r,t,e,u,n,o))}),f}function Mr(n){var t=Fc(n);return function(r){return Zr(r,n,t)}}function Zr(n,t,r){var e=r.length;if(null==n)return!e;for(n=cl(n);e--;){var u=r[e],i=t[u],o=n[u];if(o===Y&&!(u in n)||!i(o))return!1}return!0}function Kr(n,t,r){if("function"!=typeof n)throw new sl(tn);return Es(function(){n.apply(Y,r)},t)}function Vr(n,t,r,e){var u=-1,i=o,a=!0,l=n.length,s=[],h=t.length; +if(!l)return s;r&&(t=c(t,R(r))),e?(i=f,a=!1):t.length>=X&&(i=E,a=!1,t=new vr(t));n:for(;++uu?0:u+r), +e=e===Y||e>u?u:jc(e),e<0&&(e+=u),e=r>e?0:Ac(e);r0&&r(f)?t>1?te(f,t-1,r,e,u):a(u,f):e||(u[u.length]=f)}return u}function ee(n,t){return n&&ys(n,t,Fc)}function ue(n,t){return n&&ds(n,t,Fc)}function se(n,t){return i(t,function(t){return rc(n[t])})}function ve(n,t){t=ju(t,n);for(var r=0,e=t.length;null!=n&&rt}function we(n,t){return null!=n&&yl.call(n,t)}function me(n,t){return null!=n&&t in cl(n)}function xe(n,t,r){return n>=Vl(t,r)&&n=120&&p.length>=120)?new vr(a&&p):Y}p=n[0]; +var _=-1,v=l[0];n:for(;++_-1;)f!==n&&Sl.call(f,a,1),Sl.call(n,a,1);return n}function Qe(n,t){for(var r=n?t.length:0,e=r-1;r--;){ +var u=t[r];if(r==e||u!==i){var i=u;Wi(u)?Sl.call(n,u,1):vu(n,u)}}return n}function Xe(n,t){return n+Ml(Jl()*(t-n+1))}function nu(n,t,r,e){for(var u=-1,i=Kl(Dl((t-n)/(r||1)),0),o=el(i);i--;)o[e?i:++u]=n,n+=r;return o}function tu(n,t){var r="";if(!n||t<1||t>zn)return r;do t%2&&(r+=n),t=Ml(t/2),t&&(n+=n);while(t);return r}function ru(n,t){return Ss(Zi(n,t,Sa),n+"")}function eu(n){return kr(na(n))}function uu(n,t){var r=na(n);return Yi(r,$r(t,0,r.length))}function iu(n,t,r,e){if(!ic(n))return n;t=ju(t,n); +for(var u=-1,i=t.length,o=i-1,f=n;null!=f&&++uu?0:u+t),r=r>u?u:r,r<0&&(r+=u),u=t>r?0:r-t>>>0,t>>>=0;for(var i=el(u);++e>>1,o=n[i];null!==o&&!yc(o)&&(r?o<=t:o=X){var s=t?null:js(n);if(s)return N(s);c=!1,u=E,l=new vr}else l=t?[]:a;n:for(;++e=e?n:fu(n,t,r)}function ku(n,t){if(t)return n.slice();var r=n.length,e=Il?Il(r):new n.constructor(r); +return n.copy(e),e}function Ou(n){var t=new n.constructor(n.byteLength);return new Ol(t).set(new Ol(n)),t}function Iu(n,t){return new n.constructor(t?Ou(n.buffer):n.buffer,n.byteOffset,n.byteLength)}function Ru(n){var t=new n.constructor(n.source,Dt.exec(n));return t.lastIndex=n.lastIndex,t}function zu(n){return hs?cl(hs.call(n)):{}}function Eu(n,t){return new n.constructor(t?Ou(n.buffer):n.buffer,n.byteOffset,n.length)}function Su(n,t){if(n!==t){var r=n!==Y,e=null===n,u=n===n,i=yc(n),o=t!==Y,f=null===t,c=t===t,a=yc(t); +if(!f&&!a&&!i&&n>t||i&&o&&c&&!f&&!a||e&&o&&c||!r&&c||!u)return 1;if(!e&&!i&&!a&&n=f)return c;return c*("desc"==r[e]?-1:1)}}return n.index-t.index}function Lu(n,t,r,e){for(var u=-1,i=n.length,o=r.length,f=-1,c=t.length,a=Kl(i-o,0),l=el(c+a),s=!e;++f1?r[u-1]:Y,o=u>2?r[2]:Y;for(i=n.length>3&&"function"==typeof i?(u--,i):Y,o&&Li(r[0],r[1],o)&&(i=u<3?Y:i,u=1),t=cl(t);++e-1?u[i?t[o]:o]:Y}}function Hu(n){return _i(function(t){var r=t.length,e=r,u=H.prototype.thru;for(n&&t.reverse();e--;){var i=t[e];if("function"!=typeof i)throw new sl(tn);if(u&&!o&&"wrapper"==yi(i))var o=new H([],!0)}for(e=o?e:r;++e1&&d.reverse(),s&&cf))return!1;var a=i.get(n),l=i.get(t);if(a&&l)return a==t&&l==n;var s=-1,p=!0,_=r&ln?new vr:Y;for(i.set(n,t),i.set(t,n);++s1?"& ":"")+t[e],t=t.join(r>2?", ":" "),n.replace(Lt,"{\n/* [wrapped with "+t+"] */\n")}function Si(n){return yh(n)||gh(n)||!!(Wl&&n&&n[Wl])}function Wi(n,t){var r=typeof n; +return t=null==t?zn:t,!!t&&("number"==r||"symbol"!=r&&qt.test(n))&&n>-1&&n%1==0&&n0){if(++t>=jn)return arguments[0]}else t=0; +return n.apply(Y,arguments)}}function Yi(n,t){var r=-1,e=n.length,u=e-1;for(t=t===Y?e:t;++r=this.__values__.length;return{done:n,value:n?Y:this.__values__[this.__index__++]}}function rf(){return this}function ef(n){for(var t,r=this;r instanceof G;){var e=to(r);e.__index__=0,e.__values__=Y,t?u.__wrapped__=e:t=e;var u=e;r=r.__wrapped__}return u.__wrapped__=n,t}function uf(){var n=this.__wrapped__;if(n instanceof Bt){var t=n;return this.__actions__.length&&(t=new Bt(this)),t=t.reverse(),t.__actions__.push({func:Qo,args:[Ro],thisArg:Y}),new H(t,this.__chain__)}return this.thru(Ro); +}function of(){return du(this.__wrapped__,this.__actions__)}function ff(n,t,r){var e=yh(n)?u:Gr;return r&&Li(n,t,r)&&(t=Y),e(n,bi(t,3))}function cf(n,t){return(yh(n)?i:ne)(n,bi(t,3))}function af(n,t){return te(vf(n,t),1)}function lf(n,t){return te(vf(n,t),Rn)}function sf(n,t,r){return r=r===Y?1:jc(r),te(vf(n,t),r)}function hf(n,t){return(yh(n)?r:vs)(n,bi(t,3))}function pf(n,t){return(yh(n)?e:gs)(n,bi(t,3))}function _f(n,t,r,e){n=Vf(n)?n:na(n),r=r&&!e?jc(r):0;var u=n.length;return r<0&&(r=Kl(u+r,0)), +gc(n)?r<=u&&n.indexOf(t,r)>-1:!!u&&y(n,t,r)>-1}function vf(n,t){return(yh(n)?c:Fe)(n,bi(t,3))}function gf(n,t,r,e){return null==n?[]:(yh(t)||(t=null==t?[]:[t]),r=e?Y:r,yh(r)||(r=null==r?[]:[r]),Ve(n,t,r))}function yf(n,t,r){var e=yh(n)?l:j,u=arguments.length<3;return e(n,bi(t,4),r,u,vs)}function df(n,t,r){var e=yh(n)?s:j,u=arguments.length<3;return e(n,bi(t,4),r,u,gs)}function bf(n,t){return(yh(n)?i:ne)(n,Lf(bi(t,3)))}function wf(n){return(yh(n)?kr:eu)(n)}function mf(n,t,r){return t=(r?Li(n,t,r):t===Y)?1:jc(t), +(yh(n)?Or:uu)(n,t)}function xf(n){return(yh(n)?Ir:ou)(n)}function jf(n){if(null==n)return 0;if(Vf(n))return gc(n)?K(n):n.length;var t=Is(n);return t==Zn||t==Qn?n.size:$e(n).length}function Af(n,t,r){var e=yh(n)?h:cu;return r&&Li(n,t,r)&&(t=Y),e(n,bi(t,3))}function kf(n,t){if("function"!=typeof t)throw new sl(tn);return n=jc(n),function(){if(--n<1)return t.apply(this,arguments)}}function Of(n,t,r){return t=r?Y:t,t=n&&null==t?n.length:t,fi(n,dn,Y,Y,Y,Y,t)}function If(n,t){var r;if("function"!=typeof t)throw new sl(tn); +return n=jc(n),function(){return--n>0&&(r=t.apply(this,arguments)),n<=1&&(t=Y),r}}function Rf(n,t,r){t=r?Y:t;var e=fi(n,_n,Y,Y,Y,Y,Y,t);return e.placeholder=Rf.placeholder,e}function zf(n,t,r){t=r?Y:t;var e=fi(n,vn,Y,Y,Y,Y,Y,t);return e.placeholder=zf.placeholder,e}function Ef(n,t,r){function e(t){var r=h,e=p;return h=p=Y,d=t,v=n.apply(e,r)}function u(n){return d=n,g=Es(f,t),b?e(n):v}function i(n){var r=n-y,e=n-d,u=t-r;return w?Vl(u,_-e):u}function o(n){var r=n-y,e=n-d;return y===Y||r>=t||r<0||w&&e>=_; +}function f(){var n=ih();return o(n)?c(n):(g=Es(f,i(n)),Y)}function c(n){return g=Y,m&&h?e(n):(h=p=Y,v)}function a(){g!==Y&&xs(g),d=0,h=y=p=g=Y}function l(){return g===Y?v:c(ih())}function s(){var n=ih(),r=o(n);if(h=arguments,p=this,y=n,r){if(g===Y)return u(y);if(w)return xs(g),g=Es(f,t),e(y)}return g===Y&&(g=Es(f,t)),v}var h,p,_,v,g,y,d=0,b=!1,w=!1,m=!0;if("function"!=typeof n)throw new sl(tn);return t=kc(t)||0,ic(r)&&(b=!!r.leading,w="maxWait"in r,_=w?Kl(kc(r.maxWait)||0,t):_,m="trailing"in r?!!r.trailing:m), +s.cancel=a,s.flush=l,s}function Sf(n){return fi(n,wn)}function Wf(n,t){if("function"!=typeof n||null!=t&&"function"!=typeof t)throw new sl(tn);var r=function(){var e=arguments,u=t?t.apply(this,e):e[0],i=r.cache;if(i.has(u))return i.get(u);var o=n.apply(this,e);return r.cache=i.set(u,o)||i,o};return r.cache=new(Wf.Cache||ar),r}function Lf(n){if("function"!=typeof n)throw new sl(tn);return function(){var t=arguments;switch(t.length){case 0:return!n.call(this);case 1:return!n.call(this,t[0]);case 2: +return!n.call(this,t[0],t[1]);case 3:return!n.call(this,t[0],t[1],t[2])}return!n.apply(this,t)}}function Cf(n){return If(2,n)}function Uf(n,t){if("function"!=typeof n)throw new sl(tn);return t=t===Y?t:jc(t),ru(n,t)}function Bf(t,r){if("function"!=typeof t)throw new sl(tn);return r=null==r?0:Kl(jc(r),0),ru(function(e){var u=e[r],i=Au(e,0,r);return u&&a(i,u),n(t,this,i)})}function Tf(n,t,r){var e=!0,u=!0;if("function"!=typeof n)throw new sl(tn);return ic(r)&&(e="leading"in r?!!r.leading:e,u="trailing"in r?!!r.trailing:u), +Ef(n,t,{leading:e,maxWait:t,trailing:u})}function $f(n){return Of(n,1)}function Df(n,t){return sh(xu(t),n)}function Mf(){if(!arguments.length)return[];var n=arguments[0];return yh(n)?n:[n]}function Ff(n){return Dr(n,cn)}function Nf(n,t){return t="function"==typeof t?t:Y,Dr(n,cn,t)}function Pf(n){return Dr(n,on|cn)}function qf(n,t){return t="function"==typeof t?t:Y,Dr(n,on|cn,t)}function Zf(n,t){return null==t||Zr(n,t,Fc(t))}function Kf(n,t){return n===t||n!==n&&t!==t}function Vf(n){return null!=n&&uc(n.length)&&!rc(n); +}function Gf(n){return oc(n)&&Vf(n)}function Hf(n){return n===!0||n===!1||oc(n)&&de(n)==Dn}function Jf(n){return oc(n)&&1===n.nodeType&&!_c(n)}function Yf(n){if(null==n)return!0;if(Vf(n)&&(yh(n)||"string"==typeof n||"function"==typeof n.splice||bh(n)||Ah(n)||gh(n)))return!n.length;var t=Is(n);if(t==Zn||t==Qn)return!n.size;if($i(n))return!$e(n).length;for(var r in n)if(yl.call(n,r))return!1;return!0}function Qf(n,t){return ze(n,t)}function Xf(n,t,r){r="function"==typeof r?r:Y;var e=r?r(n,t):Y;return e===Y?ze(n,t,Y,r):!!e; +}function nc(n){if(!oc(n))return!1;var t=de(n);return t==Nn||t==Fn||"string"==typeof n.message&&"string"==typeof n.name&&!_c(n)}function tc(n){return"number"==typeof n&&Pl(n)}function rc(n){if(!ic(n))return!1;var t=de(n);return t==Pn||t==qn||t==$n||t==Jn}function ec(n){return"number"==typeof n&&n==jc(n)}function uc(n){return"number"==typeof n&&n>-1&&n%1==0&&n<=zn}function ic(n){var t=typeof n;return null!=n&&("object"==t||"function"==t)}function oc(n){return null!=n&&"object"==typeof n}function fc(n,t){ +return n===t||We(n,t,mi(t))}function cc(n,t,r){return r="function"==typeof r?r:Y,We(n,t,mi(t),r)}function ac(n){return pc(n)&&n!=+n}function lc(n){if(Rs(n))throw new il(nn);return Le(n)}function sc(n){return null===n}function hc(n){return null==n}function pc(n){return"number"==typeof n||oc(n)&&de(n)==Kn}function _c(n){if(!oc(n)||de(n)!=Gn)return!1;var t=Rl(n);if(null===t)return!0;var r=yl.call(t,"constructor")&&t.constructor;return"function"==typeof r&&r instanceof r&&gl.call(r)==ml}function vc(n){ +return ec(n)&&n>=-zn&&n<=zn}function gc(n){return"string"==typeof n||!yh(n)&&oc(n)&&de(n)==Xn}function yc(n){return"symbol"==typeof n||oc(n)&&de(n)==nt}function dc(n){return n===Y}function bc(n){return oc(n)&&Is(n)==rt}function wc(n){return oc(n)&&de(n)==et}function mc(n){if(!n)return[];if(Vf(n))return gc(n)?V(n):Uu(n);if(Ll&&n[Ll])return $(n[Ll]());var t=Is(n);return(t==Zn?D:t==Qn?N:na)(n)}function xc(n){if(!n)return 0===n?n:0;if(n=kc(n),n===Rn||n===-Rn){return(n<0?-1:1)*En}return n===n?n:0}function jc(n){ +var t=xc(n),r=t%1;return t===t?r?t-r:t:0}function Ac(n){return n?$r(jc(n),0,Wn):0}function kc(n){if("number"==typeof n)return n;if(yc(n))return Sn;if(ic(n)){var t="function"==typeof n.valueOf?n.valueOf():n;n=ic(t)?t+"":t}if("string"!=typeof n)return 0===n?n:+n;n=n.replace(Et,"");var r=Ft.test(n);return r||Pt.test(n)?Jr(n.slice(2),r?2:8):Mt.test(n)?Sn:+n}function Oc(n){return Bu(n,Nc(n))}function Ic(n){return n?$r(jc(n),-zn,zn):0===n?n:0}function Rc(n){return null==n?"":pu(n)}function zc(n,t){var r=_s(n); +return null==t?r:Wr(r,t)}function Ec(n,t){return v(n,bi(t,3),ee)}function Sc(n,t){return v(n,bi(t,3),ue)}function Wc(n,t){return null==n?n:ys(n,bi(t,3),Nc)}function Lc(n,t){return null==n?n:ds(n,bi(t,3),Nc)}function Cc(n,t){return n&&ee(n,bi(t,3))}function Uc(n,t){return n&&ue(n,bi(t,3))}function Bc(n){return null==n?[]:se(n,Fc(n))}function Tc(n){return null==n?[]:se(n,Nc(n))}function $c(n,t,r){var e=null==n?Y:ve(n,t);return e===Y?r:e}function Dc(n,t){return null!=n&&Oi(n,t,we)}function Mc(n,t){return null!=n&&Oi(n,t,me); +}function Fc(n){return Vf(n)?Ar(n):$e(n)}function Nc(n){return Vf(n)?Ar(n,!0):De(n)}function Pc(n,t){var r={};return t=bi(t,3),ee(n,function(n,e,u){Cr(r,t(n,e,u),n)}),r}function qc(n,t){var r={};return t=bi(t,3),ee(n,function(n,e,u){Cr(r,e,t(n,e,u))}),r}function Zc(n,t){return Kc(n,Lf(bi(t)))}function Kc(n,t){if(null==n)return{};var r=c(gi(n),function(n){return[n]});return t=bi(t),He(n,r,function(n,r){return t(n,r[0])})}function Vc(n,t,r){t=ju(t,n);var e=-1,u=t.length;for(u||(u=1,n=Y);++et){ +var e=n;n=t,t=e}if(r||n%1||t%1){var u=Jl();return Vl(n+u*(t-n+Hr("1e-"+((u+"").length-1))),t)}return Xe(n,t)}function ia(n){return Jh(Rc(n).toLowerCase())}function oa(n){return n=Rc(n),n&&n.replace(Zt,he).replace(Br,"")}function fa(n,t,r){n=Rc(n),t=pu(t);var e=n.length;r=r===Y?e:$r(jc(r),0,e);var u=r;return r-=t.length,r>=0&&n.slice(r,u)==t}function ca(n){return n=Rc(n),n&&mt.test(n)?n.replace(bt,pe):n}function aa(n){return n=Rc(n),n&&zt.test(n)?n.replace(Rt,"\\$&"):n}function la(n,t,r){n=Rc(n),t=jc(t); +var e=t?K(n):0;if(!t||e>=t)return n;var u=(t-e)/2;return ni(Ml(u),r)+n+ni(Dl(u),r)}function sa(n,t,r){n=Rc(n),t=jc(t);var e=t?K(n):0;return t&&e>>0)?(n=Rc(n),n&&("string"==typeof t||null!=t&&!xh(t))&&(t=pu(t),!t&&B(n))?Au(V(n),0,r):n.split(t,r)):[]}function ya(n,t,r){return n=Rc(n),r=null==r?0:$r(jc(r),0,n.length),t=pu(t),n.slice(r,r+t.length)==t}function da(n,t,r){var e=q.templateSettings;r&&Li(n,t,r)&&(t=Y),n=Rc(n),t=zh({},t,e,ci);var u,i,o=zh({},t.imports,e.imports,ci),f=Fc(o),c=z(o,f),a=0,l=t.interpolate||Kt,s="__p += '",h=al((t.escape||Kt).source+"|"+l.source+"|"+(l===At?$t:Kt).source+"|"+(t.evaluate||Kt).source+"|$","g"),p="//# sourceURL="+(yl.call(t,"sourceURL")?(t.sourceURL+"").replace(/\s/g," "):"lodash.templateSources["+ ++Nr+"]")+"\n"; +n.replace(h,function(t,r,e,o,f,c){return e||(e=o),s+=n.slice(a,c).replace(Vt,C),r&&(u=!0,s+="' +\n__e("+r+") +\n'"),f&&(i=!0,s+="';\n"+f+";\n__p += '"),e&&(s+="' +\n((__t = ("+e+")) == null ? '' : __t) +\n'"),a=c+t.length,t}),s+="';\n";var _=yl.call(t,"variable")&&t.variable;_||(s="with (obj) {\n"+s+"\n}\n"),s=(i?s.replace(vt,""):s).replace(gt,"$1").replace(yt,"$1;"),s="function("+(_||"obj")+") {\n"+(_?"":"obj || (obj = {});\n")+"var __t, __p = ''"+(u?", __e = _.escape":"")+(i?", __j = Array.prototype.join;\nfunction print() { __p += __j.call(arguments, '') }\n":";\n")+s+"return __p\n}"; +var v=Yh(function(){return ol(f,p+"return "+s).apply(Y,c)});if(v.source=s,nc(v))throw v;return v}function ba(n){return Rc(n).toLowerCase()}function wa(n){return Rc(n).toUpperCase()}function ma(n,t,r){if(n=Rc(n),n&&(r||t===Y))return n.replace(Et,"");if(!n||!(t=pu(t)))return n;var e=V(n),u=V(t);return Au(e,S(e,u),W(e,u)+1).join("")}function xa(n,t,r){if(n=Rc(n),n&&(r||t===Y))return n.replace(Wt,"");if(!n||!(t=pu(t)))return n;var e=V(n);return Au(e,0,W(e,V(t))+1).join("")}function ja(n,t,r){if(n=Rc(n), +n&&(r||t===Y))return n.replace(St,"");if(!n||!(t=pu(t)))return n;var e=V(n);return Au(e,S(e,V(t))).join("")}function Aa(n,t){var r=mn,e=xn;if(ic(t)){var u="separator"in t?t.separator:u;r="length"in t?jc(t.length):r,e="omission"in t?pu(t.omission):e}n=Rc(n);var i=n.length;if(B(n)){var o=V(n);i=o.length}if(r>=i)return n;var f=r-K(e);if(f<1)return e;var c=o?Au(o,0,f).join(""):n.slice(0,f);if(u===Y)return c+e;if(o&&(f+=c.length-f),xh(u)){if(n.slice(f).search(u)){var a,l=c;for(u.global||(u=al(u.source,Rc(Dt.exec(u))+"g")), +u.lastIndex=0;a=u.exec(l);)var s=a.index;c=c.slice(0,s===Y?f:s)}}else if(n.indexOf(pu(u),f)!=f){var h=c.lastIndexOf(u);h>-1&&(c=c.slice(0,h))}return c+e}function ka(n){return n=Rc(n),n&&wt.test(n)?n.replace(dt,_e):n}function Oa(n,t,r){return n=Rc(n),t=r?Y:t,t===Y?T(n)?J(n):_(n):n.match(t)||[]}function Ia(t){var r=null==t?0:t.length,e=bi();return t=r?c(t,function(n){if("function"!=typeof n[1])throw new sl(tn);return[e(n[0]),n[1]]}):[],ru(function(e){for(var u=-1;++uzn)return[];var r=Wn,e=Vl(n,Wn);t=bi(t),n-=Wn;for(var u=O(e,t);++r1?n[t-1]:Y;return r="function"==typeof r?(n.pop(), +r):Y,Vo(n,r)}),Js=_i(function(n){var t=n.length,r=t?n[0]:0,e=this.__wrapped__,u=function(t){return Tr(t,n)};return!(t>1||this.__actions__.length)&&e instanceof Bt&&Wi(r)?(e=e.slice(r,+r+(t?1:0)),e.__actions__.push({func:Qo,args:[u],thisArg:Y}),new H(e,this.__chain__).thru(function(n){return t&&!n.length&&n.push(Y),n})):this.thru(u)}),Ys=Du(function(n,t,r){yl.call(n,r)?++n[r]:Cr(n,r,1)}),Qs=Gu(lo),Xs=Gu(so),nh=Du(function(n,t,r){yl.call(n,r)?n[r].push(t):Cr(n,r,[t])}),th=ru(function(t,r,e){var u=-1,i="function"==typeof r,o=Vf(t)?el(t.length):[]; +return vs(t,function(t){o[++u]=i?n(r,t,e):ke(t,r,e)}),o}),rh=Du(function(n,t,r){Cr(n,r,t)}),eh=Du(function(n,t,r){n[r?0:1].push(t)},function(){return[[],[]]}),uh=ru(function(n,t){if(null==n)return[];var r=t.length;return r>1&&Li(n,t[0],t[1])?t=[]:r>2&&Li(t[0],t[1],t[2])&&(t=[t[0]]),Ve(n,te(t,1),[])}),ih=Tl||function(){return Xr.Date.now()},oh=ru(function(n,t,r){var e=sn;if(r.length){var u=F(r,di(oh));e|=gn}return fi(n,e,t,r,u)}),fh=ru(function(n,t,r){var e=sn|hn;if(r.length){var u=F(r,di(fh));e|=gn; +}return fi(t,e,n,r,u)}),ch=ru(function(n,t){return Kr(n,1,t)}),ah=ru(function(n,t,r){return Kr(n,kc(t)||0,r)});Wf.Cache=ar;var lh=ms(function(t,r){r=1==r.length&&yh(r[0])?c(r[0],R(bi())):c(te(r,1),R(bi()));var e=r.length;return ru(function(u){for(var i=-1,o=Vl(u.length,e);++i=t}),gh=Oe(function(){return arguments}())?Oe:function(n){return oc(n)&&yl.call(n,"callee")&&!El.call(n,"callee")},yh=el.isArray,dh=ie?R(ie):Ie,bh=Nl||Na,wh=oe?R(oe):Re,mh=fe?R(fe):Se,xh=ce?R(ce):Ce,jh=ae?R(ae):Ue,Ah=le?R(le):Be,kh=ei(Me),Oh=ei(function(n,t){return n<=t}),Ih=Mu(function(n,t){if($i(t)||Vf(t))return Bu(t,Fc(t),n),Y;for(var r in t)yl.call(t,r)&&zr(n,r,t[r])}),Rh=Mu(function(n,t){Bu(t,Nc(t),n)}),zh=Mu(function(n,t,r,e){Bu(t,Nc(t),n,e)}),Eh=Mu(function(n,t,r,e){Bu(t,Fc(t),n,e); +}),Sh=_i(Tr),Wh=ru(function(n,t){n=cl(n);var r=-1,e=t.length,u=e>2?t[2]:Y;for(u&&Li(t[0],t[1],u)&&(e=1);++r1),t}),Bu(n,gi(n),r),e&&(r=Dr(r,on|fn|cn,li));for(var u=t.length;u--;)vu(r,t[u]);return r}),Mh=_i(function(n,t){return null==n?{}:Ge(n,t)}),Fh=oi(Fc),Nh=oi(Nc),Ph=Zu(function(n,t,r){return t=t.toLowerCase(),n+(r?ia(t):t)}),qh=Zu(function(n,t,r){return n+(r?"-":"")+t.toLowerCase()}),Zh=Zu(function(n,t,r){return n+(r?" ":"")+t.toLowerCase()}),Kh=qu("toLowerCase"),Vh=Zu(function(n,t,r){ +return n+(r?"_":"")+t.toLowerCase()}),Gh=Zu(function(n,t,r){return n+(r?" ":"")+Jh(t)}),Hh=Zu(function(n,t,r){return n+(r?" ":"")+t.toUpperCase()}),Jh=qu("toUpperCase"),Yh=ru(function(t,r){try{return n(t,Y,r)}catch(n){return nc(n)?n:new il(n)}}),Qh=_i(function(n,t){return r(t,function(t){t=Qi(t),Cr(n,t,oh(n[t],n))}),n}),Xh=Hu(),np=Hu(!0),tp=ru(function(n,t){return function(r){return ke(r,n,t)}}),rp=ru(function(n,t){return function(r){return ke(n,r,t)}}),ep=Xu(c),up=Xu(u),ip=Xu(h),op=ri(),fp=ri(!0),cp=Qu(function(n,t){ +return n+t},0),ap=ii("ceil"),lp=Qu(function(n,t){return n/t},1),sp=ii("floor"),hp=Qu(function(n,t){return n*t},1),pp=ii("round"),_p=Qu(function(n,t){return n-t},0);return q.after=kf,q.ary=Of,q.assign=Ih,q.assignIn=Rh,q.assignInWith=zh,q.assignWith=Eh,q.at=Sh,q.before=If,q.bind=oh,q.bindAll=Qh,q.bindKey=fh,q.castArray=Mf,q.chain=Jo,q.chunk=ro,q.compact=eo,q.concat=uo,q.cond=Ia,q.conforms=Ra,q.constant=za,q.countBy=Ys,q.create=zc,q.curry=Rf,q.curryRight=zf,q.debounce=Ef,q.defaults=Wh,q.defaultsDeep=Lh, +q.defer=ch,q.delay=ah,q.difference=Ls,q.differenceBy=Cs,q.differenceWith=Us,q.drop=io,q.dropRight=oo,q.dropRightWhile=fo,q.dropWhile=co,q.fill=ao,q.filter=cf,q.flatMap=af,q.flatMapDeep=lf,q.flatMapDepth=sf,q.flatten=ho,q.flattenDeep=po,q.flattenDepth=_o,q.flip=Sf,q.flow=Xh,q.flowRight=np,q.fromPairs=vo,q.functions=Bc,q.functionsIn=Tc,q.groupBy=nh,q.initial=bo,q.intersection=Bs,q.intersectionBy=Ts,q.intersectionWith=$s,q.invert=Ch,q.invertBy=Uh,q.invokeMap=th,q.iteratee=Wa,q.keyBy=rh,q.keys=Fc,q.keysIn=Nc, +q.map=vf,q.mapKeys=Pc,q.mapValues=qc,q.matches=La,q.matchesProperty=Ca,q.memoize=Wf,q.merge=Th,q.mergeWith=$h,q.method=tp,q.methodOf=rp,q.mixin=Ua,q.negate=Lf,q.nthArg=$a,q.omit=Dh,q.omitBy=Zc,q.once=Cf,q.orderBy=gf,q.over=ep,q.overArgs=lh,q.overEvery=up,q.overSome=ip,q.partial=sh,q.partialRight=hh,q.partition=eh,q.pick=Mh,q.pickBy=Kc,q.property=Da,q.propertyOf=Ma,q.pull=Ds,q.pullAll=Ao,q.pullAllBy=ko,q.pullAllWith=Oo,q.pullAt=Ms,q.range=op,q.rangeRight=fp,q.rearg=ph,q.reject=bf,q.remove=Io,q.rest=Uf, +q.reverse=Ro,q.sampleSize=mf,q.set=Gc,q.setWith=Hc,q.shuffle=xf,q.slice=zo,q.sortBy=uh,q.sortedUniq=Bo,q.sortedUniqBy=To,q.split=ga,q.spread=Bf,q.tail=$o,q.take=Do,q.takeRight=Mo,q.takeRightWhile=Fo,q.takeWhile=No,q.tap=Yo,q.throttle=Tf,q.thru=Qo,q.toArray=mc,q.toPairs=Fh,q.toPairsIn=Nh,q.toPath=Va,q.toPlainObject=Oc,q.transform=Jc,q.unary=$f,q.union=Fs,q.unionBy=Ns,q.unionWith=Ps,q.uniq=Po,q.uniqBy=qo,q.uniqWith=Zo,q.unset=Yc,q.unzip=Ko,q.unzipWith=Vo,q.update=Qc,q.updateWith=Xc,q.values=na,q.valuesIn=ta, +q.without=qs,q.words=Oa,q.wrap=Df,q.xor=Zs,q.xorBy=Ks,q.xorWith=Vs,q.zip=Gs,q.zipObject=Go,q.zipObjectDeep=Ho,q.zipWith=Hs,q.entries=Fh,q.entriesIn=Nh,q.extend=Rh,q.extendWith=zh,Ua(q,q),q.add=cp,q.attempt=Yh,q.camelCase=Ph,q.capitalize=ia,q.ceil=ap,q.clamp=ra,q.clone=Ff,q.cloneDeep=Pf,q.cloneDeepWith=qf,q.cloneWith=Nf,q.conformsTo=Zf,q.deburr=oa,q.defaultTo=Ea,q.divide=lp,q.endsWith=fa,q.eq=Kf,q.escape=ca,q.escapeRegExp=aa,q.every=ff,q.find=Qs,q.findIndex=lo,q.findKey=Ec,q.findLast=Xs,q.findLastIndex=so, +q.findLastKey=Sc,q.floor=sp,q.forEach=hf,q.forEachRight=pf,q.forIn=Wc,q.forInRight=Lc,q.forOwn=Cc,q.forOwnRight=Uc,q.get=$c,q.gt=_h,q.gte=vh,q.has=Dc,q.hasIn=Mc,q.head=go,q.identity=Sa,q.includes=_f,q.indexOf=yo,q.inRange=ea,q.invoke=Bh,q.isArguments=gh,q.isArray=yh,q.isArrayBuffer=dh,q.isArrayLike=Vf,q.isArrayLikeObject=Gf,q.isBoolean=Hf,q.isBuffer=bh,q.isDate=wh,q.isElement=Jf,q.isEmpty=Yf,q.isEqual=Qf,q.isEqualWith=Xf,q.isError=nc,q.isFinite=tc,q.isFunction=rc,q.isInteger=ec,q.isLength=uc,q.isMap=mh, +q.isMatch=fc,q.isMatchWith=cc,q.isNaN=ac,q.isNative=lc,q.isNil=hc,q.isNull=sc,q.isNumber=pc,q.isObject=ic,q.isObjectLike=oc,q.isPlainObject=_c,q.isRegExp=xh,q.isSafeInteger=vc,q.isSet=jh,q.isString=gc,q.isSymbol=yc,q.isTypedArray=Ah,q.isUndefined=dc,q.isWeakMap=bc,q.isWeakSet=wc,q.join=wo,q.kebabCase=qh,q.last=mo,q.lastIndexOf=xo,q.lowerCase=Zh,q.lowerFirst=Kh,q.lt=kh,q.lte=Oh,q.max=Ha,q.maxBy=Ja,q.mean=Ya,q.meanBy=Qa,q.min=Xa,q.minBy=nl,q.stubArray=Fa,q.stubFalse=Na,q.stubObject=Pa,q.stubString=qa, +q.stubTrue=Za,q.multiply=hp,q.nth=jo,q.noConflict=Ba,q.noop=Ta,q.now=ih,q.pad=la,q.padEnd=sa,q.padStart=ha,q.parseInt=pa,q.random=ua,q.reduce=yf,q.reduceRight=df,q.repeat=_a,q.replace=va,q.result=Vc,q.round=pp,q.runInContext=p,q.sample=wf,q.size=jf,q.snakeCase=Vh,q.some=Af,q.sortedIndex=Eo,q.sortedIndexBy=So,q.sortedIndexOf=Wo,q.sortedLastIndex=Lo,q.sortedLastIndexBy=Co,q.sortedLastIndexOf=Uo,q.startCase=Gh,q.startsWith=ya,q.subtract=_p,q.sum=tl,q.sumBy=rl,q.template=da,q.times=Ka,q.toFinite=xc,q.toInteger=jc, +q.toLength=Ac,q.toLower=ba,q.toNumber=kc,q.toSafeInteger=Ic,q.toString=Rc,q.toUpper=wa,q.trim=ma,q.trimEnd=xa,q.trimStart=ja,q.truncate=Aa,q.unescape=ka,q.uniqueId=Ga,q.upperCase=Hh,q.upperFirst=Jh,q.each=hf,q.eachRight=pf,q.first=go,Ua(q,function(){var n={};return ee(q,function(t,r){yl.call(q.prototype,r)||(n[r]=t)}),n}(),{chain:!1}),q.VERSION=Q,r(["bind","bindKey","curry","curryRight","partial","partialRight"],function(n){q[n].placeholder=q}),r(["drop","take"],function(n,t){Bt.prototype[n]=function(r){ +r=r===Y?1:Kl(jc(r),0);var e=this.__filtered__&&!t?new Bt(this):this.clone();return e.__filtered__?e.__takeCount__=Vl(r,e.__takeCount__):e.__views__.push({size:Vl(r,Wn),type:n+(e.__dir__<0?"Right":"")}),e},Bt.prototype[n+"Right"]=function(t){return this.reverse()[n](t).reverse()}}),r(["filter","map","takeWhile"],function(n,t){var r=t+1,e=r==kn||r==In;Bt.prototype[n]=function(n){var t=this.clone();return t.__iteratees__.push({iteratee:bi(n,3),type:r}),t.__filtered__=t.__filtered__||e,t}}),r(["head","last"],function(n,t){ +var r="take"+(t?"Right":"");Bt.prototype[n]=function(){return this[r](1).value()[0]}}),r(["initial","tail"],function(n,t){var r="drop"+(t?"":"Right");Bt.prototype[n]=function(){return this.__filtered__?new Bt(this):this[r](1)}}),Bt.prototype.compact=function(){return this.filter(Sa)},Bt.prototype.find=function(n){return this.filter(n).head()},Bt.prototype.findLast=function(n){return this.reverse().find(n)},Bt.prototype.invokeMap=ru(function(n,t){return"function"==typeof n?new Bt(this):this.map(function(r){ +return ke(r,n,t)})}),Bt.prototype.reject=function(n){return this.filter(Lf(bi(n)))},Bt.prototype.slice=function(n,t){n=jc(n);var r=this;return r.__filtered__&&(n>0||t<0)?new Bt(r):(n<0?r=r.takeRight(-n):n&&(r=r.drop(n)),t!==Y&&(t=jc(t),r=t<0?r.dropRight(-t):r.take(t-n)),r)},Bt.prototype.takeRightWhile=function(n){return this.reverse().takeWhile(n).reverse()},Bt.prototype.toArray=function(){return this.take(Wn)},ee(Bt.prototype,function(n,t){var r=/^(?:filter|find|map|reject)|While$/.test(t),e=/^(?:head|last)$/.test(t),u=q[e?"take"+("last"==t?"Right":""):t],i=e||/^find/.test(t); +u&&(q.prototype[t]=function(){var t=this.__wrapped__,o=e?[1]:arguments,f=t instanceof Bt,c=o[0],l=f||yh(t),s=function(n){var t=u.apply(q,a([n],o));return e&&h?t[0]:t};l&&r&&"function"==typeof c&&1!=c.length&&(f=l=!1);var h=this.__chain__,p=!!this.__actions__.length,_=i&&!h,v=f&&!p;if(!i&&l){t=v?t:new Bt(this);var g=n.apply(t,o);return g.__actions__.push({func:Qo,args:[s],thisArg:Y}),new H(g,h)}return _&&v?n.apply(this,o):(g=this.thru(s),_?e?g.value()[0]:g.value():g)})}),r(["pop","push","shift","sort","splice","unshift"],function(n){ +var t=hl[n],r=/^(?:push|sort|unshift)$/.test(n)?"tap":"thru",e=/^(?:pop|shift)$/.test(n);q.prototype[n]=function(){var n=arguments;if(e&&!this.__chain__){var u=this.value();return t.apply(yh(u)?u:[],n)}return this[r](function(r){return t.apply(yh(r)?r:[],n)})}}),ee(Bt.prototype,function(n,t){var r=q[t];if(r){var e=r.name+"";yl.call(is,e)||(is[e]=[]),is[e].push({name:t,func:r})}}),is[Ju(Y,hn).name]=[{name:"wrapper",func:Y}],Bt.prototype.clone=Gt,Bt.prototype.reverse=Ht,Bt.prototype.value=Jt,q.prototype.at=Js, +q.prototype.chain=Xo,q.prototype.commit=nf,q.prototype.next=tf,q.prototype.plant=ef,q.prototype.reverse=uf,q.prototype.toJSON=q.prototype.valueOf=q.prototype.value=of,q.prototype.first=q.prototype.head,Ll&&(q.prototype[Ll]=rf),q},ge=ve();"function"==typeof define&&"object"==typeof define.amd&&define.amd?(Xr._=ge,define(function(){return ge})):te?((te.exports=ge)._=ge,ne._=ge):Xr._=ge}).call(this); \ No newline at end of file diff --git a/templates/base.html b/templates/base.html index a80db191..e6f70526 100644 --- a/templates/base.html +++ b/templates/base.html @@ -9,48 +9,144 @@ {% endif %} + + - + + {% block scripts %} {% endblock %} + + -
+