Compare commits

...

17 Commits

Author SHA1 Message Date
ElEgEv
5fd49b30af Completed LabWork4. 2023-10-26 16:05:43 +04:00
ElEgEv
05a41ff145 Спасибо Коле и ребятам 2023-10-25 22:39:10 +04:00
ElEgEv
630cf8a4cd Ready. 2023-10-25 19:33:53 +04:00
ElEgEv
cc95ac9a66 Для отчёта 2023-10-13 00:48:08 +04:00
ElEgEv
89b63e0cd6 Сдал лабу, это пипец 2023-10-12 17:46:05 +04:00
ElEgEv
046f7619ba Офигеть, работает ;) 2023-10-12 12:26:41 +04:00
ElEgEv
f7c9a0b58b Таблица дополняется :) 2023-10-11 21:14:43 +04:00
ElEgEv
ec32341418 промежуточное 2023-10-11 21:05:27 +04:00
ElEgEv
13a8b21080 Начало 3-й лабораторной 2023-10-11 19:59:42 +04:00
ElEgEv
671161347e Lab work 2. 2023-09-28 20:48:51 +04:00
ElEgEv
55e6165fa0 Lab work 2. 2023-09-28 15:14:37 +04:00
ElEgEv
7b1862cfba . 2023-09-23 14:44:54 +04:00
ElEgEv
bf8c3fd34a Типо сделал, но вывод нулевых значений это зашквар. 2023-09-23 14:27:08 +04:00
ElEgEv
884f3a821d Support. 2023-09-14 22:10:09 +04:00
ElEgEv
f34f013b4a Остался вывод типов и приведение к ним. 2023-09-14 17:46:46 +04:00
ElEgEv
6ea1e6a43c Start dev. 2023-09-14 14:30:19 +04:00
ElEgEv
7e230168c7 Add database file. 2023-09-14 10:16:21 +04:00
20 changed files with 1611 additions and 1 deletions

16
.idea/csv-editor.xml Normal file
View File

@ -0,0 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="CsvFileAttributes">
<option name="attributeMap">
<map>
<entry key="\res\Stores.csv">
<value>
<Attribute>
<option name="separator" value="," />
</Attribute>
</value>
</entry>
</map>
</option>
</component>
</project>

View File

@ -1,5 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="Black">
<option name="sdkName" value="Python 3.11" />
</component>
<component name="ProjectRootManager" version="2" project-jdk-name="Python 3.11" project-jdk-type="Python SDK" />
<component name="PyCharmProfessionalAdvertiser">
<option name="shown" value="true" />

View File

@ -0,0 +1,36 @@
import pandas
import pandas as pd
def analysCustomersDataFrame(df: pandas.DataFrame):
df['Size'] = df['Store_Area'].apply(lambda x: 'Small' if x <= 1100 else ('Average' if 1100 < x <= 1800 else 'Big'))
table_one = df.query("Size == 'Small'").groupby('Size')
table_two = df.query("Size == 'Average'").groupby('Size')
table_three = df.query("Size == 'Big'").groupby('Size')
minMaxMean_one = table_one.agg({'Daily_Customer_Count': ['min', 'max', 'mean']}).round(2).reset_index()
minMaxMean_one.columns = minMaxMean_one.columns.droplevel()
minMaxMean_two = table_two.agg({'Daily_Customer_Count': ['min', 'max', 'mean']}).round(2).reset_index()
minMaxMean_two.columns = minMaxMean_two.columns.droplevel()
minMaxMean_three = table_three.agg({'Daily_Customer_Count': ['min', 'max', 'mean']}).round(2).reset_index()
minMaxMean_three.columns = minMaxMean_three.columns.droplevel()
df1 = pd.DataFrame()
df1['small'] = minMaxMean_one['min']
df1['average'] = minMaxMean_two['min']
df1['big'] = minMaxMean_three['min']
df2 = pd.DataFrame()
df2['small'] = minMaxMean_one['max']
df2['average'] = minMaxMean_two['max']
df2['big'] = minMaxMean_three['max']
df3 = pd.DataFrame()
df3['small'] = minMaxMean_one['mean']
df3['average'] = minMaxMean_two['mean']
df3['big'] = minMaxMean_three['mean']
totalTable = [df1, df2, df3]
return totalTable

38
LabWork01/AnalysSales.py Normal file
View File

@ -0,0 +1,38 @@
import pandas
import pandas as pd
def analysSalesDataFrame(df: pandas.DataFrame):
df['Size'] = df['Store_Area'].apply(lambda x: 'Small' if x <= 1100 else ('Average' if 1100 < x <= 1800 else 'Big'))
table_one = df.query("Size == 'Small'").groupby('Size')
table_two = df.query("Size == 'Average'").groupby('Size')
table_three = df.query("Size == 'Big'").groupby('Size')
minMaxMean_one = table_one.agg({'Store_Sales': ['min', 'max', 'mean']}).round(2).reset_index()
minMaxMean_one.columns = minMaxMean_one.columns.droplevel()
minMaxMean_two = table_two.agg({'Store_Sales': ['min', 'max', 'mean']}).round(2).reset_index()
minMaxMean_two.columns = minMaxMean_two.columns.droplevel()
minMaxMean_two = minMaxMean_two.iloc[:, 1:4]
minMaxMean_three = table_three.agg({'Store_Sales': ['min', 'max', 'mean']}).round(2).reset_index()
minMaxMean_three.columns = minMaxMean_three.columns.droplevel()
minMaxMean_three = minMaxMean_three.iloc[:, 1:4]
df1 = pd.DataFrame()
df1['small'] = minMaxMean_one['min']
df1['average'] = minMaxMean_two['min']
df1['big'] = minMaxMean_three['min']
df2 = pd.DataFrame()
df2['small'] = minMaxMean_one['max']
df2['average'] = minMaxMean_two['max']
df2['big'] = minMaxMean_three['max']
df3 = pd.DataFrame()
df3['small'] = minMaxMean_one['mean']
df3['average'] = minMaxMean_two['mean']
df3['big'] = minMaxMean_three['mean']
totalTable = [df1, df2, df3]
return totalTable

View File

@ -0,0 +1,38 @@
import pandas
import pandas as pd
def analysSalesCustomersDataFrame(df: pandas.DataFrame):
df['SaleCustomer'] = df['Daily_Customer_Count'].apply(lambda x: 'Small' if x <= 200 else ('Average' if 200 < x <= 800 else 'Big'))
table_one = df.query("SaleCustomer == 'Small'").groupby('SaleCustomer')
table_two = df.query("SaleCustomer == 'Average'").groupby('SaleCustomer')
table_three = df.query("SaleCustomer == 'Big'").groupby('SaleCustomer')
minMaxMean_one = table_one.agg({'Store_Sales': ['min', 'max', 'mean']}).round(2).reset_index()
minMaxMean_one.columns = minMaxMean_one.columns.droplevel()
minMaxMean_two = table_two.agg({'Store_Sales': ['min', 'max', 'mean']}).round(2).reset_index()
minMaxMean_two.columns = minMaxMean_two.columns.droplevel()
minMaxMean_two = minMaxMean_two.iloc[:, 1:4]
minMaxMean_three = table_three.agg({'Store_Sales': ['min', 'max', 'mean']}).round(2).reset_index()
minMaxMean_three.columns = minMaxMean_three.columns.droplevel()
minMaxMean_three = minMaxMean_three.iloc[:, 1:4]
df1 = pd.DataFrame()
df1['small'] = minMaxMean_one['min']
df1['average'] = minMaxMean_two['min']
df1['big'] = minMaxMean_three['min']
df2 = pd.DataFrame()
df2['small'] = minMaxMean_one['max']
df2['average'] = minMaxMean_two['max']
df2['big'] = minMaxMean_three['max']
df3 = pd.DataFrame()
df3['small'] = minMaxMean_one['mean']
df3['average'] = minMaxMean_two['mean']
df3['big'] = minMaxMean_three['mean']
totalTable = [df1, df2, df3]
return totalTable

View File

@ -0,0 +1,39 @@
import pandas
import pandas as pd
#или как analysDataFrame(df)->pandas.DataFrame:
def analysItemsDataFrame(df: pandas.DataFrame):
df['Size'] = df['Store_Area'].apply(lambda x: 'Small' if x <= 1100 else ('Average' if 1100 < x <= 1800 else 'Big'))
table_one = df.query("Size == 'Small'").groupby('Size')
table_two = df.query("Size == 'Average'").groupby('Size')
table_three = df.query("Size == 'Big'").groupby('Size')
minMaxMean_one = table_one.agg({'Items_Available': ['min', 'max', 'mean']}).round(2).reset_index()
minMaxMean_one.columns = minMaxMean_one.columns.droplevel()
minMaxMean_two = table_two.agg({'Items_Available': ['min', 'max', 'mean']}).round(2).reset_index()
minMaxMean_two.columns = minMaxMean_two.columns.droplevel()
minMaxMean_two = minMaxMean_two.iloc[:, 1:4]
minMaxMean_three = table_three.agg({'Items_Available': ['min', 'max', 'mean']}).round(2).reset_index()
minMaxMean_three.columns = minMaxMean_three.columns.droplevel()
minMaxMean_three = minMaxMean_three.iloc[:, 1:4]
df1 = pd.DataFrame()
df1['small'] = minMaxMean_one['min']
df1['average'] = minMaxMean_two['min']
df1['big'] = minMaxMean_three['min']
df2 = pd.DataFrame()
df2['small'] = minMaxMean_one['max']
df2['average'] = minMaxMean_two['max']
df2['big'] = minMaxMean_three['max']
df3 = pd.DataFrame()
df3['small'] = minMaxMean_one['mean']
df3['average'] = minMaxMean_two['mean']
df3['big'] = minMaxMean_three['mean']
totalTable = [df1, df2, df3]
return totalTable

6
LabWork01/FuncLoad.py Normal file
View File

@ -0,0 +1,6 @@
import pandas as pd
def createDataFrame():
df = pd.read_csv('../res/Stores.csv')
return df

View File

@ -0,0 +1,14 @@
import pandas
# создаём усовершенствованную таблицу
def addData(df: pandas.DataFrame):
# ищем 10% от кол-ва строк (-1 из-за строки заголовков)
additionForTable = int(len(df) / 10) - 1
# добавили 10% значений
for i in range(additionForTable):
df.loc[len(df.index)] = [df['Store_ID'].max().round(2) + 1, df['Store_Area'].mean().round(2), df['Items_Available'].mean().round(2),
df['Daily_Customer_Count'].mean().round(2), df['Store_Sales'].mean().round(2)]
return df

View File

@ -0,0 +1,21 @@
import os
import pandas as pd
import matplotlib
matplotlib.use('Agg')
import matplotlib.pyplot as plt
def createGraphics(df: list[pd.DataFrame], nameFile):
# для сохранения диаграммы в конкретной папке
script_dir = os.path.dirname(__file__)
results_dir = os.path.join(script_dir, '../static/')
if not os.path.isdir(results_dir):
os.makedirs(results_dir)
for i in range(len(df)):
dataFrame = df[i]
dataFrame.plot.bar()
plt.savefig(results_dir + nameFile + str(i) + '.jpg')
plt.close()
return True

View File

