From 459776f41788a95eb96adcff3762a45b7439138f Mon Sep 17 00:00:00 2001 From: Lukas Date: Tue, 11 May 2021 10:03:09 +0200 Subject: [PATCH] initial commit --- SteamTrace.py | 411 +++++++ UX.py | 396 ++++++ UX.ui | 1077 +++++++++++++++++ rsc/Very-Basic-Cancel-icon.png | Bin 0 -> 2013 bytes rsc/favicon_io/android-chrome-192x192.png | Bin 0 -> 7377 bytes rsc/favicon_io/android-chrome-512x512.png | Bin 0 -> 21173 bytes rsc/favicon_io/apple-touch-icon.png | Bin 0 -> 6617 bytes rsc/favicon_io/favicon-16x16.png | Bin 0 -> 386 bytes rsc/favicon_io/favicon-32x32.png | Bin 0 -> 794 bytes rsc/favicon_io/favicon.ico | Bin 0 -> 15406 bytes rsc/favicon_io/site.webmanifest | 1 + st.qrc | 7 + st_rc.py | 793 ++++++++++++ tiny.db | 1335 +++++++++++++++++++++ xtimer.py | 9 + 15 files changed, 4029 insertions(+) create mode 100644 SteamTrace.py create mode 100644 UX.py create mode 100644 UX.ui create mode 100644 rsc/Very-Basic-Cancel-icon.png create mode 100644 rsc/favicon_io/android-chrome-192x192.png create mode 100644 rsc/favicon_io/android-chrome-512x512.png create mode 100644 rsc/favicon_io/apple-touch-icon.png create mode 100644 rsc/favicon_io/favicon-16x16.png create mode 100644 rsc/favicon_io/favicon-32x32.png create mode 100644 rsc/favicon_io/favicon.ico create mode 100644 rsc/favicon_io/site.webmanifest create mode 100644 st.qrc create mode 100644 st_rc.py create mode 100644 tiny.db create mode 100644 xtimer.py diff --git a/SteamTrace.py b/SteamTrace.py new file mode 100644 index 0000000..87f8ac3 --- /dev/null +++ b/SteamTrace.py @@ -0,0 +1,411 @@ +""" +""" + +__author__ = "Lukas Mahler" +__copyright__ = "Copyright 2020-2021" +__version__ = "0.1.4" +__date__ = "15.01.2021" +__email__ = "lm@ankerlab.de" +__status__ = "Development" + +import os +import sys +import tinydb +import requests +import subprocess +from math import ceil +from time import sleep +from dateutil import parser +from datetime import datetime, timedelta +from requests.utils import requote_uri +from selenium import webdriver +from selenium.webdriver.chrome.options import Options +from selenium.common.exceptions import NoSuchElementException + +from PyQt5 import QtWidgets +from PyQt5.QtCore import Qt +from UX import Ui_Main +import st_rc + + +# CONSTANTS # +APPID = 730 +CURRENCY = 3 +SPACER = "-" * 65 +# CONSTANTS # + + +class STInstance(QtWidgets.QMainWindow, Ui_Main): + def __init__(self, parent=None): + QtWidgets.QWidget.__init__(self, parent) + self.setWindowFlags(Qt.FramelessWindowHint) + self.setAttribute(Qt.WA_TranslucentBackground) + self.setupUi(self) + self.frameOnline.setDisabled(True) + + # Vars + self.chrome_driver = None + self.dbflag = None + + self.find_driver() + + def btnexit(self): + self.destroy() + sys.exit(app.exec_()) + + def dbconnect(self): + self.frameDatabase.setDisabled(True) + self.frameGeneral.setEnabled(True) + self.rbDatabaseStatus.setChecked(True) + self.status("Connected to Database") + + def evaluate(self): + self.status("Placeholder") + + def local(self): + """ Toggles Offline or Online Database """ + + if self.cbUseLocalDatabase.isChecked(): + self.frameOnline.setDisabled(True) + self.leLocalDBName.setEnabled(True) + self.dbflag = "offline" + else: + self.frameOnline.setEnabled(True) + self.leLocalDBName.setDisabled(True) + self.dbflag = "online" + + def find_driver(self): + """ Check for chromedriver """ + + chrome_driver = None + try: + chrome_driver = os.getcwd() + "\\chromedriver.exe" + # chrome_driver = chrome_driver.resolve() + os.path.isfile(chrome_driver) + except Exception as e: + print(e) + self.status("Chromedriver wasn't found in current working directory") + pass + try: + chrome_driver = os.environ["PROGRAMFILES(x86)"] + r"\Google\Chrome\driver\chromedriver.exe" + os.path.isfile(chrome_driver) + except Exception as e: + print(e) + self.status(r"Chromedriver wasn't found under %PROGRAMFILES(x86)%\Google\Chrome\driver") + pass + + if not os.path.isfile(chrome_driver): + self.status("Couldn't find a Chromedriver, exiting...") + exit() + else: + self.status("Chromedriver found") + self.chrome_driver = chrome_driver + self.rbChromedriverStatus.setChecked(True) + + def status(self, txt): + self.statusbar.showMessage(txt) + +# ============================================================================================================== +# General Steam API Calls +# ============================================================================================================== + +def steamapicall(hashname): + global db + global bucket + + ''' Reuse cached values for already made calls ''' + Item = tinydb.Query() + query = Item.hashname == hashname + dbitem = db.search(query) + if len(dbitem) > 0: + timestamp = parser.parse(dbitem[0]['lastupdated']) + # print(timestamp, (datetime.now() - timedelta(hours=1))) + if timestamp > (datetime.now() - timedelta(hours=1)): + return dbitem[0] + + ''' Stop possible rate limiting ''' + # print(bucket) + if bucket == 20: + for i in reversed(range(0, 60)): + print("Bucket is full, waiting... {0:2d}".format(i), end="\r") + sleep(1) + print("") + bucket = 1 + + url = "https://steamcommunity.com/market/priceoverview/?currency={0}&appid={1}&market_hash_name={2}".format( + CURRENCY, APPID, hashname) + url = requote_uri(url) + r = requests.get(url) + if r.status_code == 200: + bucket += 1 + json = r.json() + json.pop('success') + json['hashname'] = hashname + json['lastupdated'] = str(datetime.now()) + db.upsert(json, query) + return json + else: + raise Exception("APIERROR: {0}".format(r.status_code)) + # print("APIERROR: {0}".format(r.status_code)) + # sleep(60) + + +# ============================================================================================================== +# Item Evaluation +# ============================================================================================================== + +def getbaseprice(given): + + if isinstance(given, dict): + name = given['full_item_name'] + else: + name = given.split("730/")[1] + + json = steamapicall(name) + try: + price = json['median_price'].replace("-", "0") + except KeyError: + # Using lowest price if there is no median price provided + price = json['lowest_price'].replace("-", "0") + + baseprice = round(float(price[:-1].replace(",", ".")), 2) + return baseprice + + +def getfloatval(idic): + wear_ranges = { + 'Factory New': "0-0.07", + 'Minimal Wear': "0.07-0.15", + 'Field-Tested': "0.15-0.38", + 'Well-Worn': "0.38-0.45", + 'Battle-Scarred': "0.45-1" + } + fmin, fmax = map(float, wear_ranges[idic['wear_name']].split("-")) + if idic['min'] > fmin: + fmin = idic['min'] + cur = idic['floatvalue'] + rankval = 100 - (((cur - fmin) / (fmax - fmin)) * 100) + if rankval >= 99: + valueadd = idic['baseprice'] * 0.05 + else: + valueadd = 0 + # print("{0} rankval is {1}".format(o,round(rankval,2))) + return valueadd + + +def getstickerprice(sticker): + name = "Sticker | {0}".format(sticker['name']) + json = steamapicall(name) + try: + mprice = json['median_price'].replace("-", "0") + except KeyError: + mprice = "9999€" + mprice = float(mprice[:-1].replace(",", ".")) + + try: + lprice = json['lowest_price'].replace("-", "0") + except KeyError: + lprice = "9999€" + lprice = float(lprice[:-1].replace(",", ".")) + + price = min(mprice, lprice) + valueadd = round(price * 0.05, 2) + return valueadd + + +# ============================================================================================================== +# Tools +# ============================================================================================================== + +def getexchangerate(symbol="USD"): + url = "https://api.exchangeratesapi.io/latest?symbols={0}".format(symbol) + r = requests.get(url) + rate = r.json()['rates'][symbol] + date = r.json()['date'] + return rate, date + + +def usdtoeur(usd): + global rate + + usd = float(usd[1:].split(" ")[0]) + eur = round((usd / rate), 2) + return eur + + +def timer(msg, time): + subprocess.call(["python", "xtimer.py", msg, time], creationflags=subprocess.CREATE_NEW_CONSOLE) + + +# ============================================================================================================== +# Evaluate Steam Market Listing +# ============================================================================================================== + +def evaluate(baseprice, listing): + ins = listing['ins'] + api = "https://api.csgofloat.com/?url=" + call = api + ins + r = requests.get(call) + idic = r.json()['iteminfo'] + # print(idic) + + iname = idic['full_item_name'] + ifloat = idic['floatvalue'] + istickers = idic['stickers'] + + price = usdtoeur(listing['price']) + # value, = .split(" ") + # print(price) + # price = round(float(price[:-1].replace(",", ".")), 2) + + print("Evaluating {0} - [{1} float]\n{2:9.2f}€\n{3}".format(iname, round(ifloat, 6), price, SPACER)) + + # Evaluate Base Price + idic['baseprice'] = baseprice + print(" {0:7}€ Base Price".format(baseprice)) + + # Evaluate Stickers + stickeradd = 0 + for sticker in istickers: + if 'wear' in sticker: + # print("- Scraped Sticker: {0} ({1})".format(sticker['name'],round(sticker['wear'],2))) + pass + else: + valueadd = getstickerprice(sticker) + stickeradd += valueadd + print("+ {0:7}€ Intact Sticker: {1}".format(valueadd, sticker['name'])) + + # Evalute Floats + valueadd = getfloatval(idic) + if valueadd != 0: + print("+ {0:7}€ Float".format(valueadd)) + # print("= Float is: {0} ({1})".format(round(ifloat, 3), idic['wear_name'])) + + # Evaluate And print possible profit + profit = round((baseprice + stickeradd + valueadd) - price, 2) + print("{0}\n{1:9.2f}€\n".format(SPACER, profit)) + + +# ============================================================================================================== +# Get listings from Steam market +# ============================================================================================================== + +def getmarketlistings(marketurl, n=10): + + marketlistings = {} + pages = n / 10 + i = 1 + + chrome_options = Options() + chrome_options.add_argument("--headless") + chrome_options.add_argument("--window-size=1920x1080") + chrome_options.add_argument("--log-level=3") # Fatal + + chrome_driver = find_driver() + + driver = webdriver.Chrome(chrome_options=chrome_options, executable_path=chrome_driver) + os.system("CLS") + + driver.get(marketurl) + for page in range(1, ceil(pages)+1): + + # https://stackoverflow.com/questions/62313034/how-does-the-steam-marketplace-change-values-without-a-url-change-webscraping + # There is this weird bug where the first page has all the random currencys and the following pages are all USD + # when going back from Page 2 to Page 1 all currencys are USD aswell, so going back and forth on first page + # gives us good values + if page == 1: + driver.find_element_by_css_selector("#searchResults_btn_next").click() + sleep(1) + driver.find_element_by_css_selector("#searchResults_btn_prev").click() + sleep(1) + + if (page % 10) == 0: + for i in reversed(range(0, 60)): + print("Waiting to not get rate limited... {0:2d}".format(i), end="\r") + sleep(1) + print("") + print("Query Page", page) + + try: + listings = driver.find_elements_by_css_selector("#searchResultsRows > div") + listings.pop(0) # delete ratetable header div + except IndexError: + return marketlistings + + for listing in listings: + lid = listing.get_attribute('id') + try: + price = driver.find_element_by_css_selector("#{0} > div.market_listing_price_listings_block > div.market_listing_right_cell.market_listing_their_price > span > span.market_listing_price.market_listing_price_with_fee".format(lid)).text + except NoSuchElementException: + sleep(0.2) + print("Unknown Price not Found happend again, skipping...") + continue + btn = driver.find_element_by_id("{0}_actionmenu_button".format(lid)) + driver.execute_script("arguments[0].click();", btn) + popup = driver.find_element_by_css_selector("#market_action_popup_itemactions > a") + href = popup.get_attribute('href') + + # Skip Sold Item + if price == "Verkauft": + continue + + marketlistings[i] = { + "id": lid, + "ins": href, + "price": price + } + i += 1 + + if i > n: + break + + # Next page + driver.find_element_by_css_selector("#searchResults_btn_next").click() + # driver.refresh() + sleep(1) + + print("\n") + return marketlistings + + +# ============================================================================================================== +# Main +# ============================================================================================================== + +if __name__ == '__main__': + + app = QtWidgets.QApplication(sys.argv) + window = STInstance() + window.show() + + ''' + bucket = 1 + db = tinydb.TinyDB('tiny.db', + sort_keys=True, + indent=4, + separators=(',', ': '), + ensure_ascii=False) + db.default_ratetable_name = 'Memory' + + ratetable = db.table("Rate") + try: + if ratetable.get(doc_id=1)['date'] != datetime.today().strftime('%Y-%m-%d'): + rate, date = getexchangerate() + ratetable.update({"rate": rate, "date": date}) + else: + # Reuse Rate from today + rate = ratetable.get(doc_id=1)['rate'] + except TypeError: + # happens on nonexisting rate data in db + rate, date = getexchangerate() + ratetable.update({"rate": rate, "date": date}) + + url = "https://steamcommunity.com/market/listings/730/AK-47%20%7C%20Redline%20%28Field-Tested%29" + baseprice = getbaseprice(url) + marketlistings = getmarketlistings(url, 115) + for index in marketlistings: + print("{:3d}.".format(index), end=" ") + evaluate(baseprice, marketlistings[index]) + ''' + + sys.exit(app.exec_()) diff --git a/UX.py b/UX.py new file mode 100644 index 0000000..5278f83 --- /dev/null +++ b/UX.py @@ -0,0 +1,396 @@ +# -*- coding: utf-8 -*- + +# Form implementation generated from reading ui file 'C:\Users\lukas\Desktop\Dump\02_Python\steam-Trace\UX.ui' +# +# Created by: PyQt5 UI code generator 5.15.2 +# +# WARNING: Any manual changes made to this file will be lost when pyuic5 is +# run again. Do not edit this file unless you know what you are doing. + + +from PyQt5 import QtCore, QtGui, QtWidgets + + +class Ui_Main(object): + def setupUi(self, Main): + Main.setObjectName("Main") + Main.resize(800, 700) + icon = QtGui.QIcon() + icon.addPixmap(QtGui.QPixmap(":/rsc/rsc/favicon_io/favicon.ico"), QtGui.QIcon.Normal, QtGui.QIcon.Off) + Main.setWindowIcon(icon) + Main.setStyleSheet("") + self.centralwidget = QtWidgets.QWidget(Main) + self.centralwidget.setObjectName("centralwidget") + self.frameHead = QtWidgets.QFrame(self.centralwidget) + self.frameHead.setGeometry(QtCore.QRect(0, 0, 801, 41)) + self.frameHead.setStyleSheet(".QFrame { \n" +"background-color: rgb(240, 240, 240)\n" +"}") + self.frameHead.setFrameShape(QtWidgets.QFrame.StyledPanel) + self.frameHead.setFrameShadow(QtWidgets.QFrame.Raised) + self.frameHead.setObjectName("frameHead") + self.btnExit = QtWidgets.QPushButton(self.frameHead) + self.btnExit.setGeometry(QtCore.QRect(760, 5, 30, 30)) + self.btnExit.setText("") + icon1 = QtGui.QIcon() + icon1.addPixmap(QtGui.QPixmap(":/rsc/rsc/Very-Basic-Cancel-icon.png"), QtGui.QIcon.Normal, QtGui.QIcon.Off) + self.btnExit.setIcon(icon1) + self.btnExit.setIconSize(QtCore.QSize(30, 30)) + self.btnExit.setFlat(True) + self.btnExit.setObjectName("btnExit") + self.lblChromedriverStatus = QtWidgets.QLabel(self.frameHead) + self.lblChromedriverStatus.setGeometry(QtCore.QRect(280, 10, 71, 16)) + self.lblChromedriverStatus.setObjectName("lblChromedriverStatus") + self.lblLogo = QtWidgets.QLabel(self.frameHead) + self.lblLogo.setGeometry(QtCore.QRect(10, 5, 30, 30)) + self.lblLogo.setText("") + self.lblLogo.setPixmap(QtGui.QPixmap(":/rsc/rsc/favicon_io/android-chrome-192x192.png")) + self.lblLogo.setScaledContents(True) + self.lblLogo.setObjectName("lblLogo") + self.lblDatabaseStatus = QtWidgets.QLabel(self.frameHead) + self.lblDatabaseStatus.setGeometry(QtCore.QRect(160, 10, 51, 16)) + self.lblDatabaseStatus.setObjectName("lblDatabaseStatus") + self.rbDatabaseStatus = QtWidgets.QRadioButton(self.frameHead) + self.rbDatabaseStatus.setEnabled(True) + self.rbDatabaseStatus.setGeometry(QtCore.QRect(140, 10, 16, 17)) + self.rbDatabaseStatus.setStyleSheet("QRadioButton::indicator {\n" +" width: 10px;\n" +" height: 10px;\n" +" border-radius: 7px;\n" +"}\n" +"QRadioButton::indicator:checked {\n" +" background-color: green;\n" +" border: 2px solid black;\n" +"}\n" +"\n" +"QRadioButton::indicator:unchecked {\n" +" background-color: red;\n" +" border: 2px solid black;\n" +"}") + self.rbDatabaseStatus.setText("") + self.rbDatabaseStatus.setCheckable(True) + self.rbDatabaseStatus.setChecked(False) + self.rbDatabaseStatus.setAutoExclusive(False) + self.rbDatabaseStatus.setObjectName("rbDatabaseStatus") + self.rbChromedriverStatus = QtWidgets.QRadioButton(self.frameHead) + self.rbChromedriverStatus.setEnabled(False) + self.rbChromedriverStatus.setGeometry(QtCore.QRect(260, 10, 16, 17)) + self.rbChromedriverStatus.setStyleSheet("QRadioButton::indicator {\n" +" width: 10px;\n" +" height: 10px;\n" +" border-radius: 7px;\n" +"}\n" +"QRadioButton::indicator:checked {\n" +" background-color: green;\n" +" border: 2px solid black;\n" +"}\n" +"\n" +"QRadioButton::indicator:unchecked {\n" +" background-color: red;\n" +" border: 2px solid black;\n" +"}") + self.rbChromedriverStatus.setText("") + self.rbChromedriverStatus.setCheckable(True) + self.rbChromedriverStatus.setChecked(False) + self.rbChromedriverStatus.setAutoExclusive(False) + self.rbChromedriverStatus.setObjectName("rbChromedriverStatus") + self.line1_2 = QtWidgets.QFrame(self.frameHead) + self.line1_2.setGeometry(QtCore.QRect(0, 35, 801, 10)) + self.line1_2.setFrameShadow(QtWidgets.QFrame.Plain) + self.line1_2.setLineWidth(1) + self.line1_2.setMidLineWidth(0) + self.line1_2.setFrameShape(QtWidgets.QFrame.HLine) + self.line1_2.setObjectName("line1_2") + self.frameBody = QtWidgets.QFrame(self.centralwidget) + self.frameBody.setGeometry(QtCore.QRect(0, 41, 801, 635)) + self.frameBody.setStyleSheet(".QPushButton { \n" +"background-color:rgb(240, 240, 240);\n" +"border:1px solid black;\n" +"border-radius: 5px;\n" +" }\n" +"\n" +".QFrame {\n" +"background-color:white;\n" +"}") + self.frameBody.setFrameShape(QtWidgets.QFrame.StyledPanel) + self.frameBody.setFrameShadow(QtWidgets.QFrame.Raised) + self.frameBody.setObjectName("frameBody") + self.frameGeneral = QtWidgets.QFrame(self.frameBody) + self.frameGeneral.setEnabled(False) + self.frameGeneral.setGeometry(QtCore.QRect(0, 50, 801, 101)) + self.frameGeneral.setFrameShape(QtWidgets.QFrame.StyledPanel) + self.frameGeneral.setFrameShadow(QtWidgets.QFrame.Raised) + self.frameGeneral.setObjectName("frameGeneral") + self.sbListings = QtWidgets.QSpinBox(self.frameGeneral) + self.sbListings.setGeometry(QtCore.QRect(80, 40, 61, 22)) + self.sbListings.setObjectName("sbListings") + self.dbsFloatPerc = QtWidgets.QDoubleSpinBox(self.frameGeneral) + self.dbsFloatPerc.setGeometry(QtCore.QRect(390, 40, 62, 22)) + self.dbsFloatPerc.setProperty("value", 0.05) + self.dbsFloatPerc.setObjectName("dbsFloatPerc") + self.cbSameSticker = QtWidgets.QCheckBox(self.frameGeneral) + self.cbSameSticker.setGeometry(QtCore.QRect(480, 70, 131, 17)) + self.cbSameSticker.setObjectName("cbSameSticker") + self.lblFloatPerc = QtWidgets.QLabel(self.frameGeneral) + self.lblFloatPerc.setGeometry(QtCore.QRect(300, 40, 81, 20)) + self.lblFloatPerc.setObjectName("lblFloatPerc") + self.lblFloatRank = QtWidgets.QLabel(self.frameGeneral) + self.lblFloatRank.setGeometry(QtCore.QRect(160, 40, 61, 31)) + self.lblFloatRank.setObjectName("lblFloatRank") + self.lblUrl = QtWidgets.QLabel(self.frameGeneral) + self.lblUrl.setGeometry(QtCore.QRect(10, 10, 61, 20)) + self.lblUrl.setObjectName("lblUrl") + self.lblListings = QtWidgets.QLabel(self.frameGeneral) + self.lblListings.setGeometry(QtCore.QRect(10, 40, 61, 20)) + self.lblListings.setObjectName("lblListings") + self.btnEvaluate = QtWidgets.QPushButton(self.frameGeneral) + self.btnEvaluate.setGeometry(QtCore.QRect(700, 10, 75, 23)) + self.btnEvaluate.setObjectName("btnEvaluate") + self.leUrl = QtWidgets.QLineEdit(self.frameGeneral) + self.leUrl.setGeometry(QtCore.QRect(80, 10, 601, 20)) + self.leUrl.setObjectName("leUrl") + self.dbsStickerPerc = QtWidgets.QDoubleSpinBox(self.frameGeneral) + self.dbsStickerPerc.setGeometry(QtCore.QRect(390, 70, 62, 22)) + self.dbsStickerPerc.setProperty("value", 0.05) + self.dbsStickerPerc.setObjectName("dbsStickerPerc") + self.sbFloatRank = QtWidgets.QSpinBox(self.frameGeneral) + self.sbFloatRank.setGeometry(QtCore.QRect(230, 40, 42, 22)) + self.sbFloatRank.setMaximum(100) + self.sbFloatRank.setProperty("value", 99) + self.sbFloatRank.setObjectName("sbFloatRank") + self.lblStickerPerc = QtWidgets.QLabel(self.frameGeneral) + self.lblStickerPerc.setGeometry(QtCore.QRect(300, 70, 81, 20)) + self.lblStickerPerc.setObjectName("lblStickerPerc") + self.line1 = QtWidgets.QFrame(self.frameBody) + self.line1.setGeometry(QtCore.QRect(10, 40, 781, 16)) + self.line1.setFrameShadow(QtWidgets.QFrame.Plain) + self.line1.setLineWidth(2) + self.line1.setMidLineWidth(0) + self.line1.setFrameShape(QtWidgets.QFrame.HLine) + self.line1.setObjectName("line1") + self.frameListings = QtWidgets.QFrame(self.frameBody) + self.frameListings.setEnabled(False) + self.frameListings.setGeometry(QtCore.QRect(0, 430, 801, 211)) + self.frameListings.setFrameShape(QtWidgets.QFrame.StyledPanel) + self.frameListings.setFrameShadow(QtWidgets.QFrame.Raised) + self.frameListings.setObjectName("frameListings") + self.tableListings = QtWidgets.QTableWidget(self.frameListings) + self.tableListings.setGeometry(QtCore.QRect(10, 10, 781, 191)) + self.tableListings.setStyleSheet("background-color: rgb(255, 255, 255);") + self.tableListings.setObjectName("tableListings") + self.tableListings.setColumnCount(5) + self.tableListings.setRowCount(0) + item = QtWidgets.QTableWidgetItem() + self.tableListings.setHorizontalHeaderItem(0, item) + item = QtWidgets.QTableWidgetItem() + self.tableListings.setHorizontalHeaderItem(1, item) + item = QtWidgets.QTableWidgetItem() + self.tableListings.setHorizontalHeaderItem(2, item) + item = QtWidgets.QTableWidgetItem() + self.tableListings.setHorizontalHeaderItem(3, item) + item = QtWidgets.QTableWidgetItem() + self.tableListings.setHorizontalHeaderItem(4, item) + self.line2 = QtWidgets.QFrame(self.frameBody) + self.line2.setGeometry(QtCore.QRect(10, 190, 781, 16)) + self.line2.setFrameShadow(QtWidgets.QFrame.Plain) + self.line2.setLineWidth(2) + self.line2.setMidLineWidth(0) + self.line2.setFrameShape(QtWidgets.QFrame.HLine) + self.line2.setObjectName("line2") + self.lblBestListings = QtWidgets.QLabel(self.frameBody) + self.lblBestListings.setGeometry(QtCore.QRect(340, 400, 81, 20)) + font = QtGui.QFont() + font.setBold(True) + font.setWeight(75) + self.lblBestListings.setFont(font) + self.lblBestListings.setObjectName("lblBestListings") + self.lblStatistics = QtWidgets.QLabel(self.frameBody) + self.lblStatistics.setGeometry(QtCore.QRect(340, 170, 71, 20)) + font = QtGui.QFont() + font.setBold(True) + font.setWeight(75) + self.lblStatistics.setFont(font) + self.lblStatistics.setObjectName("lblStatistics") + self.line4 = QtWidgets.QFrame(self.frameBody) + self.line4.setGeometry(QtCore.QRect(10, 420, 781, 16)) + self.line4.setFrameShadow(QtWidgets.QFrame.Plain) + self.line4.setLineWidth(2) + self.line4.setMidLineWidth(0) + self.line4.setFrameShape(QtWidgets.QFrame.HLine) + self.line4.setObjectName("line4") + self.lblGeneral = QtWidgets.QLabel(self.frameBody) + self.lblGeneral.setGeometry(QtCore.QRect(340, 20, 71, 20)) + font = QtGui.QFont() + font.setBold(True) + font.setWeight(75) + self.lblGeneral.setFont(font) + self.lblGeneral.setObjectName("lblGeneral") + self.frameDatabase = QtWidgets.QFrame(self.frameBody) + self.frameDatabase.setGeometry(QtCore.QRect(0, 300, 801, 91)) + self.frameDatabase.setFrameShape(QtWidgets.QFrame.StyledPanel) + self.frameDatabase.setFrameShadow(QtWidgets.QFrame.Raised) + self.frameDatabase.setObjectName("frameDatabase") + self.btnConnectDatabase = QtWidgets.QPushButton(self.frameDatabase) + self.btnConnectDatabase.setGeometry(QtCore.QRect(350, 30, 75, 23)) + self.btnConnectDatabase.setObjectName("btnConnectDatabase") + self.lblPurgeStale = QtWidgets.QLabel(self.frameDatabase) + self.lblPurgeStale.setGeometry(QtCore.QRect(480, 10, 141, 20)) + self.lblPurgeStale.setObjectName("lblPurgeStale") + self.sbPurgeStale = QtWidgets.QSpinBox(self.frameDatabase) + self.sbPurgeStale.setGeometry(QtCore.QRect(630, 10, 42, 22)) + self.sbPurgeStale.setFrame(True) + self.sbPurgeStale.setSuffix("") + self.sbPurgeStale.setMaximum(1024) + self.sbPurgeStale.setProperty("value", 1) + self.sbPurgeStale.setObjectName("sbPurgeStale") + self.lblStaleHours = QtWidgets.QLabel(self.frameDatabase) + self.lblStaleHours.setGeometry(QtCore.QRect(680, 10, 31, 20)) + self.lblStaleHours.setObjectName("lblStaleHours") + self.frameLocal = QtWidgets.QFrame(self.frameDatabase) + self.frameLocal.setGeometry(QtCore.QRect(10, 10, 331, 71)) + self.frameLocal.setFrameShape(QtWidgets.QFrame.Box) + self.frameLocal.setFrameShadow(QtWidgets.QFrame.Plain) + self.frameLocal.setObjectName("frameLocal") + self.cbUseLocalDatabase = QtWidgets.QCheckBox(self.frameLocal) + self.cbUseLocalDatabase.setGeometry(QtCore.QRect(10, 40, 141, 17)) + self.cbUseLocalDatabase.setChecked(True) + self.cbUseLocalDatabase.setObjectName("cbUseLocalDatabase") + self.frameOnline = QtWidgets.QFrame(self.frameLocal) + self.frameOnline.setEnabled(True) + self.frameOnline.setGeometry(QtCore.QRect(10, 10, 291, 21)) + self.frameOnline.setFrameShape(QtWidgets.QFrame.StyledPanel) + self.frameOnline.setFrameShadow(QtWidgets.QFrame.Raised) + self.frameOnline.setObjectName("frameOnline") + self.lblip = QtWidgets.QLabel(self.frameOnline) + self.lblip.setEnabled(True) + self.lblip.setGeometry(QtCore.QRect(0, 0, 46, 13)) + self.lblip.setObjectName("lblip") + self.lePort = QtWidgets.QLineEdit(self.frameOnline) + self.lePort.setEnabled(True) + self.lePort.setGeometry(QtCore.QRect(240, 0, 51, 20)) + self.lePort.setObjectName("lePort") + self.lblPort = QtWidgets.QLabel(self.frameOnline) + self.lblPort.setEnabled(True) + self.lblPort.setGeometry(QtCore.QRect(200, 0, 46, 13)) + self.lblPort.setObjectName("lblPort") + self.leIP = QtWidgets.QLineEdit(self.frameOnline) + self.leIP.setEnabled(True) + self.leIP.setGeometry(QtCore.QRect(20, 0, 171, 20)) + self.leIP.setObjectName("leIP") + self.leLocalDBName = QtWidgets.QLineEdit(self.frameLocal) + self.leLocalDBName.setGeometry(QtCore.QRect(160, 40, 101, 20)) + self.leLocalDBName.setObjectName("leLocalDBName") + self.frameLocal.raise_() + self.btnConnectDatabase.raise_() + self.lblPurgeStale.raise_() + self.sbPurgeStale.raise_() + self.lblStaleHours.raise_() + self.frameStatistics = QtWidgets.QFrame(self.frameBody) + self.frameStatistics.setEnabled(False) + self.frameStatistics.setGeometry(QtCore.QRect(0, 210, 801, 51)) + self.frameStatistics.setFrameShape(QtWidgets.QFrame.StyledPanel) + self.frameStatistics.setFrameShadow(QtWidgets.QFrame.Raised) + self.frameStatistics.setObjectName("frameStatistics") + self.lblBucket = QtWidgets.QLabel(self.frameStatistics) + self.lblBucket.setGeometry(QtCore.QRect(20, 10, 61, 20)) + self.lblBucket.setObjectName("lblBucket") + self.pbPages = QtWidgets.QProgressBar(self.frameStatistics) + self.pbPages.setGeometry(QtCore.QRect(570, 10, 118, 23)) + self.pbPages.setMaximum(20) + self.pbPages.setProperty("value", 0) + self.pbPages.setObjectName("pbPages") + self.lblCooldown = QtWidgets.QLabel(self.frameStatistics) + self.lblCooldown.setGeometry(QtCore.QRect(250, 10, 61, 20)) + self.lblCooldown.setObjectName("lblCooldown") + self.lblPages = QtWidgets.QLabel(self.frameStatistics) + self.lblPages.setGeometry(QtCore.QRect(480, 10, 81, 20)) + self.lblPages.setObjectName("lblPages") + self.lline2 = QtWidgets.QFrame(self.frameStatistics) + self.lline2.setGeometry(QtCore.QRect(450, 0, 16, 41)) + self.lline2.setFrameShadow(QtWidgets.QFrame.Plain) + self.lline2.setFrameShape(QtWidgets.QFrame.VLine) + self.lline2.setObjectName("lline2") + self.pbBucket = QtWidgets.QProgressBar(self.frameStatistics) + self.pbBucket.setGeometry(QtCore.QRect(100, 10, 118, 23)) + self.pbBucket.setMaximum(20) + self.pbBucket.setProperty("value", 0) + self.pbBucket.setObjectName("pbBucket") + self.pbCooldown = QtWidgets.QProgressBar(self.frameStatistics) + self.pbCooldown.setGeometry(QtCore.QRect(320, 10, 118, 23)) + self.pbCooldown.setMaximum(60) + self.pbCooldown.setProperty("value", 60) + self.pbCooldown.setInvertedAppearance(False) + self.pbCooldown.setObjectName("pbCooldown") + self.lline1 = QtWidgets.QFrame(self.frameStatistics) + self.lline1.setGeometry(QtCore.QRect(220, 0, 16, 41)) + self.lline1.setFrameShadow(QtWidgets.QFrame.Plain) + self.lline1.setFrameShape(QtWidgets.QFrame.VLine) + self.lline1.setObjectName("lline1") + self.line3 = QtWidgets.QFrame(self.frameBody) + self.line3.setGeometry(QtCore.QRect(10, 290, 781, 16)) + self.line3.setFrameShadow(QtWidgets.QFrame.Plain) + self.line3.setLineWidth(2) + self.line3.setMidLineWidth(0) + self.line3.setFrameShape(QtWidgets.QFrame.HLine) + self.line3.setObjectName("line3") + self.lblDatabase = QtWidgets.QLabel(self.frameBody) + self.lblDatabase.setGeometry(QtCore.QRect(340, 270, 71, 20)) + font = QtGui.QFont() + font.setBold(True) + font.setWeight(75) + self.lblDatabase.setFont(font) + self.lblDatabase.setObjectName("lblDatabase") + Main.setCentralWidget(self.centralwidget) + self.statusbar = QtWidgets.QStatusBar(Main) + self.statusbar.setStyleSheet("background-color: rgb(240, 240, 240);") + self.statusbar.setObjectName("statusbar") + Main.setStatusBar(self.statusbar) + + self.retranslateUi(Main) + self.btnExit.clicked.connect(Main.btnexit) + self.btnConnectDatabase.clicked.connect(Main.dbconnect) + self.cbUseLocalDatabase.toggled['bool'].connect(Main.local) + self.btnEvaluate.clicked.connect(Main.evaluate) + QtCore.QMetaObject.connectSlotsByName(Main) + + def retranslateUi(self, Main): + _translate = QtCore.QCoreApplication.translate + Main.setWindowTitle(_translate("Main", "Steam Trace")) + self.lblChromedriverStatus.setText(_translate("Main", "Chromedriver")) + self.lblDatabaseStatus.setText(_translate("Main", "Database")) + self.cbSameSticker.setText(_translate("Main", "Same Sticker Mutliplier")) + self.lblFloatPerc.setText(_translate("Main", "Float Percent:")) + self.lblFloatRank.setText(_translate("Main", "Float Rank \n" +"Correlation:")) + self.lblUrl.setText(_translate("Main", "Url:")) + self.lblListings.setText(_translate("Main", "Listings:")) + self.btnEvaluate.setText(_translate("Main", "Evaluate")) + self.lblStickerPerc.setText(_translate("Main", "Sticker Percent:")) + item = self.tableListings.horizontalHeaderItem(0) + item.setText(_translate("Main", "Nr.")) + item = self.tableListings.horizontalHeaderItem(1) + item.setText(_translate("Main", "Value")) + item = self.tableListings.horizontalHeaderItem(2) + item.setText(_translate("Main", "Profit")) + item = self.tableListings.horizontalHeaderItem(3) + item.setText(_translate("Main", "Stickers")) + item = self.tableListings.horizontalHeaderItem(4) + item.setText(_translate("Main", "LID")) + self.lblBestListings.setText(_translate("Main", "Best Listings")) + self.lblStatistics.setText(_translate("Main", "Statistics")) + self.lblGeneral.setText(_translate("Main", "General")) + self.btnConnectDatabase.setText(_translate("Main", "Connect")) + self.lblPurgeStale.setText(_translate("Main", "Purge Stale Pricedata After:")) + self.lblStaleHours.setText(_translate("Main", "Hours")) + self.cbUseLocalDatabase.setText(_translate("Main", "Use Local Tinydb instead")) + self.lblip.setText(_translate("Main", "IP:")) + self.lblPort.setText(_translate("Main", "Port:")) + self.leLocalDBName.setText(_translate("Main", "tiny.db")) + self.lblBucket.setText(_translate("Main", "Bucket Size:")) + self.pbPages.setFormat(_translate("Main", " %v / %m")) + self.lblCooldown.setText(_translate("Main", "Cooldown:")) + self.lblPages.setText(_translate("Main", "Pages Queried:")) + self.pbBucket.setFormat(_translate("Main", " %v / %m")) + self.pbCooldown.setFormat(_translate("Main", " %v sek")) + self.lblDatabase.setText(_translate("Main", "Database")) +import st_rc diff --git a/UX.ui b/UX.ui new file mode 100644 index 0000000..c9f86ff --- /dev/null +++ b/UX.ui @@ -0,0 +1,1077 @@ + + + Main + + + + 0 + 0 + 800 + 700 + + + + Steam Trace + + + + :/rsc/rsc/favicon_io/favicon.ico:/rsc/rsc/favicon_io/favicon.ico + + + + + + + + + 0 + 0 + 801 + 41 + + + + .QFrame { +background-color: rgb(240, 240, 240) +} + + + QFrame::StyledPanel + + + QFrame::Raised + + + + + 760 + 5 + 30 + 30 + + + + + + + + :/rsc/rsc/Very-Basic-Cancel-icon.png:/rsc/rsc/Very-Basic-Cancel-icon.png + + + + 30 + 30 + + + + true + + + + + + 280 + 10 + 71 + 16 + + + + Chromedriver + + + + + + 10 + 5 + 30 + 30 + + + + + + + :/rsc/rsc/favicon_io/android-chrome-192x192.png + + + true + + + + + + 160 + 10 + 51 + 16 + + + + Database + + + + + true + + + + 140 + 10 + 16 + 17 + + + + QRadioButton::indicator { + width: 10px; + height: 10px; + border-radius: 7px; +} +QRadioButton::indicator:checked { + background-color: green; + border: 2px solid black; +} + +QRadioButton::indicator:unchecked { + background-color: red; + border: 2px solid black; +} + + + + + + true + + + false + + + false + + + + + false + + + + 260 + 10 + 16 + 17 + + + + QRadioButton::indicator { + width: 10px; + height: 10px; + border-radius: 7px; +} +QRadioButton::indicator:checked { + background-color: green; + border: 2px solid black; +} + +QRadioButton::indicator:unchecked { + background-color: red; + border: 2px solid black; +} + + + + + + true + + + false + + + false + + + + + + 0 + 35 + 801 + 10 + + + + QFrame::Plain + + + 1 + + + 0 + + + Qt::Horizontal + + + + + + + 0 + 41 + 801 + 635 + + + + .QPushButton { +background-color:rgb(240, 240, 240); +border:1px solid black; +border-radius: 5px; + } + +.QFrame { +background-color:white; +} + + + QFrame::StyledPanel + + + QFrame::Raised + + + + false + + + + 0 + 50 + 801 + 101 + + + + QFrame::StyledPanel + + + QFrame::Raised + + + + + 80 + 40 + 61 + 22 + + + + + + + 390 + 40 + 62 + 22 + + + + 0.050000000000000 + + + + + + 480 + 70 + 131 + 17 + + + + Same Sticker Mutliplier + + + + + + 300 + 40 + 81 + 20 + + + + Float Percent: + + + + + + 160 + 40 + 61 + 31 + + + + Float Rank +Correlation: + + + + + + 10 + 10 + 61 + 20 + + + + Url: + + + + + + 10 + 40 + 61 + 20 + + + + Listings: + + + + + + 700 + 10 + 75 + 23 + + + + Evaluate + + + + + + 80 + 10 + 601 + 20 + + + + + + + 390 + 70 + 62 + 22 + + + + 0.050000000000000 + + + + + + 230 + 40 + 42 + 22 + + + + 100 + + + 99 + + + + + + 300 + 70 + 81 + 20 + + + + Sticker Percent: + + + + + + + 10 + 40 + 781 + 16 + + + + QFrame::Plain + + + 2 + + + 0 + + + Qt::Horizontal + + + + + false + + + + 0 + 430 + 801 + 211 + + + + QFrame::StyledPanel + + + QFrame::Raised + + + + + 10 + 10 + 781 + 191 + + + + background-color: rgb(255, 255, 255); + + + + Nr. + + + + + Value + + + + + Profit + + + + + Stickers + + + + + LID + + + + + + + + 10 + 190 + 781 + 16 + + + + QFrame::Plain + + + 2 + + + 0 + + + Qt::Horizontal + + + + + + 340 + 400 + 81 + 20 + + + + + 75 + true + + + + Best Listings + + + + + + 340 + 170 + 71 + 20 + + + + + 75 + true + + + + Statistics + + + + + + 10 + 420 + 781 + 16 + + + + QFrame::Plain + + + 2 + + + 0 + + + Qt::Horizontal + + + + + + 340 + 20 + 71 + 20 + + + + + 75 + true + + + + General + + + + + + 0 + 300 + 801 + 91 + + + + QFrame::StyledPanel + + + QFrame::Raised + + + + + 350 + 30 + 75 + 23 + + + + Connect + + + + + + 480 + 10 + 141 + 20 + + + + Purge Stale Pricedata After: + + + + + + 630 + 10 + 42 + 22 + + + + true + + + + + + 1024 + + + 1 + + + + + + 680 + 10 + 31 + 20 + + + + Hours + + + + + + 10 + 10 + 331 + 71 + + + + QFrame::Box + + + QFrame::Plain + + + + + 10 + 40 + 141 + 17 + + + + Use Local Tinydb instead + + + true + + + + + true + + + + 10 + 10 + 291 + 21 + + + + QFrame::StyledPanel + + + QFrame::Raised + + + + true + + + + 0 + 0 + 46 + 13 + + + + IP: + + + + + true + + + + 240 + 0 + 51 + 20 + + + + + + true + + + + 200 + 0 + 46 + 13 + + + + Port: + + + + + true + + + + 20 + 0 + 171 + 20 + + + + + + + + 160 + 40 + 101 + 20 + + + + tiny.db + + + + frameLocal + btnConnectDatabase + lblPurgeStale + sbPurgeStale + lblStaleHours + + + + false + + + + 0 + 210 + 801 + 51 + + + + QFrame::StyledPanel + + + QFrame::Raised + + + + + 20 + 10 + 61 + 20 + + + + Bucket Size: + + + + + + 570 + 10 + 118 + 23 + + + + 20 + + + 0 + + + %v / %m + + + + + + 250 + 10 + 61 + 20 + + + + Cooldown: + + + + + + 480 + 10 + 81 + 20 + + + + Pages Queried: + + + + + + 450 + 0 + 16 + 41 + + + + QFrame::Plain + + + Qt::Vertical + + + + + + 100 + 10 + 118 + 23 + + + + 20 + + + 0 + + + %v / %m + + + + + + 320 + 10 + 118 + 23 + + + + 60 + + + 60 + + + false + + + %v sek + + + + + + 220 + 0 + 16 + 41 + + + + QFrame::Plain + + + Qt::Vertical + + + + + + + 10 + 290 + 781 + 16 + + + + QFrame::Plain + + + 2 + + + 0 + + + Qt::Horizontal + + + + + + 340 + 270 + 71 + 20 + + + + + 75 + true + + + + Database + + + + + + + background-color: rgb(240, 240, 240); + + + + + + + + + btnExit + clicked() + Main + btnexit() + + + 776 + 21 + + + 634 + -7 + + + + + btnConnectDatabase + clicked() + Main + dbconnect() + + + 398 + 378 + + + 562 + -2 + + + + + cbUseLocalDatabase + toggled(bool) + Main + local() + + + 28 + 399 + + + 512 + -8 + + + + + btnEvaluate + clicked() + Main + evaluate() + + + 736 + 112 + + + 675 + -2 + + + + + + dbconnect() + evaluate() + local() + btnexit() + + diff --git a/rsc/Very-Basic-Cancel-icon.png b/rsc/Very-Basic-Cancel-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..a6abed070103ad6eb2511cfcd217c0fb2a8bd260 GIT binary patch literal 2013 zcmV<32O{{1P)j72s4rr~v%OcAj_7-nDE= zGxE;&o^tOcmtA@Ftuz`-@*QrIA7=jky>!KLb0=Ma1bo|;LtDP-$x@A_H0k*xNV$8V!{62+{&DA@c_M1G`i(VEh?^2`DK6IDcouJE;p- zhDRqt_I!eb05AIs-s?EO7RCn-nP&_+1+Z`ZGCVT&2Dt=aex7sUL#FpDod#X*Bl&%Y z90D-H=QrQF{4h8quqQ}5Q%EhqZ?GU@pSbwQvyh)eL3Zf zwdog6__d798?7gv5JFa72HHa4dlI_&B;-E)@(i)#MZFxQjpmhp(4F`D%N^JaryV3<94ssHd-1uY{ z0uYD%5|rNfb3}}EZ6G!Zz$fr2m$U%|Bj*6Ye;YN;%wZo$4 zakzoQqKO?BKaa!CkBcW7l0qK#z=)UxJurf3SSIFSkBo^ygTP0|5G`3N*1;Ycm8hQf z*tqRD?DVm5L^^Fb#={;QxrQS)JUEhQhy}*fut&!(rNPEW#}Wpiw?x&J_t$=DsQ^SvRBK$vV__04L;yy&4fF+H#wi!4edmM-Ks2O?jmu1? zeCG%ifY?x=7mvW3Xln%EP{0WDAbqvQ2@SfLTF`=;H3ATBC97fafEGCJS8e$a`XAQ{ zKrBI|2ZxmlRkjE~EFO@@W5WuntpX5}Kn{#3aZ| zl*T8q1Ry3s9-=iqi75av3DOd^@kwj}h)Ix!=#5WO2tc$giz*$D)8%l{NF~64O%b=_ z5of#HB&h`;%owsau(WX)Oz-krpY&+F90CyDJK$~PL#FpDod(@)-Qe7QD7ge678fkT zBhh$2MNR<*UiKGhL&7QS@*M&ebHqSG0AjttDIOWW^<$(27~pDSig2qr1J3Q)@K;yw zrb1eP0nQYTxSb%e>91G(@M|ps4Dhs4ek1l8A8?#!kN2?kg<_#i0K)iyQ=lXE(<3zf z^>8YjeVo69Mghif#^4}(T+J5P;2xPH`w+AXFu;SWD1n3ifRTZnN7witx4l$)N)cep zAOlM!U74O5U4s|V=wnJ0U<~7h3SF;IA)gR+Ump9Ps>byYN*7=X-gh{llj3kzLTJv) vWB)UGem*CA6yO@{HRj?7Hgd7w<~95e>EQM#tg=0}00000NkvXXu0mjf;mM#q literal 0 HcmV?d00001 diff --git a/rsc/favicon_io/android-chrome-192x192.png b/rsc/favicon_io/android-chrome-192x192.png new file mode 100644 index 0000000000000000000000000000000000000000..8c04bd5eaa2e45f07596f1e4e1a2ffe00c4c3655 GIT binary patch literal 7377 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 GHRZpayd+%! literal 0 HcmV?d00001 diff --git a/rsc/favicon_io/apple-touch-icon.png b/rsc/favicon_io/apple-touch-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..c6ec4e0076f2c72c4b8a4eb4fc5926efe446a339 GIT binary patch literal 6617 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 literal 0 HcmV?d00001 diff --git a/rsc/favicon_io/site.webmanifest b/rsc/favicon_io/site.webmanifest new file mode 100644 index 0000000..45dc8a2 --- /dev/null +++ b/rsc/favicon_io/site.webmanifest @@ -0,0 +1 @@ +{"name":"","short_name":"","icons":[{"src":"/android-chrome-192x192.png","sizes":"192x192","type":"image/png"},{"src":"/android-chrome-512x512.png","sizes":"512x512","type":"image/png"}],"theme_color":"#ffffff","background_color":"#ffffff","display":"standalone"} \ No newline at end of file diff --git a/st.qrc b/st.qrc new file mode 100644 index 0000000..8c364ba --- /dev/null +++ b/st.qrc @@ -0,0 +1,7 @@ + + + rsc/Very-Basic-Cancel-icon.png + rsc/favicon_io/android-chrome-192x192.png + rsc/favicon_io/favicon.ico + + diff --git a/st_rc.py b/st_rc.py new file mode 100644 index 0000000..c1ba5ea --- /dev/null +++ b/st_rc.py @@ -0,0 +1,793 @@ +# -*- coding: utf-8 -*- + +# Resource object code +# +# Created by: The Resource Compiler for PyQt5 (Qt v5.15.2) +# +# WARNING! All changes made in this file will be lost! + +from PyQt5 import QtCore + +qt_resource_data = b"\ +\x00\x00\x07\xdd\ +\x89\ +\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ +\x00\x00\x80\x00\x00\x00\x80\x08\x06\x00\x00\x00\xc3\x3e\x61\xcb\ +\x00\x00\x07\xa4\x49\x44\x41\x54\x78\xda\xed\x9d\x81\x95\xdc\x34\ +\x10\x86\xff\xab\x80\x50\x01\x9b\x0a\x80\x0a\x70\x2a\x48\xa8\x20\ +\xba\x0a\xa0\x03\xf6\x3a\x08\x15\x20\x2a\x20\xa9\x00\xa7\x02\x2e\ +\x15\xe0\x54\x40\xa8\x00\xfc\xc7\x76\x9e\x77\xcf\xde\xb5\x6c\x49\ +\x33\xf2\xce\xf7\x9e\x72\xef\x25\x97\x5d\x79\xf5\xad\x34\x1a\x4b\ +\xf2\x1d\x6e\x93\x1f\x66\xfe\xfe\xbd\x74\xc5\x72\x73\x27\x5d\x81\ +\x04\x7c\xdb\x96\x43\x5b\xbe\xeb\x7f\x8e\x4b\x08\xcd\x59\x79\xec\ +\x7f\x7e\x90\xbe\xc0\x98\x94\x2e\xc0\x57\x6d\xa9\xd0\x35\x76\xd5\ +\x97\x1c\xd4\x7d\x79\xec\x7f\xfe\x2b\xfd\x41\xac\xa5\x44\x01\xbe\ +\x69\xcb\xab\xbe\x54\xd2\x95\xe9\xa9\xdb\xf2\xb6\x2f\x1f\xa5\x2b\ +\x13\x42\x29\x02\x0c\x8d\xee\xd0\x7d\xdb\x35\xc3\x5e\xc1\xa3\x10\ +\x19\xb4\x0b\xf0\x12\x5d\xa3\xbf\x92\xae\xc8\x4a\x28\x81\x6f\xcb\ +\x3b\xe9\x8a\xcc\xa1\x55\x80\xd7\x6d\x39\x22\x3c\x70\xd3\x4a\xd3\ +\x5f\xcf\xef\xd2\x15\x39\x47\x9b\x00\x3f\xa1\xfb\xa0\x9e\x49\x57\ +\x24\x11\x9f\xfa\xeb\xfb\x55\xba\x22\x03\x5a\x04\xd8\xdb\x37\xfe\ +\x1a\x0d\x94\xf4\x08\xd2\x02\x30\x21\xf3\x06\xfa\x03\xbb\x54\x30\ +\x60\xfc\x19\x82\x09\x28\x29\x01\x38\x7f\x67\xc3\x3b\xa9\x0b\x57\ +\x86\x47\x27\x42\xf6\x7c\x82\x84\x00\x2f\xfb\x0b\xde\xeb\x38\xbf\ +\x16\xc6\x07\x0e\x99\x67\x0c\x39\x05\xb0\x6f\xfd\x32\x3c\x32\xf6\ +\x06\xb9\x04\x60\x7e\x9e\x73\xe2\x43\xa6\xf7\x2b\x9d\x06\x5d\xee\ +\x23\xf9\x7d\x87\x1c\x02\x30\xc2\xe7\x37\xdf\xba\xfc\x30\x38\x24\ +\xb0\x27\x48\x3a\x53\x48\x2d\xc0\x6f\xb0\x2e\x7f\x2b\xbe\x2d\xf7\ +\xa9\x5e\x3c\x95\x00\x36\xde\xc7\xc5\x23\x51\x5c\x90\x42\x00\x36\ +\x7e\x8d\xdb\x9d\xdb\xa7\x82\x39\x83\x0a\x91\x25\x88\x2d\x80\x35\ +\x7e\x5a\xa2\x4b\x10\x53\x00\x6b\xfc\x3c\x44\x95\x20\x96\x00\xd6\ +\xf8\x79\x89\x26\x41\x0c\x01\xac\xf1\x65\x88\x22\x41\x0c\x01\x6c\ +\xaa\x27\x87\xc7\xc6\x29\xe2\x56\x01\xac\xf1\xe5\xf1\xd8\x20\xc1\ +\x16\x01\x5e\xf7\x6f\x6e\xc8\xe3\xb0\x32\x63\xb8\x56\x00\xe6\xf6\ +\x6b\x58\x7a\x57\x0b\x4c\x1b\x57\x58\x71\xef\x60\x8d\x00\x0c\xfa\ +\x18\x80\x1c\xa4\xaf\xda\x38\xa1\x41\x17\x88\x07\x05\x85\x6b\x04\ +\xb0\x71\x5f\x2f\x1e\x81\xf1\x40\xa8\x00\x5c\xcc\xf1\x56\xfa\x2a\ +\x8d\x8b\xf0\x36\xf2\xe2\x45\x25\x21\x02\xb0\xeb\x6f\x60\xe3\xbe\ +\x76\x18\x0f\x1c\xb0\x70\x28\x08\x11\xc0\xba\xfe\x72\xf0\x58\x38\ +\x14\x2c\x15\x80\xab\x77\x6b\xe9\xab\x32\x82\xa8\xb0\x60\xb5\xf1\ +\x52\x01\xfe\x82\xa5\x7a\x4b\x83\x33\xb5\xef\xaf\xfd\xd2\x12\x01\ +\x2c\xe1\x53\x2e\x0e\x57\x12\x44\x4b\x04\xf8\x1b\xba\xe6\xfc\x35\ +\xba\xde\x48\x5b\x30\xca\xe0\x6b\xb8\x41\xa3\x85\xa6\x2d\xcf\x2f\ +\xfd\xc2\x35\x01\xb8\x57\xef\x8d\xf4\x55\xf4\x78\x9c\x2e\x8b\xd2\ +\x54\x37\xd6\x6b\xd8\xef\xa7\x6d\x39\xdc\xb1\x2d\x0f\x73\xff\x78\ +\x4d\x80\x7f\xa0\xe3\x9b\xe6\x31\x1d\xd5\x6a\x18\x9e\x1c\xa6\xbb\ +\x59\x2d\xb3\xa6\x8b\xd3\xc2\x4b\x02\x68\xf8\x70\x81\xeb\x53\x1a\ +\xc9\x7a\x3a\x5c\x1e\x63\xb5\x48\x30\x5b\xcf\x4b\x02\x68\x18\xfb\ +\x3d\x96\xcd\x67\x25\x24\x70\x58\x76\x07\x4e\x83\x04\x0d\x66\x62\ +\x81\x39\x01\x34\xa4\x7c\x3d\xc2\xf2\xda\x39\x25\x70\x08\xbb\xfd\ +\xaa\x41\x82\xc9\x14\xf1\x9c\x00\x7f\x40\xf6\x58\x16\x8f\x75\x8b\ +\x1c\x72\x48\xe0\xb0\xee\xde\xbb\xb4\x04\xfc\x42\xff\x78\xfe\x97\ +\x53\x02\xf0\x40\xa6\x46\xb0\xa2\x1e\xdb\x96\x39\xa5\x94\xc0\x61\ +\xdb\x56\x2d\x69\x09\x0e\x38\x3b\xb8\x6a\x4a\x00\xc9\xe9\x95\x47\ +\x9c\x6d\x50\x29\x24\x70\x88\xb3\x4f\x4f\x52\x82\xf1\x74\xf5\x33\ +\x53\x02\x48\xa6\x7d\x39\xe5\x8c\xb5\xe9\x21\xa6\x04\x0e\xf1\x36\ +\x69\x32\x4f\xf0\x29\xd2\x6b\x85\xf2\x24\x3d\x7c\x2e\x80\x64\xf7\ +\x5f\xb7\xe5\x45\xe4\xd7\x8c\x21\x81\x43\xfc\x1d\xba\x7f\x42\x2e\ +\x63\x78\xc0\x68\x18\x38\x17\x40\xb2\xfb\xe7\xb7\xe2\xeb\x04\xaf\ +\xbb\x45\x02\x87\x34\xdb\xb3\x25\x13\x6c\x27\xc3\xc0\xb9\x00\x92\ +\x66\x3e\xa9\x5c\x44\xd6\x48\xe0\x90\xa6\xf1\xa5\x53\xd8\x35\x46\ +\x3d\xed\x58\x00\xc9\xb1\x69\x8c\x43\x9a\x0f\x3e\x44\x02\x0d\x75\ +\x48\xc9\x97\x58\x6b\x2c\x80\x86\xe4\xcf\x80\x83\x5c\x03\x48\xbe\ +\x77\x2e\xbe\x24\x85\xc6\x02\xfc\x82\xee\xce\x91\x16\x1c\xf2\x37\ +\x84\xc4\x7b\x4a\x70\x44\x7f\x87\x70\x2c\x80\xf4\xf8\x3f\x85\x43\ +\xbe\x06\xc9\xf9\x5e\xd2\xd4\xe8\xe3\x80\xb1\x00\xff\x49\xd7\x6a\ +\x06\x87\xf4\x0d\x93\xe3\x3d\xb4\x71\xf7\xe5\x0f\x74\x5b\xbd\x1e\ +\xa5\x6b\x74\x01\x87\x74\x0d\x84\x84\xaf\xed\x13\x7d\x1e\x31\x60\ +\xb2\xef\xc3\x20\x80\xa6\x00\x70\x0e\x07\x05\x87\x2b\x2f\x44\x7b\ +\xe3\x93\xcf\x81\xe0\x20\x80\xb6\x00\x70\x0e\x07\xfd\x12\x94\xd0\ +\xf8\xe4\xd8\x96\x87\x41\x00\xe9\xbb\x54\x21\xb0\x9e\x5a\x25\x28\ +\xa5\xf1\xd1\xd7\xf3\x7e\x10\x40\xe3\x0c\xe0\x12\x0e\xfa\x24\x28\ +\xa9\xf1\x49\xdd\x96\x17\x83\x00\x1a\x96\x7f\x85\xe2\xa0\x47\x82\ +\xd2\x1a\x9f\x34\x6d\x79\x3e\x08\xa0\x75\x0a\x78\x0d\x07\x79\x09\ +\x4a\x6c\xfc\x81\xbb\xd2\x05\x20\x0e\x72\x12\x94\xdc\xf8\x64\x17\ +\x02\x10\x87\xfc\x12\x94\xde\xf8\xe4\x19\x05\xd8\xcb\xce\x5f\x87\ +\x7c\x12\xec\xa1\xf1\x49\xb5\x27\x01\x88\x43\x7a\x09\xf6\xd2\xf8\ +\x64\x77\x02\x10\x87\x74\x12\xec\xa9\xf1\x89\x09\x10\x88\x09\xa0\ +\x1c\x07\x1b\x02\x42\xd8\x95\x00\x0e\x16\x04\x86\x52\xd9\x34\x70\ +\x3d\x7b\x90\xe0\xd9\x1e\x04\x70\xb0\x44\xd0\x5a\x8a\x4f\x04\x39\ +\x58\x2a\x78\x0b\x77\x76\x33\x28\x0e\x25\x4a\xd0\x60\x74\x33\xc8\ +\x6e\x07\x6f\xa7\x34\x09\x6a\x8c\x6e\x07\xdb\x82\x90\x38\x94\x24\ +\x01\xeb\x79\x6f\x4b\xc2\xe2\x53\x8a\x04\x47\x8c\x96\x84\xd9\xa2\ +\xd0\xb8\x94\x20\xc1\xc9\xa2\x50\x5b\x16\x9e\xe6\xb5\x7d\xa2\xcf\ +\x23\x06\x27\xcb\xc2\x89\xd6\xa9\xa0\x83\x6d\x0c\x49\xc1\xc9\xc6\ +\x10\xa2\x71\x26\xe0\x60\x5b\xc3\x52\x50\x63\x62\x6b\x98\xb6\x40\ +\xd0\xc1\x36\x87\xa6\xe2\x88\x89\xcd\xa1\x9a\x02\x41\x07\xdb\x1e\ +\x9e\x92\xc9\xed\xe1\x76\x40\x84\xae\x3a\xa4\x64\xf2\x80\x08\x22\ +\x1d\x07\xd8\x11\x31\xe9\xa9\x31\x73\x44\x8c\x74\xe5\xec\x90\xa8\ +\x3c\x5c\x3c\x24\xca\x8e\x89\x7b\x8a\xc3\x0d\x1d\x13\x47\xec\xa0\ +\xc8\xa7\x38\xdc\xc8\x41\x91\xc4\x8e\x8a\x9d\xc6\xe1\x46\x8e\x8a\ +\xb5\xc3\xa2\xe7\x71\xb8\x81\xc3\xa2\x89\x1d\x17\x3f\x8f\xc3\xce\ +\x8f\x8b\x27\x1a\x92\x42\x1e\xf6\xc0\x88\x98\x04\x3d\x30\x82\x68\ +\x58\x26\xe6\x61\x8f\x8c\x89\x41\x83\xc0\x47\xc6\x10\x2d\x59\x2b\ +\xd6\xc1\x1e\x1a\x95\xa8\x9e\xf6\xd8\xb8\xed\x38\xec\xf4\xb1\x71\ +\x44\x3a\x6d\x39\xc6\xc3\x1e\x1c\xb9\x86\x23\x36\x3c\x38\x92\x68\ +\x88\x05\xc6\xd4\xb0\x47\xc7\x2e\xa5\xc1\xc6\x47\xc7\x12\x0d\xdd\ +\xac\xb1\x0e\x87\x08\x0f\x8f\x26\xf6\xf8\xf8\xf2\x88\xf6\xf8\x78\ +\xb2\x97\x1d\xc4\xb7\x44\xd5\x96\xf7\xd7\x7e\x69\xa9\x00\x44\x4b\ +\x54\x6b\x5c\xc7\x63\x61\x12\x2d\x44\x00\x46\xb7\x0d\xf4\x05\x5f\ +\xc6\x29\x17\xa7\x7d\xe7\x84\x08\x40\x34\xa4\x88\x8d\xcb\x4c\xa6\ +\x7c\xe7\x08\x15\x80\xd8\x50\xa0\x17\x8f\xc0\x9b\x68\x6b\x04\xe0\ +\x50\xc0\x08\xf3\x20\x7d\xb5\xc6\x09\x0d\xba\x99\x5a\xd0\x82\x9a\ +\x35\x02\x10\x6e\x25\xab\x61\xf1\x80\x16\x38\xee\x57\x6d\xf9\x10\ +\xfa\x1f\xd7\x0a\x40\x2c\x41\xa4\x07\x87\x95\x0b\x55\xb6\x08\x40\ +\x2c\x1e\x90\xc7\x63\xc3\x0a\xaa\xad\x02\x10\x93\x40\x0e\x8f\x8d\ +\x6b\x28\x63\x08\xc0\xa0\xb0\x86\xa5\x8a\x73\x33\xdc\x78\xda\xb4\ +\x8a\x3a\x86\x00\xc4\x24\xc8\x4b\x94\xc6\x27\xb1\x04\x20\x26\x41\ +\x1e\xa2\x35\x3e\x89\x29\x00\x31\x09\xd2\x12\xb5\xf1\x49\x6c\x01\ +\x88\x49\x90\x86\xe8\x8d\x4f\x52\x08\x40\xb4\x2d\x8b\x2a\x1d\x8f\ +\xd3\xe5\x70\xd1\x48\x25\xc0\x80\x4d\x11\xb7\xe3\x11\x67\xbb\xdc\ +\x24\xa9\x05\x20\xcc\x18\xb2\x37\xb0\xb4\x71\x18\x4c\xef\xf2\x5b\ +\x9f\xf4\x68\xbc\x1c\x02\x10\xde\x3b\xe0\x6d\xe4\x43\xa6\xf7\x2b\ +\x9d\x06\xdd\x6d\xdd\xe0\xdc\x7e\x28\xb9\x04\x20\x16\x17\x2c\xc3\ +\x23\xd1\x78\x3f\x45\x4e\x01\x06\x5e\xf6\x17\x69\x43\xc2\x29\xec\ +\xf2\x1d\x02\x16\x73\xc4\x40\x42\x00\x62\xbd\xc1\x29\x1e\x19\xbf\ +\xf5\x63\xa4\x04\x18\xe0\x6a\x63\x8a\x70\xab\x39\x03\xce\xed\xd9\ +\xf0\x57\x57\xef\xa6\x42\x5a\x80\x01\xce\x14\x8e\xb8\x9d\x20\xb1\ +\xe9\xaf\x57\xfc\xf0\x6b\x2d\x02\x0c\xf0\xb4\x52\x7e\x23\xf6\x1a\ +\x1f\x70\x9c\x67\x8f\xf7\xb0\xf5\x85\x62\xa1\x4d\x00\xc2\xf8\x80\ +\x53\xa0\x23\xf6\xd3\x23\x34\xfd\xf5\x70\x2a\x9c\x7d\x9c\xbf\x84\ +\x46\x01\xc6\x70\xc6\xe0\x20\x7b\x5c\xcd\x16\xd8\xe0\x1e\x99\x23\ +\xfb\x10\xb4\x0b\x30\xc0\x83\xab\x28\x81\x83\xfe\x80\x91\x81\x9d\ +\x47\xd7\xf8\x1f\xb7\xbd\x54\x7a\x4a\x11\x60\xcc\x20\x03\x4b\x25\ +\x5d\x99\x9e\x1a\x5d\x83\x17\xd1\xe8\x63\x4a\x14\x60\x0c\xe3\x85\ +\x0a\x5d\xaf\x50\x21\x9f\x10\x75\x5f\x1e\xfb\x9f\xaa\xc6\xf5\x10\ +\x4a\x17\x60\x0a\xde\x77\x38\xa0\x93\xe2\x70\x56\x42\x68\xce\xca\ +\x63\xff\x33\x79\x7e\x3e\x27\x7b\x14\xe0\x1a\xec\x35\xe6\xe2\x08\ +\x36\x72\xb1\xdf\xe6\x35\xfc\x0f\xe9\xe0\xf6\x28\xac\xb2\x3d\xb6\ +\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ +\x00\x00\x07\x69\ +\x00\ +\x00\x3c\x2e\x78\x9c\xed\x9a\x6b\x88\x55\x55\x14\xc7\xd7\xa8\x43\ +\x0e\x39\x3a\x6a\x2a\x5a\x36\x63\x3e\xb2\x30\x67\x2a\x94\x1e\x96\ +\x92\x54\x24\x6a\x44\x7d\x90\x40\x91\xd2\x30\xd2\x4a\x2d\xec\x1d\ +\xf4\x32\x18\x88\xe8\x61\x9a\x92\xa8\x04\x46\x90\x25\xa5\xf5\x21\ +\xf4\x4b\x06\x69\x54\x9a\xa9\x61\x6a\x3e\x6a\x9a\x71\x7c\xe5\xd8\ +\x8c\xe3\xb8\x5b\x7f\xf7\xda\xdc\x33\xfb\xee\x7d\xce\xb9\xf7\x9c\ +\x3b\x57\xc1\x05\x3f\x66\xee\x3d\x7b\xef\xf5\xbf\xe7\xec\xc7\xda\ +\xeb\x6c\xa2\x12\xea\x4c\x15\x15\xc4\x7f\xab\x68\x56\x17\xa2\xd1\ +\x44\x54\x55\xa5\x3f\x0f\xef\x49\xf4\x11\x7f\x57\x53\x23\xd7\x87\ +\x11\x6d\xea\x43\x34\x9c\xcb\x54\xa0\x1c\xe9\xef\x73\xb0\x6a\x66\ +\x11\xb3\x8b\x69\x16\x76\xc9\x77\xd5\x21\xf5\xca\x98\x25\x4c\x1b\ +\xa3\x3c\xb4\x49\x99\xae\x56\x5d\x7c\xde\x18\x52\xcf\x66\xa3\xd5\ +\xc6\x92\x1c\xea\x1a\x96\x48\xdd\x9a\x8c\xe6\xfb\x99\x35\xcc\x46\ +\xe6\x15\xa6\x54\xca\xde\xcb\xac\x62\x66\xda\xbf\xa5\x46\xee\x0b\ +\x7f\x2e\x61\x4e\x4a\xdd\xdd\x8c\x62\xe6\x4b\xd9\x17\xe4\xf3\x72\ +\x5b\x03\xea\xee\xcc\x7c\x1e\x21\x7f\x9f\x93\xf2\x9f\x46\xd5\x47\ +\xdd\x96\xcc\xe7\x2b\x99\x6f\x98\xb3\x52\xbe\x36\xaa\x7e\x4b\xfb\ +\xfa\x3f\x49\xb9\x36\xe6\x13\xa6\x3c\x4e\x7d\xd1\x5f\x1e\xa8\x7b\ +\x2b\xd3\x29\x70\xff\x42\xf5\x07\xee\xdf\x7e\xd1\xfe\x25\xf3\x0b\ +\x33\x9e\x69\x60\x5a\xa5\xfe\x19\xa6\x99\xe9\x13\xbc\x7f\xd5\x99\ +\xe7\x37\x92\xf9\x58\x9e\xc1\x3b\x4c\x6f\xf9\xfc\x99\x45\x0f\xf3\ +\xfc\x4c\x7f\x4e\xd2\x7f\xd2\xe8\xbf\xb0\x5c\xc6\x4f\x19\xf9\xcd\ +\x8c\x5f\xd3\x37\xcc\x33\x8a\x1a\xbf\x79\x19\xe6\x99\x2a\x66\x1c\ +\xe5\x3c\xcf\xf8\xac\x9c\x99\xc2\x7c\xc8\x6c\x61\x1a\x98\xd3\x42\ +\x83\x7c\xb7\x54\xca\x94\xa7\xe1\x50\x6c\x88\xb4\xdb\x44\xf1\x9f\ +\x63\x93\xd4\x19\x92\xc0\x2f\x9e\x65\x2d\xb5\x1b\x87\x39\xd3\x22\ +\x6d\x84\xf5\x0b\x97\x41\xf7\xd6\x04\x7e\x6d\xd0\xd6\xe0\x98\xbe\ +\x31\x77\xd6\xa7\xe8\xdb\x50\x2f\x6d\x87\xd9\xe0\x02\xf9\x0e\x6a\ +\xf0\xdd\x07\x3c\xa3\x34\xef\x79\xd8\xb3\x70\xf5\x87\xda\x0e\xf0\ +\x6d\xa8\xb5\x7c\xa3\xbf\x39\xfa\xf9\x25\xcc\x3d\xcc\x02\xe6\x4d\ +\xe6\x79\xa5\xe7\xfe\x12\x4f\xbb\x77\x32\x77\x07\xe8\xe9\xf3\xdf\ +\x42\xed\xc7\xe6\xb2\xec\x32\x53\x99\x3a\x46\x39\xd8\xc4\x5c\xe6\ +\x68\xb7\xd9\x2a\x37\x36\xec\x1e\x2c\x13\xdf\xdd\x29\x6b\x6e\xc1\ +\xfa\xd8\xe6\xf1\x6d\x58\x9b\xd4\x7f\x93\xf8\x9e\xe2\xbe\xfe\x0f\ +\x73\x84\x79\x97\x79\x82\x79\x9d\x39\x16\x68\x1b\xeb\x71\x65\x12\ +\xff\x8a\x32\xf3\xb9\xe3\xda\x62\xa6\x9f\xf5\xdd\x6a\xab\xfd\xfb\ +\x92\xfa\x87\xef\xcd\xee\x6b\x9d\xac\xcf\x13\x95\x8e\xe3\x82\xed\ +\x4f\x4f\xea\xff\x07\xd2\x6b\x57\x48\x99\x1b\x99\xf5\x2a\x13\xbb\ +\x05\xb9\x2b\xa9\x7f\xf8\x6e\xf5\x5f\x47\xbc\x79\xc6\xe1\x17\xfc\ +\xa9\xf4\xf8\x4c\xe4\xbf\xd5\xef\xff\x61\x8f\x5f\x70\x98\x19\xed\ +\xa8\x93\x97\x7f\xcf\xfd\xdf\xed\xf0\x7b\x9a\x59\xc1\x5c\xee\x69\ +\x2f\xaf\xfb\xef\xe8\x7f\xfd\x1c\xbe\x37\x30\xc3\x23\xda\xcb\xd9\ +\xff\x66\x72\x8e\xbf\x4a\xab\x9d\x16\xa6\x6b\xe0\x7a\x99\x4a\x61\ +\xfe\x53\xe2\xdb\x31\xff\x74\x51\xed\xc7\x1a\xfa\xfe\x6b\xcc\x64\ +\xe6\x49\x66\x07\xf3\x88\x94\xdd\xc9\x1c\x17\xec\x31\x72\x32\x70\ +\xed\x5a\x97\x7f\xf8\x76\xcc\xbf\x60\x91\xe3\x19\x04\x59\x2d\xe5\ +\x0e\x45\x94\x33\x8c\xb0\x7d\x9b\xf9\x17\xb6\x34\xdb\xff\xa5\x4a\ +\xef\x39\x5d\xe3\x1e\xfd\x7f\x62\x52\xff\x4b\x29\x63\x9e\xf5\x17\ +\x5c\xc7\x3c\xc6\xbc\xca\xbc\xac\xf4\x5e\xb8\x5b\xe0\xfa\x03\x4a\ +\xaf\x95\x51\x54\x04\xdb\xb5\xd7\x5f\x58\x31\xe3\x0f\x58\xb1\xe3\ +\x2f\x58\x31\xe3\x4f\x63\xc5\x8c\xbf\x8d\xa1\x6f\x6c\x4b\xd1\xf7\ +\x36\xca\x7d\x2f\x56\xcc\xfd\x57\xd0\x8a\xb5\xff\xb4\xcd\xc4\x8a\ +\x26\x66\x32\xb1\x83\x59\x43\xcd\x5a\x62\xe6\xd4\x8b\x16\xc3\x90\ +\x27\xc1\xa0\x98\x4e\xa9\xe5\x49\x5c\x56\xc2\xf4\x62\x86\x32\x13\ +\x98\x85\xcc\x3a\x66\x07\xd3\x48\x99\x3c\x0a\xfe\x47\x4e\xe8\x6b\ +\x29\x33\x99\x19\x26\x75\x4b\x0a\x25\x2e\xc4\x3a\x93\xce\x4d\xcd\ +\x65\x3e\x67\x0e\x30\x67\x29\xfe\x38\x40\xd9\x43\x52\xf7\x29\xe6\ +\x06\x69\xb3\x23\x6c\x00\xb3\x92\xa9\x23\x7d\x6f\x93\xce\x61\x68\ +\xa3\x5e\xda\xac\x2c\xa0\xee\xbe\xcc\x3c\xe6\x58\x0a\x9a\x7d\x1c\ +\x67\x9e\x11\x5f\x69\xf6\xab\x9b\x49\xf7\xeb\x24\x73\x76\x5c\x5a\ +\xc5\xd7\xd8\x94\xb4\xcf\x64\x0e\x53\x6e\xfd\x3b\x29\xf0\x85\x31\ +\x3f\x3b\x81\xee\x52\xd2\xe3\xf3\x44\x07\xea\xb6\x39\x25\x1a\xec\ +\xdc\x79\x1c\x7b\x94\xf4\x7d\x2f\x96\x76\xc3\x61\xf9\x0d\xb9\xd8\ +\x0c\xca\x2d\x2e\xe8\x88\xe7\x10\xb7\x2f\x61\xdc\x1c\x3c\x0f\x34\ +\xdb\x34\x8a\xb6\xb0\x79\xa9\x07\xb3\x9e\xc2\xdf\xc9\x14\x8b\xb3\ +\xa2\xad\x6f\x88\xfe\x39\x14\x9a\xf7\x29\x3a\xd0\xb6\xc0\xa3\x7d\ +\x20\x45\xae\x4d\xc8\x1f\x20\x87\x32\x94\xa9\x66\x6e\x63\x6e\x51\ +\x7a\x2f\x8b\xdc\x46\x59\x0c\x0d\xd8\xe3\x0e\x70\x80\xbc\x87\x9d\ +\x1b\x74\x82\x35\xae\xd2\xd2\x8e\xd8\x63\xb1\xbf\x0e\xda\xbd\x5e\ +\xe9\x77\xcc\xdf\x32\x07\x95\xce\x39\x99\x1c\x48\x13\xb3\x95\x79\ +\x5b\x7e\x57\x98\xff\x69\xcc\x77\xcc\xf7\x16\xef\x33\xbd\xe2\x3e\ +\x87\x55\xd4\x3e\x5e\x42\xfc\xb4\xcf\x5f\x1e\x39\xbb\xbf\x94\x3f\ +\x67\x68\xc0\xf5\xbf\x99\xdb\x43\x7c\x3f\xeb\x69\x67\x83\xca\xce\ +\x0b\x7b\xa9\x17\xcd\x30\x8c\xe7\xa7\xc9\x1b\x1b\xe0\x79\x47\xe5\ +\xdc\x6d\xf6\xaa\xec\x1c\x78\xaa\xfa\x5b\x45\x33\xb4\x77\x23\x1d\ +\xc7\x86\x94\xb7\xf3\xf3\xa7\x98\x46\x95\x9d\x97\x0b\xe6\xf5\xe6\ +\x2a\x77\x7f\x4e\x45\xbf\x12\xcd\xd8\x3f\xf4\x27\x1d\x8b\x87\x94\ +\xfd\x59\x7c\xe0\xef\x83\xcc\x20\xa5\x73\xad\x57\x31\x0b\x95\xee\ +\xff\x41\x2d\xf8\x8d\x38\x0b\x51\xe1\x68\x2b\x35\xfd\xd0\x8c\x3d\ +\xd0\x58\x8a\x8c\xcd\xa0\xe5\x2d\xa6\xbb\xe3\xda\x30\xe6\x0f\x87\ +\x9e\x2d\xcc\x15\x85\xd4\x0f\xcd\x93\x98\x17\xa3\xcb\xde\xe1\xd1\ +\x8e\xf7\x6d\x38\xeb\xd2\xe0\xd0\xb3\x5b\x9e\x4f\xc1\xf4\x83\x37\ +\x98\x2f\x72\xac\x13\x60\x02\xb3\x47\xb9\xc7\x37\xc6\xf0\x90\x42\ +\xeb\xc7\x3e\x61\x7b\x6e\x75\xb0\x46\xe1\xbc\x0c\xfa\x94\x2b\x07\ +\x6c\xf8\x91\x19\x58\x68\xfd\xc8\x09\x34\xc6\x2f\x7f\x35\xf3\x9e\ +\xd2\xef\x10\xc3\xb4\xe3\x1a\xde\xa7\x94\x3b\xda\x48\x55\xff\x51\ +\x8a\xbd\x07\x1f\xc3\x6c\x57\xf1\xd6\x82\x13\x4a\x8f\x0b\x57\x3b\ +\xa9\xea\x6f\x8d\xa7\xbf\xaf\xd2\x6b\x7e\x9c\xb5\xeb\x5f\xa5\xe7\ +\xaa\xce\x1d\xa1\xdf\xe4\x96\x22\xca\xcd\x8e\x71\xdf\xd1\x67\x7e\ +\x93\xb2\xa5\x21\x6d\xa5\xde\x7f\x7e\x8d\x2e\xb7\x37\x42\x3b\xfa\ +\x0b\xd6\x31\x9c\xc7\x8b\x8a\x21\x53\xd5\x8f\x3c\xdf\x9a\xf0\x32\ +\x95\x11\xba\x71\xce\x71\x50\x0e\x3e\x53\xd5\xff\x15\x45\xae\x5f\ +\xa3\x3c\xda\xd1\x9f\x1e\x57\xfa\x7d\x5a\x2e\x3e\x53\x5f\xbf\xc6\ +\x50\x68\xfc\x30\xd2\xa3\xff\xa8\x72\x8f\x51\xc4\x45\x05\x8f\x9f\ +\x95\x68\x46\xce\x18\xf1\xdb\x01\x7f\x39\xc4\xcf\xff\x39\xfc\x61\ +\xbc\xce\x50\xba\xef\x60\x9d\x42\x1c\xf4\x90\xd2\xeb\xf1\x8a\x40\ +\x7d\xe8\xaa\x0b\x70\x42\xb9\xd7\x0e\xc4\xac\xf5\x56\x59\xfb\x1c\ +\x44\x3b\xa0\x19\x79\xef\x18\xf1\xf3\x1a\xcf\x33\xc0\x39\xd3\x5d\ +\x4a\xaf\xb5\xfb\x03\xf7\xf5\x77\x95\x79\x17\xba\xd5\x53\x37\x0e\ +\x93\xc2\xf4\x9b\xf8\x19\x86\xfc\x50\xb3\xbf\x6c\x8d\xf4\x97\xb8\ +\x7e\xf1\x1e\x79\x54\x21\xf5\x9f\x16\xcd\x26\x97\x82\x5c\xfe\x1e\ +\xbf\x7e\xec\xdb\xe7\xcb\x33\x0d\x8b\x1b\xcc\xfa\x85\x33\xbb\x66\ +\x2f\x5b\x10\xfd\x75\xd4\xfe\x6c\x2c\xf6\xc2\x1f\x84\xf7\x21\x9c\ +\x89\xc1\xbb\xf9\x65\xa2\x29\x78\x2e\x01\x7b\xf9\xbd\xa2\x1b\x67\ +\xc6\x83\x73\xd2\x3a\xa5\xf7\x07\xf9\x30\xde\xa7\x67\x25\x65\xbf\ +\xef\xe8\xc7\x1c\x89\x1e\xf7\xf8\x1d\xc8\x75\x60\x6f\x82\x3c\xca\ +\x35\x4c\x95\xd2\x73\x07\x74\xdb\x67\xf0\x7a\xcb\xb5\x7c\xb0\xcf\ +\x11\x9d\x03\x39\x9e\xfe\xe4\xb6\x59\xd4\x31\x39\xfe\x7c\x81\xb6\ +\x79\x1e\xed\x30\xe4\x0f\xb1\x27\x38\x5f\xf3\x87\xd0\x16\x96\x3f\ +\x84\xe1\x5d\x4b\xc8\x7a\x50\x34\x90\x47\xbf\x29\x42\xbb\xb1\xa9\ +\xa4\xf3\x74\xc5\xd6\x6c\xc0\x3b\x94\x19\x31\xb5\x1b\xbb\x90\xdf\ +\x5f\xc0\xba\xc8\x6f\x28\xe6\x73\x68\x12\x0d\xa5\x79\xe8\x37\x36\ +\x8d\xf4\x78\xe8\xc8\x31\x0d\x5f\xc8\x4f\xcd\x4c\xa0\x3b\x68\x17\ +\xf2\xfb\x53\x63\x98\x5b\xb1\x3e\xc4\x58\xe3\xf2\x06\x6b\xd3\x1c\ +\xf1\x55\x28\xc3\x3a\x8d\x58\x03\xf1\x52\x48\xcc\x17\x1b\x3c\xd3\ +\x7d\xd2\xe6\xc0\x02\xea\x0e\xda\x85\x7c\x7e\xc3\x36\xec\x1f\x10\ +\x8f\x60\x1f\xf7\x12\xe9\xfd\x34\x72\x02\xe8\x67\xe6\x1c\x14\xfe\ +\x47\x9e\x6f\xad\x94\x19\x27\x75\x50\xb7\x18\xe7\x67\x2e\xda\x45\ +\x3b\x67\xff\x03\x81\x03\x59\xe1\ +\x00\x00\x1c\xd1\ +\x89\ +\x50\x4e\x47\x0d\x0a\x1a\x0a\x00\x00\x00\x0d\x49\x48\x44\x52\x00\ +\x00\x00\xc0\x00\x00\x00\xc0\x08\x06\x00\x00\x00\x52\xdc\x6c\x07\ +\x00\x00\x1c\x98\x49\x44\x41\x54\x78\x5e\xed\x9d\x09\xd4\x76\x55\ +\x55\xc7\xff\x66\x6a\x5a\x0c\x2a\x45\x5a\x80\x05\x98\x21\xa6\x06\ +\xc8\xa4\x12\x0e\x90\xe2\xb8\xc4\x40\x32\x4d\xc5\x21\x8c\xca\x01\ +\x1c\x50\xd4\x4c\xa1\xc2\x21\x1c\xc3\x34\xcd\x14\x48\x4b\x11\x41\ +\x12\x01\xd3\xc2\xb4\xc4\x59\xc1\x09\x45\x43\x4c\x45\xb0\xc0\x44\ +\x1b\xd6\xef\xfd\xf6\x7d\x7b\xbe\xf7\x7d\x86\x73\xee\x73\xa6\x7b\ +\x9f\xbd\xd7\x7a\xd6\xb7\xd6\xf7\xde\x7b\xcf\x39\xfb\x9c\x7d\xce\ +\x3e\x7b\xf8\xef\x1b\xc9\x69\x19\x0e\xdc\x58\xd2\x4d\x25\xdd\xcc\ +\xfe\xbd\x89\xa4\x9f\x92\xb4\x9b\xa4\x5d\x25\xdd\x56\xd2\xcf\x4a\ +\xda\xd1\xfe\xbd\xb5\xa4\x9f\x90\xc4\x73\xdd\x7b\xb4\xff\x03\x49\ +\x3f\x94\x74\x83\xa4\xff\x92\x74\xb5\xa4\xab\xec\xf7\x4d\x49\x57\ +\x4a\xfa\xa2\xa4\x2f\x49\xfa\x0f\x7b\x96\xe7\x79\x8f\xdf\x7f\x2f\ +\x33\x88\x55\x7e\xf7\x46\xab\x3c\xf8\x1e\x63\x67\xd1\x76\x8b\x7b\ +\x67\x49\xbb\x48\xda\x49\xd2\xcf\x4b\xfa\x19\x49\x3f\x2d\x69\x3b\ +\x49\x3f\xd6\xe3\xdb\x21\xaf\xfc\x8f\xa4\x6b\x25\x7d\xcb\x7e\x5f\ +\x97\x74\xc5\xc4\xaf\x13\x12\x84\xc2\x29\x80\x03\x2e\x00\x8b\x99\ +\xc4\xa2\xbe\x8f\xa4\x7b\x48\xda\x47\x12\xbb\xf8\xb6\x92\x7e\xd2\ +\x76\xfe\xda\x3c\xfc\x5f\x3b\x05\xae\x93\xf4\x3d\x3b\x3d\x3e\x2a\ +\xe9\xfd\x92\x2e\x94\xc4\x09\xe2\x34\x83\x03\xb5\x27\xaf\xb5\x89\ +\x41\x95\x41\x85\xd9\x41\xd2\x61\x92\x1e\x2a\x69\x7f\x49\xa8\x3a\ +\x43\x24\x54\xa3\x8f\x48\x7a\xbb\xa4\xf3\x24\xfd\xbb\xa9\x50\x7e\ +\x42\xd8\x6c\xba\x00\x6c\xd1\xc7\x77\x97\xb4\xaf\xa4\x03\x24\xed\ +\x25\x69\x0f\xdb\xdd\x87\xb8\xe8\x67\xf5\x99\x45\x7f\x99\x09\xc4\ +\x3f\xdb\xbf\x97\xda\x7d\x62\x4c\xe3\x8c\x1a\xcb\x2a\x0b\x00\xbb\ +\x3d\x3b\xfc\x23\x6d\xc1\xa3\xea\xa0\xd6\x8c\x9d\x27\xa8\x4c\xd7\ +\xdb\x1d\xe2\xd3\x92\xce\x94\xf4\x36\x53\xa3\xa2\x16\xcf\x18\x1e\ +\x1e\xfb\x64\x4f\xce\x11\x63\xbd\x85\x5d\x56\x8f\x92\x74\x8c\x59\ +\x69\xc6\x30\x8f\xcb\x8e\x01\xd5\xe8\x54\x13\x06\xac\x4f\xdc\x27\ +\x10\x94\xd1\xd3\xaa\x08\xc0\x6d\x24\x3d\x40\xd2\xa1\x92\x0e\x32\ +\x1d\x7f\xf4\x93\xdb\x63\x80\x98\x5f\x3f\x28\xe9\x1c\x49\xef\x91\ +\x84\x95\x69\xd4\x34\x76\x01\x60\xe1\x3f\x5e\xd2\x23\xcc\x54\xb9\ +\x0a\x2a\xce\xb2\x0b\x96\x9d\x9f\x13\xe0\xdf\x4c\x35\x7a\xb5\xa4\ +\x6f\x2c\xfb\xd1\x56\xdf\x1f\xa3\x00\xfc\xb8\xa4\x5b\x99\x6e\x7f\ +\xbc\x39\xa1\x5a\xe5\xff\x10\xfa\x85\x19\xf5\xe5\x92\xfe\x52\xd2\ +\x77\x24\xfd\x68\x08\x9d\x0e\xed\xe3\xd8\x04\xe0\x4e\x92\x8e\x94\ +\x74\xb8\xa4\xdb\x87\x32\xc1\x9f\x0b\xe2\xc0\x97\x25\x9d\x61\x26\ +\xd5\x8f\x05\xbd\x31\x80\x87\xc6\x22\x00\x78\x61\x8f\x93\xf4\x70\ +\xbb\xd8\x62\xda\x74\x4a\xcf\x01\xc2\x2f\x50\x87\xce\x92\xf4\x47\ +\xe6\x57\x48\xdf\x4a\xc1\x2f\x0e\x5d\x00\xb6\x31\xdb\x3d\x47\xf4\ +\x2f\xad\x80\x09\xb3\xe0\xd2\x98\xdb\x14\xf7\x04\x7c\x0a\xcf\x94\ +\x74\x91\x79\xa0\x5b\xe9\x5b\x54\x3f\x86\x2a\x00\xec\xf0\x0f\x94\ +\xf4\x18\x49\xbf\x2e\x09\xbd\xdf\xa9\x3c\x07\xb8\x0f\x5c\x20\xe9\ +\x34\x49\xe7\x5a\x20\x5f\xf9\x5e\x2c\xd1\xe2\x10\x05\x00\x87\xd5\ +\x49\xe6\xc4\xba\xa5\xef\xfa\x4b\xcc\x7e\x9a\x57\x39\x0d\x30\x9f\ +\x62\x3a\x45\x0d\xc5\xa7\x30\x18\x1a\x92\x00\x10\x46\xcc\x6e\x8f\ +\xba\x43\x14\xa6\x53\x7b\x1c\xe0\x7e\x80\x83\xf1\xbd\xe6\x6d\x6e\ +\xaf\x87\x1b\x7a\x34\x14\x01\xb8\xb3\xa4\xdf\x37\xeb\x0e\x7a\xbf\ +\x53\xbb\x1c\x20\x5f\x81\x4b\xf2\xcb\x24\x5d\xd2\x6e\x37\xb7\xf4\ +\xac\x75\x01\x20\xae\xfe\x08\x49\x27\x9a\x59\x33\x57\x9c\x7d\xeb\ +\xf3\x34\xb4\xfe\x91\xb7\x80\xd9\x94\x79\x23\xce\xa8\x59\xdf\x41\ +\xcb\x02\xb0\xbd\xa4\x63\x25\x3d\xdb\xb2\xa8\x86\xb6\x08\xbc\xbf\ +\x5b\xb2\xdb\x5e\x2a\xe9\x14\x49\xdf\x6d\x91\x21\x2d\x0a\x00\xbb\ +\xfc\xdd\x6d\xf7\xb8\x77\x8b\x4c\xf3\x3e\x45\x73\x80\xf8\xa2\x13\ +\x24\x5d\xdc\x5a\xfa\x66\x8b\x02\x40\xd0\x1a\x91\x89\x5c\x74\x5d\ +\xe5\x89\x5e\x6b\x4d\xbe\x80\x4a\xf4\x15\x49\xcf\x30\x4f\x72\x33\ +\x9d\x6c\x49\x00\x08\x54\x7b\xb2\xa4\x17\x0f\x38\x03\xab\x99\x89\ +\x6d\xb4\x23\x64\xa8\xbd\xc0\xd4\x22\x02\xee\xaa\x53\x2b\x02\x40\ +\x28\xc3\xc9\x16\xb5\x89\xb9\xd3\x69\xbc\x1c\x00\xf9\xe2\x2d\xa6\ +\xe2\x56\x0f\xb7\x6e\x41\x00\x7e\x4e\xd2\x5f\x5b\x48\x03\xa8\x0b\ +\x4e\xe3\xe7\x00\x42\x40\xae\x32\x61\xea\x55\x85\xa0\xa6\x00\xd0\ +\xf6\x5d\x24\xfd\x95\xa4\x3d\xc7\x3f\xe7\x3e\xc2\x29\x1c\x00\xe7\ +\x88\xc8\xdd\x4f\x4a\xe2\x9e\x50\x9c\x6a\x0a\xc0\x3d\x25\xbd\xd2\ +\x16\x7f\xcd\x7e\x14\x67\xba\x37\xb8\xce\x01\xc2\x28\xc8\x4b\x7e\ +\xba\x79\x8f\x8b\xb3\xa6\xd6\xc2\x3b\x44\xd2\xeb\x25\xa1\xfe\xd4\ +\xea\x43\x71\x66\x7b\x83\x53\x39\x80\x10\x10\x42\xf1\x04\x8b\x27\ +\x2a\xca\xa6\xd2\x8b\x8f\xf6\xee\x2f\xe9\x2f\x0c\x2a\xb0\xe8\x60\ +\xbd\xb1\xa6\x39\x70\x8d\x65\xf1\x91\x8b\x5c\x4c\x1d\x2a\x2d\x00\ +\x80\x4d\xa1\xf6\xdc\xae\xe9\xa9\xf0\xce\xd5\xe2\xc0\xe5\x16\x51\ +\xfa\xb7\xa5\x3a\x50\x52\x00\xee\x6b\x17\x5e\xc0\x62\x9d\x9c\x03\ +\xb3\x38\x40\x38\xf5\x63\x4b\xa9\x43\x25\x04\x80\x36\xc0\xd5\xc4\ +\xf6\x0b\x88\xac\x93\x73\x60\x11\x07\xbe\x2d\xe9\x61\x06\xd1\x92\ +\x15\x9f\xa8\x84\x00\x4c\x9a\x3a\x4b\xb4\xb7\x88\xb9\xfe\xf7\xf6\ +\x39\xc0\xa2\xff\x94\xa4\x27\x4a\x02\xc6\x31\x1b\xe5\x5e\x90\x58\ +\x79\xb8\xd4\x60\xe7\xcf\xdd\x56\x36\x26\xf9\x87\xab\x70\x00\x21\ +\xf8\x9c\x24\x2c\x86\x60\x14\x65\xa1\x9c\x8b\x92\xf0\x06\x60\x34\ +\x0e\xce\xd2\x73\xff\xe8\xaa\x70\x00\x8f\x31\xf9\xdf\x59\x52\x2d\ +\x73\x09\x00\x81\x6d\xaf\x90\xf4\x9b\x56\x09\x65\x55\x26\xcb\xc7\ +\x99\x9e\x03\x24\xd3\x10\x2d\x80\xb3\x2c\x79\x4e\x41\x2e\x01\xa0\ +\xb3\x2f\xf4\x44\x96\xf4\xab\x61\x45\xbf\xf8\x7d\x03\x42\x60\x4d\ +\x25\xa5\xd4\x02\xc0\xf7\x48\x5c\x3f\xdb\x43\x9a\x93\xce\x93\x7f\ +\x6c\x4b\x1d\x34\x2c\x43\xef\x4a\x89\x5c\x9d\x5a\x00\x0e\x94\xf4\ +\x26\x2b\x10\xe7\x93\xe6\x1c\x48\xcd\x01\x2e\xc3\xe4\x88\xff\x53\ +\xaa\x0f\xa7\x14\x00\x8a\xc3\xfd\x8d\xd5\xd3\xf2\x4c\xae\x54\x33\ +\xe4\xdf\x99\xe4\x00\x21\x12\xe7\x4b\x7a\x74\xaa\xda\x67\xa9\x04\ +\x80\x05\x0f\x4c\x1e\x78\x91\xa9\xbe\xe9\x53\xef\x1c\x98\xc6\x01\ +\xcc\xa3\x2f\x92\xf4\xbc\x14\x31\x43\xa9\x16\x2b\x88\xcc\xc0\x67\ +\x7b\x36\x97\x2f\xda\x12\x1c\x00\x6d\x02\x27\x19\xd6\xa1\xa5\x28\ +\x85\x00\x00\x5a\x85\xbd\xff\x0e\x4b\xf5\xc4\x5f\x76\x0e\xc4\x71\ +\x80\x24\xfb\x07\x5b\x32\x4d\xdc\x9b\x13\x4f\x2f\x2b\x00\xec\xf8\ +\x54\x10\x41\x27\x73\xbd\xbf\xf7\x34\xf8\x8b\x3d\x38\x80\x2a\x84\ +\xd6\x01\x62\xe0\x7f\xf6\x78\x7f\xed\x95\x65\x05\x80\x2a\x8b\x1c\ +\x43\xd4\xd6\x75\x72\x0e\x94\xe6\x00\x30\x8c\xbf\x63\x81\x96\xbd\ +\xda\x5e\x46\x00\x40\x69\xfe\x57\x49\x3b\xf7\x6a\xd9\x5f\x72\x0e\ +\xa4\xe1\xc0\xd7\x24\xed\xd3\xd7\x2a\xd4\x57\x00\xc0\xe7\x07\x13\ +\xfe\xb7\xd3\x8c\xc1\xbf\xe2\x1c\x58\x8a\x03\x98\xdf\xa9\xf7\x4c\ +\x05\x9b\x28\xea\x2b\x00\x64\xf2\xff\xb9\x15\xa3\x8b\x6a\xd0\x1f\ +\x76\x0e\x64\xe0\x00\x77\x00\x8a\xa5\x90\x49\x16\x95\x3f\xd0\x47\ +\x00\xb6\x95\x74\xba\xa4\xfb\x25\xb8\x43\x64\xe0\x85\x7f\x72\x05\ +\x39\xc0\xa2\x27\xec\x1e\x8d\xe4\x5b\x31\xe3\xef\x23\x00\x2c\x7c\ +\xe2\x31\xbc\x2c\x51\x0c\xa7\xfd\xd9\xdc\x1c\x20\x6a\x94\xe8\x63\ +\xd4\xa1\x60\x8a\x15\x00\x62\xfc\x3f\x60\x05\xe9\x82\x1b\xf1\x07\ +\x9d\x03\x85\x38\xf0\x05\x49\xe0\x4d\x5d\x15\xda\x5e\xac\x00\xfc\ +\xa9\xa4\xa7\x0d\x59\xf5\x61\xc0\x54\xd1\x26\x61\x01\x27\xc6\xcd\ +\x24\x71\xa3\xe7\xf6\xf4\x03\x0b\x38\xa7\x1a\x74\x31\x5c\x8e\xd0\ +\x99\xf2\xe7\x42\x38\x80\x2a\xf4\x1a\x03\x59\x0e\x79\x3e\xca\x0f\ +\x40\x11\x6a\xc2\x9c\x9b\xae\xcf\x85\x5e\x86\x53\xe2\x16\x86\xba\ +\xf5\xab\x92\xe8\xf8\x1e\x92\x7e\xc1\xfe\x6f\x51\x11\x61\xce\xd2\ +\xaf\x4a\xfa\xac\xa4\x8f\x5b\x1d\x50\xb6\x16\x6e\x5a\x40\x1a\x47\ +\x9b\x1a\xe6\x4c\x05\x42\x88\x3d\x79\x55\x88\x8d\x85\xd4\xae\x94\ +\x3c\xdc\xc0\x3b\xee\x00\xd4\x95\x20\xa7\x78\x21\x85\x9e\x00\xac\ +\x2b\x60\xad\xa9\x02\xb8\x68\xfd\x2c\x6c\x34\xf5\x03\xb8\xa0\x77\ +\x95\x74\x37\x49\x7b\x1b\xe0\x28\x45\x83\x77\x4c\xe4\x9e\x66\x5b\ +\x01\xa6\x80\x04\x55\x04\x82\x32\xe9\xe4\xe9\x51\x28\x97\x20\xf5\ +\x65\x88\x0b\xd5\xdf\x2d\xf3\x81\x81\xbd\xcb\xe9\x4a\x7e\x63\xc6\ +\x52\xf3\xec\x5f\x7f\x22\xe9\x0f\xed\x50\x9f\xcb\xa1\x50\x01\x40\ +\xf7\xff\x47\x49\xbb\xb7\xc6\x6f\x76\x77\x7c\xe1\x28\x7e\x2c\x78\ +\x76\xff\x9c\x31\x19\x08\x03\x27\x01\x02\xf1\x21\x43\xf9\xe2\xdf\ +\xbe\x44\x35\x10\x8e\xd5\x55\x21\xf8\x46\xc6\xd4\x47\xf3\x0e\xf8\ +\xf3\x66\xa5\xa4\x4e\x59\x12\x01\x78\xaa\xa4\x97\x2c\xfa\x58\xa9\ +\xbf\x73\x1c\xa1\xd2\x1c\x2f\xe9\xa8\x06\x2e\x24\xec\xe0\xcf\x95\ +\x84\x9a\x14\x7b\xb4\xbb\x00\x64\x5b\x35\x4c\x09\xe1\xf9\x4b\x0b\ +\xc0\x6d\xac\xdc\x65\x13\x88\x6e\xbf\x68\x28\xaa\xbf\x25\x89\x8e\ +\x85\x1e\x61\x8b\x18\xb1\xcc\xdf\x39\x15\x00\xb9\x07\xf9\x0b\x24\ +\x80\x2b\x23\x3e\xe6\x02\x10\xc1\xac\xb8\x47\xb9\x6a\x70\x05\x9c\ +\x0b\xa9\x12\xb2\x7e\x90\x24\xf4\xa9\xea\x44\xe5\x3c\x4a\x0e\xde\ +\xb5\x51\x27\x04\xbb\x3f\x77\x04\xea\x3c\xfd\x4b\x20\xb7\x5c\x00\ +\x02\x19\xd5\xef\xb1\x93\xac\xca\xe8\xcc\xb7\x17\x09\x00\x9b\xec\ +\x85\xb5\x63\xfd\xd1\xe9\x0f\x90\xf4\x56\x49\x3b\xf5\x63\x44\xd1\ +\xb7\x08\x54\x7f\xbc\x59\x8f\x16\x5d\x92\x5d\x00\xb2\x4e\x0d\x07\ +\x33\xb6\x11\xe0\xd7\xa7\xd2\x3c\x01\xe0\x6f\xcc\x23\x9b\x2e\x66\ +\xf3\x2a\x84\xbe\xff\x28\x49\x7f\x2c\x69\x87\x2a\x3d\xe8\xd7\xe8\ +\xd5\x86\x0b\x83\x51\x1a\xff\xc2\x2c\x72\x01\xe8\xc7\xdf\xc0\xb7\ +\xc8\x1c\xc3\x46\xf2\xba\x59\x31\x42\xf3\x04\x00\x83\x0a\xb1\xfe\ +\x0f\xa9\xa9\x6a\x83\x83\x81\x5e\xcd\x51\x34\x34\x02\xf0\x9e\x60\ +\xf5\x33\xe7\x44\x68\xb9\x00\x64\x9d\x55\xae\x67\xef\x94\x74\xb4\ +\x24\xf6\xa4\x4d\x34\x4f\x00\xf0\x1b\xa1\xca\xde\x3a\x6b\x17\xe7\ +\x7c\x9c\x44\x83\x73\x06\x5c\x40\x0c\xee\x93\x2e\x07\x4a\x18\x5b\ +\xd1\x34\x72\x01\xc8\xbe\xba\x70\x3d\xdc\x6b\x56\xea\xe4\x3c\x01\ +\x78\x8e\x9d\xe2\xd9\x7b\x38\xad\x01\x42\x14\xde\x2c\xe9\xe1\x55\ +\x5a\x4f\xd3\x28\xaa\x0f\xe7\x2f\x71\xe3\xae\x02\x6d\xe1\x40\x21\ +\x3f\xc0\x46\x76\x83\x22\xc1\x7a\x0e\x3e\x01\x58\x7f\x54\xf0\x03\ +\xdd\xb9\x0a\x71\x66\xa1\x3f\x0f\x39\xe4\x14\x20\xcb\x07\x99\x07\ +\xd1\x05\xa0\xaa\x00\x60\x99\xc6\x82\xbe\xe9\x3a\x36\xeb\x04\xf8\ +\x0d\x53\x5d\xab\x2c\xfe\xdb\x1a\xfa\x11\xce\xae\x21\xd3\x15\x66\ +\xb2\x9d\xaa\x7c\xda\xc0\x5c\x05\x2a\x36\xc3\xb8\x8e\xa8\x47\xbd\ +\x15\x4d\x13\x00\x36\x5d\x9c\x9b\x84\x6c\x14\x27\x3a\x84\x1d\x1d\ +\xab\x0f\x01\x6d\x43\x26\x98\xc8\x25\x7e\x1e\xb9\x00\x14\x9b\xe1\ +\xf7\x4b\xa2\x4c\x17\xb1\x42\xeb\x34\x4d\x00\xd8\x78\xdf\x6d\xc1\ +\x93\xc5\x7a\xd7\x35\xb4\x8d\xa5\x9b\x51\x4a\x72\x91\x93\xa2\x78\ +\xe7\x22\x1b\xa4\xd0\x15\xb8\x1d\x2e\x00\xff\xcf\x81\x4a\x77\x00\ +\x3a\xf0\x4d\xab\x55\x41\x4c\xe3\x5c\x01\x20\xb7\xf2\xd4\x5a\x50\ +\x27\x98\x9e\x2e\x91\xb4\x7d\xe4\x62\x6b\xed\x71\xb6\x19\xac\x58\ +\x33\x3d\x30\xd6\x61\x3f\x01\x8a\xcd\x1c\x86\x38\xac\xd2\x6f\x9c\ +\x27\x00\x5c\x7e\x29\x63\xfa\xb8\x5a\x1b\xf0\xef\x9a\xdd\xbf\x14\ +\x5b\x58\xa8\x04\x8d\x90\x42\xc4\xa5\x15\x2e\xe1\xbd\x25\x4e\x1f\ +\x47\x08\xfe\x07\x7e\xb1\x98\x8f\x84\x4b\xef\x1b\x30\x08\x17\x80\ +\x00\x26\xa5\x79\x04\xab\x34\xf5\xa9\xff\x40\xd2\xf5\xdd\x27\x37\ +\x6a\x19\xd8\xfc\x41\xdf\x25\xdc\xa6\x0a\x5d\x24\xe9\xd7\x0a\xb4\ +\x0c\x07\x08\x5e\x03\x46\x80\xe2\xb4\x54\x60\xc0\x44\x40\xc2\x06\ +\xbf\x1b\x5b\xe2\xc3\xcd\xcd\x03\xbd\x9f\xc1\x5e\xd3\xb7\x10\x14\ +\x30\x2a\x39\x9c\x18\x30\x0e\x17\x80\x00\x26\xa5\x7b\x84\x34\x04\ +\xe0\x14\xc1\x12\x5a\xa3\x8d\x02\x40\x1e\xc9\x27\x2c\x53\x30\x5d\ +\xb3\x81\x5f\x22\xde\x02\x8b\xc9\x4d\x03\x9f\xef\xf3\x18\xbb\x3b\ +\x12\xfe\x7b\x16\xbe\x1c\xfb\x0d\xea\xbc\x62\x4e\xe0\x88\xe4\x64\ +\x40\x40\x36\x32\x91\x53\xe5\x3e\x92\xfe\x21\xe0\xe3\x2e\x00\x01\ +\x4c\x4a\xf7\x08\x7b\x1c\x25\x7b\xd7\x63\x15\x37\xce\xdd\x53\x2c\ +\xf6\x27\x5d\x93\x11\x5f\xc2\x5d\x77\x41\xc4\xf3\x7d\x1e\xe5\xfb\ +\xc4\x16\xc5\x84\x2c\x4f\x6b\xe7\x96\x66\x26\x03\x8d\x89\xfc\xbb\ +\xc9\x24\x1c\xb2\x31\x48\xfa\xe0\x64\x59\x44\x2e\x00\x8b\x38\x94\ +\xfc\xef\x38\xc4\x70\x8c\x4d\x3d\x01\x3e\x28\x89\xa8\xe3\x2a\x94\ +\x5b\xfa\x50\x6d\xf6\xb2\x90\xe5\x14\x03\x64\xf7\x20\x9f\x17\x6f\ +\x35\x99\x17\xdd\xc5\xfd\x1d\x76\x42\x84\x54\x74\xa3\x88\x32\xa1\ +\x12\xcb\x12\x56\x33\x84\x32\x27\x7d\x32\x34\xd1\x76\x4e\x27\x00\ +\xf3\xc4\xc4\x4d\xc4\x6c\x25\xa2\xee\xf0\xfe\xd3\x04\x80\x60\x4b\ +\xee\x82\xa8\xbf\x55\xe8\xb5\x06\xfa\x9e\xab\xf1\x4f\x5b\x82\x7c\ +\xea\xef\x23\x08\x78\x0e\x4f\x91\x84\x13\x8f\xed\xe5\xf9\x85\x91\ +\x25\x58\x9c\xa4\x87\xe6\x24\xc6\x44\x62\xf8\xc0\x09\x2d\x18\xed\ +\x75\x0d\x40\x6b\x52\x05\x62\x23\x8b\x02\x15\x4a\xcd\x88\xf3\x24\ +\x1d\x9a\xfa\xa3\x13\xdf\x03\xcd\x8b\x1b\x50\x2e\x3a\x48\x12\xb8\ +\x31\xfc\xde\x96\xab\x91\x19\xdf\x75\x01\x88\x62\x38\x9a\x2b\x36\ +\x90\xad\x04\x80\xa8\x63\xac\x90\x55\x08\x1d\x9a\x9b\x09\x39\x6c\ +\xb9\x08\x01\x03\x85\x21\x27\xe1\xc7\xc0\xa2\x14\x8c\xcc\x94\xa8\ +\x33\x2e\x00\x51\x8c\x7c\x83\x69\xa9\xeb\x02\x40\xf8\x03\x95\xf7\ +\xc8\x9e\xa9\x42\x84\x3d\xa0\x9c\xe5\x3c\xc6\xb1\x7d\xb1\x40\x17\ +\x65\x69\x55\x61\xc0\x92\x8d\xba\x00\x44\x31\xf0\x52\x5b\x6a\x3f\ +\xea\x54\x20\xcc\x9f\x80\x8b\xb2\x3e\xaa\x10\x88\xbb\x17\x4b\xba\ +\x63\xc6\xd6\xf1\x84\xa0\xe7\x61\xfb\x1f\x1b\xb9\x00\x44\xcd\x28\ +\xbe\x4f\x90\x74\x2e\xeb\x04\xe0\x30\x73\x11\x57\xcb\x3a\xc4\xb9\ +\x04\xbe\xce\x9e\x51\xe3\x88\x7f\xf8\x33\x66\xa2\x24\x59\x74\x4c\ +\xe4\x02\x10\x35\x9b\xdf\x33\x44\x9d\x73\x3a\x01\x78\x92\xd9\xff\ +\xf1\xeb\x54\x21\x9c\x5f\xdc\x01\x7e\x25\x73\xeb\x98\x42\x89\x89\ +\x7d\x46\x05\x3d\x3d\xe7\xd0\x5c\x00\xa2\xb8\x7b\x83\xe5\x2a\xbd\ +\x16\x01\xe0\xfe\x89\xe5\x8e\x35\x51\x2d\x00\x93\x86\xa9\xb7\x94\ +\xf3\x12\xdc\xb1\x88\x3b\x00\x5e\x5a\xf0\xf3\xde\x37\x92\x3b\x81\ +\x0b\x40\x94\x00\xa0\x0d\x9f\x0c\x9e\x19\xeb\x8e\x5d\x9f\xac\x79\ +\xb0\xd5\xab\xd2\xdf\x4b\x3a\xa4\x60\x0f\x88\xd4\xc4\xf4\xf5\x67\ +\x93\xd1\x51\x05\xdb\x4f\xd9\x94\x0b\x40\x34\x37\x51\x04\x8e\x41\ +\x00\x70\x60\x9e\x65\x97\x82\xe8\xaf\xa4\x7c\x81\xa2\x63\xe0\xb0\ +\x94\x24\xb6\x02\x40\x4f\xc1\x7e\xe4\x7e\x80\x09\x73\x88\xe4\x02\ +\x10\x3d\x6b\x28\x01\x47\x22\x00\x00\xdf\x62\x02\xdd\x2d\xfa\x13\ +\x89\x5f\x20\x4e\xf5\x65\x89\xbf\x19\xfa\x39\x60\xcf\x71\x5e\x91\ +\x88\x4f\xea\xd0\xd0\xea\x03\xb8\x00\x84\xce\xf4\xfa\x73\x5f\xc4\ +\xef\x8a\x00\x10\xe0\x48\x94\xc0\x76\xd1\x9f\x48\xfc\x02\x41\x48\ +\x04\x23\xd5\x22\xee\x06\xf8\xc7\xb9\x17\x10\x31\x45\x8d\x80\xa1\ +\x90\x0b\x40\xf4\x4c\x5d\x0b\xe0\x20\x02\x40\x0a\x24\x02\x50\xed\ +\x02\xdc\x75\x9d\xcb\x08\x20\x2e\xd5\x4c\x51\x13\x3c\x24\xa1\x9d\ +\xa0\x2d\x7c\x06\x84\x68\xc7\xa2\x3e\x47\x4f\xc7\x92\x2f\xb8\x00\ +\x44\x33\x10\xed\x77\x7f\x16\x3d\xc9\xef\x84\xc9\x34\x41\x6f\x0f\ +\x48\x24\x2f\xd9\x51\x00\xe6\xb9\x20\x91\xe0\x8e\x9e\x18\x55\x83\ +\xb3\x60\x47\x5d\x00\x7a\x31\xfb\x28\x04\x00\xec\xa6\x97\xf7\x7a\ +\x3d\xc3\x4b\x55\xf1\x58\x66\x8c\xa7\x4b\x9b\xe4\xd6\x44\x34\x24\ +\x95\x61\x5a\x23\x17\x80\x5e\x33\x72\x02\x02\xc0\x49\x4f\xad\x89\ +\x26\x88\x38\x55\x1c\x62\xd5\x10\xb9\x16\x70\x81\x3b\x02\x4e\x13\ +\x6c\x68\xa8\x46\xad\x9c\x08\x2e\x00\xbd\x96\xef\xa9\x08\x00\xc8\ +\x1d\x14\x18\x6e\x82\x48\x3e\x07\x4a\x90\xb4\xc3\xea\x97\x92\x19\ +\x1c\x61\xd1\x53\xe2\x07\xff\x01\xaa\xd1\x7a\x86\x75\x45\x0e\xba\ +\x00\xf4\x62\xfe\xe9\xac\x31\xf0\x67\x49\x28\x6a\x86\xf0\xc8\xbd\ +\xaa\x05\xb3\xd4\x1c\x8e\x20\x04\x98\x11\x70\xde\x01\xe4\xc5\xe5\ +\xbd\x26\xb9\x00\xf4\xe2\xfe\xf9\x08\x00\x08\x1e\xfb\xf4\x7a\x3d\ +\xd3\x4b\xa4\x19\xb2\xb0\xaa\x41\x53\x44\x8e\x0b\x10\x55\x4e\x2c\ +\x18\x59\x2b\xd4\xda\x05\x20\x72\xd2\xb6\x3c\x7e\x09\x02\x80\x43\ +\x80\x2a\xa3\x4d\x11\xc5\xef\x70\x4a\xe5\xac\xf8\x98\x6a\xc0\x9c\ +\x06\xf8\x0c\xb8\x4c\x01\x3c\xb3\x15\xf6\x5e\xaa\x46\x16\x7c\xc7\ +\x05\xa0\x17\xa3\x2f\x47\x00\x28\x22\x46\x2a\x6b\x53\x44\x74\x28\ +\xc9\xe5\x4d\xe9\x66\x0b\x38\x44\x8c\x2d\x41\x55\xcf\xaa\xe0\x37\ +\x70\x01\xe8\xb5\x7c\xaf\x42\x00\x80\x6b\xac\x56\x04\x63\x5e\xb7\ +\x89\xcd\xf8\x80\x24\xca\x53\xb6\x7a\x21\xde\xd8\x7f\x80\x67\xa8\ +\x28\x48\x5d\xa9\x59\x45\x31\x7a\x4d\x95\x9f\x00\x39\xd8\x76\x35\ +\xeb\x8a\xba\xcf\xd5\x6a\x80\xcd\x1b\x15\x79\x9a\xc7\x18\xe4\x08\ +\xa0\xb9\x43\x21\x2e\xc7\xc0\xa4\x80\x12\x51\x8a\xfc\x04\xe8\xc5\ +\xe9\xeb\x10\x00\xbc\xfc\xcd\xd6\xa1\x40\x32\x41\x59\x00\xd5\x74\ +\x48\x04\xfe\x0d\x08\x03\x14\x59\x2b\x41\x2e\x00\xbd\xb8\xfc\xc3\ +\xe6\x05\x80\x61\x01\x54\x74\x86\x41\x9a\xdc\xa4\xd7\x38\xeb\xbc\ +\x04\x1e\x37\x10\x89\x04\x5a\xe5\x26\x17\x80\x5e\x1c\x5e\x4b\x8a\ +\x6f\x56\x05\x9a\x1c\x12\xa1\xaa\x9c\x04\x98\x1b\x63\x91\x9a\x7b\ +\xb1\x26\xc1\x4b\x84\x54\x63\xc9\x02\x87\x94\x0b\x72\x4e\x72\x01\ +\xe8\xc5\xdd\x35\x15\xa8\xd9\x4b\xf0\xc6\x21\x01\xfd\x47\xde\x26\ +\x71\x1b\x43\xb9\x14\xb3\xbb\x10\xdf\x04\xe4\x46\x4e\x72\x01\xe8\ +\xc5\xdd\xb5\x4b\x70\x93\x66\xd0\x79\xc3\x79\x82\xa4\x17\x4b\xba\ +\xd5\x40\x04\x81\x8c\xb3\x83\x33\xfb\x07\x5c\x00\x7a\x09\xc0\x37\ +\x9a\x75\x84\xcd\x1b\x0e\x77\x02\x72\x87\x9f\x3b\x89\x72\xda\x6b\ +\xfc\x65\x5e\xc2\x51\x76\x64\x66\xdc\x49\x17\x80\x5e\x73\xb9\xe6\ +\x08\x6b\x2e\x14\x22\x64\x28\x74\x1c\xef\xdd\x33\x0d\x50\xb7\xf5\ +\xcb\x31\xa0\x5f\x60\x87\xe6\xf2\x12\xbb\x00\x84\xac\x9a\x4d\xcf\ +\xac\x85\x42\x9c\x5b\x00\x32\xb3\x57\xef\x42\x5e\xc2\x7e\xfb\x68\ +\x49\xcf\xb6\x9a\x5c\xad\xda\x73\xb9\x68\x71\x6a\x51\xa2\x24\x07\ +\xb9\x00\xf4\xe2\xea\xfb\x9a\x0b\x87\xee\x35\x0c\xab\x82\x8c\x9a\ +\x41\x24\x29\x38\x8f\xd5\x30\xde\x67\x0c\x00\x0f\x31\x7e\x01\x62\ +\x85\x72\x90\x0b\x40\x2f\xae\xae\x85\x43\x83\x0f\x75\x5c\xaf\xd7\ +\x1b\x7b\x89\x45\x4f\x39\x70\x4c\xa5\x20\x4c\xb4\xe4\x3d\xe6\x1e\ +\x00\x06\x11\x16\xac\x4d\xe5\xca\x13\xf0\xd1\x05\xa0\x17\x13\xd7\ +\x12\x62\x80\xc4\x79\x49\xaf\xd7\x1b\x7e\x89\xcc\x32\x2c\x45\xc0\ +\xa1\x13\x5e\xdd\x42\x54\x29\xc5\x97\xc9\x3c\xca\x91\x3b\xe0\x02\ +\xd0\x6b\x31\xae\x21\xc3\x8d\xb6\x4c\x15\x27\x02\x25\x88\x0e\x37\ +\x5b\xfc\xed\x2a\x0b\xc2\xa7\x0c\x81\x20\x07\xdc\x8a\x0b\x40\x2f\ +\x01\x58\x4b\x8a\xff\x65\x03\x45\x1b\x8a\x6f\x29\x7a\xa4\x58\x88\ +\xee\x60\x81\x75\x20\xcf\xd5\xba\x1f\x50\x34\x83\x32\xab\x39\x92\ +\xea\x5d\x00\xa2\x97\x05\x8e\xfa\x03\x3b\x60\x2c\x50\x01\x81\xe8\ +\x1f\x3d\x51\x01\x04\x08\x0c\x40\x78\xa9\x0a\x5e\x92\x80\x24\xde\ +\x3b\x41\xa1\xb9\x69\x7d\x76\x01\x88\x9e\xc9\x6b\x3a\x60\xac\x66\ +\xa0\x11\xa3\x87\xd0\xf3\x05\xee\x04\x84\x27\x10\x61\x0a\x2a\x58\ +\xa9\xa3\x8f\x8b\x30\xd5\xe3\xd7\x8b\xd4\xf6\xec\xbf\x0b\x40\x12\ +\xc6\x7d\x81\x52\x11\xcc\x7d\x33\xe0\xb8\x49\x86\x15\xf8\x11\x2e\ +\xc5\xb7\xb7\x00\x3b\x2e\xca\xa5\xd4\x22\x9c\x61\x24\xf9\xa4\x26\ +\x3f\x01\xa2\x39\xca\x34\x1c\x81\x00\x80\x44\x88\x79\x9a\x34\xdc\ +\x95\x23\xa4\xff\x54\x0b\x55\x28\xe1\x4d\xe6\x0e\x10\x52\x41\x3e\ +\x76\x22\x5c\x00\x62\x39\xa6\xb7\xa2\x04\x20\x00\x6c\x86\x24\x30\ +\x11\x55\x50\x4a\x1b\x88\xee\x6d\xce\x17\x08\xaf\x86\x01\x40\xe4\ +\xe5\xf6\x24\x73\x07\x71\x15\x28\xe7\x6c\x06\x7d\x7b\xab\x02\x19\ +\xbc\x41\xe6\x21\x19\x7c\xd5\x71\x69\x91\x40\x30\x5a\x80\xaa\x00\ +\x79\xad\x14\x71\x2f\xa0\x48\x32\x3b\x74\x2e\xc2\xec\xc0\xe5\xfb\ +\x13\x19\x1a\xf0\x13\x20\x8a\xa9\xd8\x23\xf0\x95\xbe\xa6\xdb\xf1\ +\xf1\x05\x80\x10\x57\xad\x48\x5e\xd7\x7d\xd4\x10\x6a\x04\xe0\x2c\ +\x62\x57\x2e\x89\xca\xcc\xa5\x18\x8f\x60\xae\x5d\x80\x24\x79\x84\ +\x3b\x47\x86\x98\x0b\x40\x94\x00\x90\xb1\x8a\xca\xff\xee\x4e\x00\ +\x30\x93\x13\x14\x57\xad\x4c\x6a\xd7\x7d\xea\x05\xbf\xde\x10\xa2\ +\xc1\xd9\x21\x0b\x2c\x77\x36\x55\xd7\x36\x05\xfa\x80\xc9\xde\x25\ +\x8a\x97\xe1\x0f\xe3\x07\xe0\x12\xfc\xf9\xf0\x57\x82\x9f\x74\x01\ +\x08\x66\x15\x0f\x6e\x2a\x93\x0a\x0c\x0f\x79\x1b\xd5\x11\xe2\x70\ +\x46\xa0\x8a\x1c\x6a\xe5\x8a\x10\x00\xaa\x99\x95\x28\x5d\x44\xa9\ +\x56\x8a\x75\xe7\xaa\x55\xfc\x59\x49\xd4\xa3\xfd\x4a\xd4\x5c\x85\ +\x3d\xec\x02\x10\xc6\x27\x7b\x0a\x5f\x24\xfb\xdd\x0d\x93\x97\xde\ +\x57\xb7\x00\xbe\x40\x96\x17\xe9\x83\x5d\xc9\x7a\xe2\xe7\xb1\xd2\ +\xbc\x50\x12\x9e\x8b\x9c\x84\x35\x00\xd0\x5b\xc2\x27\x72\x10\xf5\ +\x05\x28\xd4\x4d\x71\xbe\xd4\xe4\x02\x10\xc5\x51\xc0\x3a\x88\xa2\ +\xdf\xca\xea\xd3\x04\x34\xff\x8e\x56\x88\x62\x23\x56\xe3\x45\x92\ +\x9e\x6f\x7f\xcb\x85\xbf\x49\xe2\x3d\x8b\x34\xd7\x09\x40\xf1\x0f\ +\x42\x31\x72\x08\xb2\x0b\x40\x94\x00\x10\x30\x0c\xc2\xfd\x56\x02\ +\x00\x00\x1b\xf9\xc1\x55\x03\x27\xa9\x0b\xc0\x64\x72\x12\x4c\x12\ +\x16\x94\x2b\x0d\x35\x9a\xf8\xed\x1c\x45\xec\x38\x75\x28\x89\x44\ +\xd1\xb4\xd4\x84\xdd\x0d\xb4\x38\x6c\xcd\x39\xb2\xc2\x5c\x00\x82\ +\x67\x8c\xa5\xb3\x93\x2d\xa7\x4d\x76\x7f\x54\x60\xbc\xf5\xd5\x88\ +\x78\x7e\x2e\x89\xf3\x3c\xb3\x5c\x56\x9e\x92\xb8\xac\x29\xd6\x27\ +\x4e\x18\x12\x23\x72\x38\xc4\xb0\x66\x3d\xcd\x72\x02\x72\x30\xd7\ +\x05\x20\x98\xab\xd4\x63\x5f\xbf\xeb\x6e\x74\x7c\x31\x47\x25\x11\ +\xfd\x36\xf5\xfa\x9e\x01\x9e\x52\x76\x53\x52\x0c\x81\x50\xa7\xb8\ +\x01\x65\x4d\xb1\xb0\xf4\x25\x80\x51\x8f\x96\xf4\xf4\x8c\x76\x60\ +\x2c\x59\xe8\x98\xf4\x39\x07\xb9\x00\x04\x73\x15\x2c\x05\x2c\xec\ +\x6b\xb4\x51\x00\x50\x7f\xb9\x07\x96\x0e\x94\x5c\xef\xfd\x23\x0d\ +\x4c\x2a\x64\x38\x08\x02\x0b\x8b\x8a\x8e\x94\x57\x25\xe1\x04\x1d\ +\x3e\xd4\x6c\xba\xbb\xe5\x0a\x3c\xcc\x82\xe2\x72\xd9\xff\x19\x0b\ +\xea\x1b\xdb\x0e\xff\xe6\x20\x17\x80\x20\xae\x92\x8c\x87\xaf\x13\ +\x4d\x67\xaa\x00\xe0\x08\xbb\xc0\x4c\x44\x41\x5f\x4c\xfd\x10\xc9\ +\xed\xd4\xe0\xea\x4b\x98\x4b\x09\xf3\xc3\xce\x85\xb5\x05\x60\x2a\ +\x74\x6e\x2e\x36\xe0\x8c\x82\x24\xc1\xc2\x07\x79\xba\x64\xfc\x37\ +\xb5\x87\xef\xdb\x77\x50\x01\xef\xb9\x00\x04\x30\x69\x8b\x13\xfe\ +\x41\xb6\x67\x4e\x15\x00\x76\xfe\x57\x4a\x7a\x5c\xad\xb8\x20\xea\ +\x83\x01\x7c\x35\x36\x22\x61\xff\xcc\x8c\x83\x72\x01\x58\xc8\x5c\ +\x14\x06\x7c\xac\x84\x7c\xad\x97\x75\x9b\x16\xfc\x86\x3a\x4c\xce\ +\x48\x15\xc8\xf4\xf3\xcc\x09\xb6\x70\x38\x03\x7a\x00\x15\x0d\xa4\ +\x8a\x9c\xf5\x02\x5c\x00\x16\x2e\x08\xd8\x7f\xec\x46\x60\x8e\x69\ +\x02\x70\x27\x8b\x08\x20\x85\xb6\x38\xe1\x2d\x25\x47\x73\x2c\xc4\ +\xb6\xc3\x8d\xeb\xc4\xcc\x03\x72\x01\x58\xc8\x60\xc2\x1f\xee\xbd\ +\x31\x14\x6b\x9a\x00\x60\x05\xa4\xfa\x27\x01\x72\x45\x89\xce\x70\ +\x81\x25\x24\x61\x2c\x44\x54\x2b\x4a\xe7\xe7\x32\x0f\xc8\x05\x60\ +\x21\x83\x49\xc3\x00\xad\x7e\x2b\x37\xcc\xac\xf8\x7f\x3c\x65\xa5\ +\x6a\x3b\xac\xf7\x1c\x73\x24\x85\xa8\xc7\x92\x94\x80\xc7\x85\xe8\ +\xd2\xe7\x10\x74\xb2\x70\x7e\x96\x7b\xc0\x05\x60\x21\xff\x70\xc2\ +\x6f\xc2\x25\x9b\xb5\xd6\xc8\x11\x41\x75\x25\x4c\xbe\x18\xdd\x59\ +\xd2\xc7\x8b\xb5\x96\xbf\x21\x4c\x9e\x0f\xa4\x16\x67\xfe\xa6\xd6\ +\xbc\xe7\xe8\xae\x39\x09\x47\xe1\x0b\x72\x36\x90\xef\xdb\x44\xd7\ +\xe3\xfd\xdd\x14\x53\x39\x6f\xb3\xc5\x61\x40\xbd\xb7\x62\x34\x26\ +\x80\x22\xe2\x95\x28\x8c\x41\x84\x61\x09\x72\x01\x98\xcb\xe5\x93\ +\x0c\x3e\x76\xd3\x43\xf3\x04\x00\x73\xf9\x87\x25\x51\x97\xa2\x08\ +\xed\x2f\x89\xa0\xb7\x6a\x5e\xb8\x84\xa3\x7c\xa3\xa4\x27\x65\x82\ +\x41\x9c\xd6\x4d\x17\x80\x99\x93\x47\x62\x21\x2e\x98\xa9\x07\xf1\ +\x3c\x01\xe0\x2e\x4a\xe2\x30\x1b\x73\x31\xb5\x9c\xc6\x30\xd6\xa2\ +\x7b\x15\x6b\x34\xe1\xc2\x47\xef\x07\x6e\x80\x74\xa3\x1c\x61\xcf\ +\xb3\xba\xea\x02\x30\x95\x33\x18\xe1\xce\x96\xf4\xd8\x59\x88\x94\ +\xf3\xd6\x18\x7f\xc3\x27\xc5\x3d\xae\x98\x4f\x00\x8f\x2d\xe2\x8a\ +\xd9\xf0\x80\x84\x0b\xb3\xd4\xa7\x58\x88\x78\x11\x89\xb8\x2a\x49\ +\x2e\x00\x53\xb9\x8d\xed\x9f\xdc\xdf\xd3\x24\x21\x0c\x51\x2a\x10\ +\x0f\xef\x2c\xe9\x7c\x83\xd0\x29\x36\x9f\x48\x5e\x57\xfc\x02\x09\ +\x24\x5d\x6d\x08\x04\xf6\xff\x23\x2c\x9a\x75\x2a\xb7\x33\x0e\xc2\ +\x05\x60\x2a\x73\xb1\x43\xec\x27\xe9\x6b\xb3\x58\x1f\xa2\x65\x00\ +\xb2\xfc\xac\x8c\x73\x37\xf3\xd3\x84\x44\x1f\x21\xe9\x79\x96\xac\ +\x9c\x23\x4c\x39\xc5\xb8\x30\x2c\x13\x91\xca\x39\x3b\x93\xd3\x29\ +\x1a\x9a\xf3\x0d\x17\x80\xa9\xcc\x21\xa2\x81\xc8\xf9\x99\x14\x22\ +\x00\xe4\xa8\xb0\xb9\x15\x35\x89\x4e\xf6\x98\x04\x15\x42\x89\x89\ +\x14\xc5\xd4\x97\x1b\xbb\x27\x66\xad\xa2\xe7\xbf\xce\xac\x3d\xd4\ +\x05\xae\x45\x2e\x00\x9b\x38\x4f\xc4\x3c\x28\x34\x73\xf7\xa4\x10\ +\x01\xe0\xcb\xc5\x4d\xa2\x1b\x87\xc3\xdd\x00\x43\xee\x43\x4c\xa9\ +\xab\x12\xa7\x31\xd1\x29\x76\xfd\xb3\x24\x61\x5f\x03\xf6\x3c\xb7\ +\xa3\x6b\x91\x60\xb9\x00\x6c\xe2\x10\x9a\xcb\x09\x8b\xf8\x16\x2a\ +\x00\xa4\x4b\x7e\x48\x52\xed\x75\xb7\x36\x1e\xcc\xa4\x8f\xb1\x24\ +\x16\x3a\x84\xb9\x8a\x7b\x42\xe8\x60\x16\x31\x65\xd6\xdf\xb1\xf0\ +\x10\xaa\x41\xbc\x12\x96\x01\x04\x20\x57\x7e\x72\x6c\x1f\x5d\x00\ +\xb6\xe2\x18\xc0\x1b\xd8\x52\x88\x44\x99\x4b\xa1\x6b\x06\xf5\x1b\ +\xa7\x18\x19\x63\xcd\xa8\xe2\x74\x04\x6c\x0b\x12\x4d\xf8\x97\x20\ +\x3a\x7e\x29\x2b\xc2\x70\x99\x45\xcd\x21\x4b\x08\xcb\x0e\x01\x25\ +\x64\x53\xe4\x28\x73\xb4\x68\xb2\xe6\xfd\x1d\xd4\x8c\x1c\xb9\xcc\ +\x93\x6d\xbe\xd3\x84\x7e\x99\x7e\x16\x78\x97\xc3\x19\x34\x1d\x9c\ +\xd6\x0b\xa7\x29\x54\x00\xe8\xf7\x5d\x25\xc1\x03\x2c\x43\xcd\x11\ +\xd9\x5c\xa0\x3a\xf0\xa3\x83\xdc\x15\xf8\x81\x2e\x01\xda\x17\x25\ +\x93\x42\x10\xa0\x51\x65\x30\x1d\x10\xbc\xc6\x82\x67\xe1\x5f\x6a\ +\x29\x98\xdf\xcd\x94\x8c\x9f\x82\x99\x8c\x3f\x37\x9a\x01\xbc\x29\ +\x89\xd4\xd7\x93\x2f\x51\x05\x39\x63\x04\x80\xfe\x00\xd1\x43\xb1\ +\xc3\xd8\xf7\x7a\x8e\x25\xdd\x6b\xa8\x48\x04\xdb\xf1\x43\x48\x70\ +\x6c\x10\xf0\xc4\x76\x41\xd6\x18\x3f\x02\xf1\xd8\xed\x73\xa0\x36\ +\xa4\x1b\x89\x7f\x69\x0e\x07\x38\xb0\x81\xf8\xc4\x15\x13\x44\xb1\ +\x0b\x99\x62\x1a\x58\xfc\xc6\x14\xb2\x1f\xc4\x28\x7f\x68\x10\x1c\ +\x20\x13\x96\x9c\xdf\x60\x8c\x84\x58\x01\x80\x0b\x84\xb7\x83\xf1\ +\xd4\xcc\x5d\x60\x10\x53\xe3\x9d\xcc\xcd\x01\xb4\x33\x8a\x70\x12\ +\xbe\x13\x4c\x7d\x04\xa0\x83\xef\xa4\xf0\x79\x9f\xf7\x83\x3b\xe7\ +\x0f\x3a\x07\x02\x39\x80\xea\x03\xe2\xcc\xa3\x4c\x93\x0d\x7c\xad\ +\xff\x02\x7e\xa8\xf9\x7f\x50\xa9\x9d\x9c\x03\xb5\x39\x00\xdc\x39\ +\x58\x9f\x18\x69\xa2\xa2\x50\xfa\xee\xe0\x98\xe2\x01\x70\x58\x03\ +\x18\x75\x72\x0e\x54\xe6\x00\x2a\x39\x81\x02\x0b\xcd\x9e\x1b\xfb\ +\xd9\x57\x00\xf8\x0e\xe6\x76\x70\x56\xb0\x30\x3a\x39\x07\x6a\x71\ +\x80\x08\x14\xdc\x40\x24\xbd\x47\xd3\x32\x02\x40\x63\x44\x26\xbc\ +\x79\x64\x79\xec\xd1\x4c\xf4\x17\xaa\x71\x00\xd5\x87\xbc\xa3\xa8\ +\x8b\xef\x64\x6f\x97\x15\x00\x0a\xba\xa0\x0a\x91\xff\x91\xdb\x0f\ +\x53\x8d\xcb\xde\x70\x93\x1c\x40\xd7\x07\xe2\x1c\xbf\x54\x28\x1a\ +\xe6\xa6\x81\x2c\x2b\x00\x7c\x70\x2f\x49\x67\x18\xda\x60\x93\x9c\ +\xf2\x4e\x8d\x92\x03\x40\xf9\x3f\xd8\x9c\xf5\xbd\x07\x98\x42\x00\ +\x68\x9c\x3c\x90\x37\x98\x73\xb5\x77\x67\xfc\x45\xe7\x40\x20\x07\ +\xb8\xec\x3e\x51\xd2\x9b\x02\x9f\x9f\xf9\x58\x2a\x01\x20\x44\x9f\ +\xe0\x23\xb0\x6d\x9d\x9c\x03\xb9\x39\x40\x21\xd1\xe3\x53\x44\xad\ +\xa4\x12\x00\x06\x0c\x7a\x04\x76\xd8\xbb\xfb\x7d\x20\xf7\xfc\xaf\ +\xec\xf7\xd1\xfb\x41\xc2\x07\x6b\x38\x09\xe6\x40\x4a\x01\x60\x56\ +\xee\x21\x09\x44\x10\x0a\xbd\x38\x39\x07\x52\x73\x80\x40\x5d\x16\ +\x3f\x42\x90\x84\x52\x0b\x00\x11\xc7\x98\x46\x41\x02\x0f\x89\x3e\ +\x4e\x32\x08\xff\xc8\x4a\x70\x80\x7c\x24\x9c\x5d\xac\xad\x64\x25\ +\xe2\x52\x0b\x40\x37\x13\xa4\x50\x02\x89\x39\x14\x40\x87\x95\x58\ +\x41\x03\x1e\x24\xa9\x08\x24\xb9\xb0\xa6\x92\x52\x2e\x01\x20\xdc\ +\x9e\xdc\x01\x24\xd6\x85\x20\xe9\x94\xad\xdc\xc7\x48\xcf\x00\xa8\ +\x99\x12\x6e\xe4\x24\x25\xa5\x5c\x02\x40\x27\x41\x93\x38\xdd\xee\ +\x05\x49\x3b\xed\x1f\x5b\x29\x0e\x00\x69\x48\x08\x3e\x76\xff\xe4\ +\x94\x53\x00\x3a\x21\x20\x8d\x96\x4b\x71\xee\xb6\x92\x33\xc7\x3f\ +\x58\x95\x03\x58\x7c\x48\x6e\x3f\x68\x11\xb4\xc9\x32\xbd\x2c\xb1\ +\x28\xef\x62\x0e\x0b\x52\x74\x4b\xb4\xb7\x0c\x3f\xfc\xdd\x36\x38\ +\xc0\xe2\x07\x6d\x06\x67\xd7\x7a\x45\xc7\x1c\x5d\x2b\xb1\x20\x69\ +\x03\x88\x0a\x72\x35\x41\x3c\x74\x72\x0e\x2c\xe2\x00\x88\xce\x98\ +\x3b\xa9\x58\x9a\xcc\xe2\x33\xad\xd1\x12\x02\xd0\xb5\x7b\x98\x05\ +\x2f\x6d\xbf\x68\xf4\xfe\xf7\x95\xe6\xc0\xb5\x96\xda\x88\x53\x35\ +\x3b\x95\x14\x00\x06\x83\x10\x50\x86\xb5\x09\x80\xad\xec\xdc\xf5\ +\x06\x62\x39\x80\xce\x0f\xf6\x14\x35\xea\x8a\x50\x69\x01\x20\x64\ +\x9a\x74\x4a\x0a\xa7\x80\x30\xe1\xe4\x1c\xe8\x38\xc0\xce\x0f\x9c\ +\x09\x80\x7b\xc5\x90\x69\x4a\x0b\x40\x37\xd8\xfb\xdb\xc5\x98\x9c\ +\xe2\x5a\x7d\xf0\xa5\xd7\x06\x07\xb8\xf0\x62\xdf\x67\xf1\x17\x51\ +\x7b\x26\x87\x5d\x73\xf1\xdd\xd3\xd4\xa1\x3d\x5d\x08\xda\x58\x89\ +\x15\x7a\xd1\x59\x7b\x70\x72\x51\x87\xa2\x38\xd5\x14\x00\xda\xde\ +\xd7\x2a\x22\xed\x51\x7c\xe4\xde\x60\x0b\x1c\xb8\xdc\xb2\x09\x3f\ +\x92\xdb\xda\x33\x6b\xb0\x35\x05\xa0\xeb\x13\x98\xae\x5c\x7a\xc0\ +\x1e\x6d\x09\xfa\xbf\x85\x05\x32\xd6\x3e\xa0\xe3\x03\x68\x4d\xe0\ +\x64\xad\x9a\x22\x6b\xbc\x6d\x41\x00\xe8\x07\x17\xe2\x93\x2d\xb3\ +\x0c\xc8\x4e\xa7\xf1\x72\x80\xc0\xb6\xb7\x58\xcd\x89\x2c\xe1\x0d\ +\x31\xac\x6b\x45\x00\xe8\x33\x09\x35\xc7\x5a\x7d\x3c\x0f\xa5\x8e\ +\x99\xc5\xe1\x3c\x8b\x53\x8b\x8d\xee\x94\x1c\x81\x6d\x7d\xd8\xd0\ +\x92\x00\x74\xfd\x27\xd1\xf9\x55\x86\x37\xe4\x48\x13\x7d\x66\xb5\ +\xbd\x77\xb8\xec\x92\xcc\x72\x9c\x05\x48\x36\xd3\xc3\x16\x05\x80\ +\x3e\x1d\x68\x47\x24\x21\x14\x2d\xf6\xb1\x99\x09\x1c\x40\x47\x58\ +\xfc\x04\x44\x92\x23\x72\x71\xad\xcb\x6e\xcb\x97\xe0\x59\x7d\xdb\ +\xd1\x30\x5f\x30\x91\xf9\xbd\x60\x00\x2b\x7d\x4a\x17\xa9\xd3\xfb\ +\x0a\x49\x24\xb1\x27\xc9\xe1\x4d\xcd\x86\xd6\x77\x57\x54\x20\x92\ +\x6a\x40\x9c\xd8\xc5\x4f\x83\xd4\xd3\x9f\xed\x7b\x9d\xca\x43\x79\ +\x5d\x72\x42\x8a\x79\x76\x63\x47\xd4\xba\x00\x74\xe3\x01\xfb\x91\ +\x8a\xdf\x87\x4b\xda\x26\x76\x90\xfe\x7c\x51\x0e\x00\x57\x48\x38\ +\x03\xbb\x3e\xc9\x2c\x4d\xd3\x50\x04\x00\x26\xb2\xf0\xc9\x0c\xa2\ +\x32\x29\x15\x53\x9d\xda\xe3\x00\x00\xb5\x4f\x95\x74\xf6\x32\x70\ +\x85\x25\x87\x35\x24\x01\xe8\xf8\xc2\xdd\x00\xbd\xf2\x7e\x56\xea\ +\x6b\x88\x63\x28\x39\xc7\xb9\xdb\x42\xdd\xb9\xce\x42\x19\x9e\xdc\ +\xaa\xae\x3f\xc4\x4b\xf0\xbc\x89\xa3\x3c\x13\xa7\x01\xe5\x82\x0f\ +\x75\x0f\x72\xee\x35\x3e\xf3\xfb\xe8\xf6\x17\x4a\x3a\x4d\xd2\x39\ +\x92\xb8\xf4\x0e\x8a\x86\xbc\x7b\xd2\x77\xa2\x49\x0f\x96\xf4\x22\ +\x03\xe7\x1d\xf2\x78\x86\xb4\x70\xd8\xf5\x29\x42\x4d\xed\xe8\xf7\ +\x5a\x59\xa2\xa8\xca\x2c\xad\x0c\x76\x2c\x0b\x86\x4a\xf6\x27\xda\ +\x25\x19\x8f\xb2\xc7\x14\xe5\x59\x61\xec\xf8\xd7\x48\x7a\x97\xa4\ +\x13\x62\xaa\x31\xe6\xe9\xce\xf2\x5f\x1d\x8b\x00\x74\x9c\x20\xf1\ +\x9e\x5c\x52\xac\x45\xb7\x5f\x9e\x3d\xfe\x85\x09\x0e\x7c\xd9\x60\ +\xf0\x29\x47\xf4\xb1\xb1\x70\x66\x6c\x02\xc0\xbc\x50\xbf\x0c\x4c\ +\x22\x8a\x76\x10\x5b\xe4\x99\x67\xcb\xad\x56\xea\x87\x53\x04\x05\ +\xcc\xd7\xaf\xf7\xa9\xc3\xb5\x5c\xf3\x79\xdf\x1e\xa3\x00\x4c\x72\ +\x0c\x41\xa0\x82\x08\xce\xb4\x1d\x4c\x38\xc6\x3e\xe6\x65\x57\x0c\ +\xba\x3c\xf8\xfb\xdf\x31\x1c\xce\x97\xe6\x02\xa5\x5a\xb6\xa3\x29\ +\xde\x5f\x95\xc5\x40\x21\xbf\x07\x98\xc5\x88\x4c\x34\x0a\xfc\x39\ +\x6d\xe6\x00\x8b\x1e\xe4\xe5\x73\x25\xbd\xc7\x76\xfc\x51\xf3\x69\ +\x55\x04\x80\x49\x64\xac\x40\xb2\x90\x80\xc3\x1d\x81\x1c\x54\x4e\ +\x08\x27\x89\x4a\x8b\xa8\x39\xef\x90\x74\x85\x85\x2a\x0f\xd2\xaa\ +\x13\x3b\x99\xab\x24\x00\x1b\x79\x03\x68\xef\xc3\x24\x1d\x2d\xe9\ +\x8e\x92\xb6\xb5\xa0\xbb\xb1\xf3\xa4\x53\x71\x28\x2c\xf7\x19\x03\ +\x27\x20\x5e\x87\x44\x95\x95\xa3\xb1\x4f\x76\xc8\x84\x62\x32\xdd\ +\xdd\xf2\x93\x0f\x90\xb4\xb7\x24\x72\x94\xb9\x4c\x8f\x89\xd0\xeb\ +\x2f\x93\x44\xfe\x2d\x70\x83\x1f\x96\x74\x69\xcb\x81\x6a\x25\x98\ +\xef\x02\xb0\x35\x97\x29\xfb\x8a\x73\x8d\x3b\xc3\x21\x92\x80\x6f\ +\xb9\xdb\x80\x8b\x7d\x90\x81\x45\x40\x1a\xc1\x69\xc0\x0c\x92\x82\ +\xf8\x6d\x49\xd7\x97\x58\x5c\x43\x68\xc3\x05\x60\xf1\x2c\x71\x61\ +\x06\xd1\xee\x5e\x92\xf6\x93\xb4\x9d\xa4\x9b\xdb\x09\x41\x48\x46\ +\x6d\x1e\xa2\xd2\xe0\xa0\x22\x0c\xe1\xfb\x16\x84\xc6\x2e\x0f\xcc\ +\x08\x5e\x5a\x32\xb1\x9c\x66\x70\xa0\xf6\xe4\x0d\x6d\x62\xb8\x37\ +\xec\x26\x69\x57\x8b\x48\xdd\xd9\xfe\x25\x3a\x95\xcb\x35\xc2\x42\ +\x71\x90\x5c\x7c\x65\xb1\xb3\x7b\x63\x9b\x67\x37\x07\x51\xe1\xab\ +\x66\xad\xe1\xf2\x4a\x78\xc2\x97\xc6\x66\xab\xcf\xb9\x48\x72\x4d\ +\x54\xce\x3e\xb7\xf4\x6d\xee\x0f\xa8\x4d\x2c\x7a\xfe\x25\x73\x0d\ +\x4b\x13\xc9\x3b\x08\x07\x4e\x38\x54\xaa\xee\x47\x98\x06\xa7\x07\ +\xcf\x75\xff\x32\x1e\x76\xef\x6e\x07\x67\x17\x27\xdc\x00\x93\x24\ +\xea\x0a\x48\xc9\x2c\x78\x70\x33\x3b\x0b\x0d\xcf\x22\x08\x44\x61\ +\xf2\x6f\xb3\x09\x27\x2d\x4d\xd6\xb4\xbe\xfc\x1f\xbf\x8d\x2a\xc8\ +\xf5\xb0\x09\x25\x00\x00\x00\x00\x49\x45\x4e\x44\xae\x42\x60\x82\ +\ +" + +qt_resource_name = b"\ +\x00\x03\ +\x00\x00\x79\x93\ +\x00\x72\ +\x00\x73\x00\x63\ +\x00\x0a\ +\x0f\xab\xd4\x7f\ +\x00\x66\ +\x00\x61\x00\x76\x00\x69\x00\x63\x00\x6f\x00\x6e\x00\x5f\x00\x69\x00\x6f\ +\x00\x1a\ +\x04\x6e\x4d\x27\ +\x00\x56\ +\x00\x65\x00\x72\x00\x79\x00\x2d\x00\x42\x00\x61\x00\x73\x00\x69\x00\x63\x00\x2d\x00\x43\x00\x61\x00\x6e\x00\x63\x00\x65\x00\x6c\ +\x00\x2d\x00\x69\x00\x63\x00\x6f\x00\x6e\x00\x2e\x00\x70\x00\x6e\x00\x67\ +\x00\x0b\ +\x0a\xb8\x56\x7f\ +\x00\x66\ +\x00\x61\x00\x76\x00\x69\x00\x63\x00\x6f\x00\x6e\x00\x2e\x00\x69\x00\x63\x00\x6f\ +\x00\x1a\ +\x0f\x78\x0f\x27\ +\x00\x61\ +\x00\x6e\x00\x64\x00\x72\x00\x6f\x00\x69\x00\x64\x00\x2d\x00\x63\x00\x68\x00\x72\x00\x6f\x00\x6d\x00\x65\x00\x2d\x00\x31\x00\x39\ +\x00\x32\x00\x78\x00\x31\x00\x39\x00\x32\x00\x2e\x00\x70\x00\x6e\x00\x67\ +" + +qt_resource_struct_v1 = b"\ +\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\ +\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x02\ +\x00\x00\x00\x00\x00\x02\x00\x00\x00\x02\x00\x00\x00\x03\ +\x00\x00\x00\x26\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\ +\x00\x00\x00\x0c\x00\x02\x00\x00\x00\x02\x00\x00\x00\x05\ +\x00\x00\x00\x60\x00\x01\x00\x00\x00\x01\x00\x00\x07\xe1\ +\x00\x00\x00\x7c\x00\x00\x00\x00\x00\x01\x00\x00\x0f\x4e\ +" + +qt_resource_struct_v2 = b"\ +\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x01\ +\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x02\x00\x00\x00\x01\x00\x00\x00\x02\ +\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x00\x00\x02\x00\x00\x00\x02\x00\x00\x00\x03\ +\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x26\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\ +\x00\x00\x01\x74\xa2\xb8\xf7\x68\ +\x00\x00\x00\x0c\x00\x02\x00\x00\x00\x02\x00\x00\x00\x05\ +\x00\x00\x00\x00\x00\x00\x00\x00\ +\x00\x00\x00\x60\x00\x01\x00\x00\x00\x01\x00\x00\x07\xe1\ +\x00\x00\x01\x74\x9b\x6c\x15\x90\ +\x00\x00\x00\x7c\x00\x00\x00\x00\x00\x01\x00\x00\x0f\x4e\ +\x00\x00\x01\x74\x9b\x6c\x15\x90\ +" + +qt_version = [int(v) for v in QtCore.qVersion().split('.')] +if qt_version < [5, 8, 0]: + rcc_version = 1 + qt_resource_struct = qt_resource_struct_v1 +else: + rcc_version = 2 + qt_resource_struct = qt_resource_struct_v2 + +def qInitResources(): + QtCore.qRegisterResourceData(rcc_version, qt_resource_struct, qt_resource_name, qt_resource_data) + +def qCleanupResources(): + QtCore.qUnregisterResourceData(rcc_version, qt_resource_struct, qt_resource_name, qt_resource_data) + +qInitResources() diff --git a/tiny.db b/tiny.db new file mode 100644 index 0000000..3516df4 --- /dev/null +++ b/tiny.db @@ -0,0 +1,1335 @@ +{ + "Memory": { + "1": { + "hashname": "AK-47%20%7C%20Redline%20%28Field-Tested%29", + "lastupdated": "2020-09-13 16:44:07.837112", + "lowest_price": "13,08€", + "median_price": "12,95€", + "volume": "629" + }, + "10": { + "hashname": "Sticker | flamie | Cologne 2016", + "lastupdated": "2020-09-13 16:45:46.168332", + "lowest_price": "1,87€", + "median_price": "1,77€", + "volume": "3" + }, + "11": { + "hashname": "Sticker | pronax | Cluj-Napoca 2015", + "lastupdated": "2020-09-13 16:45:46.514664", + "lowest_price": "1,--€", + "median_price": "1,--€", + "volume": "2" + }, + "12": { + "hashname": "Sticker | shox | Cologne 2016", + "lastupdated": "2020-09-13 16:45:46.843958", + "lowest_price": "4,97€" + }, + "13": { + "hashname": "Sticker | Spartan", + "lastupdated": "2020-09-13 16:45:48.478282", + "lowest_price": "0,34€", + "median_price": "0,33€", + "volume": "201" + }, + "14": { + "hashname": "Sticker | DreamEaters (Holo) | Berlin 2019", + "lastupdated": "2020-09-13 16:45:49.038833", + "lowest_price": "0,69€", + "median_price": "0,64€", + "volume": "25" + }, + "15": { + "hashname": "Sticker | Cerberus", + "lastupdated": "2020-09-13 16:45:49.939049", + "lowest_price": "0,61€", + "median_price": "0,59€", + "volume": "19" + }, + "16": { + "hashname": "Sticker | Don't Worry, I'm Pro", + "lastupdated": "2020-09-13 16:45:50.191279", + "lowest_price": "0,86€", + "median_price": "0,87€", + "volume": "21" + }, + "17": { + "hashname": "Sticker | Luminosity Gaming | MLG Columbus 2016", + "lastupdated": "2020-09-13 16:45:50.700767", + "lowest_price": "2,25€", + "median_price": "2,39€", + "volume": "9" + }, + "18": { + "hashname": "Sticker | Flipsid3 Tactics | Cologne 2016", + "lastupdated": "2020-09-13 16:45:51.023107", + "lowest_price": "2,92€", + "median_price": "2,92€", + "volume": "1" + }, + "19": { + "hashname": "Sticker | Tamara", + "lastupdated": "2020-09-13 16:45:51.267330", + "lowest_price": "0,65€", + "median_price": "0,66€", + "volume": "142" + }, + "2": { + "hashname": "Sticker | Assassin", + "lastupdated": "2020-09-13 16:45:40.897422", + "lowest_price": "0,99€", + "median_price": "0,90€", + "volume": "173" + }, + "20": { + "hashname": "Sticker | Mastermind (Holo)", + "lastupdated": "2020-09-13 16:46:52.394444", + "lowest_price": "0,78€", + "median_price": "0,81€", + "volume": "509" + }, + "21": { + "hashname": "Sticker | Ninjas in Pyjamas | Cologne 2014", + "lastupdated": "2020-09-13 16:46:52.994335", + "lowest_price": "4,16€", + "median_price": "4,06€", + "volume": "6" + }, + "22": { + "hashname": "Sticker | Team EnVyUs | Katowice 2015", + "lastupdated": "2020-09-13 16:46:54.004209", + "lowest_price": "5,59€" + }, + "23": { + "hashname": "Sticker | ANGE1 (Foil) | Katowice 2019", + "lastupdated": "2020-09-13 16:46:54.266222", + "lowest_price": "1,46€", + "median_price": "1,20€", + "volume": "2" + }, + "24": { + "hashname": "Sticker | device | Katowice 2019", + "lastupdated": "2020-09-13 16:46:55.373237", + "lowest_price": "0,97€", + "median_price": "0,98€", + "volume": "14" + }, + "25": { + "hashname": "Sticker | shox | Boston 2018", + "lastupdated": "2020-09-13 16:46:56.402367", + "lowest_price": "0,72€", + "median_price": "0,73€", + "volume": "6" + }, + "26": { + "hashname": "Sticker | G2 Esports | Boston 2018", + "lastupdated": "2020-09-13 16:46:56.744696", + "lowest_price": "1,35€", + "median_price": "1,28€", + "volume": "22" + }, + "27": { + "hashname": "Sticker | Sherry", + "lastupdated": "2020-09-13 16:46:57.083026", + "lowest_price": "0,46€", + "median_price": "0,50€", + "volume": "137" + }, + "28": { + "hashname": "Sticker | apEX | Boston 2018", + "lastupdated": "2020-09-13 16:46:57.349373", + "lowest_price": "0,37€", + "median_price": "0,36€", + "volume": "6" + }, + "29": { + "hashname": "Sticker | Mister Chief", + "lastupdated": "2020-09-13 16:46:57.858943", + "lowest_price": "0,72€", + "median_price": "0,68€", + "volume": "205" + }, + "3": { + "hashname": "Sticker | Dirty Money", + "lastupdated": "2020-09-13 16:45:41.311806", + "lowest_price": "0,34€", + "median_price": "0,34€", + "volume": "185" + }, + "30": { + "hashname": "Sticker | Chief", + "lastupdated": "2020-09-13 16:46:58.129119", + "lowest_price": "0,25€", + "median_price": "0,23€", + "volume": "242" + }, + "31": { + "hashname": "Sticker | Chief (Holo)", + "lastupdated": "2020-09-13 16:46:58.380402", + "lowest_price": "0,61€", + "median_price": "0,61€", + "volume": "80" + }, + "32": { + "hashname": "Sticker | Chief (Foil)", + "lastupdated": "2020-09-13 16:46:58.644663", + "lowest_price": "1,--€", + "median_price": "1,--€", + "volume": "42" + }, + "33": { + "hashname": "Sticker | karrigan | Boston 2018", + "lastupdated": "2020-09-13 16:46:59.230496", + "lowest_price": "0,74€", + "median_price": "0,74€", + "volume": "3" + }, + "34": { + "hashname": "Sticker | fer | Cologne 2016", + "lastupdated": "2020-09-13 16:46:59.762548", + "lowest_price": "1,50€", + "median_price": "1,44€", + "volume": "1" + }, + "35": { + "hashname": "Sticker | Drug War Veteran", + "lastupdated": "2020-09-13 16:47:00.416199", + "lowest_price": "0,86€", + "median_price": "0,87€", + "volume": "355" + }, + "36": { + "hashname": "Sticker | Llama Cannon", + "lastupdated": "2020-09-13 16:47:00.684667", + "lowest_price": "0,76€", + "median_price": "0,77€", + "volume": "10" + }, + "37": { + "hashname": "Sticker | Aztec", + "lastupdated": "2020-09-13 16:47:02.124315", + "lowest_price": "0,20€", + "median_price": "0,20€", + "volume": "511" + }, + "38": { + "hashname": "Sticker | Silent Ninja (Foil)", + "lastupdated": "2020-09-13 16:47:02.702865", + "lowest_price": "1,20€", + "median_price": "1,01€", + "volume": "30" + }, + "39": { + "hashname": "Sticker | Cheongsam (Holo)", + "lastupdated": "2020-09-13 16:48:03.602507", + "lowest_price": "1,55€", + "median_price": "1,47€", + "volume": "114" + }, + "4": { + "hashname": "Sticker | shox (Foil) | Berlin 2019", + "lastupdated": "2020-09-13 16:45:41.606071", + "lowest_price": "0,96€", + "median_price": "0,90€", + "volume": "9" + }, + "40": { + "hashname": "Sticker | Jack", + "lastupdated": "2020-09-13 16:48:05.703734", + "lowest_price": "0,46€", + "median_price": "0,43€", + "volume": "62" + }, + "41": { + "hashname": "Sticker | Joan", + "lastupdated": "2020-09-13 16:48:05.991790", + "lowest_price": "0,37€", + "median_price": "0,32€", + "volume": "64" + }, + "42": { + "hashname": "Sticker | Max", + "lastupdated": "2020-09-13 16:48:06.402376", + "lowest_price": "0,37€", + "median_price": "0,37€", + "volume": "69" + }, + "43": { + "hashname": "Sticker | Boris", + "lastupdated": "2020-09-13 16:48:06.668293", + "lowest_price": "0,32€", + "median_price": "0,33€", + "volume": "70" + }, + "44": { + "hashname": "Sticker | Phoenix Reborn", + "lastupdated": "2020-09-13 16:48:07.730335", + "lowest_price": "0,77€", + "median_price": "0,72€", + "volume": "61" + }, + "45": { + "hashname": "Sticker | FaZe Clan | Berlin 2019", + "lastupdated": "2020-09-13 16:48:07.976560", + "lowest_price": "1,09€", + "median_price": "1,16€", + "volume": "89" + }, + "46": { + "hashname": "Sticker | Nuke Beast", + "lastupdated": "2020-09-13 16:48:08.460278", + "lowest_price": "0,25€", + "median_price": "0,23€", + "volume": "542" + }, + "47": { + "hashname": "Sticker | Master Guardian", + "lastupdated": "2020-09-13 16:48:08.742535", + "lowest_price": "0,23€", + "median_price": "0,22€", + "volume": "320" + }, + "48": { + "hashname": "Sticker | device | Berlin 2019", + "lastupdated": "2020-09-13 16:48:09.368105", + "lowest_price": "0,39€", + "median_price": "0,43€", + "volume": "125" + }, + "49": { + "hashname": "Sticker | HellRaisers | Atlanta 2017", + "lastupdated": "2020-09-13 16:48:11.023713", + "lowest_price": "3,29€", + "median_price": "3,31€", + "volume": "17" + }, + "5": { + "hashname": "Sticker | Distinguished Master Guardian", + "lastupdated": "2020-09-13 16:45:41.910487", + "lowest_price": "0,23€", + "median_price": "0,22€", + "volume": "313" + }, + "50": { + "hashname": "Sticker | Noble", + "lastupdated": "2020-09-13 16:48:12.055701", + "lowest_price": "0,40€", + "median_price": "0,42€", + "volume": "146" + }, + "51": { + "hashname": "Sticker | Space Marine", + "lastupdated": "2020-09-13 16:48:12.302937", + "lowest_price": "0,28€", + "median_price": "0,28€", + "volume": "34" + }, + "52": { + "hashname": "Sticker | Cloud9 | London 2018", + "lastupdated": "2020-09-13 16:48:16.106405", + "lowest_price": "2,18€", + "median_price": "2,10€", + "volume": "10" + }, + "53": { + "hashname": "Sticker | Astralis | Berlin 2019", + "lastupdated": "2020-09-13 16:48:16.631933", + "lowest_price": "0,96€", + "median_price": "0,97€", + "volume": "135" + }, + "54": { + "hashname": "Sticker | DreamEaters | Berlin 2019", + "lastupdated": "2020-09-13 16:48:17.600882", + "lowest_price": "0,38€", + "median_price": "0,38€", + "volume": "32" + }, + "55": { + "hashname": "Sticker | pita | Cologne 2016", + "lastupdated": "2020-09-13 16:48:18.235341", + "lowest_price": "5,13€" + }, + "56": { + "hashname": "Sticker | boltz (Foil) | Cologne 2015", + "lastupdated": "2020-09-13 16:48:18.610719", + "lowest_price": "4,89€", + "median_price": "4,86€", + "volume": "1" + }, + "57": { + "hashname": "Sticker | Welcome to the Clutch", + "lastupdated": "2020-09-13 16:48:18.873994", + "lowest_price": "2,13€", + "median_price": "2,03€", + "volume": "25" + }, + "58": { + "hashname": "Sticker | The Baiter", + "lastupdated": "2020-09-13 16:49:19.530650", + "lowest_price": "0,57€", + "median_price": "0,58€", + "volume": "28" + }, + "59": { + "hashname": "Sticker | NBK- | Cologne 2015", + "lastupdated": "2020-09-13 16:49:26.193008", + "lowest_price": "0,75€", + "median_price": "0,76€", + "volume": "5" + }, + "6": { + "hashname": "Sticker | Gnome Mercy", + "lastupdated": "2020-09-13 16:45:42.423159", + "lowest_price": "0,21€", + "median_price": "0,22€", + "volume": "372" + }, + "60": { + "hashname": "Sticker | Virtus.Pro | Krakow 2017", + "lastupdated": "2020-09-13 16:49:27.612463", + "lowest_price": "2,04€", + "median_price": "2,05€", + "volume": "19" + }, + "61": { + "hashname": "Sticker | olofmeister | Berlin 2019", + "lastupdated": "2020-09-13 16:49:29.168036", + "lowest_price": "0,23€", + "median_price": "0,23€", + "volume": "83" + }, + "62": { + "hashname": "Sticker | olofmeister | Katowice 2019", + "lastupdated": "2020-09-13 16:49:29.411256", + "lowest_price": "0,31€", + "median_price": "0,32€", + "volume": "16" + }, + "63": { + "hashname": "Sticker | Perfecto | Berlin 2019", + "lastupdated": "2020-09-13 16:49:29.658753", + "lowest_price": "0,30€", + "median_price": "0,30€", + "volume": "28" + }, + "64": { + "hashname": "Sticker | Global Elite", + "lastupdated": "2020-09-13 16:49:29.918990", + "lowest_price": "0,55€", + "median_price": "0,54€", + "volume": "280" + }, + "65": { + "hashname": "Sticker | EliGE | Cologne 2016", + "lastupdated": "2020-09-13 16:49:30.438643", + "lowest_price": "1,91€" + }, + "66": { + "hashname": "Sticker | Combine Helmet", + "lastupdated": "2020-09-13 16:49:30.976686", + "lowest_price": "0,24€", + "median_price": "0,23€", + "volume": "351" + }, + "67": { + "hashname": "Sticker | Lambda", + "lastupdated": "2020-09-13 16:49:31.233505", + "lowest_price": "0,49€", + "median_price": "0,51€", + "volume": "322" + }, + "68": { + "hashname": "Sticker | CS20 Classic (Holo)", + "lastupdated": "2020-09-13 16:49:31.786120", + "lowest_price": "0,66€", + "median_price": "0,66€", + "volume": "187" + }, + "69": { + "hashname": "Sticker | One Sting", + "lastupdated": "2020-09-13 16:49:32.166538", + "lowest_price": "0,34€", + "median_price": "0,31€", + "volume": "110" + }, + "7": { + "hashname": "Sticker | Headshot Guarantee", + "lastupdated": "2020-09-13 16:45:44.789393", + "lowest_price": "0,86€", + "median_price": "0,87€", + "volume": "26" + }, + "70": { + "hashname": "Sticker | The Guru", + "lastupdated": "2020-09-13 16:49:32.419771", + "lowest_price": "0,28€", + "median_price": "0,26€", + "volume": "91" + }, + "71": { + "hashname": "Sticker | kioShiMa | Cluj-Napoca 2015", + "lastupdated": "2020-09-13 16:49:32.671007", + "lowest_price": "0,81€", + "median_price": "0,61€", + "volume": "4" + }, + "72": { + "hashname": "Sticker | FaZe Clan | Cologne 2016", + "lastupdated": "2020-09-13 16:49:33.358686", + "lowest_price": "3,98€", + "median_price": "3,51€", + "volume": "8" + }, + "73": { + "hashname": "Sticker | Noble (Holo)", + "lastupdated": "2020-09-13 16:49:33.621061", + "lowest_price": "1,79€", + "median_price": "1,58€", + "volume": "83" + }, + "74": { + "hashname": "Sticker | Cluck", + "lastupdated": "2020-09-13 16:49:34.241709", + "lowest_price": "0,40€", + "median_price": "0,40€", + "volume": "123" + }, + "75": { + "hashname": "Sticker | loWel (Foil) | Berlin 2019", + "lastupdated": "2020-09-13 16:49:35.296787", + "lowest_price": "0,29€", + "median_price": "0,30€", + "volume": "121" + }, + "76": { + "hashname": "Sticker | qikert (Foil) | Berlin 2019", + "lastupdated": "2020-09-13 16:49:35.577059", + "lowest_price": "0,30€", + "median_price": "0,31€", + "volume": "16" + }, + "77": { + "hashname": "Sticker | Brehze (Foil) | Katowice 2019", + "lastupdated": "2020-09-13 16:50:36.225748", + "lowest_price": "2,95€", + "median_price": "2,48€", + "volume": "4" + }, + "78": { + "hashname": "Sticker | chopper | Krakow 2017", + "lastupdated": "2020-09-13 16:50:36.749249", + "lowest_price": "0,64€", + "median_price": "0,64€", + "volume": "3" + }, + "79": { + "hashname": "Sticker | Guardian Dragon", + "lastupdated": "2020-09-13 16:50:37.781588", + "lowest_price": "0,50€", + "median_price": "0,48€", + "volume": "48" + }, + "8": { + "hashname": "Sticker | Astralis | London 2018", + "lastupdated": "2020-09-13 16:45:45.316715", + "lowest_price": "1,18€", + "median_price": "1,21€", + "volume": "40" + }, + "80": { + "hashname": "Sticker | Guardian Dragon (Foil)", + "lastupdated": "2020-09-13 16:50:38.029836", + "lowest_price": "3,17€", + "median_price": "3,10€", + "volume": "18" + }, + "9": { + "hashname": "Sticker | fnx | Cologne 2016", + "lastupdated": "2020-09-13 16:45:45.856814", + "lowest_price": "2,39€" + } + }, + "Rate": {}, + "_default": { + "1": { + "hashname": "AK-47%20%7C%20Redline%20%28Field-Tested%29", + "lastupdated": "2020-09-14 22:41:44.830429", + "lowest_price": "13,54€", + "median_price": "13,27€", + "volume": "518" + }, + "10": { + "hashname": "Sticker | Astralis | London 2018", + "lastupdated": "2020-09-14 22:47:06.680411", + "lowest_price": "1,20€", + "median_price": "1,11€", + "volume": "19" + }, + "100": { + "hashname": "Sticker | FaZe Clan | London 2018", + "lastupdated": "2020-09-14 22:44:37.486480", + "lowest_price": "1,38€", + "median_price": "1,25€", + "volume": "12" + }, + "101": { + "hashname": "Sticker | Ivette", + "lastupdated": "2020-09-14 22:44:38.394353", + "lowest_price": "0,51€", + "median_price": "0,48€", + "volume": "97" + }, + "102": { + "hashname": "Sticker | G2 Esports | Atlanta 2017", + "lastupdated": "2020-09-14 22:44:41.038874", + "lowest_price": "4,31€", + "median_price": "3,96€", + "volume": "2" + }, + "103": { + "hashname": "Sticker | Assassin (Holo)", + "lastupdated": "2020-09-14 22:44:42.376412", + "lowest_price": "2,25€", + "median_price": "2,15€", + "volume": "69" + }, + "104": { + "hashname": "Sticker | Clutchman (Holo)", + "lastupdated": "2020-09-14 22:44:42.956878", + "lowest_price": "0,60€", + "median_price": "0,60€", + "volume": "175" + }, + "105": { + "hashname": "Sticker | Bish (Holo)", + "lastupdated": "2020-09-14 22:45:43.826009", + "lowest_price": "4,--€", + "median_price": "3,32€", + "volume": "9" + }, + "106": { + "hashname": "Sticker | Kimberly", + "lastupdated": "2020-09-14 22:45:44.706859", + "lowest_price": "0,51€", + "median_price": "0,49€", + "volume": "116" + }, + "107": { + "hashname": "Sticker | FalleN | Berlin 2019", + "lastupdated": "2020-09-14 22:45:47.561367", + "lowest_price": "0,46€", + "median_price": "0,46€", + "volume": "2,282" + }, + "108": { + "hashname": "Sticker | Fire in the Hole (Holo)", + "lastupdated": "2020-09-14 22:45:47.835293", + "lowest_price": "1,30€", + "median_price": "1,21€", + "volume": "173" + }, + "109": { + "hashname": "Sticker | The Ninja", + "lastupdated": "2020-09-14 22:45:56.197639", + "lowest_price": "0,76€", + "median_price": "0,78€", + "volume": "37" + }, + "11": { + "hashname": "Sticker | fnx | Cologne 2016", + "lastupdated": "2020-09-14 22:47:07.271627", + "lowest_price": "2,90€", + "median_price": "2,91€", + "volume": "7" + }, + "110": { + "hashname": "Sticker | Kawaii Killer Terrorist", + "lastupdated": "2020-09-14 22:45:56.761151", + "lowest_price": "0,84€", + "median_price": "0,87€", + "volume": "74" + }, + "111": { + "hashname": "Sticker | mousesports | Berlin 2019", + "lastupdated": "2020-09-14 22:46:58.204873", + "lowest_price": "0,86€", + "median_price": "0,83€", + "volume": "28" + }, + "112": { + "hashname": "Sticker | Gold Nova (Holo)", + "lastupdated": "2020-09-14 22:47:03.118012", + "lowest_price": "1,35€", + "median_price": "1,34€", + "volume": "78" + }, + "12": { + "hashname": "Sticker | flamie | Cologne 2016", + "lastupdated": "2020-09-14 22:47:07.525859", + "lowest_price": "1,87€", + "median_price": "1,87€", + "volume": "1" + }, + "13": { + "hashname": "Sticker | pronax | Cluj-Napoca 2015", + "lastupdated": "2020-09-14 22:47:07.801109", + "lowest_price": "1,--€", + "median_price": "0,80€", + "volume": "3" + }, + "14": { + "hashname": "Sticker | shox | Cologne 2016", + "lastupdated": "2020-09-14 22:47:08.113239", + "lowest_price": "4,85€" + }, + "15": { + "hashname": "Sticker | Spartan", + "lastupdated": "2020-09-13 17:06:06.404433", + "lowest_price": "0,34€", + "median_price": "0,33€", + "volume": "201" + }, + "16": { + "hashname": "Sticker | DreamEaters (Holo) | Berlin 2019", + "lastupdated": "2020-09-14 22:47:10.709215", + "lowest_price": "0,69€", + "median_price": "0,68€", + "volume": "30" + }, + "17": { + "hashname": "Sticker | Cerberus", + "lastupdated": "2020-09-13 17:06:07.961473", + "lowest_price": "0,64€", + "median_price": "0,59€", + "volume": "19" + }, + "18": { + "hashname": "Sticker | Don't Worry, I'm Pro", + "lastupdated": "2020-09-13 17:06:09.876817", + "lowest_price": "0,86€", + "median_price": "0,87€", + "volume": "21" + }, + "19": { + "hashname": "Sticker | Luminosity Gaming | MLG Columbus 2016", + "lastupdated": "2020-09-14 22:48:12.179340", + "lowest_price": "2,42€", + "median_price": "2,46€", + "volume": "17" + }, + "2": { + "hashname": "Sticker | Guardian Dragon", + "lastupdated": "2020-09-14 22:47:04.657679", + "lowest_price": "0,51€", + "median_price": "0,47€", + "volume": "38" + }, + "20": { + "hashname": "Sticker | Flipsid3 Tactics | Cologne 2016", + "lastupdated": "2020-09-14 22:48:12.471608", + "lowest_price": "2,92€", + "median_price": "2,34€", + "volume": "4" + }, + "21": { + "hashname": "Sticker | Tamara", + "lastupdated": "2020-09-14 22:45:56.478893", + "lowest_price": "0,64€", + "median_price": "0,64€", + "volume": "115" + }, + "22": { + "hashname": "Sticker | Mastermind (Holo)", + "lastupdated": "2020-09-14 22:48:13.339784", + "lowest_price": "0,76€", + "median_price": "0,77€", + "volume": "431" + }, + "23": { + "hashname": "Sticker | Ninjas in Pyjamas | Cologne 2014", + "lastupdated": "2020-09-14 22:43:19.459068", + "lowest_price": "4,10€", + "median_price": "4,--€", + "volume": "10" + }, + "24": { + "hashname": "Sticker | Team EnVyUs | Katowice 2015", + "lastupdated": "2020-09-14 22:43:20.023517", + "lowest_price": "6,07€", + "median_price": "6,28€", + "volume": "8" + }, + "25": { + "hashname": "Sticker | ANGE1 (Foil) | Katowice 2019", + "lastupdated": "2020-09-14 22:43:22.313611", + "lowest_price": "1,46€", + "median_price": "1,28€", + "volume": "1" + }, + "26": { + "hashname": "Sticker | device | Katowice 2019", + "lastupdated": "2020-09-13 17:07:13.306649", + "lowest_price": "0,97€", + "median_price": "0,98€", + "volume": "14" + }, + "27": { + "hashname": "Sticker | shox | Boston 2018", + "lastupdated": "2020-09-14 22:43:24.090742", + "lowest_price": "0,70€", + "median_price": "0,63€", + "volume": "1" + }, + "28": { + "hashname": "Sticker | G2 Esports | Boston 2018", + "lastupdated": "2020-09-14 22:43:24.362991", + "lowest_price": "1,33€", + "median_price": "0,97€", + "volume": "17" + }, + "29": { + "hashname": "Sticker | Sherry", + "lastupdated": "2020-09-14 22:43:24.626231", + "lowest_price": "0,50€", + "median_price": "0,45€", + "volume": "103" + }, + "3": { + "hashname": "Sticker | Guardian Dragon (Foil)", + "lastupdated": "2020-09-14 22:47:04.937471", + "lowest_price": "3,17€", + "median_price": "3,04€", + "volume": "11" + }, + "30": { + "hashname": "Sticker | apEX | Boston 2018", + "lastupdated": "2020-09-14 22:43:24.886467", + "lowest_price": "0,38€", + "median_price": "0,37€", + "volume": "4" + }, + "31": { + "hashname": "Sticker | fer | Cologne 2016", + "lastupdated": "2020-09-14 22:43:25.440973", + "lowest_price": "3,23€", + "median_price": "3,20€", + "volume": "26" + }, + "32": { + "hashname": "Sticker | byali | Cologne 2015", + "lastupdated": "2020-09-13 17:07:20.795823", + "lowest_price": "1,01€", + "median_price": "1,01€", + "volume": "6" + }, + "33": { + "hashname": "Sticker | Virtus.Pro | Cluj-Napoca 2015", + "lastupdated": "2020-09-13 17:07:21.083225", + "lowest_price": "2,21€", + "median_price": "2,21€", + "volume": "12" + }, + "34": { + "hashname": "Sticker | Merietta", + "lastupdated": "2020-09-13 17:07:21.358611", + "lowest_price": "0,36€", + "median_price": "0,31€", + "volume": "155" + }, + "35": { + "hashname": "Sticker | Aztec", + "lastupdated": "2020-09-14 22:45:51.251798", + "lowest_price": "0,19€", + "median_price": "0,22€", + "volume": "449" + }, + "36": { + "hashname": "Sticker | Silent Ninja (Foil)", + "lastupdated": "2020-09-13 17:07:22.330805", + "lowest_price": "1,20€", + "median_price": "1,01€", + "volume": "30" + }, + "37": { + "hashname": "Sticker | Cheongsam (Holo)", + "lastupdated": "2020-09-13 17:07:22.698179", + "lowest_price": "1,55€", + "median_price": "1,47€", + "volume": "114" + }, + "38": { + "hashname": "Sticker | Jack", + "lastupdated": "2020-09-13 17:07:23.592682", + "lowest_price": "0,46€", + "median_price": "0,43€", + "volume": "62" + }, + "39": { + "hashname": "Sticker | Joan", + "lastupdated": "2020-09-13 17:07:23.879091", + "lowest_price": "0,36€", + "median_price": "0,32€", + "volume": "64" + }, + "4": { + "hashname": "Sticker | Assassin", + "lastupdated": "2020-09-13 17:06:00.209854", + "lowest_price": "0,99€", + "median_price": "0,90€", + "volume": "173" + }, + "40": { + "hashname": "Sticker | Max", + "lastupdated": "2020-09-13 17:08:24.563559", + "lowest_price": "0,37€", + "median_price": "0,37€", + "volume": "69" + }, + "41": { + "hashname": "Sticker | Boris", + "lastupdated": "2020-09-13 17:08:24.850808", + "lowest_price": "0,32€", + "median_price": "0,33€", + "volume": "70" + }, + "42": { + "hashname": "Sticker | Phoenix Reborn", + "lastupdated": "2020-09-13 17:08:25.396315", + "lowest_price": "0,77€", + "median_price": "0,72€", + "volume": "61" + }, + "43": { + "hashname": "Sticker | FaZe Clan | Berlin 2019", + "lastupdated": "2020-09-13 17:08:25.670693", + "lowest_price": "1,16€", + "median_price": "1,16€", + "volume": "89" + }, + "44": { + "hashname": "Sticker | Nuke Beast", + "lastupdated": "2020-09-13 17:08:26.053024", + "lowest_price": "0,23€", + "median_price": "0,23€", + "volume": "542" + }, + "45": { + "hashname": "Sticker | Master Guardian", + "lastupdated": "2020-09-13 17:08:26.327310", + "lowest_price": "0,21€", + "median_price": "0,22€", + "volume": "320" + }, + "46": { + "hashname": "Sticker | device | Berlin 2019", + "lastupdated": "2020-09-13 17:08:26.766822", + "lowest_price": "0,39€", + "median_price": "0,43€", + "volume": "125" + }, + "47": { + "hashname": "Sticker | HellRaisers | Atlanta 2017", + "lastupdated": "2020-09-13 17:08:27.384729", + "lowest_price": "3,29€", + "median_price": "3,31€", + "volume": "17" + }, + "48": { + "hashname": "Sticker | Noble", + "lastupdated": "2020-09-14 22:45:45.560668", + "lowest_price": "0,41€", + "median_price": "0,42€", + "volume": "192" + }, + "49": { + "hashname": "Sticker | Chief (Foil)", + "lastupdated": "2020-09-14 22:43:27.056444", + "lowest_price": "1,--€", + "median_price": "1,--€", + "volume": "56" + }, + "5": { + "hashname": "Sticker | Dirty Money", + "lastupdated": "2020-09-13 17:06:02.507694", + "lowest_price": "0,34€", + "median_price": "0,34€", + "volume": "185" + }, + "50": { + "hashname": "Sticker | Space Marine", + "lastupdated": "2020-09-14 22:45:45.855468", + "lowest_price": "0,30€", + "median_price": "0,30€", + "volume": "39" + }, + "51": { + "hashname": "Sticker | Chief", + "lastupdated": "2020-09-14 22:43:26.287744", + "lowest_price": "0,24€", + "median_price": "0,23€", + "volume": "194" + }, + "52": { + "hashname": "Sticker | Cloud9 | London 2018", + "lastupdated": "2020-09-14 22:45:50.710697", + "lowest_price": "2,--€", + "median_price": "2,02€", + "volume": "11" + }, + "53": { + "hashname": "Sticker | Astralis | Berlin 2019", + "lastupdated": "2020-09-14 22:45:57.321227", + "lowest_price": "1,01€", + "median_price": "1,01€", + "volume": "202" + }, + "54": { + "hashname": "Sticker | DreamEaters | Berlin 2019", + "lastupdated": "2020-09-14 22:45:52.436246", + "lowest_price": "0,37€", + "median_price": "0,38€", + "volume": "47" + }, + "55": { + "hashname": "Sticker | pita | Cologne 2016", + "lastupdated": "2020-09-14 22:45:53.000280", + "lowest_price": "5,12€" + }, + "56": { + "hashname": "Sticker | boltz (Foil) | Cologne 2015", + "lastupdated": "2020-09-14 22:45:53.259838", + "lowest_price": "4,89€", + "median_price": "4,86€", + "volume": "1" + }, + "57": { + "hashname": "Sticker | Welcome to the Clutch", + "lastupdated": "2020-09-14 22:45:53.590368", + "lowest_price": "2,12€", + "median_price": "2,10€", + "volume": "18" + }, + "58": { + "hashname": "Sticker | The Baiter", + "lastupdated": "2020-09-14 22:45:53.898665", + "lowest_price": "0,50€", + "median_price": "0,36€", + "volume": "24" + }, + "59": { + "hashname": "Sticker | NBK- | Cologne 2015", + "lastupdated": "2020-09-14 22:44:41.790874", + "lowest_price": "0,75€", + "median_price": "0,56€", + "volume": "1" + }, + "6": { + "hashname": "Sticker | shox (Foil) | Berlin 2019", + "lastupdated": "2020-09-13 17:06:02.813879", + "lowest_price": "0,96€", + "median_price": "0,90€", + "volume": "9" + }, + "60": { + "hashname": "Sticker | Virtus.Pro | Krakow 2017", + "lastupdated": "2020-09-14 22:45:55.336921", + "lowest_price": "1,93€", + "median_price": "2,03€", + "volume": "13" + }, + "61": { + "hashname": "Sticker | EliGE | Cologne 2016", + "lastupdated": "2020-09-14 22:46:59.074341", + "lowest_price": "1,91€" + }, + "62": { + "hashname": "Sticker | olofmeister | Berlin 2019", + "lastupdated": "2020-09-13 17:09:34.732793", + "lowest_price": "0,23€", + "median_price": "0,23€", + "volume": "83" + }, + "63": { + "hashname": "Sticker | olofmeister | Katowice 2019", + "lastupdated": "2020-09-13 17:09:35.028069", + "lowest_price": "0,31€", + "median_price": "0,32€", + "volume": "16" + }, + "64": { + "hashname": "Sticker | Perfecto | Berlin 2019", + "lastupdated": "2020-09-13 17:09:35.316340", + "lowest_price": "0,30€", + "median_price": "0,30€", + "volume": "28" + }, + "65": { + "hashname": "Sticker | Global Elite", + "lastupdated": "2020-09-13 17:09:35.601645", + "lowest_price": "0,57€", + "median_price": "0,54€", + "volume": "280" + }, + "66": { + "hashname": "Sticker | Combine Helmet", + "lastupdated": "2020-09-14 22:44:33.043049", + "lowest_price": "0,24€", + "median_price": "0,22€", + "volume": "320" + }, + "67": { + "hashname": "Sticker | Lambda", + "lastupdated": "2020-09-14 22:46:59.680902", + "lowest_price": "0,50€", + "median_price": "0,49€", + "volume": "289" + }, + "68": { + "hashname": "Sticker | Cluck", + "lastupdated": "2020-09-14 22:47:01.374314", + "lowest_price": "0,38€", + "median_price": "0,43€", + "volume": "107" + }, + "69": { + "hashname": "Sticker | FaZe Clan | Cologne 2016", + "lastupdated": "2020-09-14 22:47:01.954391", + "lowest_price": "3,98€", + "median_price": "3,99€", + "volume": "9" + }, + "7": { + "hashname": "Sticker | Distinguished Master Guardian", + "lastupdated": "2020-09-13 17:06:03.116175", + "lowest_price": "0,23€", + "median_price": "0,22€", + "volume": "313" + }, + "70": { + "hashname": "Sticker | Noble (Holo)", + "lastupdated": "2020-09-14 22:47:02.262226", + "lowest_price": "1,63€", + "median_price": "1,53€", + "volume": "83" + }, + "71": { + "hashname": "Sticker | CS20 Classic (Holo)", + "lastupdated": "2020-09-14 22:45:44.407038", + "lowest_price": "0,63€", + "median_price": "0,62€", + "volume": "123" + }, + "72": { + "hashname": "Sticker | One Sting", + "lastupdated": "2020-09-14 22:47:00.549487", + "lowest_price": "0,32€", + "median_price": "0,33€", + "volume": "99" + }, + "73": { + "hashname": "Sticker | The Guru", + "lastupdated": "2020-09-14 22:44:34.536868", + "lowest_price": "0,30€", + "median_price": "0,30€", + "volume": "98" + }, + "74": { + "hashname": "Sticker | kioShiMa | Cluj-Napoca 2015", + "lastupdated": "2020-09-14 22:47:00.820949", + "lowest_price": "0,76€", + "median_price": "0,74€", + "volume": "2" + }, + "75": { + "hashname": "Sticker | loWel (Foil) | Berlin 2019", + "lastupdated": "2020-09-13 17:09:39.463422", + "lowest_price": "0,29€", + "median_price": "0,30€", + "volume": "121" + }, + "76": { + "hashname": "Sticker | qikert (Foil) | Berlin 2019", + "lastupdated": "2020-09-13 17:09:39.745817", + "lowest_price": "0,30€", + "median_price": "0,31€", + "volume": "16" + }, + "77": { + "hashname": "Sticker | Brehze (Foil) | Katowice 2019", + "lastupdated": "2020-09-13 17:09:40.014070", + "lowest_price": "2,95€", + "median_price": "2,48€", + "volume": "4" + }, + "78": { + "hashname": "Sticker | chopper | Krakow 2017", + "lastupdated": "2020-09-14 22:47:03.696202", + "lowest_price": "0,63€", + "median_price": "0,65€", + "volume": "3" + }, + "79": { + "hashname": "Sticker | rain (Foil) | Berlin 2019", + "lastupdated": "2020-09-13 17:10:41.427947", + "lowest_price": "1,10€", + "median_price": "1,11€", + "volume": "12" + }, + "8": { + "hashname": "Sticker | Gnome Mercy", + "lastupdated": "2020-09-14 22:47:06.104885", + "lowest_price": "0,20€", + "median_price": "0,21€", + "volume": "340" + }, + "80": { + "hashname": "Sticker | FaZe Clan | MLG Columbus 2016", + "lastupdated": "2020-09-13 17:10:41.752261", + "lowest_price": "1,84€", + "median_price": "1,86€", + "volume": "12" + }, + "81": { + "hashname": "Sticker | G2 Esports | Cologne 2016", + "lastupdated": "2020-09-13 17:10:42.096855", + "lowest_price": "3,70€", + "median_price": "3,95€", + "volume": "1" + }, + "82": { + "hashname": "Sticker | Mister Chief", + "lastupdated": "2020-09-14 22:43:26.007488", + "lowest_price": "0,73€", + "median_price": "0,74€", + "volume": "188" + }, + "83": { + "hashname": "Sticker | Chief (Holo)", + "lastupdated": "2020-09-14 22:43:26.725142", + "lowest_price": "0,60€", + "median_price": "0,61€", + "volume": "72" + }, + "84": { + "hashname": "Sticker | Drug War Veteran", + "lastupdated": "2020-09-14 22:43:27.678781", + "lowest_price": "0,84€", + "median_price": "0,87€", + "volume": "370" + }, + "85": { + "hashname": "Sticker | Llama Cannon", + "lastupdated": "2020-09-14 22:43:28.290549", + "lowest_price": "0,71€", + "median_price": "0,60€", + "volume": "15" + }, + "86": { + "hashname": "Sticker | Cloud9 | Katowice 2019", + "lastupdated": "2020-09-14 22:43:28.935136", + "lowest_price": "1,79€", + "median_price": "1,78€", + "volume": "29" + }, + "87": { + "hashname": "Sticker | Lucky 13", + "lastupdated": "2020-09-14 22:43:29.511661", + "lowest_price": "0,60€", + "median_price": "0,55€", + "volume": "8" + }, + "88": { + "hashname": "Sticker | Fearsome", + "lastupdated": "2020-09-14 22:43:29.803928", + "lowest_price": "1,--€", + "median_price": "1,02€", + "volume": "18" + }, + "89": { + "hashname": "Sticker | Aces High (Holo)", + "lastupdated": "2020-09-14 22:44:30.722200", + "lowest_price": "4,--€", + "median_price": "2,50€", + "volume": "16" + }, + "9": { + "hashname": "Sticker | Headshot Guarantee", + "lastupdated": "2020-09-14 22:43:27.972790", + "lowest_price": "0,86€", + "median_price": "0,87€", + "volume": "33" + }, + "90": { + "hashname": "Sticker | Fearsome (Holo)", + "lastupdated": "2020-09-14 22:44:31.446483", + "lowest_price": "2,01€", + "median_price": "1,95€", + "volume": "14" + }, + "91": { + "hashname": "Sticker | Cloud9 | Krakow 2017", + "lastupdated": "2020-09-14 22:44:32.195474", + "lowest_price": "1,97€", + "median_price": "1,47€", + "volume": "28" + }, + "92": { + "hashname": "Sticker | BnTeT | Berlin 2019", + "lastupdated": "2020-09-14 22:44:32.791306", + "lowest_price": "0,19€", + "median_price": "0,19€", + "volume": "19" + }, + "93": { + "hashname": "Sticker | stanislaw | London 2018", + "lastupdated": "2020-09-14 22:44:33.635107", + "lowest_price": "0,24€", + "median_price": "0,24€", + "volume": "7" + }, + "94": { + "hashname": "Sticker | Black Dog", + "lastupdated": "2020-09-14 22:44:34.251604", + "lowest_price": "0,96€", + "median_price": "0,81€", + "volume": "13" + }, + "95": { + "hashname": "Sticker | Vigilance", + "lastupdated": "2020-09-14 22:44:34.799117", + "lowest_price": "0,50€", + "median_price": "0,54€", + "volume": "10" + }, + "96": { + "hashname": "Sticker | Chicken Lover", + "lastupdated": "2020-09-14 22:44:35.076283", + "lowest_price": "0,39€", + "median_price": "0,40€", + "volume": "16" + }, + "97": { + "hashname": "Sticker | ropz | Berlin 2019", + "lastupdated": "2020-09-14 22:44:36.539618", + "lowest_price": "0,58€", + "median_price": "0,59€", + "volume": "21" + }, + "98": { + "hashname": "Sticker | gla1ve (Foil) | Berlin 2019", + "lastupdated": "2020-09-14 22:44:36.804860", + "lowest_price": "0,93€", + "median_price": "0,77€", + "volume": "78" + }, + "99": { + "hashname": "Sticker | Boost (Holo)", + "lastupdated": "2020-09-14 22:44:37.066096", + "lowest_price": "1,39€", + "median_price": "1,36€", + "volume": "171" + } + } +} \ No newline at end of file diff --git a/xtimer.py b/xtimer.py new file mode 100644 index 0000000..2068ce5 --- /dev/null +++ b/xtimer.py @@ -0,0 +1,9 @@ +import sys +from time import sleep + +msg = sys.argv[1] +time = int(sys.argv[2]) + +for i in reversed(range(0, time)): + print("{0} {1}".format(msg, i), end="\r") + sleep(1) \ No newline at end of file