@ -0,0 +1,47 @@
import os
import numpy as np
import pandas as pd
import matplotlib
matplotlib.use('Agg')
import matplotlib.pyplot as plt
def createCusGraphics(df: pd.DataFrame, newDf: pd.DataFrame):
# для сохранения диаграммы в конкретной папке
script_dir = os.path.dirname(__file__)
results_dir = os.path.join(script_dir, '../static/')
if not os.path.isdir(results_dir):
os.makedirs(results_dir)
df.rename(columns={'small': 'small_1', 'average': 'average_1', 'big': 'big_1'}, inplace=True)
newDf.rename(columns={'small': 'small_2', 'average': 'average_2', 'big': 'big_2'}, inplace=True)
# Объединяем две группы в один DataFrame
merged_df = pd.concat([df, newDf], axis=1, ignore_index=False)
# Создаем массив с индексами для каждой компании
index = np.arange(len(merged_df))
print(merged_df)
# Задаем ширину каждого столбца
bar_width = 0.2
# Построение столбчатой гистограммы с увеличенным расстоянием между столбцами
plt.bar(index, merged_df['small_1'], bar_width, label='Min 1', color='b')
plt.bar(index + bar_width, merged_df['average_1'], bar_width, label='Mean 1', color='g')
plt.bar(index + 2 * bar_width, merged_df['big_1'], bar_width, label='Max 1', color='r')
plt.bar(index + 3 * bar_width, merged_df['small_2'], bar_width, label='Min 2', color='c')
plt.bar(index + 4 * bar_width, merged_df['average_2'], bar_width, label='Mean 2', color='m')
plt.bar(index + 5 * bar_width, merged_df['big_2'], bar_width, label='Max 2', color='y')
# Устанавливаем подписи на оси x
plt.xlabel('Company')
plt.ylabel('Valuation')
plt.title('Company Valuation Comparison')
plt.xticks(index + 2.5 * bar_width, merged_df.index)
# Добавляем легенду
plt.legend()
plt.savefig(results_dir + 'CustomJPG' + str(0) + '.jpg')
plt.close()
return True

View File

@ -0,0 +1,13 @@
import os
import glob
# функция для уудаления всех предыдущих png с графиками
def deleteAllPng():
script_dir = os.path.dirname(__file__)
results_dir = os.path.join(script_dir, 'images/*')
files = glob.glob(results_dir)
for f in files:
os.remove(f)
return True

View File

@ -0,0 +1,22 @@
import mmh3
from bitarray import bitarray
class BloomFilter(object):
def __init__(self, size, hash_count):
self.size = size
self.hash_count = hash_count
self.bit_array = bitarray(size)
self.bit_array.setall(0)
def add(self, item):
for seed in range(self.hash_count):
index = mmh3.hash(item, seed) % self.size
self.bit_array[index] = 1
def contains(self, item):
for seed in range(self.hash_count):
index = mmh3.hash(item, seed) % self.size
if self.bit_array[index] == 0:
return False
return True

View File

@ -0,0 +1,31 @@
from LabWork01.LabWork4.BloomFilter import BloomFilter
class SiteSearch:
def __init__(self):
self.filter: BloomFilter = BloomFilter(100000, 5)
self.keyword_urls: dict[str, list[str]] = {}
# для всех слов-ассоциаций проводим добавление в фильтр Блума и назначаем к каждому нужную ссылку на ресурс
def add(self, url: str, keywords: list[str]) -> None:
for keyword in keywords:
lowercase_string = keyword.lower()
self.filter.add(lowercase_string)
if lowercase_string not in self.keyword_urls:
self.keyword_urls[lowercase_string] = []
self.keyword_urls[lowercase_string].append(url)
# проводим поиск по слову-ключу в словаре
def find_url(self, keyword: str) -> list[str]:
lowercase_string = keyword.lower()
if self.filter.contains(lowercase_string):
return self.keyword_urls.get(lowercase_string)
else:
return []
# проверка на содержание слова-ключа в словаре
def contains(self, keyword: str) -> list[str]:
lowercase_string = keyword.lower()
if self.filter.contains(lowercase_string):
return True
else:
return False

189
LabWork01/LoadDB.py Normal file
View File

@ -0,0 +1,189 @@
import os
import secrets
from flask import Flask, redirect, url_for, request, render_template, session
from matplotlib import pyplot as plt
from LabWork01.AnalysCustomers import analysCustomersDataFrame
from LabWork01.AnalysSales import analysSalesDataFrame
from LabWork01.AnalysSalesCustomers import analysSalesCustomersDataFrame
from LabWork01.DataFrameAnalys import analysItemsDataFrame
from LabWork01.FuncLoad import createDataFrame
from LabWork01.LabWork3.AddData import addData
from LabWork01.LabWork3.CreateGraphics import createGraphics
from LabWork01.LabWork3.CustomGraphics import createCusGraphics
from LabWork01.LabWork3.DeletePng import deleteAllPng
from LabWork01.LabWork4.SiteSearch import SiteSearch
app = Flask(__name__)
# Для работы session
secret = secrets.token_urlsafe(32)
app.secret_key = secret
#сразу загружаем весь док, чтобы потом просто прыгать по нему
listShops = createDataFrame()
#список типов данных по столбцам
listTypes = listShops.dtypes.to_list()
#формируем записи о кол-ве пустых ячеек в каждом столбце
countNull = listShops.isnull().sum()
# для фильтра Блума
search_engine = SiteSearch()
search_engine.add("https://www.kaggle.com/datasets/ankanhore545/100-highest-valued-unicorns", ["Company", "Valuation", "Country", "State", "City", "Industries", "Founded Year", "Name of Founders", "Total Funding", "Number of Employees"])
search_engine.add("https://www.kaggle.com/datasets/ilyaryabov/tesla-insider-trading", ["Insider Trading", "Relationship", "Date", "Transaction", "Cost", "Shares", "Value", "Shares Total", "SEC Form 4"])
search_engine.add("https://www.kaggle.com/datasets/sameepvani/nasa-nearest-earth-objects", ["NASA", "est_diameter_min", "est_diameter_max", "relative_velocity", "miss_distance", "orbiting_body", "sentry_object", "absolute_magnitude", "hazardous"])
search_engine.add("https://www.kaggle.com/datasets/surajjha101/stores-area-and-sales-data", ["Store", "Area", "Available", "Daily", "Customer", "Sales"])
search_engine.add("https://www.kaggle.com/datasets/uciml/pima-indians-diabetes-database", ["Health", "Diabetes", "India"])
search_engine.add("https://www.kaggle.com/datasets/mirichoi0218/insurance", ["age", "sex", "bmi"])
search_engine.add("https://www.kaggle.com/datasets/muhammedtausif/world-population-by-countries", ["Country", "Population", "Continent", "Capital", "Yearly Change", "Land Area", "Fertility","Density"])
search_engine.add("https://www.kaggle.com/datasets/deepcontractor/car-price-prediction-challenge", ["car", "price", "manufacturer"])
search_engine.add("https://www.kaggle.com/datasets/surajjha101/forbes-billionaires-data-preprocessed", ["Name", "Networth", "Source"])
search_engine.add("https://www.kaggle.com/datasets/fedesoriano/stroke-prediction-dataset", [ "heart_disease" , "bmi", "stroke" ])
@app.route("/")
def home():
return render_template('main_page.html', context=[], main_img=[], image_names=[], tableAnalys=[], titles=[''], listTypes=listTypes, countNull=countNull, firstRow=1, secondRow=4, firstColumn=1, secondColumn=4)
@app.route("/showDiapason", methods=['GET','POST'])
def numtext():
data = request.args
#получаем срез и таблицы по введёным параметрам
newListShops = listShops.iloc[int(data['firstRow'])-1:int(data['secondRow']), int(data['firstColumn']):int(data['secondColumn'])+1]
_range = range(int(data['firstColumn']), int(data['secondColumn'])+1)
#список списков для шаблона
totalList = []
print(countNull[1])
#формирование 4-х списков для шаблонизатора
if 1 in _range:
listStoreArea = newListShops['Store_Area'].to_list()
totalList.append(listStoreArea)
if 2 in _range:
listItemsAvailable = newListShops['Items_Available'].to_list()
totalList.append(listItemsAvailable)
if 3 in _range:
listDailyCustomerCount = newListShops['Daily_Customer_Count'].to_list()
totalList.append(listDailyCustomerCount)
if 4 in _range:
listStoreSales = newListShops['Store_Sales'].to_list()
totalList.append(listStoreSales)
if int(data['firstRow']) and int(data['secondRow']) and int(data['firstColumn']) and int(data['secondColumn']):
return render_template('main_page.html', context=totalList, main_img=[], image_names=[], listTypes=listTypes, countNull=countNull,
firstColumn=int(data['firstColumn']), secondColumn=int(data['secondColumn']),
firstRow=int(data['firstRow']), secondRow=int(data['secondRow']))
return home()
#функция для проведения анализа данных
@app.route("/analysis", methods=['GET', 'POST'])
def analysis():
firstAnalys = analysItemsDataFrame(listShops)
secondAnalys = analysCustomersDataFrame(listShops)
thirdAnalys = analysSalesDataFrame(listShops)
fourthAnalys = analysSalesCustomersDataFrame(listShops)
# удаляем все текущие диаграммы
deleteAllPng()
# начинаем создавать диаграммы
createGraphics(firstAnalys, 'firstAn')
createGraphics(secondAnalys, 'secondAn')
createGraphics(thirdAnalys, 'thirdAn')
createGraphics(fourthAnalys, 'fourthAn')
# дополняем новыми значениями
additionListShops = addData(createDataFrame())
# получаем новые данные
newfirstAnalys = analysItemsDataFrame(additionListShops)
secondAnalys = analysCustomersDataFrame(additionListShops)
thirdAnalys = analysSalesDataFrame(additionListShops)
fourthAnalys = analysSalesCustomersDataFrame(additionListShops)
# создаём новые диаграммы
createGraphics(newfirstAnalys, 'addFirstAn')
createGraphics(secondAnalys, 'addSecondAn')
createGraphics(thirdAnalys, 'addThirdAn')
createGraphics(fourthAnalys, 'addFourthAn')
createCusGraphics(firstAnalys[0], newfirstAnalys[0])
image_names_start = ['firstAn0.jpg', 'firstAn1.jpg', 'firstAn2.jpg',
'secondAn0.jpg', 'secondAn1.jpg', 'secondAn2.jpg',
'thirdAn0.jpg', 'thirdAn1.jpg', 'thirdAn2.jpg',
'fourthAn0.jpg', 'fourthAn1.jpg', 'fourthAn2.jpg']
image_names_addition = ['addFirstAn0.jpg', 'addFirstAn1.jpg', 'addFirstAn2.jpg',
'addSecondAn0.jpg', 'addSecondAn1.jpg', 'addSecondAn2.jpg',
'addThirdAn0.jpg', 'addThirdAn1.jpg', 'addThirdAn2.jpg',
'addFourthAn0.jpg', 'addFourthAn1.jpg', 'addFourthAn2.jpg']
main_img = ['CustomJPG0.jpg']
result = listShops[['Store_Sales']]
# Строим boxplot с использованием Seaborn
plt.title('Valuation Boxplot by Store Sales')
plt.xlabel('Store Sales')
plt.boxplot(result['Store_Sales'])
script_dir = os.path.dirname(__file__)
results_dir = os.path.join(script_dir, 'static/')
plt.savefig(results_dir + 'NewCustomJPG' + str(0) + '.jpg')
newCustomJpg = ['NewCustomJPG0.jpg']
return render_template('main_page.html', context=[], image_names_start=image_names_start,
image_names_addition=image_names_addition,
tableAnalysOne=[],
tableAnalysTwo=[],
tableAnalysThree=[],
tableAnalysFour=[],
main_img=newCustomJpg,
titles=[''],
listTypes=listTypes, countNull=countNull, firstRow=1,
secondRow=4, firstColumn=1, secondColumn=4)
@app.route('/findURL', methods=['GET'])
def get_page_findURL():
return render_template('findURL.html', find=False, notFind=False)
@app.route('/findURL', methods=['POST'])
def findURL():
word = request.form["word"]
if (search_engine.contains(word)):
session["new_word"] = word
return render_template('findURL.html', find=True, notFind=False)
return render_template('findURL.html', find=False, notFind=True)
@app.route('/showFindLinks', methods=['POST'])
def get_page_showFindURL():
word = session.get("new_word", None)
links = search_engine.find_url(word)
word_links = []
for item in links:
word_links.append({item, word})
return render_template('showLinks.html', links=links)
if __name__=="__main__":
app.run(debug=True)

11
LabWork01/Shop.py Normal file
View File

@ -0,0 +1,11 @@
class Shop:
def __init__(self, store_area, items_available, daily_customer_count, store_sales):
self.store_area = store_area
self.items_available = items_available
self.daily_customer_count = daily_customer_count
self.store_sales = store_sales
def display_shop(self):
print('Площадь: {}. Кол-во товаров: {}. Кол-во посетителей в день: {}. '
'Кол-во покупок: {}'.format(self.store_area, self.items_available,
self.daily_customer_count, self.store_sales))

View File

@ -0,0 +1,41 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<link rel="stylesheet" type="text/css" href="{{ url_for( 'static', filename='index.css', v=1)}}">
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.2/dist/css/bootstrap.min.css" rel="stylesheet"
integrity="sha384-EVSTQN3/azprG1Anm3QDgpJLIm9Nao0Yz1ztcQTwFspd3yD65VohhpuuCOmLASjC" crossorigin="anonymous">
<title>Document</title>
</head>
<body>
<div class="container">
<form action="/findURL" method="post">
<div class="mb-5 mt-3">
<label class="form-label">Поиск</label>
<div class="row">
<div class="col" style="width: 100%">
<input type="text" name="word" placeholder="Слово">
</div>
<div class="col">
<input type=submit value='Вывод диапазона'>
</div>
</div>
</div>
</form>
<div class="">
{% if find: %}
<form action='/showFindLinks' method=post>
<input type=submit value='Показать результаты'>
</form>
{% endif %}
{% if notFind: %}
<h1>Смысла нет</h1>
{% endif %}
</div>
</div>
</body>
</html>

View File

@ -0,0 +1,129 @@
<!DOCTYPE html>
<html lang="ru">
<head>
<meta charset="UTF-8">
<title>Список магазинов</title>
<style>
.head {
background: #fc3;
border: 2px solid black;
padding: 20px;
}
</style>
</head>
<body>
<div>
<form action='http://127.0.0.1:5000/showDiapason' method=get>
<input type=text size=20 name=firstRow>
<input type=text size=20 name=secondRow>
<input type=text size=20 name=firstColumn>
<input type=text size=20 name=secondColumn>
<input type=submit value='Вывод диапазона'>
</form>
<form action='http://127.0.0.1:5000/analysis' method=get>
<input type=submit value='Анализ данных'>
</form>
<form action="/findURL" method="get">
<div class="mb-3">
<button type="submit" class="btn btn-primary mb-3">Запуск фильтра</button>
</div>
</form>
</div>
<div>
<table>
<tr>
{{ countNull }}
</tr>
<tr>
{% if firstColumn == 1 %}
<th class="head">Площадь магазина, кв. м, {{ listTypes[1] }}</th>
{% endif %}
{% if firstColumn <= 2 and secondColumn >= 2 %}
<th class="head">Кол-во продукции, шт, {{ listTypes[2] }}</th>
{% endif %}
{% if firstColumn <= 3 and secondColumn >= 3 %}
<th class="head">Кол-во посетителей в день, чел., {{ listTypes[3] }}</th>
{% endif %}
{% if secondColumn == 4 %}
<th class="head">Кол-во проданных товаров, шт., {{ listTypes[4] }}</th>
{% endif %}
</tr>
{% for i in range(secondRow - firstRow + 1) %}
<tr>
{% for elem in context %}
<td> {{ elem[i] }} </td>
{% endfor %}
</tr>
{% endfor %}
</table>
</div>
<div>
<h3>
Данные до дополнения:
</h3>
{% for image_name in image_names_start %}
<img src="{{ url_for('static', filename=image_name) }}" alt="{{ image_name }}">
{% endfor %}
</div>
<div>
<h3>
Данные после дополнения:
</h3>
{% for image_name in image_names_addition %}
<img src="{{ url_for('static', filename=image_name) }}" alt="{{ image_name }}">
{% endfor %}
</div>
<div>
<h3>
По заданию:
</h3>
{% for image_name in main_img %}
<img src="{{ url_for('static', filename=image_name) }}" alt="{{ image_name }}">
{% endfor %}
</div>
<div>
<h3>
Результаты первого анализа
</h3>
<h1>
{% for table in tableAnalysOne %}
<h2>{{ titles[loop.index] }}</h2>
{{ table|safe }}
{% endfor %}
</h1>
</div>
<div>
<h3>
Результаты второго анализа
</h3>
<h1>
{% for table in tableAnalysTwo %}
<h2>{{ titles[loop.index] }}</h2>
{{ table|safe }}
{% endfor %}
</h1>
</div>
<div>
<h3>
Результаты третьего анализа
</h3>
<h1>
{% for table in tableAnalysThree %}
<h2>{{ titles[loop.index] }}</h2>
{{ table|safe }}
{% endfor %}
</h1>
</div>
<div>
<h3>
Результаты четвёртого анализа
</h3>
<h1>
{% for table in tableAnalysFour %}
<h2>{{ titles[loop.index] }}</h2>
{{ table|safe }}
{% endfor %}
</h1>
</div>
</body>
</html>

View File

@ -0,0 +1,19 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Найденные ссылки</title>
</head>
<body>
<form action="/findURL" method="get">
<div class="mb-3">
<button type="submit" class="btn btn-primary mb-3">Вернуться к фильтру</button>
</div>
</form>
<div class="">
{% for link in links %}
<a href="{{ link }}">{{ link }}</a>
{% endfor %}
</div>
</body>
</html>

View File

@ -15,4 +15,4 @@ def numtext():
return num2words(data['name'], lang='ru')
if __name__=="__main__":
app.run(debug=False)
app.run(debug=True)

897
res/Stores.csv Normal file
View File

@ -0,0 +1,897 @@
Store_ID,Store_Area,Items_Available,Daily_Customer_Count,Store_Sales
1,1659,1961,530,66490
2,1461,1752,210,39820
3,1340,1609,720,54010
4,1451,1748,620,53730
5,1770,2111,450,46620
6,1442,1733,760,45260
7,1542,1858,1030,72240
8,1261,1507,1020,37720
9,1090,1321,680,46310
10,1030,1235,1130,44150
11,1187,1439,1090,71280
12,1751,2098,720,57620
13,1746,2064,1050,60470
14,1615,1931,1160,59130
15,1469,1756,770,66360
16,1644,1950,790,78870
17,1578,1907,1440,77250
18,1703,2045,670,38170
19,1438,1731,1030,63540
20,1940,2340,980,40190
21,1421,1700,370,43460
22,1458,1746,690,68890
23,1719,2065,950,52780
24,1449,1752,620,50680
25,1234,1488,840,41880
26,1732,2073,820,70050
27,1475,1777,1100,25820
28,1390,1648,980,60530
29,1642,1943,710,78100
30,1715,2071,650,84860
31,1439,1746,990,80140
32,1250,1508,990,14920
33,1331,1608,880,60460
34,1784,2163,620,74560
35,1375,1648,1020,72430
36,1871,2230,700,45460
37,1442,1744,610,41570
38,1174,1411,1080,62870
39,1839,2204,1010,55170
40,1270,1516,10,45480
41,1435,1725,1250,49550
42,965,1152,600,48140
43,1665,2001,730,67640
44,1780,2117,780,39730
45,1009,1194,520,35800
46,1227,1471,870,49270
47,1769,2087,690,66510
48,1660,1982,910,62530
49,1472,1776,1260,59980
50,1408,1688,1040,76350
51,1514,1820,910,81820
52,1565,1880,1300,57830
53,1074,1288,320,70450
54,1864,2240,530,67000
55,1570,1898,980,64090
56,1417,1701,740,48670
57,1734,2060,1240,66210
58,1470,1763,1080,83660
59,1761,2104,1080,70770
60,1756,2070,460,53870
61,1704,2045,300,71300
62,2011,2391,530,46100
63,1472,1748,600,49100
64,1310,1561,860,65920
65,1544,1821,590,58660
66,1707,2052,920,69130
67,1881,2262,570,49080
68,1416,1681,290,72710
69,1631,1941,650,33430
70,1318,1576,710,42430
71,1692,2019,850,56650
72,1152,1380,530,33580
73,891,1073,630,67370
74,1468,1749,700,71780
75,1539,1833,650,84840
76,1635,1956,720,82070
77,1267,1520,450,26770
78,1250,1475,1390,65560
79,1720,2044,960,38660
80,1462,1761,600,65660
81,1431,1711,620,40700
82,1539,1858,1020,88910
83,1441,1723,330,57860
84,1572,1884,1410,42670
85,1287,1525,1200,90180
86,1468,1760,280,51280
87,1931,2342,940,97260
88,1252,1506,850,39650
89,1238,1468,960,45720
90,1479,1758,420,42060
91,1590,1912,830,65350
92,2169,2617,600,67080
93,1838,2205,400,54030
94,1385,1655,760,56360
95,1921,2305,1470,77120
96,1975,2385,500,50810
97,1853,2235,1120,60960
98,1816,2171,1160,61180
99,1785,2147,820,63660
100,1579,1899,1140,41190
101,1096,1321,900,78420
102,1919,2294,760,65580
103,1262,1500,1170,89080
104,1374,1655,1080,94170
105,1309,1587,1000,50950
106,1207,1434,690,65180
107,1692,2031,810,69310
108,1929,2311,630,79210
109,1573,1878,650,23740
110,1415,1700,920,36330
111,1162,1382,1260,51700
112,1485,1787,800,62950
113,1897,2248,1330,56010
114,1607,1927,940,45080
115,1909,2287,1210,46830
116,1274,1503,660,64750
117,1157,1379,770,80780
118,1712,2046,460,31180
119,1500,1798,860,56710
120,1682,2017,780,49390
121,1441,1727,890,66000
122,1525,1835,900,32770
123,1408,1669,530,46580
124,1947,2333,790,79780
125,1164,1390,370,35510
126,1787,2137,610,80970
127,1871,2241,500,61150
128,1718,2051,750,49210
129,1365,1636,980,79950
130,1368,1654,530,68740
131,1342,1595,910,57480
132,1076,1270,620,72630
133,1396,1672,1170,50070
134,1713,2071,900,40490
135,1370,1638,980,51850
136,1667,1993,740,42840
137,1638,1972,810,60940
138,1581,1905,810,62280
139,1795,2187,300,76530
140,1179,1412,790,85130
141,1978,2374,800,48590
142,1688,2042,760,73080
143,1214,1456,530,48950
144,1504,1805,540,48560
145,1498,1770,620,59380
146,1462,1762,1010,51190
147,1442,1750,130,58920
148,1250,1486,730,50360
149,1229,1480,830,38070
150,1936,2300,1060,49170
151,1369,1629,770,39740
152,1662,1986,70,63730
153,1548,1855,670,85330
154,1649,1963,490,27410
155,1393,1663,670,37320
156,1450,1734,380,71120
157,1613,1921,1200,72800
158,1408,1696,350,34410
159,775,932,1090,42530
160,1275,1534,1230,54300
161,1740,2078,680,50780
162,1372,1657,580,45020
163,1414,1723,680,69600
164,2044,2474,340,80340
165,1823,2176,700,37810
166,955,1133,580,46140
167,1465,1763,680,99570
168,1331,1606,630,38650
169,1232,1487,860,49800
170,1481,1765,490,69910
171,1343,1599,870,44910
172,1539,1837,990,78470
173,1007,1207,670,47460
174,1762,2145,490,33460
175,1527,1832,580,44090
176,1356,1619,700,42620
177,1536,1848,670,69450
178,1605,1902,390,73120
179,1704,2032,590,48300
180,1626,1941,1350,58090
181,1612,1939,840,74250
182,1174,1396,1100,40930
183,1923,2339,950,70930
184,1702,2053,950,64670
185,1398,1692,650,77420
186,1437,1717,230,32330
187,1524,1796,1060,41080
188,1660,1985,1180,42860
189,1302,1569,710,68450
190,1666,2000,480,39730
191,1391,1649,810,83750
192,1778,2148,1140,69940
193,1462,1770,1070,67710
194,1751,2115,790,67360
195,1652,1982,690,52460
196,1841,2215,610,88760
197,1496,1791,1240,67030
198,1504,1827,840,78230
199,1524,1808,460,62270
200,1148,1371,940,49760
201,1468,1744,590,73660
202,1310,1558,890,72320
203,1321,1579,770,68890
204,992,1192,900,34180
205,1540,1857,1020,58260
206,1807,2149,910,38120
207,1526,1853,660,49070
208,1406,1677,480,61660
209,1703,2055,1080,37830
210,1575,1872,690,52270
211,1309,1572,510,52280
212,1488,1807,1030,70810
213,1658,1988,370,71530
214,1863,2245,640,77260
215,1458,1725,750,75550
216,1604,1909,370,33730
217,1575,1899,840,66270
218,1525,1829,840,55820
219,1451,1737,890,68430
220,1390,1687,620,73990
221,1442,1742,310,62800
222,1620,1922,550,33740
223,1251,1527,380,63830
224,1318,1606,1200,24410
225,1647,1962,800,70020
226,1829,2175,870,92240
227,1852,2227,1220,68230
228,1699,2053,1080,81870
229,1325,1595,540,73860
230,1350,1634,880,77120
231,1347,1628,120,72350
232,1397,1661,1410,49160
233,1245,1499,570,45650
234,1366,1649,940,52780
235,1378,1658,760,90960
236,1767,2110,1200,64950
237,1184,1434,670,47230
238,1257,1505,950,83250
239,1863,2247,480,51950
240,1881,2244,920,66030
241,1329,1609,1150,68590
242,1539,1848,750,47140
243,1557,1861,370,69940
244,2007,2397,610,65890
245,1185,1418,1150,89310
246,1657,2003,1070,58540
247,1294,1539,790,78130
248,1296,1559,1070,92300
249,1733,2097,730,56170
250,1641,1976,620,46050
251,1373,1648,530,43390
252,1550,1845,700,61750
253,1583,1907,680,21830
254,1428,1719,1060,39800
255,1604,1925,670,54370
256,1439,1735,400,62470
257,1648,2003,910,82930
258,1025,1231,760,63720
259,2001,2394,540,79180
260,1145,1370,350,38210
261,1174,1426,980,25950
262,913,1106,860,56610
263,1199,1433,1020,73710
264,1875,2254,1120,70400
265,1153,1397,1020,50440
266,1240,1492,940,66840
267,1381,1660,970,50170
268,1701,2030,830,60140
269,1206,1456,920,37130
270,1476,1777,660,42890
271,1189,1439,780,26220
272,1837,2220,340,50840
273,1319,1571,1190,25630
274,1617,1901,490,60770
275,1631,1967,1090,69600
276,1517,1805,1040,41740
277,1764,2109,1210,50130
278,1572,1869,1030,21750
279,1855,2197,1170,80490
280,1327,1571,730,34020
281,1270,1515,720,60240
282,1734,2073,500,39460
283,1533,1848,1070,56440
284,1390,1646,800,46840
285,1856,2216,1020,64820
286,1000,1215,1070,52520
287,1313,1586,420,45940
288,1494,1799,510,38970
289,1386,1674,1210,58610
290,1979,2364,660,30810
291,1057,1264,360,47730
292,902,1093,1210,64640
293,1347,1622,560,44860
294,1314,1576,360,55660
295,1513,1803,970,57530
296,1305,1548,480,75200
297,1180,1436,690,37330
298,1142,1352,710,35280
299,1471,1768,780,70610
300,1075,1288,630,49720
301,1578,1885,220,68850
302,1585,1916,1110,50740
303,1391,1648,720,77070
304,1577,1892,560,74730
305,1092,1314,600,76530
306,1375,1681,440,68900
307,1523,1813,520,44960
308,1373,1654,410,41490
309,1550,1871,590,74320
310,1614,1946,740,73800
311,1566,1889,610,56400
312,2019,2396,540,71570
313,1494,1806,1450,43640
314,1659,2008,620,35120
315,1766,2131,340,58670
316,1293,1554,970,75800
317,1375,1659,1080,76640
318,1236,1484,560,31890
319,1332,1586,630,61670
320,1513,1825,980,75950
321,1208,1459,930,41490
322,1190,1429,470,66170
323,1448,1734,680,37980
324,1771,2147,430,62710
325,1365,1645,830,60470
326,1510,1810,950,35230
327,1458,1736,870,48550
328,1808,2157,730,56810
329,1615,1954,760,41080
330,1640,1948,960,51270
331,1060,1273,860,57500
332,1633,1968,330,81470
333,1222,1473,630,49570
334,1619,1957,1280,45580
335,1624,1973,1440,44660
336,1887,2278,570,76240
337,1320,1583,540,43720
338,1450,1750,480,46700
339,1455,1764,390,84690
340,966,1172,900,85470
341,1922,2290,290,80410
342,1678,1999,740,46650
343,1638,1952,690,81840
344,1145,1375,950,63590
345,2004,2390,930,50130
346,1954,2378,810,45820
347,1577,1879,760,86710
348,1766,2138,580,49980
349,1362,1634,770,82940
350,1886,2228,1530,40350
351,1291,1546,420,93950
352,1584,1897,1210,47310
353,1397,1686,850,21300
354,1445,1709,1340,62180
355,1433,1707,1160,61460
356,1269,1511,500,54360
357,1798,2134,820,72050
358,1514,1822,670,48090
359,1015,1216,460,27310
360,1495,1799,950,57160
361,1759,2095,980,34190
362,1219,1468,850,35600
363,1571,1877,580,54670
364,1404,1670,620,76730
365,1124,1369,650,63540
366,1514,1837,1130,36690
367,1207,1476,720,87370
368,1484,1774,940,59800
369,1398,1678,920,48030
370,1769,2112,660,96650
371,1111,1322,610,65500
372,1078,1305,1190,55530
373,1876,2254,1340,21650
374,1909,2306,820,31940
375,1940,2343,1130,84690
376,1391,1683,890,68390
377,1496,1774,810,75490
378,1412,1699,680,39200
379,1121,1345,320,85670
380,1691,2026,700,60530
381,1599,1946,940,78090
382,1208,1467,910,50720
383,1454,1737,870,23090
384,1555,1881,1260,91360
385,1554,1852,440,48120
386,1491,1800,980,75620
387,1415,1697,1200,39420
388,1487,1801,890,51130
389,1339,1589,1050,33890
390,1320,1562,610,87170
391,1509,1799,960,38600
392,1406,1680,860,60980
393,1264,1502,800,79410
394,1905,2280,1060,82350
395,1209,1464,600,36740
396,1546,1829,380,27720
397,1689,2044,1140,32260
398,1153,1381,730,53270
399,2063,2493,810,51480
400,1848,2254,1000,59970
401,1718,2056,1220,83600
402,1480,1773,360,63020
403,1439,1724,900,50920
404,1576,1896,750,56450
405,1948,2374,930,89540
406,1613,1893,1180,46030
407,896,1059,870,75110
408,1625,1943,680,74520
409,1303,1587,1310,102310
410,1340,1605,1000,53400
411,1410,1704,1130,59760
412,1432,1719,990,49540
413,1891,2280,360,51560
414,1322,1583,720,49510
415,1378,1670,950,58610
416,1462,1732,840,68260
417,1440,1733,1120,65310
418,1421,1724,920,52090
419,1280,1530,1240,43860
420,1431,1710,840,74170
421,1161,1404,430,58380
422,1175,1405,810,91200
423,1395,1662,920,90940
424,1443,1755,880,49330
425,1247,1523,1350,53500
426,1788,2133,1000,54590
427,1138,1375,1220,57450
428,1709,2042,430,33240
429,1777,2145,520,80790
430,1612,1918,580,61000
431,1618,1943,460,47620
432,1311,1571,470,72090
433,1365,1638,680,102920
434,1249,1503,950,61970
435,1373,1635,840,61040
436,1536,1836,990,52060
437,1744,2101,520,69570
438,1513,1820,520,66020
439,1297,1561,1070,40000
440,1908,2304,990,79500
441,1721,2076,710,76300
442,1243,1491,430,69030
443,1472,1766,1290,57140
444,1307,1570,1080,41710
445,1628,1959,890,71480
446,1556,1869,1000,33010
447,1179,1428,1290,74570
448,1768,2123,860,49590
449,1378,1656,1010,73170
450,1685,2015,1160,79220
451,1474,1759,880,75880
452,1794,2137,670,67610
453,1086,1291,930,69090
454,1808,2154,990,35220
455,1501,1790,450,53940
456,1353,1598,690,56660
457,1455,1757,650,67520
458,1165,1411,1020,38620
459,1332,1610,880,38890
460,1396,1668,760,79270
461,1513,1821,690,42880
462,1618,1940,630,44240
463,1845,2233,370,43190
464,1172,1411,460,74550
465,1436,1737,770,57090
466,1738,2065,750,56480
467,2229,2667,660,87410
468,1490,1783,730,81370
469,1060,1279,670,97360
470,2015,2436,680,77960
471,1611,1919,960,71240
472,1187,1417,1230,58940
473,1430,1690,800,78950
474,1543,1840,450,36380
475,1836,2195,940,45160
476,1463,1764,1060,69050
477,1213,1462,560,56830
478,1244,1480,860,93530
479,1745,2108,730,46920
480,933,1121,940,55990
481,1764,2132,920,40840
482,1675,2002,1050,64990
483,1688,2046,380,53550
484,1842,2204,930,51320
485,1316,1597,980,36560
486,1440,1719,580,66050
487,1760,2111,680,52400
488,1323,1571,850,27970
489,1230,1466,730,67100
490,1540,1838,570,43710
491,1167,1388,620,38600
492,1429,1695,890,53890
493,1491,1770,800,52610
494,1313,1574,920,43130
495,1609,1943,920,40300
496,1109,1342,760,49750
497,1207,1440,500,43840
498,902,1087,680,56820
499,1191,1422,770,36350
500,1335,1601,460,50820
501,1382,1660,1070,83720
502,1588,1906,450,46970
503,1918,2284,310,78020
504,1484,1774,880,45080
505,1334,1607,370,55160
506,1556,1846,760,72020
507,1784,2142,950,64010
508,1244,1477,890,27840
509,1496,1787,800,58070
510,1719,2058,700,51760
511,1678,2022,1050,66050
512,1247,1490,330,65750
513,1191,1421,980,65820
514,1832,2208,1090,46760
515,1271,1523,1140,50940
516,1735,2084,820,56440
517,1627,1948,890,32610
518,1351,1616,650,62770
519,1520,1817,850,63600
520,1490,1788,360,45840
521,1777,2117,780,38280
522,1688,2037,590,50960
523,1537,1836,670,39480
524,1622,1968,340,69610
525,1148,1384,730,47800
526,1001,1194,1210,44890
527,1857,2236,1280,67420
528,1552,1869,710,78870
529,1700,2064,940,70310
530,1554,1844,670,38530
531,1482,1777,800,77570
532,1275,1517,790,59920
533,1642,1981,720,54450
534,1381,1633,1270,50250
535,1381,1634,930,30790
536,1057,1262,1490,35420
537,1192,1445,810,43470
538,1601,1920,600,61000
539,1622,1968,210,64780
540,1607,1909,460,39030
541,2214,2647,740,65900
542,1633,1936,1320,46050
543,1546,1845,760,59070
544,1475,1753,920,44670
545,1270,1519,920,58390
546,1185,1420,880,80370
547,1614,1938,1110,53230
548,1141,1353,1370,72000
549,1244,1481,410,84040
550,869,1050,850,52540
551,2049,2465,720,63510
552,1883,2262,570,42240
553,1526,1842,690,39580
554,1165,1390,1220,54610
555,1832,2185,840,87330
556,1723,2072,560,88410
557,932,1138,820,89760
558,1137,1374,700,101780
559,1231,1472,810,70290
560,1237,1512,1070,88210
561,1371,1650,540,87160
562,1767,2158,530,41540
563,1748,2092,580,49170
564,1212,1440,500,63950
565,1466,1743,1200,70810
566,1152,1386,980,49590
567,1439,1703,1000,67290
568,2026,2400,720,51240
569,1772,2146,1030,48540
570,1511,1822,420,72410
571,1199,1461,1070,54370
572,1834,2184,830,94460
573,1143,1375,940,85160
574,1494,1794,550,52130
575,1770,2131,1140,54650
576,1455,1747,750,69320
577,1141,1372,620,51480
578,1586,1886,660,50060
579,1701,2034,660,62180
580,1860,2246,410,79780
581,1167,1406,440,42860
582,1424,1716,630,54410
583,1710,2053,730,69390
584,1408,1708,220,42810
585,1517,1831,610,30840
586,1227,1476,720,56260
587,1609,1930,740,76470
588,1553,1831,740,35680
589,1814,2174,770,90070
590,1240,1493,590,33120
591,1206,1437,1330,54060
592,1847,2186,910,75120
593,1009,1202,330,41600
594,1624,1946,870,20270
595,1612,1931,790,60060
596,1498,1805,1270,82270
597,946,1125,590,29170
598,1563,1872,1080,68420
599,1664,2016,830,59130
600,1619,1947,910,74330
601,1433,1722,830,77080
602,1241,1489,1380,76250
603,1429,1720,1180,59540
604,1241,1488,770,54690
605,1078,1306,680,84360
606,1690,2065,910,51420
607,1289,1536,540,65120
608,1581,1894,760,49380
609,1608,1945,760,37830
610,1344,1608,730,35980
611,1513,1804,430,69190
612,1529,1839,1000,50590
613,1677,2014,660,60800
614,1015,1229,930,31180
615,1438,1751,760,77790
616,1426,1718,370,47570
617,1412,1701,630,69130
618,1622,1944,360,75970
619,1503,1791,630,68350
620,1501,1789,670,41680
621,1971,2342,690,86560
622,1383,1687,830,81390
623,1371,1635,720,50730
624,1508,1823,520,71290
625,1057,1284,750,70110
626,1411,1680,1070,61590
627,1466,1746,590,69370
628,1545,1888,600,67110
629,2044,2408,380,82020
630,1887,2264,830,62050
631,1505,1836,940,61730
632,1422,1722,560,58660
633,1564,1869,1030,53370
634,1510,1810,730,39700
635,1568,1920,890,53750
636,1933,2338,1140,44730
637,1501,1822,590,49350
638,1593,1911,580,43340
639,1812,2189,310,78090
640,1580,1895,720,54950
641,1440,1749,490,75530
642,1100,1331,1010,57330
643,1534,1841,680,87930
644,1299,1555,1020,56850
645,1767,2121,1050,78430
646,1368,1649,740,63660
647,1393,1670,410,62960
648,1327,1590,770,81870
649,1514,1794,1400,54820
650,1989,2414,860,116320
651,1334,1584,840,57200
652,1533,1817,950,84360
653,1809,2145,940,36530
654,1607,1933,930,81260
655,1165,1387,1060,82350
656,1193,1430,560,80830
657,1709,2065,670,30610
658,1525,1839,540,51310
659,1348,1623,1010,72940
660,1132,1366,1340,52450
661,1667,2020,980,66070
662,1427,1720,630,43190
663,1211,1447,1110,40730
664,1717,2048,700,78530
665,1766,2111,580,94690
666,1086,1299,1050,44400
667,1410,1692,790,73800
668,1476,1760,600,37390
669,1068,1278,440,64120
670,1485,1785,1340,66160
671,1461,1739,1250,22310
672,1685,2010,990,62380
673,1624,1958,290,63850
674,1658,2000,350,36210
675,1427,1677,210,54590
676,1755,2072,810,69610
677,1211,1472,790,65390
678,1591,1896,780,78130
679,1797,2126,730,55710
680,1519,1823,1040,69210
681,1637,1958,760,59940
682,1451,1750,570,72550
683,1203,1446,620,44260
684,1884,2262,310,56910
685,1540,1820,310,82390
686,1121,1332,790,54590
687,1307,1562,490,69990
688,1475,1775,230,72740
689,1160,1401,900,35360
690,1078,1276,640,94370
691,1191,1436,840,43520
692,1317,1569,780,36000
693,1548,1858,480,99480
694,1560,1883,1040,83220
695,1297,1529,870,52940
696,1645,1958,530,93360
697,1225,1455,750,73590
698,1421,1704,840,53840
699,1655,1956,800,47350
700,1615,1928,660,65080
701,1872,2262,560,62050
702,1317,1581,910,30020
703,1434,1729,480,49510
704,1791,2167,700,64320
705,932,1120,660,35590
706,1609,1924,1170,63050
707,1495,1793,1020,65300
708,1769,2153,580,69560
709,1693,2032,610,41910
710,1247,1497,590,28330
711,1502,1815,190,55980
712,1360,1612,490,61080
713,1542,1844,680,51380
714,1631,1947,670,84410
715,1246,1482,1070,60680
716,1990,2384,1110,64690
717,967,1154,560,45780
718,1582,1894,1100,41800
719,1430,1743,970,53230
720,1827,2160,930,36160
721,1118,1338,1040,40450
722,1766,2109,1120,57910
723,1799,2173,910,36280
724,1167,1411,440,39190
725,1493,1795,530,62380
726,1445,1734,900,21470
727,1033,1237,740,34610
728,1440,1711,1020,88120
729,1487,1773,970,59190
730,1854,2205,890,36290
731,1748,2086,550,53760
732,1937,2310,520,66300
733,1641,1999,950,93000
734,1659,1999,650,65660
735,1743,2061,860,81930
736,1449,1733,320,60060
737,1098,1309,860,59530
738,1121,1351,900,46380
739,1526,1858,550,76200
740,1358,1645,770,56860
741,1336,1616,710,86620
742,1502,1802,840,49730
743,1534,1858,860,88370
744,1418,1699,870,49160
745,854,1018,660,77740
746,1450,1728,930,38560
747,1474,1776,1020,51990
748,1524,1819,1190,39970
749,1361,1638,1140,46040
750,1398,1683,490,49500
751,1085,1308,1170,76670
752,1660,1979,480,75800
753,1648,2017,930,81720
754,1453,1749,890,58440
755,1323,1591,680,85720
756,1385,1643,740,70940
757,1250,1506,990,62420
758,1389,1683,680,56880
759,1486,1758,820,101820
760,1655,1993,440,86890
761,1645,1963,900,47300
762,1464,1771,1080,31270
763,1197,1428,830,65410
764,1878,2264,310,54200
765,1150,1378,730,67390
766,1562,1881,740,54530
767,1596,1939,960,79760
768,1119,1345,790,78060
769,1116,1347,700,74080
770,1934,2349,750,52990
771,1299,1540,590,70580
772,1417,1689,570,34310
773,1235,1503,660,74160
774,1497,1815,700,59190
775,1430,1704,1070,43370
776,1537,1877,660,17670
777,1444,1742,840,56710
778,1477,1798,850,59820
779,1041,1246,600,36190
780,1226,1472,710,60440
781,1489,1783,450,75300
782,1549,1871,740,74080
783,1073,1280,1240,60440
784,1473,1785,570,80720
785,2013,2396,580,47060
786,1975,2368,450,86830
787,1561,1877,790,56790
788,1427,1723,1040,67090
789,1441,1747,670,44370
790,1275,1548,370,82970
791,1574,1876,620,56230
792,1511,1791,1010,53760
793,1428,1713,550,55390
794,1388,1672,800,73500
795,1057,1280,610,41050
796,1440,1747,1090,67320
797,1349,1610,700,65890
798,1536,1808,830,56380
799,2019,2420,850,85670
800,1236,1508,1260,70830
801,1436,1715,1030,48180
802,1862,2248,1160,51910
803,1200,1442,880,44320
804,1360,1650,420,58940
805,1722,2078,770,73610
806,1577,1902,910,54060
807,1850,2214,1110,85000
808,1447,1730,510,49030
809,1496,1800,780,63300
810,1679,2008,790,84300
811,994,1194,1090,81390
812,1354,1635,1270,95900
813,1597,1918,1260,71830
814,1873,2252,330,79310
815,1218,1459,540,87890
816,1458,1746,720,48610
817,1546,1860,670,73160
818,1608,1962,770,36280
819,1822,2160,860,49720
820,1716,2038,410,44400
821,1072,1296,900,47590
822,1330,1604,480,51460
823,1588,1892,540,57750
824,1425,1733,760,66000
825,1778,2133,280,45950
826,1363,1630,1120,53900
827,1609,1928,160,37920
828,1671,2024,620,63100
829,1379,1636,440,36770
830,1218,1452,870,43910
831,1724,2101,900,66390
832,986,1179,710,59160
833,1330,1606,590,38510
834,1437,1725,910,46220
835,1327,1609,1320,41500
836,1651,2009,1000,58160
837,1211,1462,670,38530
838,1916,2277,610,55880
839,1638,1937,1050,70940
840,1172,1413,480,53940
841,1350,1606,770,43030
842,1528,1843,340,59820
843,1305,1557,580,55500
844,1463,1751,900,49990
845,1409,1727,700,42980
846,1419,1743,860,65970
847,1535,1819,540,59290
848,1474,1745,970,63020
849,919,1099,1560,73810
850,2067,2492,790,70230
851,1977,2362,1020,59950
852,1293,1558,790,78100
853,1477,1790,880,16370
854,1582,1906,550,92640
855,1481,1789,550,63540
856,1214,1455,950,87220
857,1206,1460,810,41990
858,1653,1982,390,79410
859,1152,1393,860,54380
860,1458,1757,850,58600
861,1249,1510,660,48950
862,1939,2333,830,40670
863,1591,1919,640,52340
864,1180,1397,750,39140
865,1846,2195,1170,41090
866,780,951,790,25600
867,1565,1854,900,100900
868,1648,1959,370,77080
869,1775,2104,980,105150
870,1439,1732,1170,80580
871,1487,1776,800,46230
872,1800,2158,1100,98260
873,1690,2024,1070,75930
874,1209,1452,830,52050
875,1859,2222,1210,87000
876,1691,2023,540,60270
877,1259,1493,100,88270
878,1771,2138,820,57820
879,1205,1468,1210,61210
880,1792,2131,810,76420
881,1263,1516,780,70980
882,1344,1605,1160,76740
883,1819,2187,590,47920
884,1357,1625,1140,52160
885,1396,1673,690,32740
886,1118,1337,560,72270
887,1655,1986,1150,77430
888,1156,1398,140,92370
889,1451,1734,670,34880
890,1539,1829,650,46580
891,1549,1851,1220,70620
892,1582,1910,1080,66390
893,1387,1663,850,82080
894,1200,1436,1060,76440
895,1299,1560,770,96610
896,1174,1429,1110,54340
1 Store_ID Store_Area Items_Available Daily_Customer_Count Store_Sales
2 1 1659 1961 530 66490
3 2 1461 1752 210 39820
4 3 1340 1609 720 54010
5 4 1451 1748 620 53730
6 5 1770 2111 450 46620
7 6 1442 1733 760 45260
8 7 1542 1858 1030 72240
9 8 1261 1507 1020 37720
10 9 1090 1321 680 46310
11 10 1030 1235 1130 44150
12 11 1187 1439 1090 71280
13 12 1751 2098 720 57620
14 13 1746 2064 1050 60470
15 14 1615 1931 1160 59130
16 15 1469 1756 770 66360
17 16 1644 1950 790 78870
18 17 1578 1907 1440 77250
19 18 1703 2045 670 38170
20 19 1438 1731 1030 63540
21 20 1940 2340 980 40190
22 21 1421 1700 370 43460
23 22 1458 1746 690 68890
24 23 1719 2065 950 52780
25 24 1449 1752 620 50680
26 25 1234 1488 840 41880
27 26 1732 2073 820 70050
28 27 1475 1777 1100 25820
29 28 1390 1648 980 60530
30 29 1642 1943 710 78100
31 30 1715 2071 650 84860
32 31 1439 1746 990 80140
33 32 1250 1508 990 14920
34 33 1331 1608 880 60460
35 34 1784 2163 620 74560
36 35 1375 1648 1020 72430
37 36 1871 2230 700 45460
38 37 1442 1744 610 41570
39 38 1174 1411 1080 62870
40 39 1839 2204 1010 55170
41 40 1270 1516 10 45480
42 41 1435 1725 1250 49550
43 42 965 1152 600 48140
44 43 1665 2001 730 67640
45 44 1780 2117 780 39730
46 45 1009 1194 520 35800
47 46 1227 1471 870 49270
48 47 1769 2087 690 66510
49 48 1660 1982 910 62530
50 49 1472 1776 1260 59980
51 50 1408 1688 1040 76350
52 51 1514 1820 910 81820
53 52 1565 1880 1300 57830
54 53 1074 1288 320 70450
55 54 1864 2240 530 67000
56 55 1570 1898 980 64090
57 56 1417 1701 740 48670
58 57 1734 2060 1240 66210
59 58 1470 1763 1080 83660
60 59 1761 2104 1080 70770
61 60 1756 2070 460 53870
62 61 1704 2045 300 71300
63 62 2011 2391 530 46100
64 63 1472 1748 600 49100
65 64 1310 1561 860 65920
66 65 1544 1821 590 58660
67 66 1707 2052 920 69130
68 67 1881 2262 570 49080
69 68 1416 1681 290 72710
70 69 1631 1941 650 33430
71 70 1318 1576 710 42430
72 71 1692 2019 850 56650
73 72 1152 1380 530 33580
74 73 891 1073 630 67370
75 74 1468 1749 700 71780
76 75 1539 1833 650 84840
77 76 1635 1956 720 82070
78 77 1267 1520 450 26770
79 78 1250 1475 1390 65560
80 79 1720 2044 960 38660
81 80 1462 1761 600 65660
82 81 1431 1711 620 40700
83 82 1539 1858 1020 88910
84 83 1441 1723 330 57860
85 84 1572 1884 1410 42670
86 85 1287 1525 1200 90180
87 86 1468 1760 280 51280
88 87 1931 2342 940 97260
89 88 1252 1506 850 39650
90 89 1238 1468 960 45720
91 90 1479 1758 420 42060
92 91 1590 1912 830 65350
93 92 2169 2617 600 67080
94 93 1838 2205 400 54030
95 94 1385 1655 760 56360
96 95 1921 2305 1470 77120
97 96 1975 2385 500 50810
98 97 1853 2235 1120 60960
99 98 1816 2171 1160 61180
100 99 1785 2147 820 63660
101 100 1579 1899 1140 41190
102 101 1096 1321 900 78420
103 102 1919 2294 760 65580
104 103 1262 1500 1170 89080
105 104 1374 1655 1080 94170
106 105 1309 1587 1000 50950
107 106 1207 1434 690 65180
108 107 1692 2031 810 69310
109 108 1929 2311 630 79210
110 109 1573 1878 650 23740
111 110 1415 1700 920 36330
112 111 1162 1382 1260 51700
113 112 1485 1787 800 62950
114 113 1897 2248 1330 56010
115 114 1607 1927 940 45080
116 115 1909 2287 1210 46830
117 116 1274 1503 660 64750
118 117 1157 1379 770 80780
119 118 1712 2046 460 31180
120 119 1500 1798 860 56710
121 120 1682 2017 780 49390
122 121 1441 1727 890 66000
123 122 1525 1835 900 32770
124 123 1408 1669 530 46580
125 124 1947 2333 790 79780
126 125 1164 1390 370 35510
127 126 1787 2137 610 80970
128 127 1871 2241 500 61150
129 128 1718 2051 750 49210
130 129 1365 1636 980 79950
131 130 1368 1654 530 68740
132 131 1342 1595 910 57480
133 132 1076 1270 620 72630
134 133 1396 1672 1170 50070
135 134 1713 2071 900 40490
136 135 1370 1638 980 51850
137 136 1667 1993 740 42840
138 137 1638 1972 810 60940
139 138 1581 1905 810 62280
140 139 1795 2187 300 76530
141 140 1179 1412 790 85130
142 141 1978 2374 800 48590
143 142 1688 2042 760 73080
144 143 1214 1456 530 48950
145 144 1504 1805 540 48560
146 145 1498 1770 620 59380
147 146 1462 1762 1010 51190
148 147 1442 1750 130 58920
149 148 1250 1486 730 50360
150 149 1229 1480 830 38070
151 150 1936 2300 1060 49170
152 151 1369 1629 770 39740
153 152 1662 1986 70 63730
154 153 1548 1855 670 85330
155 154 1649 1963 490 27410
156 155 1393 1663 670 37320
157 156 1450 1734 380 71120
158 157 1613 1921 1200 72800
159 158 1408 1696 350 34410
160 159 775 932 1090 42530
161 160 1275 1534 1230 54300
162 161 1740 2078 680 50780
163 162 1372 1657 580 45020
164 163 1414 1723 680 69600
165 164 2044 2474 340 80340
166 165 1823 2176 700 37810
167 166 955 1133 580 46140
168 167 1465 1763 680 99570
169 168 1331 1606 630 38650
170 169 1232 1487 860 49800
171 170 1481 1765 490 69910
172 171 1343 1599 870 44910
173 172 1539 1837 990 78470
174 173 1007 1207 670 47460
175 174 1762 2145 490 33460
176 175 1527 1832 580 44090
177 176 1356 1619 700 42620
178 177 1536 1848 670 69450
179 178 1605 1902 390 73120
180 179 1704 2032 590 48300
181 180 1626 1941 1350 58090
182 181 1612 1939 840 74250
183 182 1174 1396 1100 40930
184 183 1923 2339 950 70930
185 184 1702 2053 950 64670
186 185 1398 1692 650 77420
187 186 1437 1717 230 32330
188 187 1524 1796 1060 41080
189 188 1660 1985 1180 42860
190 189 1302 1569 710 68450
191 190 1666 2000 480 39730
192 191 1391 1649 810 83750
193 192 1778 2148 1140 69940
194 193 1462 1770 1070 67710
195 194 1751 2115 790 67360
196 195 1652 1982 690 52460
197 196 1841 2215 610 88760
198 197 1496 1791 1240 67030
199 198 1504 1827 840 78230
200 199 1524 1808 460 62270
201 200 1148 1371 940 49760
202 201 1468 1744 590 73660
203 202 1310 1558 890 72320
204 203 1321 1579 770 68890
205 204 992 1192 900 34180
206 205 1540 1857 1020 58260
207 206 1807 2149 910 38120
208 207 1526 1853 660 49070
209 208 1406 1677 480 61660
210 209 1703 2055 1080 37830
211 210 1575 1872 690 52270
212 211 1309 1572 510 52280
213 212 1488 1807 1030 70810
214 213 1658 1988 370 71530
215 214 1863 2245 640 77260
216 215 1458 1725 750 75550
217 216 1604 1909 370 33730
218 217 1575 1899 840 66270
219 218 1525 1829 840 55820
220 219 1451 1737 890 68430
221 220 1390 1687 620 73990
222 221 1442 1742 310 62800
223 222 1620 1922 550 33740
224 223 1251 1527 380 63830
225 224 1318 1606 1200 24410
226 225 1647 1962 800 70020
227 226 1829 2175 870 92240
228 227 1852 2227 1220 68230
229 228 1699 2053 1080 81870
230 229 1325 1595 540 73860
231 230 1350 1634 880 77120
232 231 1347 1628 120 72350
233 232 1397 1661 1410 49160
234 233 1245 1499 570 45650
235 234 1366 1649 940 52780
236 235 1378 1658 760 90960
237 236 1767 2110 1200 64950
238 237 1184 1434 670 47230
239 238 1257 1505 950 83250
240 239 1863 2247 480 51950
241 240 1881 2244 920 66030
242 241 1329 1609 1150 68590
243 242 1539 1848 750 47140
244 243 1557 1861 370 69940
245 244 2007 2397 610 65890
246 245 1185 1418 1150 89310
247 246 1657 2003 1070 58540
248 247 1294 1539 790 78130
249 248 1296 1559 1070 92300
250 249 1733 2097 730 56170
251 250 1641 1976 620 46050
252 251 1373 1648 530 43390
253 252 1550 1845 700 61750
254 253 1583 1907 680 21830
255 254 1428 1719 1060 39800
256 255 1604 1925 670 54370
257 256 1439 1735 400 62470
258 257 1648 2003 910 82930
259 258 1025 1231 760 63720
260 259 2001 2394 540 79180
261 260 1145 1370 350 38210
262 261 1174 1426 980 25950
263 262 913 1106 860 56610
264 263 1199 1433 1020 73710
265 264 1875 2254 1120 70400
266 265 1153 1397 1020 50440
267 266 1240 1492 940 66840
268 267 1381 1660 970 50170
269 268 1701 2030 830 60140
270 269 1206 1456 920 37130
271 270 1476 1777 660 42890
272 271 1189 1439 780 26220
273 272 1837 2220 340 50840
274 273 1319 1571 1190 25630
275 274 1617 1901 490 60770
276 275 1631 1967 1090 69600
277 276 1517 1805 1040 41740
278 277 1764 2109 1210 50130
279 278 1572 1869 1030 21750
280 279 1855 2197 1170 80490
281 280 1327 1571 730 34020
282 281 1270 1515 720 60240
283 282 1734 2073 500 39460
284 283 1533 1848 1070 56440
285 284 1390 1646 800 46840
286 285 1856 2216 1020 64820
287 286 1000 1215 1070 52520
288 287 1313 1586 420 45940
289 288 1494 1799 510 38970
290 289 1386 1674 1210 58610
291 290 1979 2364 660 30810
292 291 1057 1264 360 47730
293 292 902 1093 1210 64640
294 293 1347 1622 560 44860
295 294 1314 1576 360 55660
296 295 1513 1803 970 57530
297 296 1305 1548 480 75200
298 297 1180 1436 690 37330
299 298 1142 1352 710 35280
300 299 1471 1768 780 70610
301 300 1075 1288 630 49720
302 301 1578 1885 220 68850
303 302 1585 1916 1110 50740
304 303 1391 1648 720 77070
305 304 1577 1892 560 74730
306 305 1092 1314 600 76530
307 306 1375 1681 440 68900
308 307 1523 1813 520 44960
309 308 1373 1654 410 41490
310 309 1550 1871 590 74320
311 310 1614 1946 740 73800
312 311 1566 1889 610 56400
313 312 2019 2396 540 71570
314 313 1494 1806 1450 43640
315 314 1659 2008 620 35120
316 315 1766 2131 340 58670
317 316 1293 1554 970 75800
318 317 1375 1659 1080 76640
319 318 1236 1484 560 31890
320 319 1332 1586 630 61670
321 320 1513 1825 980 75950
322 321 1208 1459 930 41490
323 322 1190 1429 470 66170
324 323 1448 1734 680 37980
325 324 1771 2147 430 62710
326 325 1365 1645 830 60470
327 326 1510 1810 950 35230
328 327 1458 1736 870 48550
329 328 1808 2157 730 56810
330 329 1615 1954 760 41080
331 330 1640 1948 960 51270
332 331 1060 1273 860 57500
333 332 1633 1968 330 81470
334 333 1222 1473 630 49570
335 334 1619 1957 1280 45580
336 335 1624 1973 1440 44660
337 336 1887 2278 570 76240
338 337 1320 1583 540 43720
339 338 1450 1750 480 46700
340 339 1455 1764 390 84690
341 340 966 1172 900 85470
342 341 1922 2290 290 80410
343 342 1678 1999 740 46650
344 343 1638 1952 690 81840
345 344 1145 1375 950 63590
346 345 2004 2390 930 50130
347 346 1954 2378 810 45820
348 347 1577 1879 760 86710
349 348 1766 2138 580 49980
350 349 1362 1634 770 82940
351 350 1886 2228 1530 40350
352 351 1291 1546 420 93950
353 352 1584 1897 1210 47310
354 353 1397 1686 850 21300
355 354 1445 1709 1340 62180
356 355 1433 1707 1160 61460
357 356 1269 1511 500 54360
358 357 1798 2134 820 72050
359 358 1514 1822 670 48090
360 359 1015 1216 460 27310
361 360 1495 1799 950 57160
362 361 1759 2095 980 34190
363 362 1219 1468 850 35600
364 363 1571 1877 580 54670
365 364 1404 1670 620 76730
366 365 1124 1369 650 63540
367 366 1514 1837 1130 36690
368 367 1207 1476 720 87370
369 368 1484 1774 940 59800
370 369 1398 1678 920 48030
371 370 1769 2112 660 96650
372 371 1111 1322 610 65500
373 372 1078 1305 1190 55530
374 373 1876 2254 1340 21650
375 374 1909 2306 820 31940
376 375 1940 2343 1130 84690
377 376 1391 1683 890 68390
378 377 1496 1774 810 75490
379 378 1412 1699 680 39200
380 379 1121 1345 320 85670
381 380 1691 2026 700 60530
382 381 1599 1946 940 78090
383 382 1208 1467 910 50720
384 383 1454 1737 870 23090
385 384 1555 1881 1260 91360
386 385 1554 1852 440 48120
387 386 1491 1800 980 75620
388 387 1415 1697 1200 39420
389 388 1487 1801 890 51130
390 389 1339 1589 1050 33890
391 390 1320 1562 610 87170
392 391 1509 1799 960 38600
393 392 1406 1680 860 60980
394 393 1264 1502 800 79410
395 394 1905 2280 1060 82350
396 395 1209 1464 600 36740
397 396 1546 1829 380 27720
398 397 1689 2044 1140 32260
399 398 1153 1381 730 53270
400 399 2063 2493 810 51480
401 400 1848 2254 1000 59970
402 401 1718 2056 1220 83600
403 402 1480 1773 360 63020
404 403 1439 1724 900 50920
405 404 1576 1896 750 56450
406 405 1948 2374 930 89540
407 406 1613 1893 1180 46030
408 407 896 1059 870 75110
409 408 1625 1943 680 74520
410 409 1303 1587 1310 102310
411 410 1340 1605 1000 53400
412 411 1410 1704 1130 59760
413 412 1432 1719 990 49540
414 413 1891 2280 360 51560
415 414 1322 1583 720 49510
416 415 1378 1670 950 58610
417 416 1462 1732 840 68260
418 417 1440 1733 1120 65310
419 418 1421 1724 920 52090
420 419 1280 1530 1240 43860
421 420 1431 1710 840 74170
422 421 1161 1404 430 58380
423 422 1175 1405 810 91200
424 423 1395 1662 920 90940
425 424 1443 1755 880 49330
426 425 1247 1523 1350 53500
427 426 1788 2133 1000 54590
428 427 1138 1375 1220 57450
429 428 1709 2042 430 33240
430 429 1777 2145 520 80790
431 430 1612 1918 580 61000
432 431 1618 1943 460 47620
433 432 1311 1571 470 72090
434 433 1365 1638 680 102920
435 434 1249 1503 950 61970
436 435 1373 1635 840 61040
437 436 1536 1836 990 52060
438 437 1744 2101 520 69570
439 438 1513 1820 520 66020
440 439 1297 1561 1070 40000
441 440 1908 2304 990 79500
442 441 1721 2076 710 76300
443 442 1243 1491 430 69030
444 443 1472 1766 1290 57140
445 444 1307 1570 1080 41710
446 445 1628 1959 890 71480
447 446 1556 1869 1000 33010
448 447 1179 1428 1290 74570
449 448 1768 2123 860 49590
450 449 1378 1656 1010 73170
451 450 1685 2015 1160 79220
452 451 1474 1759 880 75880
453 452 1794 2137 670 67610
454 453 1086 1291 930 69090
455 454 1808 2154 990 35220
456 455 1501 1790 450 53940
457 456 1353 1598 690 56660
458 457 1455 1757 650 67520
459 458 1165 1411 1020 38620
460 459 1332 1610 880 38890
461 460 1396 1668 760 79270
462 461 1513 1821 690 42880
463 462 1618 1940 630 44240
464 463 1845 2233 370 43190
465 464 1172 1411 460 74550
466 465 1436 1737 770 57090
467 466 1738 2065 750 56480
468 467 2229 2667 660 87410
469 468 1490 1783 730 81370
470 469 1060 1279 670 97360
471 470 2015 2436 680 77960
472 471 1611 1919 960 71240
473 472 1187 1417 1230 58940
474 473 1430 1690 800 78950
475 474 1543 1840 450 36380
476 475 1836 2195 940 45160
477 476 1463 1764 1060 69050
478 477 1213 1462 560 56830
479 478 1244 1480 860 93530
480 479 1745 2108 730 46920
481 480 933 1121 940 55990
482 481 1764 2132 920 40840
483 482 1675 2002 1050 64990
484 483 1688 2046 380 53550
485 484 1842 2204 930 51320
486 485 1316 1597 980 36560
487 486 1440 1719 580 66050
488 487 1760 2111 680 52400
489 488 1323 1571 850 27970
490 489 1230 1466 730 67100
491 490 1540 1838 570 43710
492 491 1167 1388 620 38600
493 492 1429 1695 890 53890
494 493 1491 1770 800 52610
495 494 1313 1574 920 43130
496 495 1609 1943 920 40300
497 496 1109 1342 760 49750
498 497 1207 1440 500 43840
499 498 902 1087 680 56820
500 499 1191 1422 770 36350
501 500 1335 1601 460 50820
502 501 1382 1660 1070 83720
503 502 1588 1906 450 46970
504 503 1918 2284 310 78020
505 504 1484 1774 880 45080
506 505 1334 1607 370 55160
507 506 1556 1846 760 72020
508 507 1784 2142 950 64010
509 508 1244 1477 890 27840
510 509 1496 1787 800 58070
511 510 1719 2058 700 51760
512 511 1678 2022 1050 66050
513 512 1247 1490 330 65750
514 513 1191 1421 980 65820
515 514 1832 2208 1090 46760
516 515 1271 1523 1140 50940
517 516 1735 2084 820 56440
518 517 1627 1948 890 32610
519 518 1351 1616 650 62770
520 519 1520 1817 850 63600
521 520 1490 1788 360 45840
522 521 1777 2117 780 38280
523 522 1688 2037 590 50960
524 523 1537 1836 670 39480
525 524 1622 1968 340 69610
526 525 1148 1384 730 47800
527 526 1001 1194 1210 44890
528 527 1857 2236 1280 67420
529 528 1552 1869 710 78870
530 529 1700 2064 940 70310
531 530 1554 1844 670 38530
532 531 1482 1777 800 77570
533 532 1275 1517 790 59920
534 533 1642 1981 720 54450
535 534 1381 1633 1270 50250
536 535 1381 1634 930 30790
537 536 1057 1262 1490 35420
538 537 1192 1445 810 43470
539 538 1601 1920 600 61000
540 539 1622 1968 210 64780
541 540 1607 1909 460 39030
542 541 2214 2647 740 65900
543 542 1633 1936 1320 46050
544 543 1546 1845 760 59070
545 544 1475 1753 920 44670
546 545 1270 1519 920 58390
547 546 1185 1420 880 80370
548 547 1614 1938 1110 53230
549 548 1141 1353 1370 72000
550 549 1244 1481 410 84040
551 550 869 1050 850 52540
552 551 2049 2465 720 63510
553 552 1883 2262 570 42240
554 553 1526 1842 690 39580
555 554 1165 1390 1220 54610
556 555 1832 2185 840 87330
557 556 1723 2072 560 88410
558 557 932 1138 820 89760
559 558 1137 1374 700 101780
560 559 1231 1472 810 70290
561 560 1237 1512 1070 88210
562 561 1371 1650 540 87160
563 562 1767 2158 530 41540
564 563 1748 2092 580 49170
565 564 1212 1440 500 63950
566 565 1466 1743 1200 70810
567 566 1152 1386 980 49590
568 567 1439 1703 1000 67290
569 568 2026 2400 720 51240
570 569 1772 2146 1030 48540
571 570 1511 1822 420 72410
572 571 1199 1461 1070 54370
573 572 1834 2184 830 94460
574 573 1143 1375 940 85160
575 574 1494 1794 550 52130
576 575 1770 2131 1140 54650
577 576 1455 1747 750 69320
578 577 1141 1372 620 51480
579 578 1586 1886 660 50060
580 579 1701 2034 660 62180
581 580 1860 2246 410 79780
582 581 1167 1406 440 42860
583 582 1424 1716 630 54410
584 583 1710 2053 730 69390
585 584 1408 1708 220 42810
586 585 1517 1831 610 30840
587 586 1227 1476 720 56260
588 587 1609 1930 740 76470
589 588 1553 1831 740 35680
590 589 1814 2174 770 90070
591 590 1240 1493 590 33120
592 591 1206 1437 1330 54060
593 592 1847 2186 910 75120
594 593 1009 1202 330 41600
595 594 1624 1946 870 20270
596 595 1612 1931 790 60060
597 596 1498 1805 1270 82270
598 597 946 1125 590 29170
599 598 1563 1872 1080 68420
600 599 1664 2016 830 59130
601 600 1619 1947 910 74330
602 601 1433 1722 830 77080
603 602 1241 1489 1380 76250
604 603 1429 1720 1180 59540
605 604 1241 1488 770 54690
606 605 1078 1306 680 84360
607 606 1690 2065 910 51420
608 607 1289 1536 540 65120
609 608 1581 1894 760 49380
610 609 1608 1945 760 37830
611 610 1344 1608 730 35980
612 611 1513 1804 430 69190
613 612 1529 1839 1000 50590
614 613 1677 2014 660 60800
615 614 1015 1229 930 31180
616 615 1438 1751 760 77790
617 616 1426 1718 370 47570
618 617 1412 1701 630 69130
619 618 1622 1944 360 75970
620 619 1503 1791 630 68350
621 620 1501 1789 670 41680
622 621 1971 2342 690 86560
623 622 1383 1687 830 81390
624 623 1371 1635 720 50730
625 624 1508 1823 520 71290
626 625 1057 1284 750 70110
627 626 1411 1680 1070 61590
628 627 1466 1746 590 69370
629 628 1545 1888 600 67110
630 629 2044 2408 380 82020
631 630 1887 2264 830 62050
632 631 1505 1836 940 61730
633 632 1422 1722 560 58660
634 633 1564 1869 1030 53370
635 634 1510 1810 730 39700
636 635 1568 1920 890 53750
637 636 1933 2338 1140 44730
638 637 1501 1822 590 49350
639 638 1593 1911 580 43340
640 639 1812 2189 310 78090
641 640 1580 1895 720 54950
642 641 1440 1749 490 75530
643 642 1100 1331 1010 57330
644 643 1534 1841 680 87930
645 644 1299 1555 1020 56850
646 645 1767 2121 1050 78430
647 646 1368 1649 740 63660
648 647 1393 1670 410 62960
649 648 1327 1590 770 81870
650 649 1514 1794 1400 54820
651 650 1989 2414 860 116320
652 651 1334 1584 840 57200
653 652 1533 1817 950 84360
654 653 1809 2145 940 36530
655 654 1607 1933 930 81260
656 655 1165 1387 1060 82350
657 656 1193 1430 560 80830
658 657 1709 2065 670 30610
659 658 1525 1839 540 51310
660 659 1348 1623 1010 72940
661 660 1132 1366 1340 52450
662 661 1667 2020 980 66070
663 662 1427 1720 630 43190
664 663 1211 1447 1110 40730
665 664 1717 2048 700 78530
666 665 1766 2111 580 94690
667 666 1086 1299 1050 44400
668 667 1410 1692 790 73800
669 668 1476 1760 600 37390
670 669 1068 1278 440 64120
671 670 1485 1785 1340 66160
672 671 1461 1739 1250 22310
673 672 1685 2010 990 62380
674 673 1624 1958 290 63850
675 674 1658 2000 350 36210
676 675 1427 1677 210 54590
677 676 1755 2072 810 69610
678 677 1211 1472 790 65390
679 678 1591 1896 780 78130
680 679 1797 2126 730 55710
681 680 1519 1823 1040 69210
682 681 1637 1958 760 59940
683 682 1451 1750 570 72550
684 683 1203 1446 620 44260
685 684 1884 2262 310 56910
686 685 1540 1820 310 82390
687 686 1121 1332 790 54590
688 687 1307 1562 490 69990
689 688 1475 1775 230 72740
690 689 1160 1401 900 35360
691 690 1078 1276 640 94370
692 691 1191 1436 840 43520
693 692 1317 1569 780 36000
694 693 1548 1858 480 99480
695 694 1560 1883 1040 83220
696 695 1297 1529 870 52940
697 696 1645 1958 530 93360
698 697 1225 1455 750 73590
699 698 1421 1704 840 53840
700 699 1655 1956 800 47350
701 700 1615 1928 660 65080
702 701 1872 2262 560 62050
703 702 1317 1581 910 30020
704 703 1434 1729 480 49510
705 704 1791 2167 700 64320
706 705 932 1120 660 35590
707 706 1609 1924 1170 63050
708 707 1495 1793 1020 65300
709 708 1769 2153 580 69560
710 709 1693 2032 610 41910
711 710 1247 1497 590 28330
712 711 1502 1815 190 55980
713 712 1360 1612 490 61080
714 713 1542 1844 680 51380
715 714 1631 1947 670 84410
716 715 1246 1482 1070 60680
717 716 1990 2384 1110 64690
718 717 967 1154 560 45780
719 718 1582 1894 1100 41800
720 719 1430 1743 970 53230
721 720 1827 2160 930 36160
722 721 1118 1338 1040 40450
723 722 1766 2109 1120 57910
724 723 1799 2173 910 36280
725 724 1167 1411 440 39190
726 725 1493 1795 530 62380
727 726 1445 1734 900 21470
728 727 1033 1237 740 34610
729 728 1440 1711 1020 88120
730 729 1487 1773 970 59190
731 730 1854 2205 890 36290
732 731 1748 2086 550 53760
733 732 1937 2310 520 66300
734 733 1641 1999 950 93000
735 734 1659 1999 650 65660
736 735 1743 2061 860 81930
737 736 1449 1733 320 60060
738 737 1098 1309 860 59530
739 738 1121 1351 900 46380
740 739 1526 1858 550 76200
741 740 1358 1645 770 56860
742 741 1336 1616 710 86620
743 742 1502 1802 840 49730
744 743 1534 1858 860 88370
745 744 1418 1699 870 49160
746 745 854 1018 660 77740
747 746 1450 1728 930 38560
748 747 1474 1776 1020 51990
749 748 1524 1819 1190 39970
750 749 1361 1638 1140 46040
751 750 1398 1683 490 49500
752 751 1085 1308 1170 76670
753 752 1660 1979 480 75800
754 753 1648 2017 930 81720
755 754 1453 1749 890 58440
756 755 1323 1591 680 85720
757 756 1385 1643 740 70940
758 757 1250 1506 990 62420
759 758 1389 1683 680 56880
760 759 1486 1758 820 101820
761 760 1655 1993 440 86890
762 761 1645 1963 900 47300
763 762 1464 1771 1080 31270
764 763 1197 1428 830 65410
765 764 1878 2264 310 54200
766 765 1150 1378 730 67390
767 766 1562 1881 740 54530
768 767 1596 1939 960 79760
769 768 1119 1345 790 78060
770 769 1116 1347 700 74080
771 770 1934 2349 750 52990
772 771 1299 1540 590 70580
773 772 1417 1689 570 34310
774 773 1235 1503 660 74160
775 774 1497 1815 700 59190
776 775 1430 1704 1070 43370
777 776 1537 1877 660 17670
778 777 1444 1742 840 56710
779 778 1477 1798 850 59820
780 779 1041 1246 600 36190
781 780 1226 1472 710 60440
782 781 1489 1783 450 75300
783 782 1549 1871 740 74080
784 783 1073 1280 1240 60440
785 784 1473 1785 570 80720
786 785 2013 2396 580 47060
787 786 1975 2368 450 86830
788 787 1561 1877 790 56790
789 788 1427 1723 1040 67090
790 789 1441 1747 670 44370
791 790 1275 1548 370 82970
792 791 1574 1876 620 56230
793 792 1511 1791 1010 53760
794 793 1428 1713 550 55390
795 794 1388 1672 800 73500
796 795 1057 1280 610 41050
797 796 1440 1747 1090 67320
798 797 1349 1610 700 65890
799 798 1536 1808 830 56380
800 799 2019 2420 850 85670
801 800 1236 1508 1260 70830
802 801 1436 1715 1030 48180
803 802 1862 2248 1160 51910
804 803 1200 1442 880 44320
805 804 1360 1650 420 58940
806 805 1722 2078 770 73610
807 806 1577 1902 910 54060
808 807 1850 2214 1110 85000
809 808 1447 1730 510 49030
810 809 1496 1800 780 63300
811 810 1679 2008 790 84300
812 811 994 1194 1090 81390
813 812 1354 1635 1270 95900
814 813 1597 1918 1260 71830
815 814 1873 2252 330 79310
816 815 1218 1459 540 87890
817 816 1458 1746 720 48610
818 817 1546 1860 670 73160
819 818 1608 1962 770 36280
820 819 1822 2160 860 49720
821 820 1716 2038 410 44400
822 821 1072 1296 900 47590
823 822 1330 1604 480 51460
824 823 1588 1892 540 57750
825 824 1425 1733 760 66000
826 825 1778 2133 280 45950
827 826 1363 1630 1120 53900
828 827 1609 1928 160 37920
829 828 1671 2024 620 63100
830 829 1379 1636 440 36770
831 830 1218 1452 870 43910
832 831 1724 2101 900 66390
833 832 986 1179 710 59160
834 833 1330 1606 590 38510
835 834 1437 1725 910 46220
836 835 1327 1609 1320 41500
837 836 1651 2009 1000 58160
838 837 1211 1462 670 38530
839 838 1916 2277 610 55880
840 839 1638 1937 1050 70940
841 840 1172 1413 480 53940
842 841 1350 1606 770 43030
843 842 1528 1843 340 59820
844 843 1305 1557 580 55500
845 844 1463 1751 900 49990
846 845 1409 1727 700 42980
847 846 1419 1743 860 65970
848 847 1535 1819 540 59290
849 848 1474 1745 970 63020
850 849 919 1099 1560 73810
851 850 2067 2492 790 70230
852 851 1977 2362 1020 59950
853 852 1293 1558 790 78100
854 853 1477 1790 880 16370
855 854 1582 1906 550 92640
856 855 1481 1789 550 63540
857 856 1214 1455 950 87220
858 857 1206 1460 810 41990
859 858 1653 1982 390 79410
860 859 1152 1393 860 54380
861 860 1458 1757 850 58600
862 861 1249 1510 660 48950
863 862 1939 2333 830 40670
864 863 1591 1919 640 52340
865 864 1180 1397 750 39140
866 865 1846 2195 1170 41090
867 866 780 951 790 25600
868 867 1565 1854 900 100900
869 868 1648 1959 370 77080
870 869 1775 2104 980 105150
871 870 1439 1732 1170 80580
872 871 1487 1776 800 46230
873 872 1800 2158 1100 98260
874 873 1690 2024 1070 75930
875 874 1209 1452 830 52050
876 875 1859 2222 1210 87000
877 876 1691 2023 540 60270
878 877 1259 1493 100 88270
879 878 1771 2138 820 57820
880 879 1205 1468 1210 61210
881 880 1792 2131 810 76420
882 881 1263 1516 780 70980
883 882 1344 1605 1160 76740
884 883 1819 2187 590 47920
885 884 1357 1625 1140 52160
886 885 1396 1673 690 32740
887 886 1118 1337 560 72270
888 887 1655 1986 1150 77430
889 888 1156 1398 140 92370
890 889 1451 1734 670 34880
891 890 1539 1829 650 46580
892 891 1549 1851 1220 70620
893 892 1582 1910 1080 66390
894 893 1387 1663 850 82080
895 894 1200 1436 1060 76440
896 895 1299 1560 770 96610
897 896 1174 1429 1110 54340