diff --git a/.gitignore b/.gitignore index 17ba6b9..c70cb4e 100644 --- a/.gitignore +++ b/.gitignore @@ -19,6 +19,10 @@ *.tar.gz *.rar + +.idea +.vscode + # virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml hs_err_pid* /target/ diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml new file mode 100644 index 0000000..03d9549 --- /dev/null +++ b/.idea/inspectionProfiles/Project_Default.xml @@ -0,0 +1,6 @@ + + + + \ No newline at end of file diff --git a/build.bat b/build.bat new file mode 100644 index 0000000..8189874 --- /dev/null +++ b/build.bat @@ -0,0 +1 @@ +mvn clean package && java -jar ./target/anti-pattern-detection-app-2.0.0.war diff --git a/build.sh b/build.sh new file mode 100644 index 0000000..16d2671 --- /dev/null +++ b/build.sh @@ -0,0 +1,2 @@ +#!/bin/bash +mvn clean package && java -jar ./target/anti-pattern-detection-app-2.0.0.war diff --git a/db/spade-config.sql b/db/spade/spade-config.sql similarity index 100% rename from db/spade-config.sql rename to db/spade/spade-config.sql diff --git a/db/spade-views.sql b/db/spade/spade-views.sql similarity index 100% rename from db/spade-views.sql rename to db/spade/spade-views.sql diff --git a/db/spade.sql b/db/spade/spade.sql similarity index 100% rename from db/spade.sql rename to db/spade/spade.sql diff --git a/db/spade/spadeauth.sql b/db/spade/spadeauth.sql new file mode 100644 index 0000000..52ba670 Binary files /dev/null and b/db/spade/spadeauth.sql differ diff --git a/db/spawn/db.app_metadata_createTable.sql b/db/spawn/db.app_metadata_createTable.sql new file mode 100644 index 0000000..655f36f --- /dev/null +++ b/db/spawn/db.app_metadata_createTable.sql @@ -0,0 +1,67 @@ +if not exists (select * from sysobjects where name='app_metadata' and xtype='U') + + create table app_metadata ( + id int identity(1, 1), + appDataKey nvarchar(255), + appDataValue nvarchar(max) + ) + + go + +insert into app_metadata (appDataKey, appDataValue) + values + ('basics', N'[ + { + "version": "1.0.0", + "authors": [ + { + "name": "Ondřej Váně", + "email": "vaneo@students.zcu.cz" + } + ], + "description": "This application is used to detect presence of anti-patterns in project management tools data. Seven selected anti-patterns are implemented in this application." + }, + { + "version": "1.1.0", + "authors": [ + { + "name": "Ondřej Váně", + "email": "vaneo@students.zcu.cz" + } + ], + "description": "This application is used to detect presence of anti-patterns in project management tools data. Seven selected anti-patterns are implemented in this application." + }, + { + "version": "1.2.0", + "authors": [ + { + "name": "Petr Štěpánek", + "email": "petrs1@students.zcu.cz" + } + ], + "description": "This application is used to detect presence of anti-patterns in project management tools data. Ten selected anti-patterns are implemented in this application." + }, + { + "version": "2.0.0", + "authors": [ + { + "name": "Petr Štěpánek", + "email": "petrs1@students.zcu.cz" + }, + { + "name": "Petr Urban", + "email": "urbanp@students.zcu.cz" + }, + { + "name": "Jiří Trefil", + "email": "trefil@students.zcu.cz" + }, + { + "name": "Václav Hrabík", + "email": "hrabikv@students.zcu.cz" + } + ], + "description": "Experience the next evolution of our application with version 2.0.0, featuring a revamped infrastructure, three distinct apps, MS SQL Server integration, a comprehensive user provider system, and contract testing for enhanced reliability." + } + ]') + diff --git a/db/spawn/db.spawn_createUsersTable.sql b/db/spawn/db.spawn_createUsersTable.sql new file mode 100644 index 0000000..bcdcd96 --- /dev/null +++ b/db/spawn/db.spawn_createUsersTable.sql @@ -0,0 +1,8 @@ +if not exists (select * from sysobjects where name='users' and xtype='U') +create table users( + id int identity(1,1), + email nvarchar(255) not null, + name nvarchar(255) not null, + password varchar(255) not null, + PRIMARY KEY(id) +); \ No newline at end of file diff --git a/db/spawn/spade-configurations.sql b/db/spawn/spade-configurations.sql new file mode 100644 index 0000000..84d0c22 --- /dev/null +++ b/db/spawn/spade-configurations.sql @@ -0,0 +1,176 @@ +use [authspade]; +begin transaction create_enviroment +if not exists (select * from sysobjects where name='configurations' and xtype='U') +create table configurations ( + id int identity(1, 1), + configHash nvarchar(255), + config nvarchar(max) not null, + isDefault char(1) not null, + defaultConfigName nvarchar(255), + PRIMARY KEY(id) +); + +--rozkladova tabulka mapujici uzivatele a k nemu asociovane konfigurace +if not exists (select * from sysobjects where name='user_configurations' and xtype='U') +create table user_configurations ( + userId int not null, + configId int not null, + configurationName nvarchar(255) not null, + foreign key(userId) references users(id), + foreign key(configId) references configurations(id), + primary key(userId,configId) +) + +insert into configurations (config, isDefault, defaultConfigName) values ( + '{ + "configuration": [ + { + "antiPattern": "TooLongSprint", + "thresholds": [ + { + "thresholdName": "maxIterationLength", + "value": "21" + }, + { + "thresholdName": "maxNumberOfTooLongIterations", + "value": "0" + } + ] + }, + { + "antiPattern": "VaryingSprintLength", + "thresholds": [ + { + "thresholdName": "maxDaysDifference", + "value": "7" + }, + { + "thresholdName": "maxIterationChanged", + "value": "1" + } + ] + }, + { + "antiPattern": "BusinessAsUsual", + "thresholds": [ + { + "thresholdName": "divisionOfIterationsWithRetrospective", + "value": "66.66f" + }, + { + "thresholdName": "searchSubstringsWithRetrospective", + "value": "%retr%||%revi%||%week%scrum%" + } + ] + }, + { + "antiPattern": "SpecifyNothing", + "thresholds": [ + { + "thresholdName": "minNumberOfWikiPagesWithSpecification", + "value": "1" + }, + { + "thresholdName": "minNumberOfActivitiesWithSpecification", + "value": "1" + }, + { + "thresholdName": "minAvgLengthOfActivityDescription", + "value": "150" + }, + { + "thresholdName": "searchSubstringsWithProjectSpecification", + "value": "%dsp%||%specifikace%||%specification%||%vize%proj%||%vize%produ%" + } + ] + }, + { + "antiPattern": "RoadToNowhere", + "thresholds": [ + { + "thresholdName": "minNumberOfWikiPagesWithProjectPlan", + "value": "1" + }, + { + "thresholdName": "minNumberOfActivitiesWithProjectPlan", + "value": "1" + }, + { + "thresholdName": "searchSubstringsWithProjectPlan", + "value": "%pl�n projektu%||%project plan%||%plan project%||%projektov� pl�n%" + } + ] + }, + { + "antiPattern": "LongOrNonExistentFeedbackLoops", + "thresholds": [ + { + "thresholdName": "divisionOfIterationsWithFeedbackLoop", + "value": "50.00f" + }, + { + "thresholdName": "maxGapBetweenFeedbackLoopRate", + "value": "2f" + }, + { + "thresholdName": "searchSubstringsWithFeedbackLoop", + "value": "%sch�z%z�kazn�k%||%p�edveden�%z�kazn�k%||%z�kazn%demo%||%sch�z%zadavat%||%inform%sch�z%||%z�kazn%||%zadavatel%" + } + ] + }, + { + "antiPattern": "NinetyNinetyRule", + "thresholds": [ + { + "thresholdName": "maxDivisionRange", + "value": "1.25f" + }, + { + "thresholdName": "maxBadDivisionLimit", + "value": "2" + } + ] + }, + { + "antiPattern": "UnknownPoster", + "thresholds": [ + { + "thresholdName": "searchSubstringsInvalidNames", + "value": "%unknown%||%anonym%" + } + ] + }, + { + "antiPattern": "BystanderApathy", + "thresholds": [ + { + "thresholdName": "searchSubstringsInvalidContributors", + "value": "%dependabot%" + }, + { + "thresholdName": "maximumPercentageOfTasksWithoutTeamwork", + "value": "30f" + } + ] + }, + { + "antiPattern": "YetAnotherProgrammer", + "thresholds": [ + { + "thresholdName": "maxNumberOfNewContributors", + "value": "5" + }, + { + "thresholdName": "numberOfFirstMonthsWithoutDetection", + "value": "2" + } + ] + } + ] +}', + 'Y', 'default configuration' + + +) + +commit diff --git a/docker-compose.yml b/docker-compose.yml index e9bd620..677f8d0 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -16,19 +16,19 @@ services: - ./db/spade-config.sql:/usr/local/etc/spade-config.sql #service 2: definition of phpMyAdmin - phpmyadmin: - image: phpmyadmin/phpmyadmin:latest - container_name: my-php-myadmin - ports: - - "8082:80" - restart: always - depends_on: - - db - environment: - SPRING_DATASOURCE_USERNAME: - SPRING_DATASOURCE_PASSWORD: - volumes: - - ./uploads.ini:/usr/local/etc/php/conf.d/uploads.ini # add configuration due to max upload file size +# phpmyadmin: +# image: phpmyadmin/phpmyadmin:latest +# container_name: my-php-myadmin +# ports: +# - "8082:80" +# restart: always +# depends_on: +# - db +# environment: +# SPRING_DATASOURCE_USERNAME: +# SPRING_DATASOURCE_PASSWORD: +# volumes: +# - ./uploads.ini:/usr/local/etc/php/conf.d/uploads.ini # add configuration due to max upload file size #service 3: definition of your spring-boot app diff --git a/pom.xml b/pom.xml index 9a002fe..79c7729 100644 --- a/pom.xml +++ b/pom.xml @@ -11,23 +11,78 @@ cz.zcu.fav.kiv anti-pattern-detection-app - 1.2.0 + 2.0.0 war anti-pattern-detection-app - Basic web application for anti pattern detection + RESTful application for anti pattern detection + + + Petr Urban + urbanp@students.zcu.cz + + Fullstack developer + Team leader + + + + Jiří Trefil + trefil@students.zcu.cz + + Fullstack developer + + + + + Petr Štěpánek + petrs1@students.zcu.cz + + Frontend developer + Database plumber + + + + + Václav Hrabík + hrabikv@students.zcu.cz + + TESTER + Backend developer + + + + + 11 2.6.9 0.10.2 1.15.2 2.13.3 - 5.4.0 + 5.9.1 3.0.0-M7 + 3.0.3 - + + + + org.junit + junit-bom + 5.9.3 + pom + import + + + + + + org.projectlombok + lombok + 1.18.30 + provided + org.springframework.boot spring-boot-starter @@ -44,6 +99,11 @@ spring-boot-starter-web + + org.springframework.security + spring-security-web + + mysql mysql-connector-java @@ -92,22 +152,49 @@ ${com.fasterxml.jackson.core.version} + + + org.springframework.boot + spring-boot-starter-security + + + + org.apache.httpcomponents + httpclient + - org.junit.jupiter - junit-jupiter-api - ${org.junit.jupiter.version} + org.junit.platform + junit-platform-launcher test org.junit.jupiter junit-jupiter-engine - ${org.junit.jupiter.version} test + + org.junit.vintage + junit-vintage-engine + test + + + + org.mockito + mockito-inline + 3.4.6 + test + + + + + com.googlecode.json-simple + json-simple + 1.1.1 + @@ -123,7 +210,34 @@ test - + + org.springframework.security + spring-security-test + test + + + + + org.springframework.cloud + spring-cloud-starter-contract-verifier + 2.1.1.RELEASE + test + + + + + + com.microsoft.sqlserver + mssql-jdbc + 12.2.0.jre11 + + + com.google.code.gson + gson + 2.10.1 + + + @@ -148,6 +262,19 @@ ${org.apache.maven.plugins.version} + + org.springframework.cloud + spring-cloud-contract-maven-plugin + ${spring-cloud-contract.version} + true + + JUNIT5 + + cz.zcu.fav.kiv.antipatterndetectionapp.v2.controller.BaseTest + + + + diff --git a/spade-data.sql b/spade-data.sql new file mode 100644 index 0000000..97478b9 --- /dev/null +++ b/spade-data.sql @@ -0,0 +1,74990 @@ +-- phpMyAdmin SQL Dump +-- version 5.0.4deb2 +-- https://www.phpmyadmin.net/ +-- +-- Host: localhost +-- Generation Time: May 11, 2022 at 11:41 AM +-- Server version: 10.5.15-MariaDB-0+deb11u1 +-- PHP Version: 7.4.28 + +SET FOREIGN_KEY_CHECKS=0; +SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO"; +START TRANSACTION; + + +/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; +/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; +/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; +/*!40101 SET NAMES utf8mb4 */; + +-- +-- Database: `spade` +-- +USE `spade`; + +-- +-- Dumping data for table `activity` +-- + +INSERT INTO `activity` (`id`, `externalId`, `name`, `description`, `endDate`, `startDate`, `superProjectId`) VALUES +(1, '613', '5. Iterace', 'Nasazení a předání produktu', '2019-06-14', NULL, 1), +(2, '606', '4. Iterace', 'Rutinní vývoj zbytku produktu', '2019-06-03', NULL, 1), +(3, '581', '3. Iterace', 'Vytvořit první stabilní použitelnou verzi produktu', '2019-05-06', NULL, 1), +(4, '580', '2. Iterace', 'Analyzovat a popsat důležité požadavky, stanovit podle nich architekturu. Začátek programování webu.', '2019-04-15', NULL, 1), +(5, '577', '1. Iterace', 'Pochopení cíle projektu a potřeb zákazníka', '2019-03-25', NULL, 1), +(6, '587', 'Iterace 0', 'Nultá iterace - inicializace procesu vývoje', '2019-03-25', NULL, 2), +(7, '588', 'Iterace 2', 'Iterace s vývojem časové osy', '2019-04-22', NULL, 2), +(8, '586', 'Iterace 1', 'První iterace s vývojem', '2019-04-08', NULL, 2), +(9, '600', 'Iterace 3', 'časová osa + initial elimination', '2019-05-06', NULL, 2), +(10, '603', 'Iterace 4', '', '2019-05-20', NULL, 2), +(11, '607', 'Iterace 5', '', '2019-05-31', NULL, 2), +(12, '611', 'Iterace 6', 'finalizace', '2019-06-09', NULL, 2), +(13, '610', 'Backlog', '', NULL, NULL, 3), +(14, '608', '5. iterace', '', NULL, NULL, 3), +(15, '602', '3. iterace', 'Vývoj', '2019-05-09', NULL, 3), +(16, '604', '4. iterace', 'Dokončení implementace', '2019-05-24', NULL, 3), +(17, '584', '2. iterace', 'Finalizovaná specifikace a zahájení vývoje.', '2019-04-26', NULL, 3), +(18, '578', '1. iterace', 'Vytvoření specifikace požadavků', NULL, NULL, 3), +(19, '612', '6. iterace', '', '2019-06-03', NULL, 3), +(20, '609', '6.iterace', 'Dokončení projektu', '2019-06-07', NULL, 4), +(21, '605', '5.iterace', 'Dokončení implementace a testování projektu', '2019-05-24', NULL, 4), +(22, '601', '4.iterace', 'Implementace a testování projektu', '2019-05-10', NULL, 4), +(23, '599', '3.iterace', 'Implementace projektu', '2019-04-26', NULL, 4), +(24, '585', '2.iterace', 'Analýza a popis důležitých požadavků', NULL, NULL, 4), +(25, '614', '7.iterace', 'Odevzdání aplikace', '2019-06-14', NULL, 4), +(26, '579', '1.iterace', 'Pochopení cíle projektu a potřeb zákazníka', NULL, NULL, 4), +(27, '641', '6. Iterace', 'Cílem šesté iterace je dosáhnout milníku PR (Project Release).', '2020-05-18', NULL, 5), +(28, '636', '5. Iterace', 'Cílem páté iterace je dosáhnout milníku IOC (Inicial Operating Capacity).', '2020-05-04', NULL, 5), +(29, '630', '4. Iterace', 'Cílem čtvrté iterace je pokračování v práci na milníku IOC (Inicial Operating Capacity).', '2020-04-20', NULL, 5), +(30, '622', '2. Iterace', 'Návrh architektury + implementace kostry', '2020-03-23', NULL, 5), +(31, '628', '3. Iterace', 'Cílem třetí iterace je začít práci na milníku IOC (Inicial Operating Capacity).', '2020-04-06', NULL, 5), +(32, '615', '1. Iterace', 'Inicializace projektu', '2020-03-09', NULL, 5), +(33, '626', '2. iterace', 'Počátky implementace, výstupem je minimální propojení všech vrstev aplikace (spojení výpisu, aplikační logiky a databáze) a grafický návrh aplikace.', '2020-04-08', NULL, 6), +(34, '633', '3. iterace', 'Implementace a práce s datovými sadami. Výstupem je základ připraveného frontendu (minimálně úvodní strana) a možnost si zobrazit na mapě alespoň nějaký výstup z jedné datové sady.', '2020-04-23', NULL, 6), +(35, '637', '4. iterace', 'Dokončování frontendu a backendu vytvářené aplikace a práce s dalšími datovými sadami.', '2020-05-08', NULL, 6), +(36, '639', '5. iterace', 'Testování a opravy, úpravy dle požadavků zákazníka a předání produktu zákazníkovi (iterace po dohodě se zákazníkem prodloužena).', '2020-05-29', NULL, 6), +(37, '625', '1. iterace', 'První iterace spuštěná po první schůzce se zákazníkem a s tím spojená analýza použitelných technologií, dohodnutí prací a sepsání specifikace/vize, která je výstupem iterace.', '2020-03-25', NULL, 6), +(38, '627', '0. iterace', 'Prvotní analýza datových sad před schůzkou ze zákazníkem, výstupem je vybraná datová sada zákazníkem.', '2020-03-10', NULL, 6), +(39, '638', 'Plán pro IV. iteraci', 'IV. iterace', '2020-05-11', NULL, 7), +(40, '635', 'Plán pro III. iteraci', 'III. iterace', '2020-05-04', NULL, 7), +(41, '632', 'Plán pro II. iteraci', 'II. iterace', '2020-04-17', NULL, 7), +(42, '631', 'Plán pro I. iteraci', 'I. iterace', '2020-03-12', NULL, 7), +(43, '618', '2. iterace', 'Plán 2. iterace', '2020-04-08', NULL, 8), +(44, '617', '1. iterace', 'Plán 1. iterace', '2020-03-18', NULL, 8), +(45, '619', '3. iterace', 'Plán 3. iterace', '2020-04-27', NULL, 8), +(46, '620', '4. iterace', 'Plán 4. iterace', '2020-05-24', NULL, 8), +(47, '642', '6. iterace', 'Plán 6. iterace', '2020-06-05', NULL, 8), +(48, '621', '5. iterace', 'Plán 5. iterace', '2020-05-31', NULL, 8), +(49, '640', '4. Iterace', '', '2020-05-29', NULL, 9), +(50, '634', '3. Iterace', '', '2020-05-08', NULL, 9), +(51, '643', '5. Iterace', '', NULL, NULL, 9), +(52, '629', '2. Iterace', '', '2020-04-17', NULL, 9), +(53, '623', '1. Iterace', '', '2020-03-26', NULL, 9), +(54, '644', '6.Iterace', '', '2020-08-07', NULL, 9), +(55, '5486921', 'OSS - Sprint 8', 'Integrate!!!', '2020-06-15', NULL, 11), +(56, '5036285', 'OSS - Sprint 3', '', '2020-02-11', NULL, 11), +(57, '5940513', 'OSS - Sprint 17', '- Address any/all bugs from the beta & rcs', '2020-10-20', NULL, 11), +(58, '5918068', 'OSS - Sprint 16', '- Finalize Release Candidate', '2020-10-06', NULL, 11), +(59, '3859575', 'Version 1.7.0', '', '2018-12-25', NULL, 13), +(60, '1761061', '100 :star:️', 'Celebrations will be in order when the project\'s gonna hit 100 :star:️.\r\nA major update will bring plenty of goodies to make it even simpler to punch email clients in the stomach.', NULL, NULL, 16), +(61, '1990821', 'Version 6', '- look into better ways to bundle (maybe webpack?)\r\n- simplify structure and make it more intuitive (use template tags, requires)', NULL, NULL, 16); + +-- +-- Dumping data for table `artifact` +-- + +INSERT INTO `artifact` (`artifactClass`, `mimeType`, `size`, `id`) VALUES +('FILE', 'php', 0, 2), +('FILE', 'image/png', 0, 5), +('FILE', 'php', 0, 7), +('FILE', 'latte', 0, 9), +('FILE', 'php', 0, 10), +('FILE', 'php', 0, 11), +('FILE', 'latte', 0, 12), +('FILE', 'php', 0, 13), +('FILE', 'neon', 0, 14), +('FILE', 'php', 0, 15), +('FILE', 'php', 0, 16), +('FILE', 'php', 0, 18), +('FILE', 'latte', 0, 19), +('FILE', 'php', 0, 20), +('FILE', 'latte', 0, 21), +('FILE', 'php', 0, 22), +('FILE', 'latte', 0, 23), +('FILE', 'ico', 0, 24), +('FILE', 'image/png', 0, 27), +('FILE', 'image/png', 0, 28), +('FILE', 'sql', 0, 36), +('FILE', 'latte', 0, 38), +('FILE', 'php', 0, 39), +('FILE', 'latte', 0, 40), +('FILE', 'neon', 0, 41), +('FILE', 'htaccess', 0, 44), +('FILE', 'php', 0, 48), +('FILE', 'php', 0, 49), +('FILE', 'latte', 0, 50), +('FILE', 'php', 0, 51), +('FILE', 'php', 0, 52), +('FILE', 'php', 0, 53), +('FILE', 'php', 0, 54), +('FILE', 'latte', 0, 55), +('FILE', 'php', 0, 56), +('FILE', 'php', 0, 57), +('FILE', 'php', 0, 58), +('FILE', 'php', 0, 59), +('FILE', 'php', 0, 60), +('FILE', 'mp3', 0, 64), +('FILE', 'htaccess', 0, 70), +('FILE', 'php', 0, 71), +('FILE', 'php', 0, 72), +('FILE', 'php', 0, 73), +('FILE', 'php', 0, 74), +('FILE', 'php', 0, 75), +('FILE', 'php', 0, 76), +('FILE', 'php', 0, 77), +('FILE', 'sql', 0, 78), +('FILE', 'sql', 0, 79), +('FILE', 'php', 0, 80), +('FILE', 'php', 0, 81), +('FILE', 'thtml', 0, 82), +('FILE', 'thtml', 0, 83), +('FILE', 'thtml', 0, 84), +('FILE', 'text/plain', 0, 85), +('FILE', 'text/plain', 0, 86), +('FILE', 'php', 0, 87), +('FILE', 'php', 0, 88), +('FILE', 'php', 0, 89), +('FILE', 'php', 0, 90), +('FILE', 'php', 0, 91), +('FILE', 'php', 0, 92), +('FILE', 'php', 0, 93), +('FILE', 'php', 0, 94), +('FILE', 'php', 0, 95), +('FILE', 'php', 0, 96), +('FILE', 'php', 0, 97), +('FILE', 'php', 0, 98), +('FILE', 'php', 0, 99), +('FILE', 'php', 0, 100), +('FILE', 'php', 0, 101), +('FILE', 'php', 0, 102), +('FILE', 'php', 0, 103), +('FILE', 'php', 0, 104), +('FILE', 'php', 0, 105), +('FILE', 'php', 0, 106), +('FILE', 'php', 0, 107), +('FILE', 'php', 0, 108), +('FILE', 'php', 0, 109), +('FILE', 'php', 0, 110), +('FILE', 'php', 0, 111), +('FILE', 'php', 0, 112), +('FILE', 'php', 0, 113), +('FILE', 'php', 0, 114), +('FILE', 'php', 0, 115), +('FILE', 'php', 0, 116), +('FILE', 'php', 0, 117), +('FILE', 'php', 0, 118), +('FILE', 'php', 0, 119), +('FILE', 'php', 0, 120), +('FILE', 'php', 0, 121), +('FILE', 'php', 0, 122), +('FILE', 'php', 0, 123), +('FILE', 'php', 0, 124), +('FILE', 'php', 0, 125), +('FILE', 'php', 0, 126), +('FILE', 'php', 0, 127), +('FILE', 'php', 0, 128), +('FILE', 'php', 0, 129), +('FILE', 'php', 0, 130), +('FILE', 'php', 0, 131), +('FILE', 'php', 0, 132), +('FILE', 'php', 0, 133), +('FILE', 'php', 0, 134), +('FILE', 'php', 0, 135), +('FILE', 'php', 0, 136), +('FILE', 'php', 0, 137), +('FILE', 'php', 0, 138), +('FILE', 'php', 0, 139), +('FILE', 'php', 0, 140), +('FILE', 'php', 0, 141), +('FILE', 'php', 0, 142), +('FILE', 'php', 0, 143), +('FILE', 'php', 0, 144), +('FILE', 'php', 0, 145), +('FILE', 'php', 0, 146), +('FILE', 'php', 0, 147), +('FILE', 'php', 0, 148), +('FILE', 'php', 0, 149), +('FILE', 'php', 0, 150), +('FILE', 'php', 0, 151), +('FILE', 'php', 0, 152), +('FILE', 'thtml', 0, 153), +('FILE', 'thtml', 0, 154), +('FILE', 'thtml', 0, 155), +('FILE', 'thtml', 0, 156), +('FILE', 'thtml', 0, 157), +('FILE', 'thtml', 0, 158), +('FILE', 'thtml', 0, 159), +('FILE', 'thtml', 0, 160), +('FILE', 'thtml', 0, 161), +('FILE', 'thtml', 0, 162), +('FILE', 'thtml', 0, 163), +('FILE', 'thtml', 0, 164), +('FILE', 'thtml', 0, 165), +('FILE', 'thtml', 0, 166), +('FILE', 'thtml', 0, 167), +('FILE', 'thtml', 0, 168), +('FILE', 'thtml', 0, 169), +('FILE', 'thtml', 0, 170), +('FILE', 'thtml', 0, 171), +('FILE', 'thtml', 0, 172), +('FILE', 'thtml', 0, 173), +('FILE', 'thtml', 0, 174), +('FILE', 'thtml', 0, 175), +('FILE', 'thtml', 0, 176), +('FILE', 'php', 0, 177), +('FILE', 'php', 0, 178), +('FILE', 'php', 0, 179), +('FILE', 'default', 0, 180), +('FILE', 'htaccess', 0, 181), +('FILE', 'php', 0, 182), +('FILE', 'php', 0, 185), +('FILE', 'css', 0, 186), +('FILE', 'ico', 0, 187), +('FILE', 'image/png', 0, 188), +('FILE', 'php', 0, 189), +('FILE', 'php', 0, 190), +('FILE', 'php', 0, 193), +('FILE', 'php', 0, 194), +('FILE', 'php', 0, 195), +('FILE', 'php', 0, 196), +('FILE', 'php', 0, 197), +('FILE', 'php', 0, 198), +('FILE', 'php', 0, 199), +('FILE', 'php', 0, 200), +('FILE', 'php', 0, 201), +('FILE', 'php', 0, 202), +('FILE', 'php', 0, 203), +('FILE', 'php', 0, 204), +('FILE', 'php', 0, 205), +('FILE', 'php', 0, 206), +('FILE', 'php', 0, 207), +('FILE', 'php', 0, 208), +('FILE', 'php', 0, 209), +('FILE', 'php', 0, 210), +('FILE', 'php', 0, 211), +('FILE', 'php', 0, 212), +('FILE', 'php', 0, 213), +('FILE', 'php', 0, 214), +('FILE', 'php', 0, 215), +('FILE', 'php', 0, 216), +('FILE', 'php', 0, 217), +('FILE', 'php', 0, 220), +('FILE', 'php', 0, 221), +('FILE', 'php', 0, 223), +('FILE', 'php', 0, 225), +('FILE', 'php', 0, 226), +('FILE', 'php', 0, 227), +('FILE', 'php', 0, 228), +('FILE', 'php', 0, 231), +('FILE', 'php', 0, 232), +('FILE', 'php', 0, 234), +('FILE', 'php', 0, 235), +('FILE', 'php', 0, 236), +('FILE', 'php', 0, 238), +('FILE', 'php', 0, 239), +('FILE', 'php', 0, 240), +('FILE', 'php', 0, 242), +('FILE', 'php', 0, 243), +('FILE', 'php', 0, 244), +('FILE', 'php', 0, 246), +('FILE', 'php', 0, 247), +('FILE', 'php', 0, 248), +('FILE', 'php', 0, 249), +('FILE', 'php', 0, 251), +('FILE', 'php', 0, 252), +('FILE', 'php', 0, 253), +('FILE', 'php', 0, 254), +('FILE', 'php', 0, 256), +('FILE', 'php', 0, 257), +('FILE', 'php', 0, 258), +('FILE', 'php', 0, 260), +('FILE', 'php', 0, 261), +('FILE', 'php', 0, 262), +('FILE', 'php', 0, 264), +('FILE', 'php', 0, 265), +('FILE', 'php', 0, 266), +('FILE', 'php', 0, 268), +('FILE', 'php', 0, 269), +('FILE', 'php', 0, 270), +('FILE', 'php', 0, 271), +('FILE', 'php', 0, 272), +('FILE', 'php', 0, 273), +('FILE', 'php', 0, 275), +('FILE', 'latte', 0, 277), +('FILE', 'conf', 0, 282), +('FILE', 'application/x-shar', 0, 283), +('FILE', 'php', 0, 284), +('FILE', 'latte', 0, 286), +('FILE', 'php', 0, 287), +('FILE', 'php', 0, 288), +('FILE', 'php', 0, 289), +('FILE', 'latte', 0, 290), +('FILE', 'php', 0, 291), +('FILE', 'latte', 0, 292), +('FILE', 'latte', 0, 293), +('FILE', 'latte', 0, 294), +('FILE', 'latte', 0, 295), +('FILE', 'latte', 0, 296), +('FILE', 'latte', 0, 297), +('FILE', 'json', 0, 303), +('FILE', 'text/html', 0, 304), +('FILE', 'php', 0, 305), +('FILE', 'application/pdf', 0, 306), +('FILE', 'php', 0, 307), +('FILE', 'php', 0, 308), +('FILE', 'php', 0, 309), +('FILE', 'php', 0, 310), +('FILE', 'php', 0, 311), +('FILE', 'php', 0, 312), +('FILE', 'php', 0, 313), +('FILE', 'php', 0, 314), +('FILE', 'php', 0, 315), +('FILE', 'php', 0, 316), +('FILE', 'php', 0, 317), +('FILE', 'php', 0, 318), +('FILE', 'php', 0, 319), +('FILE', 'php', 0, 320), +('FILE', 'php', 0, 321), +('FILE', 'php', 0, 322), +('FILE', 'application/pdf', 0, 323), +('FILE', 'text/html', 0, 324), +('FILE', 'php', 0, 325), +('FILE', 'php', 0, 326), +('FILE', 'php', 0, 327), +('FILE', 'php', 0, 328), +('FILE', 'php', 0, 329), +('FILE', 'php', 0, 330), +('FILE', 'php', 0, 331), +('FILE', 'text/html', 0, 332), +('FILE', 'php', 0, 333), +('FILE', 'text/html', 0, 334), +('FILE', 'php', 0, 335), +('FILE', 'text/html', 0, 336), +('FILE', 'text/html', 0, 337), +('FILE', 'php', 0, 338), +('FILE', 'php', 0, 339), +('FILE', 'css', 0, 340), +('FILE', 'php', 0, 341), +('FILE', 'php', 0, 342), +('FILE', 'php', 0, 343), +('FILE', 'php', 0, 344), +('FILE', 'php', 0, 345), +('FILE', 'php', 0, 346), +('FILE', 'text/html', 0, 347), +('FILE', 'php', 0, 348), +('FILE', 'php', 0, 349), +('FILE', 'php240602puvodni', 0, 350), +('FILE', 'php_old', 0, 351), +('FILE', 'php', 0, 352), +('FILE', 'php', 0, 353), +('FILE', 'php', 0, 354), +('FILE', 'php_ori', 0, 355), +('FILE', 'php', 0, 356), +('FILE', 'text/html', 0, 357), +('FILE', 'application/pdf', 0, 358), +('FILE', 'php', 0, 359), +('FILE', 'php', 0, 360), +('FILE', 'php', 0, 361), +('FILE', 'php', 0, 362), +('FILE', 'php', 0, 363), +('FILE', 'php', 0, 364), +('FILE', 'php', 0, 365), +('FILE', 'php', 0, 366), +('FILE', 'php', 0, 367), +('FILE', 'php', 0, 368), +('FILE', 'php', 0, 369), +('FILE', 'php', 0, 370), +('FILE', 'php', 0, 371), +('FILE', 'php', 0, 372), +('FILE', 'php', 0, 373), +('FILE', 'php', 0, 374), +('FILE', 'php', 0, 375), +('FILE', 'php', 0, 376), +('FILE', 'php', 0, 377), +('FILE', 'php', 0, 378), +('FILE', 'php', 0, 379), +('FILE', 'text/html', 0, 380), +('FILE', 'php', 0, 381), +('FILE', 'phpnedele', 0, 382), +('FILE', 'php', 0, 383), +('FILE', 'php', 0, 384), +('FILE', 'php_150602', 0, 385), +('FILE', 'php_uterysinsertem', 0, 386), +('FILE', 'php_zaloha', 0, 387), +('FILE', 'php_zaloha2', 0, 388), +('FILE', 'php_zaloha_utery', 0, 389), +('FILE', 'application/pdf', 0, 390), +('FILE', 'php', 0, 391), +('FILE', 'text/html', 0, 392), +('FILE', 'application/pdf', 0, 393), +('FILE', 'php', 0, 394), +('FILE', 'php', 0, 395), +('FILE', 'php', 0, 396), +('FILE', 'php', 0, 397), +('FILE', 'php', 0, 398), +('FILE', 'text/html', 0, 399), +('FILE', 'text/html', 0, 400), +('FILE', 'application/pdf', 0, 401), +('FILE', 'application/pdf', 0, 402), +('FILE', 'application/pdf', 0, 403), +('FILE', 'application/pdf', 0, 404), +('FILE', 'application/pdf', 0, 405), +('FILE', 'php', 0, 406), +('FILE', 'text/html', 0, 407), +('FILE', 'php', 0, 409), +('FILE', 'php', 0, 415), +('FILE', 'latte', 0, 416), +('FILE', 'latte', 0, 417), +('FILE', 'css', 0, 419), +('FILE', 'css', 0, 420), +('FILE', 'php', 0, 421), +('FILE', 'php', 0, 422), +('FILE', 'php', 0, 427), +('FILE', 'php', 0, 433), +('FILE', 'php', 0, 434), +('FILE', 'php', 0, 435), +('FILE', 'php', 0, 436), +('FILE', 'php', 0, 438), +('FILE', 'php', 0, 439), +('FILE', 'php', 0, 440), +('FILE', 'php', 0, 441), +('FILE', 'latte', 0, 442), +('FILE', 'php', 0, 443), +('FILE', 'latte', 0, 444), +('FILE', 'latte', 0, 445), +('FILE', 'latte', 0, 446), +('FILE', 'latte', 0, 447), +('FILE', 'php', 0, 448), +('FILE', 'php', 0, 449), +('FILE', 'neon', 0, 450), +('FILE', 'neon', 0, 451), +('FILE', 'php', 0, 452), +('FILE', 'php', 0, 453), +('FILE', 'php', 0, 454), +('FILE', 'php', 0, 455), +('FILE', 'php', 0, 456), +('FILE', 'php', 0, 457), +('FILE', 'css', 0, 458), +('FILE', 'image/png', 0, 467), +('FILE', 'latte', 0, 469), +('FILE', 'php', 0, 470), +('FILE', 'latte', 0, 471), +('FILE', 'neon', 0, 472), +('FILE', 'latte', 0, 473), +('FILE', 'latte', 0, 478), +('FILE', 'php', 0, 486), +('FILE', 'latte', 0, 491), +('FILE', 'latte', 0, 492), +('FILE', 'php', 0, 493), +('FILE', 'php', 0, 494), +('FILE', 'php', 0, 495), +('FILE', 'php', 0, 496), +('FILE', 'php', 0, 514), +('FILE', 'php', 0, 519), +('FILE', 'css', 0, 521), +('FILE', 'utx', 0, 524), +('FILE', 'php', 0, 537), +('FILE', 'latte', 0, 546), +('FILE', 'lock', 0, 553), +('FILE', 'php', 0, 557), +('FILE', 'js', 0, 558), +('FILE', 'image/png', 0, 561), +('FILE', 'image/png', 0, 562), +('FILE', 'text/html', 0, 585), +('FILE', 'php', 0, 588), +('FILE', 'latte', 0, 613), +('FILE', 'latte', 0, 614), +('FILE', 'image/png', 0, 634), +('FILE', 'latte', 0, 641), +('FILE', 'php', 0, 642), +('FILE', 'php', 0, 643), +('FILE', 'neon', 0, 644), +('FILE', 'latte', 0, 650), +('FILE', 'latte', 0, 651), +('FILE', 'latte', 0, 652), +('FILE', 'latte', 0, 653), +('FILE', 'latte', 0, 654), +('FILE', 'phtml', 0, 655), +('FILE', 'phtml', 0, 656), +('FILE', 'latte', 0, 657), +('FILE', 'php', 0, 658), +('FILE', 'php', 0, 665), +('FILE', 'php', 0, 666), +('FILE', 'htaccess', 0, 667), +('FILE', 'text/html', 0, 676), +('FILE', 'text/html', 0, 677), +('FILE', 'text/html', 0, 678), +('FILE', 'text/html', 0, 679), +('FILE', 'gitignore', 0, 688), +('FILE', 'yml', 0, 689), +('FILE', NULL, 0, 695), +('FILE', NULL, 0, 696), +('FILE', NULL, 0, 697), +('FILE', NULL, 0, 698), +('FILE', NULL, 0, 699), +('FILE', NULL, 0, 700), +('FILE', NULL, 0, 701), +('FILE', NULL, 0, 702), +('FILE', 'php', 0, 703), +('FILE', 'php', 0, 704), +('FILE', 'php', 0, 705), +('FILE', 'php', 0, 706), +('FILE', 'php', 0, 707), +('FILE', 'php', 0, 708), +('FILE', 'php', 0, 709), +('FILE', 'php', 0, 710), +('FILE', 'php', 0, 711), +('FILE', 'php', 0, 712), +('FILE', 'php', 0, 713), +('FILE', 'php', 0, 714), +('FILE', 'php', 0, 715), +('FILE', 'php', 0, 716), +('FILE', 'php', 0, 717), +('FILE', 'php', 0, 718), +('FILE', 'php', 0, 719), +('FILE', 'php', 0, 720), +('FILE', 'php', 0, 721), +('FILE', 'php', 0, 722), +('FILE', 'php', 0, 723), +('FILE', 'php', 0, 724), +('FILE', 'php-dist', 0, 725), +('FILE', 'php', 0, 726), +('FILE', 'php', 0, 727), +('FILE', 'php', 0, 728), +('FILE', 'php', 0, 729), +('FILE', 'php', 0, 730), +('FILE', 'php', 0, 731), +('FILE', 'php', 0, 732), +('FILE', 'php', 0, 733), +('FILE', 'php', 0, 734), +('FILE', 'php', 0, 735), +('FILE', 'php', 0, 736), +('FILE', 'php', 0, 737), +('FILE', 'php', 0, 738), +('FILE', 'php', 0, 739), +('FILE', 'php', 0, 740), +('FILE', 'php', 0, 741), +('FILE', 'php', 0, 742), +('FILE', 'php', 0, 743), +('FILE', 'php', 0, 744), +('FILE', 'image/png', 0, 745), +('FILE', 'image/png', 0, 746), +('FILE', 'image/png', 0, 747), +('FILE', 'image/png', 0, 748), +('FILE', 'image/png', 0, 749), +('FILE', 'image/png', 0, 750), +('FILE', 'image/png', 0, 751), +('FILE', 'image/png', 0, 752), +('FILE', 'image/png', 0, 753), +('FILE', 'image/png', 0, 754), +('FILE', 'image/png', 0, 755), +('FILE', 'image/png', 0, 756), +('FILE', 'image/png', 0, 757), +('FILE', 'image/png', 0, 758), +('FILE', 'image/png', 0, 759), +('FILE', 'image/png', 0, 760), +('FILE', 'image/gif', 0, 761), +('FILE', 'image/png', 0, 762), +('FILE', 'image/png', 0, 763), +('FILE', 'image/png', 0, 764), +('FILE', 'image/png', 0, 765), +('FILE', 'image/png', 0, 766), +('FILE', 'image/png', 0, 767), +('FILE', 'image/png', 0, 768), +('FILE', 'image/png', 0, 769), +('FILE', 'image/png', 0, 770), +('FILE', 'image/png', 0, 771), +('FILE', 'php', 0, 772), +('FILE', 'js', 0, 773), +('FILE', 'php', 0, 774), +('FILE', 'php', 0, 775), +('FILE', 'php', 0, 776), +('FILE', NULL, 0, 777), +('FILE', 'php', 0, 778), +('FILE', 'php', 0, 779), +('FILE', 'php', 0, 780), +('FILE', 'php', 0, 781), +('FILE', 'awk', 0, 782), +('FILE', 'php', 0, 783), +('FILE', 'php', 0, 784), +('FILE', 'php', 0, 785), +('FILE', 'php', 0, 786), +('FILE', 'php', 0, 787), +('FILE', 'php', 0, 788), +('FILE', 'php', 0, 789), +('FILE', 'php', 0, 790), +('FILE', 'php', 0, 791), +('FILE', 'php', 0, 792), +('FILE', NULL, 0, 793), +('FILE', 'php', 0, 794), +('FILE', NULL, 0, 795), +('FILE', NULL, 0, 796), +('FILE', 'php', 0, 797), +('FILE', 'php', 0, 798), +('FILE', 'php', 0, 799), +('FILE', NULL, 0, 800), +('FILE', 'php', 0, 801), +('FILE', 'php', 0, 802), +('FILE', 'php', 0, 803), +('FILE', 'php', 0, 804), +('FILE', 'php', 0, 805), +('FILE', 'php', 0, 806), +('FILE', 'php', 0, 807), +('FILE', 'php', 0, 808), +('FILE', 'php', 0, 809), +('FILE', 'php', 0, 810), +('FILE', 'php', 0, 811), +('FILE', 'php', 0, 812), +('FILE', 'php', 0, 813), +('FILE', 'php', 0, 814), +('FILE', 'php', 0, 815), +('FILE', 'php', 0, 816), +('FILE', 'php', 0, 817), +('FILE', 'php', 0, 818), +('FILE', 'php', 0, 819), +('FILE', 'php', 0, 820), +('FILE', 'php', 0, 821), +('FILE', 'php', 0, 822), +('FILE', 'php', 0, 823), +('FILE', 'php', 0, 824), +('FILE', 'php', 0, 825), +('FILE', 'php', 0, 826), +('FILE', 'php', 0, 827), +('FILE', 'php', 0, 828), +('FILE', 'php', 0, 829), +('FILE', 'php', 0, 830), +('FILE', NULL, 0, 831), +('FILE', 'php', 0, 832), +('FILE', 'php', 0, 833), +('FILE', 'php', 0, 834), +('FILE', 'php', 0, 835), +('FILE', 'php', 0, 836), +('FILE', 'php', 0, 837), +('FILE', 'php', 0, 838), +('FILE', 'php', 0, 839), +('FILE', 'php', 0, 840), +('FILE', 'php', 0, 841), +('FILE', 'php', 0, 842), +('FILE', 'php', 0, 843), +('FILE', 'php', 0, 844), +('FILE', 'php', 0, 845), +('FILE', 'php', 0, 846), +('FILE', 'php', 0, 847), +('FILE', 'php', 0, 848), +('FILE', 'php', 0, 849), +('FILE', 'php', 0, 850), +('FILE', 'php', 0, 851), +('FILE', 'php', 0, 852), +('FILE', 'php', 0, 853), +('FILE', 'php', 0, 854), +('FILE', 'php', 0, 855), +('FILE', 'php', 0, 856), +('FILE', 'php', 0, 857), +('FILE', 'php', 0, 858), +('FILE', 'php', 0, 859), +('FILE', 'php', 0, 860), +('FILE', 'php', 0, 861), +('FILE', 'php', 0, 862), +('FILE', 'php', 0, 863), +('FILE', 'php', 0, 864), +('FILE', 'php', 0, 865), +('FILE', 'php', 0, 866), +('FILE', 'php', 0, 867), +('FILE', 'php', 0, 868), +('FILE', 'php', 0, 869), +('FILE', 'php', 0, 870), +('FILE', 'php', 0, 871), +('FILE', 'php', 0, 872), +('FILE', 'php', 0, 873), +('FILE', 'php', 0, 874), +('FILE', 'php', 0, 875), +('FILE', 'text/plain', 0, 876), +('FILE', 'php', 0, 877), +('FILE', 'text/plain', 0, 878), +('FILE', 'php', 0, 879), +('FILE', 'php', 0, 880), +('FILE', 'php', 0, 881), +('FILE', 'php', 0, 882), +('FILE', 'dtd', 0, 883), +('FILE', 'php', 0, 884), +('FILE', 'php', 0, 885), +('FILE', 'php', 0, 886), +('FILE', 'php', 0, 887), +('FILE', 'js', 0, 888), +('FILE', 'php', 0, 889), +('FILE', 'php', 0, 890), +('FILE', 'php', 0, 891), +('FILE', 'php', 0, 892), +('FILE', 'php', 0, 893), +('FILE', 'php', 0, 894), +('FILE', 'php', 0, 895), +('FILE', 'php', 0, 896), +('FILE', 'text/plain', 0, 897), +('FILE', 'php', 0, 898), +('FILE', 'php', 0, 899), +('FILE', 'php', 0, 900), +('FILE', 'php', 0, 901), +('FILE', 'php', 0, 902), +('FILE', 'sql', 0, 903), +('FILE', 'php', 0, 904), +('FILE', 'php', 0, 905), +('FILE', 'php', 0, 906), +('FILE', 'php', 0, 907), +('FILE', 'css', 0, 908), +('FILE', 'php', 0, 909), +('FILE', 'php', 0, 910), +('FILE', 'php', 0, 911), +('FILE', 'php', 0, 912), +('FILE', 'php', 0, 913), +('FILE', 'js', 0, 914), +('FILE', 'js', 0, 915), +('FILE', 'text/html', 0, 916), +('FILE', 'css', 0, 917), +('FILE', 'image/gif', 0, 918), +('FILE', 'image/gif', 0, 919), +('FILE', 'image/gif', 0, 920), +('FILE', 'image/gif', 0, 921), +('FILE', 'image/gif', 0, 922), +('FILE', 'image/png', 0, 923), +('FILE', 'image/gif', 0, 924), +('FILE', 'image/gif', 0, 925), +('FILE', 'image/gif', 0, 926), +('FILE', 'image/png', 0, 927), +('FILE', 'image/gif', 0, 928), +('FILE', 'php', 0, 929), +('FILE', 'php', 0, 930), +('FILE', 'php', 0, 931), +('FILE', 'php_zaloha', 0, 932), +('FILE', 'js', 0, 933), +('FILE', 'htaccess', 0, 934), +('FILE', 'project', 0, 935), +('FILE', 'php', 0, 936), +('FILE', 'php', 0, 937), +('FILE', 'php', 0, 938), +('FILE', 'php', 0, 939), +('FILE', 'php', 0, 940), +('FILE', 'php', 0, 941), +('FILE', 'php', 0, 942), +('FILE', 'php', 0, 943), +('FILE', 'php', 0, 944), +('FILE', 'php', 0, 945), +('FILE', 'php', 0, 946), +('FILE', 'php', 0, 947), +('FILE', 'php', 0, 948), +('FILE', 'php', 0, 949), +('FILE', 'php', 0, 950), +('FILE', 'php', 0, 951), +('FILE', 'php', 0, 952), +('FILE', 'php', 0, 953), +('FILE', 'php', 0, 954), +('FILE', 'php', 0, 955), +('FILE', 'php', 0, 956), +('FILE', 'php', 0, 957), +('FILE', 'php', 0, 958), +('FILE', 'php', 0, 959), +('FILE', 'php', 0, 960), +('FILE', 'php', 0, 961), +('FILE', 'php', 0, 962), +('FILE', 'php', 0, 963), +('FILE', 'php', 0, 964), +('FILE', 'php', 0, 965), +('FILE', 'php', 0, 966), +('FILE', 'php', 0, 967), +('FILE', 'php', 0, 968), +('FILE', 'php', 0, 969), +('FILE', 'php', 0, 970), +('FILE', 'php', 0, 971), +('FILE', 'php', 0, 972), +('FILE', 'php', 0, 973), +('FILE', 'php', 0, 974), +('FILE', 'php', 0, 975), +('FILE', 'php', 0, 976), +('FILE', 'php', 0, 977), +('FILE', 'php', 0, 978), +('FILE', 'php', 0, 979), +('FILE', 'php', 0, 980), +('FILE', 'php', 0, 981), +('FILE', 'php', 0, 982), +('FILE', 'php', 0, 983), +('FILE', 'php', 0, 984), +('FILE', 'php', 0, 985), +('FILE', 'php', 0, 986), +('FILE', 'php', 0, 987), +('FILE', 'php', 0, 988), +('FILE', 'php', 0, 989), +('FILE', 'php', 0, 990), +('FILE', 'php', 0, 991), +('FILE', 'php', 0, 992), +('FILE', 'php', 0, 993), +('FILE', 'php', 0, 994), +('FILE', 'php', 0, 995), +('FILE', 'php', 0, 996), +('FILE', 'php', 0, 997), +('FILE', 'php', 0, 998), +('FILE', 'php', 0, 999), +('FILE', 'php', 0, 1000), +('FILE', 'php', 0, 1001), +('FILE', 'php', 0, 1002), +('FILE', NULL, 0, 1003), +('FILE', NULL, 0, 1004), +('FILE', NULL, 0, 1005), +('FILE', NULL, 0, 1006), +('FILE', NULL, 0, 1007), +('FILE', NULL, 0, 1008), +('FILE', NULL, 0, 1009), +('FILE', NULL, 0, 1010), +('FILE', NULL, 0, 1011), +('FILE', NULL, 0, 1012), +('FILE', NULL, 0, 1013), +('FILE', NULL, 0, 1014), +('FILE', NULL, 0, 1015), +('FILE', NULL, 0, 1016), +('FILE', NULL, 0, 1017), +('FILE', NULL, 0, 1018), +('FILE', NULL, 0, 1019), +('FILE', 'log', 0, 1020), +('FILE', 'thtml', 0, 1021), +('FILE', 'thtml', 0, 1022), +('FILE', 'thtml', 0, 1023), +('FILE', 'thtml', 0, 1024), +('FILE', 'thtml', 0, 1025), +('FILE', 'thtml', 0, 1026), +('FILE', 'thtml', 0, 1027), +('FILE', 'thtml', 0, 1028), +('FILE', 'thtml', 0, 1029), +('FILE', NULL, 0, 1030), +('FILE', 'svn-base', 0, 1031), +('FILE', 'svn-base', 0, 1032), +('FILE', 'svn-base', 0, 1033), +('FILE', 'svn-base', 0, 1034), +('FILE', 'thtml', 0, 1035), +('FILE', 'thtml', 0, 1036), +('FILE', 'thtml', 0, 1037), +('FILE', 'thtml', 0, 1038), +('FILE', NULL, 0, 1039), +('FILE', 'thtml', 0, 1040), +('FILE', NULL, 0, 1041), +('FILE', 'svn-base', 0, 1042), +('FILE', 'svn-base', 0, 1043), +('FILE', 'svn-base', 0, 1044), +('FILE', 'thtml', 0, 1045), +('FILE', 'thtml', 0, 1046), +('FILE', 'thtml', 0, 1047), +('FILE', NULL, 0, 1048), +('FILE', 'svn-base', 0, 1049), +('FILE', 'svn-base', 0, 1050), +('FILE', 'svn-base', 0, 1051), +('FILE', 'svn-base', 0, 1052), +('FILE', 'svn-base', 0, 1053), +('FILE', 'thtml', 0, 1054), +('FILE', 'thtml', 0, 1055), +('FILE', 'thtml', 0, 1056), +('FILE', 'thtml', 0, 1057), +('FILE', 'thtml', 0, 1058), +('FILE', 'thtml', 0, 1059), +('FILE', 'thtml', 0, 1060), +('FILE', 'thtml', 0, 1061), +('FILE', 'thtml', 0, 1062), +('FILE', 'thtml', 0, 1063), +('FILE', 'thtml', 0, 1064), +('FILE', 'thtml', 0, 1065), +('FILE', 'thtml', 0, 1066), +('FILE', 'thtml', 0, 1067), +('FILE', 'thtml', 0, 1068), +('FILE', 'thtml', 0, 1069), +('FILE', 'thtml', 0, 1070), +('FILE', 'thtml', 0, 1071), +('FILE', 'thtml', 0, 1072), +('FILE', 'php', 0, 1073), +('FILE', 'php', 0, 1074), +('FILE', 'php', 0, 1075), +('FILE', 'php', 0, 1076), +('FILE', 'php', 0, 1077), +('FILE', 'php', 0, 1078), +('FILE', 'thtml', 0, 1079), +('FILE', 'thtml', 0, 1080), +('FILE', 'thtml', 0, 1081), +('FILE', 'thtml', 0, 1082), +('FILE', 'thtml', 0, 1083), +('FILE', 'thtml', 0, 1084), +('FILE', 'thtml', 0, 1085), +('FILE', 'thtml', 0, 1086), +('FILE', 'thtml', 0, 1087), +('FILE', 'thtml', 0, 1088), +('FILE', 'thtml', 0, 1089), +('FILE', 'thtml', 0, 1090), +('FILE', 'thtml', 0, 1091), +('FILE', 'thtml', 0, 1092), +('FILE', 'thtml', 0, 1093), +('FILE', 'thtml', 0, 1094), +('FILE', 'thtml', 0, 1095), +('FILE', 'thtml', 0, 1096), +('FILE', 'thtml', 0, 1097), +('FILE', 'thtml', 0, 1098), +('FILE', 'thtml', 0, 1099), +('FILE', 'thtml', 0, 1100), +('FILE', 'thtml', 0, 1101), +('FILE', 'thtml', 0, 1102), +('FILE', 'thtml', 0, 1103), +('FILE', 'thtml', 0, 1104), +('FILE', 'thtml', 0, 1105), +('FILE', 'thtml', 0, 1106), +('FILE', 'thtml', 0, 1107), +('FILE', 'thtml', 0, 1108), +('FILE', 'thtml', 0, 1109), +('FILE', 'thtml', 0, 1110), +('FILE', 'thtml', 0, 1111), +('FILE', 'thtml', 0, 1112), +('FILE', 'thtml', 0, 1113), +('FILE', 'thtml', 0, 1114), +('FILE', 'thtml', 0, 1115), +('FILE', 'thtml', 0, 1116), +('FILE', 'thtml', 0, 1117), +('FILE', 'thtml', 0, 1118), +('FILE', 'thtml', 0, 1119), +('FILE', 'thtml', 0, 1120), +('FILE', 'thtml', 0, 1121), +('FILE', 'thtml', 0, 1122), +('FILE', 'thtml', 0, 1123), +('FILE', 'thtml', 0, 1124), +('FILE', 'thtml', 0, 1125), +('FILE', 'thtml', 0, 1126), +('FILE', 'thtml', 0, 1127), +('FILE', 'thtml', 0, 1128), +('FILE', 'thtml', 0, 1129), +('FILE', 'thtml', 0, 1130), +('FILE', 'thtml', 0, 1131), +('FILE', 'thtml', 0, 1132), +('FILE', 'thtml', 0, 1133), +('FILE', 'thtml', 0, 1134), +('FILE', 'thtml', 0, 1135), +('FILE', 'thtml', 0, 1136), +('FILE', 'thtml', 0, 1137), +('FILE', 'thtml', 0, 1138), +('FILE', 'htaccess', 0, 1139), +('FILE', 'php', 0, 1140), +('FILE', 'php', 0, 1141), +('FILE', 'php', 0, 1142), +('FILE', 'php', 0, 1143), +('FILE', 'php', 0, 1144), +('FILE', 'php', 0, 1145), +('FILE', 'php', 0, 1146), +('FILE', 'php', 0, 1147), +('FILE', 'php', 0, 1148), +('FILE', 'php', 0, 1149), +('FILE', 'php', 0, 1150), +('FILE', 'php', 0, 1151), +('FILE', 'php', 0, 1152), +('FILE', 'php', 0, 1153), +('FILE', 'php', 0, 1154), +('FILE', 'php', 0, 1155), +('FILE', 'php', 0, 1156), +('FILE', NULL, 0, 1157), +('FILE', 'php', 0, 1158), +('FILE', 'php', 0, 1159), +('FILE', 'php', 0, 1160), +('FILE', 'php', 0, 1161), +('FILE', 'php', 0, 1162), +('FILE', 'php', 0, 1163), +('FILE', 'php', 0, 1164), +('FILE', 'php', 0, 1165), +('FILE', 'php', 0, 1166), +('FILE', 'php', 0, 1167), +('FILE', 'php', 0, 1168), +('FILE', 'php', 0, 1169), +('FILE', 'css', 0, 1170), +('FILE', 'css', 0, 1171), +('FILE', 'css', 0, 1172), +('FILE', 'php', 0, 1173), +('FILE', 'php', 0, 1174), +('FILE', 'image/png', 0, 1175), +('FILE', 'image/png', 0, 1176), +('FILE', 'image/gif', 0, 1177), +('FILE', 'image/gif', 0, 1178), +('FILE', 'image/gif', 0, 1179), +('FILE', 'image/gif', 0, 1180), +('FILE', 'php', 0, 1181), +('FILE', 'php', 0, 1182), +('FILE', 'php', 0, 1183), +('FILE', 'php', 0, 1184), +('FILE', 'php', 0, 1185), +('FILE', 'php', 0, 1186), +('FILE', 'js', 0, 1187), +('FILE', 'js', 0, 1188), +('FILE', 'js', 0, 1189), +('FILE', 'js', 0, 1190), +('FILE', 'js', 0, 1191), +('FILE', 'js', 0, 1192), +('FILE', 'js', 0, 1193), +('FILE', 'js', 0, 1194), +('FILE', 'js', 0, 1195), +('FILE', 'js', 0, 1196), +('FILE', NULL, 0, 1197), +('FILE', 'svn-base', 0, 1198), +('FILE', 'svn-base', 0, 1199), +('FILE', 'svn-base', 0, 1200), +('FILE', NULL, 0, 1201), +('FILE', 'js', 0, 1202), +('FILE', NULL, 0, 1203), +('FILE', 'js', 0, 1204), +('FILE', 'js', 0, 1205), +('FILE', 'js', 0, 1206), +('FILE', 'js', 0, 1207), +('FILE', 'js', 0, 1208), +('FILE', 'js', 0, 1209), +('FILE', 'js', 0, 1210), +('FILE', NULL, 0, 1211), +('FILE', 'text/html', 0, 1212), +('FILE', 'text/html', 0, 1213), +('FILE', 'css', 0, 1214), +('FILE', NULL, 0, 1215), +('FILE', 'text/html', 0, 1216), +('FILE', 'text/html', 0, 1217), +('FILE', 'text/html', 0, 1218), +('FILE', 'text/html', 0, 1219), +('FILE', 'text/html', 0, 1220), +('FILE', 'text/html', 0, 1221), +('FILE', 'text/html', 0, 1222), +('FILE', 'text/html', 0, 1223), +('FILE', 'text/html', 0, 1224), +('FILE', 'text/html', 0, 1225), +('FILE', 'text/html', 0, 1226), +('FILE', 'text/html', 0, 1227), +('FILE', 'text/html', 0, 1228), +('FILE', 'text/html', 0, 1229), +('FILE', 'text/html', 0, 1230), +('FILE', 'text/html', 0, 1231), +('FILE', 'text/html', 0, 1232), +('FILE', 'image/png', 0, 1233), +('FILE', 'text/html', 0, 1234), +('FILE', 'text/html', 0, 1235), +('FILE', 'text/html', 0, 1236), +('FILE', 'text/html', 0, 1237), +('FILE', 'text/html', 0, 1238), +('FILE', 'text/html', 0, 1239), +('FILE', 'text/html', 0, 1240), +('FILE', 'text/html', 0, 1241), +('FILE', 'text/html', 0, 1242), +('FILE', 'text/html', 0, 1243), +('FILE', 'text/html', 0, 1244), +('FILE', 'svn-base', 0, 1245), +('FILE', 'text/html', 0, 1246), +('FILE', 'text/html', 0, 1247), +('FILE', 'text/html', 0, 1248), +('FILE', 'text/html', 0, 1249), +('FILE', 'text/html', 0, 1250), +('FILE', 'image/png', 0, 1251), +('FILE', 'text/html', 0, 1252), +('FILE', 'text/html', 0, 1253), +('FILE', 'text/html', 0, 1254), +('FILE', 'text/html', 0, 1255), +('FILE', 'text/html', 0, 1256), +('FILE', 'text/html', 0, 1257), +('FILE', 'text/html', 0, 1258), +('FILE', 'text/html', 0, 1259), +('FILE', 'text/html', 0, 1260), +('FILE', 'text/html', 0, 1261), +('FILE', 'text/html', 0, 1262), +('FILE', 'text/html', 0, 1263), +('FILE', NULL, 0, 1264), +('FILE', 'text/html', 0, 1265), +('FILE', 'text/html', 0, 1266), +('FILE', 'text/html', 0, 1267), +('FILE', 'text/html', 0, 1268), +('FILE', 'text/html', 0, 1269), +('FILE', 'text/html', 0, 1270), +('FILE', 'text/html', 0, 1271), +('FILE', 'text/html', 0, 1272), +('FILE', 'text/html', 0, 1273), +('FILE', 'text/html', 0, 1274), +('FILE', 'text/html', 0, 1275), +('FILE', 'text/html', 0, 1276), +('FILE', 'text/html', 0, 1277), +('FILE', 'text/html', 0, 1278), +('FILE', 'text/html', 0, 1279), +('FILE', 'text/html', 0, 1280), +('FILE', 'text/html', 0, 1281), +('FILE', 'text/html', 0, 1282), +('FILE', 'php', 0, 1283), +('FILE', 'php', 0, 1284), +('FILE', 'php', 0, 1285), +('FILE', 'php', 0, 1286), +('FILE', 'php', 0, 1287), +('FILE', 'php', 0, 1288), +('FILE', 'php', 0, 1289), +('FILE', 'php', 0, 1290), +('FILE', 'php', 0, 1291), +('FILE', 'php', 0, 1292), +('FILE', 'php', 0, 1293), +('FILE', 'php', 0, 1294), +('FILE', 'php', 0, 1295), +('FILE', 'php', 0, 1296), +('FILE', 'php', 0, 1297), +('FILE', 'php', 0, 1298), +('FILE', 'php', 0, 1299), +('FILE', 'image/jpeg', 0, 1300), +('FILE', 'image/jpeg', 0, 1301), +('FILE', 'image/jpeg', 0, 1302), +('FILE', 'image/jpeg', 0, 1303), +('FILE', 'image/jpeg', 0, 1304), +('FILE', 'image/jpeg', 0, 1305), +('FILE', 'image/jpeg', 0, 1306), +('FILE', 'image/jpeg', 0, 1307), +('FILE', 'image/jpeg', 0, 1308), +('FILE', 'image/jpeg', 0, 1309), +('FILE', 'image/jpeg', 0, 1310), +('FILE', 'image/jpeg', 0, 1311), +('FILE', 'image/jpeg', 0, 1312), +('FILE', 'php', 0, 1313), +('FILE', 'php', 0, 1314), +('FILE', 'php', 0, 1315), +('FILE', 'php', 0, 1316), +('FILE', 'php', 0, 1317), +('FILE', 'php', 0, 1318), +('FILE', 'php', 0, 1319), +('FILE', 'php', 0, 1320), +('FILE', 'php', 0, 1321), +('FILE', 'php', 0, 1322), +('FILE', 'php', 0, 1323), +('FILE', 'php', 0, 1324), +('FILE', 'php', 0, 1325), +('FILE', 'php', 0, 1326), +('FILE', 'php', 0, 1327), +('FILE', 'php', 0, 1328), +('FILE', 'php', 0, 1329), +('FILE', 'php', 0, 1330), +('FILE', 'php', 0, 1331), +('FILE', 'php', 0, 1332), +('FILE', 'php', 0, 1333), +('FILE', 'php', 0, 1334), +('FILE', 'php', 0, 1335), +('FILE', 'php', 0, 1336), +('FILE', 'php', 0, 1337), +('FILE', 'php', 0, 1338), +('FILE', 'php', 0, 1339), +('FILE', 'php', 0, 1340), +('FILE', 'text/plain', 0, 1341), +('FILE', 'php', 0, 1342), +('FILE', 'php', 0, 1343), +('FILE', 'php', 0, 1344), +('FILE', 'php', 0, 1345), +('FILE', 'php', 0, 1346), +('FILE', 'php', 0, 1347), +('FILE', 'php', 0, 1348), +('FILE', 'php', 0, 1349), +('FILE', 'php', 0, 1350), +('FILE', 'php', 0, 1351), +('FILE', 'php', 0, 1352), +('FILE', 'php', 0, 1353), +('FILE', 'php', 0, 1354), +('FILE', 'php', 0, 1355), +('FILE', 'php', 0, 1356), +('FILE', 'php', 0, 1357), +('FILE', 'php', 0, 1358), +('FILE', 'php', 0, 1359), +('FILE', 'php', 0, 1360), +('FILE', 'php', 0, 1361), +('FILE', 'php', 0, 1362), +('FILE', 'php', 0, 1363), +('FILE', 'php', 0, 1364), +('FILE', 'php', 0, 1365), +('FILE', 'php', 0, 1366), +('FILE', 'php', 0, 1367), +('FILE', 'php', 0, 1368), +('FILE', 'php', 0, 1369), +('FILE', 'php', 0, 1370), +('FILE', 'php', 0, 1371), +('FILE', 'php', 0, 1372), +('FILE', 'php', 0, 1373), +('FILE', 'php', 0, 1374), +('FILE', 'php', 0, 1375), +('FILE', 'php', 0, 1376), +('FILE', 'php', 0, 1377), +('FILE', 'php', 0, 1378), +('FILE', 'php', 0, 1379), +('FILE', 'php', 0, 1380), +('FILE', 'php', 0, 1381), +('FILE', 'php', 0, 1382), +('FILE', 'php', 0, 1383), +('FILE', 'htaccess', 0, 1384), +('FILE', 'php', 0, 1385), +('FILE', 'php', 0, 1386), +('FILE', 'php', 0, 1387), +('FILE', 'php', 0, 1388), +('FILE', 'php', 0, 1389), +('FILE', 'php', 0, 1390), +('FILE', NULL, 0, 1391), +('FILE', NULL, 0, 1392), +('FILE', NULL, 0, 1393), +('FILE', NULL, 0, 1394), +('FILE', NULL, 0, 1395), +('FILE', NULL, 0, 1396), +('FILE', NULL, 0, 1397), +('FILE', NULL, 0, 1398), +('FILE', NULL, 0, 1399), +('FILE', NULL, 0, 1400), +('FILE', NULL, 0, 1401), +('FILE', NULL, 0, 1402), +('FILE', NULL, 0, 1403), +('FILE', NULL, 0, 1404), +('FILE', NULL, 0, 1405), +('FILE', 'thtml', 0, 1406), +('FILE', 'thtml', 0, 1407), +('FILE', 'thtml', 0, 1408), +('FILE', 'thtml', 0, 1409), +('FILE', 'thtml', 0, 1410), +('FILE', 'thtml', 0, 1411), +('FILE', 'thtml', 0, 1412), +('FILE', 'htaccess', 0, 1413), +('FILE', 'php', 0, 1414), +('FILE', 'php', 0, 1415), +('FILE', 'php', 0, 1416), +('FILE', 'php', 0, 1417), +('FILE', 'php', 0, 1418), +('FILE', 'php', 0, 1419), +('FILE', 'css', 0, 1420), +('FILE', 'css', 0, 1421), +('FILE', 'php', 0, 1422), +('FILE', 'php', 0, 1423), +('FILE', 'php', 0, 1424), +('FILE', 'php', 0, 1425), +('FILE', 'php', 0, 1426), +('FILE', 'php', 0, 1427), +('FILE', 'js', 0, 1428), +('FILE', 'php', 0, 1429), +('FILE', 'php', 0, 1430), +('FILE', 'php', 0, 1431), +('FILE', 'php', 0, 1432), +('FILE', 'php', 0, 1433), +('FILE', 'php', 0, 1434), +('FILE', 'php', 0, 1435), +('FILE', 'php', 0, 1436), +('FILE', 'php', 0, 1437), +('FILE', 'php', 0, 1438), +('FILE', 'php', 0, 1439), +('FILE', 'php', 0, 1440), +('FILE', 'php', 0, 1441), +('FILE', 'php', 0, 1442), +('FILE', 'php', 0, 1443), +('FILE', 'php', 0, 1444), +('FILE', 'php', 0, 1445), +('FILE', 'php', 0, 1446), +('FILE', 'php', 0, 1447), +('FILE', 'php', 0, 1448), +('FILE', 'php', 0, 1449), +('FILE', 'php', 0, 1450), +('FILE', 'php', 0, 1451), +('FILE', 'php', 0, 1452), +('FILE', 'text/plain', 0, 1453), +('FILE', 'image/png', 0, 1454), +('FILE', 'image/png', 0, 1455), +('FILE', 'image/png', 0, 1456), +('FILE', 'utx', 0, 1457), +('FILE', 'utx', 0, 1458), +('FILE', 'php', 0, 1459), +('FILE', 'php', 0, 1460), +('FILE', 'php', 0, 1461), +('FILE', 'text/html', 0, 1462), +('FILE', 'php', 0, 1463), +('FILE', 'css', 0, 1464), +('FILE', 'php', 0, 1465), +('FILE', 'php', 0, 1466), +('FILE', 'php', 0, 1467), +('FILE', 'php', 0, 1468), +('FILE', 'php', 0, 1469), +('FILE', 'php', 0, 1470), +('FILE', 'php', 0, 1471), +('FILE', 'php3', 0, 1472), +('FILE', 'php', 0, 1473), +('FILE', 'text/html', 0, 1474), +('FILE', 'php', 0, 1475), +('FILE', 'php', 0, 1476), +('FILE', 'php', 0, 1477), +('FILE', 'php', 0, 1478), +('FILE', 'php', 0, 1479), +('FILE', 'htaccess', 0, 1480), +('FILE', 'php', 0, 1481), +('FILE', 'php', 0, 1482), +('FILE', 'php', 0, 1483), +('FILE', 'php', 0, 1484), +('FILE', 'php', 0, 1485), +('FILE', 'php', 0, 1486), +('FILE', 'php', 0, 1487), +('FILE', 'php', 0, 1488), +('FILE', 'php', 0, 1489), +('FILE', 'php', 0, 1490), +('FILE', 'php', 0, 1491), +('FILE', 'php', 0, 1492), +('FILE', 'php', 0, 1493), +('FILE', 'php', 0, 1494), +('FILE', 'php', 0, 1495), +('FILE', 'php', 0, 1496), +('FILE', 'php', 0, 1497), +('FILE', 'php', 0, 1498), +('FILE', 'php', 0, 1499), +('FILE', 'php', 0, 1500), +('FILE', 'php', 0, 1501), +('FILE', 'css', 0, 1502), +('FILE', 'php', 0, 1503), +('FILE', 'php', 0, 1504), +('FILE', 'php', 0, 1505), +('FILE', 'php', 0, 1506), +('FILE', 'php', 0, 1507), +('FILE', 'php', 0, 1508), +('FILE', 'php', 0, 1509), +('FILE', 'php', 0, 1510), +('FILE', 'php', 0, 1511), +('FILE', 'php', 0, 1512), +('FILE', 'image/gif', 0, 1513), +('FILE', 'sql', 0, 1514), +('FILE', 'utx', 0, 1515), +('FILE', 'php', 0, 1516), +('FILE', 'php', 0, 1517), +('FILE', 'php', 0, 1518), +('FILE', 'php', 0, 1519), +('FILE', 'php', 0, 1520), +('FILE', 'php', 0, 1521), +('FILE', 'php', 0, 1522), +('FILE', 'php', 0, 1523), +('FILE', 'php', 0, 1524), +('FILE', 'php', 0, 1525), +('FILE', 'php', 0, 1526), +('FILE', 'php', 0, 1527), +('FILE', 'css', 0, 1528), +('FILE', 'sql', 0, 1529), +('FILE', 'php', 0, 1530), +('FILE', 'php', 0, 1531), +('FILE', 'php', 0, 1532), +('FILE', 'php', 0, 1533), +('FILE', 'php', 0, 1534), +('FILE', 'php', 0, 1535), +('FILE', 'php', 0, 1536), +('FILE', 'php', 0, 1537), +('FILE', 'php', 0, 1538), +('FILE', 'php', 0, 1539), +('FILE', 'php', 0, 1540), +('FILE', 'php', 0, 1541), +('FILE', 'sql', 0, 1542), +('FILE', 'sql', 0, 1543), +('FILE', 'php', 0, 1544), +('FILE', 'php', 0, 1545), +('FILE', 'php', 0, 1546), +('FILE', 'php', 0, 1547), +('FILE', 'php', 0, 1548), +('FILE', 'php', 0, 1549), +('FILE', 'php', 0, 1550), +('FILE', 'php', 0, 1551), +('FILE', 'php', 0, 1552), +('FILE', 'php', 0, 1553), +('FILE', 'php', 0, 1554), +('FILE', 'js', 0, 1555), +('FILE', 'php', 0, 1556), +('FILE', 'php', 0, 1557), +('FILE', 'php', 0, 1558), +('FILE', 'php', 0, 1559), +('FILE', 'php', 0, 1560), +('FILE', 'php', 0, 1561), +('FILE', 'php', 0, 1562), +('FILE', 'php', 0, 1563), +('FILE', 'php', 0, 1564), +('FILE', 'php', 0, 1565), +('FILE', 'php', 0, 1566), +('FILE', 'php', 0, 1567), +('FILE', 'php', 0, 1568), +('FILE', 'php', 0, 1569), +('FILE', 'php', 0, 1570), +('FILE', 'php', 0, 1571), +('FILE', 'php', 0, 1572), +('FILE', 'php', 0, 1573), +('FILE', 'php', 0, 1574), +('FILE', 'php', 0, 1575), +('FILE', 'php', 0, 1576), +('FILE', 'php', 0, 1577), +('FILE', 'php', 0, 1578), +('FILE', 'image/gif', 0, 1579), +('FILE', 'image/jpeg', 0, 1580), +('FILE', 'php', 0, 1581), +('FILE', 'php', 0, 1582), +('FILE', 'php', 0, 1583), +('FILE', 'php', 0, 1584), +('FILE', 'php', 0, 1585), +('FILE', 'php', 0, 1586), +('FILE', 'css', 0, 1587), +('FILE', 'php', 0, 1588), +('FILE', 'css', 0, 1589), +('FILE', 'php', 0, 1590), +('FILE', 'php', 0, 1591), +('FILE', 'php', 0, 1592), +('FILE', 'php', 0, 1593), +('FILE', 'php', 0, 1594), +('FILE', 'php', 0, 1595), +('FILE', 'php', 0, 1596), +('FILE', 'php', 0, 1597), +('FILE', 'css', 0, 1598), +('FILE', 'php', 0, 1599), +('FILE', 'php', 0, 1600), +('FILE', 'php', 0, 1601), +('FILE', 'php', 0, 1602), +('FILE', 'php', 0, 1603), +('FILE', 'php', 0, 1604), +('FILE', 'php', 0, 1605), +('FILE', 'php', 0, 1606), +('FILE', 'php', 0, 1607), +('FILE', 'php', 0, 1608), +('FILE', 'php', 0, 1609), +('FILE', 'php', 0, 1610), +('FILE', 'php', 0, 1611), +('FILE', 'phpzal', 0, 1612), +('FILE', 'php', 0, 1613), +('FILE', 'php', 0, 1614), +('FILE', 'php', 0, 1615), +('FILE', '~ph', 0, 1616), +('FILE', 'php', 0, 1617), +('FILE', 'php', 0, 1618), +('FILE', 'php', 0, 1619), +('FILE', 'php', 0, 1620), +('FILE', 'php', 0, 1621), +('FILE', 'php', 0, 1622), +('FILE', 'php', 0, 1623), +('FILE', 'php', 0, 1624), +('FILE', 'php', 0, 1625), +('FILE', 'php', 0, 1626), +('FILE', 'php', 0, 1627), +('FILE', 'php', 0, 1628), +('FILE', 'php', 0, 1629), +('FILE', 'php', 0, 1630), +('FILE', 'php', 0, 1631), +('FILE', 'php', 0, 1632), +('FILE', 'phpx', 0, 1633), +('FILE', 'phpnedele', 0, 1634), +('FILE', '~ph', 0, 1635), +('FILE', 'phpnedele', 0, 1636), +('FILE', 'phpx', 0, 1637), +('FILE', '~ph', 0, 1638), +('FILE', 'phpnedele', 0, 1639), +('FILE', 'php', 0, 1640), +('FILE', 'phpnedele', 0, 1641), +('FILE', 'php', 0, 1642), +('FILE', 'php', 0, 1643), +('FILE', 'php', 0, 1644), +('FILE', 'phpx', 0, 1645), +('FILE', 'php', 0, 1646), +('FILE', 'application/pdf', 0, 1647), +('FILE', 'php_zaloha', 0, 1648), +('FILE', 'php', 0, 1649), +('FILE', 'php', 0, 1650), +('FILE', 'php_jede', 0, 1651), +('FILE', 'php_novejsichyba', 0, 1652), +('FILE', 'phpwithkeyboard', 0, 1653), +('FILE', 'phpx', 0, 1654), +('FILE', 'php', 0, 1655), +('FILE', 'phpx', 0, 1656), +('FILE', 'php', 0, 1657), +('FILE', 'php', 0, 1658), +('FILE', 'application/pdf', 0, 1659), +('FILE', 'php', 0, 1660), +('FILE', 'php', 0, 1661), +('FILE', 'php', 0, 1662), +('FILE', 'php', 0, 1663), +('FILE', 'php', 0, 1664), +('FILE', 'php', 0, 1665), +('FILE', 'php', 0, 1666), +('FILE', 'php', 0, 1667), +('FILE', 'php', 0, 1668), +('FILE', 'phpx', 0, 1669), +('FILE', 'phpzaloha', 0, 1670), +('FILE', 'php', 0, 1671), +('FILE', 'php', 0, 1672), +('FILE', 'php', 0, 1673), +('FILE', 'php', 0, 1674), +('FILE', 'php', 0, 1675), +('FILE', 'php', 0, 1676), +('FILE', 'php', 0, 1677), +('FILE', 'php', 0, 1678), +('FILE', 'php', 0, 1679), +('FILE', 'php', 0, 1680), +('FILE', 'text/html', 0, 1681), +('FILE', 'text/html', 0, 1682), +('FILE', 'php', 0, 1683), +('FILE', 'php', 0, 1684), +('FILE', 'php', 0, 1685), +('FILE', 'utx', 0, 1686), +('FILE', 'utx', 0, 1687), +('FILE', 'utx', 0, 1688), +('FILE', 'utx', 0, 1689), +('FILE', 'utx', 0, 1690), +('FILE', 'utx', 0, 1691), +('FILE', 'utx', 0, 1692), +('FILE', 'utx', 0, 1693), +('FILE', 'php', 0, 1694), +('FILE', 'text/html', 0, 1695), +('FILE', 'php', 0, 1696), +('FILE', 'image/png', 0, 1697), +('FILE', 'image/png', 0, 1698), +('FILE', 'image/png', 0, 1699), +('FILE', 'image/png', 0, 1700), +('FILE', 'image/png', 0, 1701), +('FILE', 'image/png', 0, 1702), +('FILE', 'image/png', 0, 1703), +('FILE', 'image/png', 0, 1704), +('FILE', 'image/png', 0, 1705), +('FILE', 'image/png', 0, 1706), +('FILE', 'image/png', 0, 1707), +('FILE', 'image/png', 0, 1708), +('FILE', 'image/png', 0, 1709), +('FILE', 'image/png', 0, 1710), +('FILE', 'image/png', 0, 1711), +('FILE', 'image/png', 0, 1712), +('FILE', 'image/png', 0, 1713), +('FILE', 'image/png', 0, 1714), +('FILE', 'image/png', 0, 1715), +('FILE', 'image/png', 0, 1716), +('FILE', 'image/png', 0, 1717), +('FILE', 'image/png', 0, 1718), +('FILE', 'image/png', 0, 1719), +('FILE', 'image/png', 0, 1720), +('FILE', 'image/png', 0, 1721), +('FILE', 'image/png', 0, 1722), +('FILE', 'image/png', 0, 1723), +('FILE', 'image/png', 0, 1724), +('FILE', 'image/png', 0, 1725), +('FILE', 'image/png', 0, 1726), +('FILE', 'image/png', 0, 1727), +('FILE', 'image/png', 0, 1728), +('FILE', 'image/png', 0, 1729), +('FILE', 'image/png', 0, 1730), +('FILE', 'image/png', 0, 1731), +('FILE', 'image/png', 0, 1732), +('FILE', 'image/png', 0, 1733), +('FILE', 'image/png', 0, 1734), +('FILE', 'image/png', 0, 1735), +('FILE', 'image/png', 0, 1736), +('FILE', 'image/png', 0, 1737), +('FILE', 'image/png', 0, 1738), +('FILE', 'image/png', 0, 1739), +('FILE', 'image/png', 0, 1740), +('FILE', 'image/png', 0, 1741), +('FILE', 'image/png', 0, 1742), +('FILE', 'image/png', 0, 1743), +('FILE', 'image/png', 0, 1744), +('FILE', 'image/png', 0, 1745), +('FILE', 'image/png', 0, 1746), +('FILE', 'image/png', 0, 1747), +('FILE', 'image/png', 0, 1748), +('FILE', 'image/png', 0, 1749), +('FILE', 'image/png', 0, 1750), +('FILE', 'image/png', 0, 1751), +('FILE', 'image/png', 0, 1752), +('FILE', 'image/png', 0, 1753), +('FILE', 'image/png', 0, 1754), +('FILE', 'image/png', 0, 1755), +('FILE', 'image/png', 0, 1756), +('FILE', 'image/png', 0, 1757), +('FILE', 'image/png', 0, 1758), +('FILE', 'image/png', 0, 1759), +('FILE', 'image/png', 0, 1760), +('FILE', 'image/png', 0, 1761), +('FILE', 'image/png', 0, 1762), +('FILE', 'image/png', 0, 1763), +('FILE', 'image/png', 0, 1764), +('FILE', 'image/png', 0, 1765), +('FILE', 'image/png', 0, 1766), +('FILE', 'image/png', 0, 1767), +('FILE', 'image/png', 0, 1768), +('FILE', 'image/png', 0, 1769), +('FILE', 'image/png', 0, 1770), +('FILE', 'image/png', 0, 1771), +('FILE', 'image/png', 0, 1772), +('FILE', 'image/png', 0, 1773), +('FILE', 'image/png', 0, 1774), +('FILE', 'image/png', 0, 1775), +('FILE', 'image/png', 0, 1776), +('FILE', 'image/png', 0, 1777), +('FILE', 'image/png', 0, 1778), +('FILE', 'image/png', 0, 1779), +('FILE', 'image/png', 0, 1780), +('FILE', 'image/png', 0, 1781), +('FILE', 'image/png', 0, 1782), +('FILE', 'image/png', 0, 1783), +('FILE', 'image/png', 0, 1784), +('FILE', 'image/png', 0, 1785), +('FILE', 'image/png', 0, 1786), +('FILE', 'image/png', 0, 1787), +('FILE', 'image/png', 0, 1788), +('FILE', 'image/png', 0, 1789), +('FILE', 'image/png', 0, 1790), +('FILE', 'image/png', 0, 1791), +('FILE', 'image/png', 0, 1792), +('FILE', 'image/png', 0, 1793), +('FILE', 'image/png', 0, 1794), +('FILE', 'image/png', 0, 1795), +('FILE', 'image/png', 0, 1796), +('FILE', 'image/png', 0, 1797), +('FILE', 'image/png', 0, 1798), +('FILE', 'image/png', 0, 1799), +('FILE', 'image/png', 0, 1800), +('FILE', 'image/png', 0, 1801), +('FILE', 'image/png', 0, 1802), +('FILE', 'image/png', 0, 1803), +('FILE', 'image/png', 0, 1804), +('FILE', 'image/png', 0, 1805), +('FILE', 'image/png', 0, 1806), +('FILE', 'image/png', 0, 1807), +('FILE', 'image/png', 0, 1808), +('FILE', 'image/png', 0, 1809), +('FILE', 'image/png', 0, 1810), +('FILE', 'image/png', 0, 1811), +('FILE', 'image/png', 0, 1812), +('FILE', 'image/png', 0, 1813), +('FILE', 'image/png', 0, 1814), +('FILE', 'image/png', 0, 1815), +('FILE', 'image/png', 0, 1816), +('FILE', 'image/png', 0, 1817), +('FILE', 'image/png', 0, 1818), +('FILE', 'image/png', 0, 1819), +('FILE', 'image/png', 0, 1820), +('FILE', 'image/png', 0, 1821), +('FILE', 'image/png', 0, 1822), +('FILE', 'image/png', 0, 1823), +('FILE', 'image/png', 0, 1824), +('FILE', 'image/png', 0, 1825), +('FILE', 'image/png', 0, 1826), +('FILE', 'image/png', 0, 1827), +('FILE', 'image/png', 0, 1828), +('FILE', 'image/png', 0, 1829), +('FILE', 'image/png', 0, 1830), +('FILE', 'image/png', 0, 1831), +('FILE', 'image/png', 0, 1832), +('FILE', 'image/png', 0, 1833), +('FILE', 'image/png', 0, 1834), +('FILE', 'image/png', 0, 1835), +('FILE', 'image/png', 0, 1836), +('FILE', 'image/png', 0, 1837), +('FILE', 'image/png', 0, 1838), +('FILE', 'image/png', 0, 1839), +('FILE', 'image/png', 0, 1840), +('FILE', 'image/png', 0, 1841), +('FILE', 'image/png', 0, 1842), +('FILE', 'image/png', 0, 1843), +('FILE', 'image/png', 0, 1844), +('FILE', 'image/png', 0, 1845), +('FILE', 'image/png', 0, 1846), +('FILE', 'image/png', 0, 1847), +('FILE', 'image/png', 0, 1848), +('FILE', 'image/png', 0, 1849), +('FILE', 'image/png', 0, 1850), +('FILE', 'image/png', 0, 1851), +('FILE', 'image/png', 0, 1852), +('FILE', 'image/png', 0, 1853), +('FILE', 'image/png', 0, 1854), +('FILE', 'image/png', 0, 1855), +('FILE', 'image/png', 0, 1856), +('FILE', 'image/png', 0, 1857), +('FILE', 'image/png', 0, 1858), +('FILE', 'image/png', 0, 1859), +('FILE', 'image/png', 0, 1860), +('FILE', 'image/png', 0, 1861), +('FILE', 'image/png', 0, 1862), +('FILE', 'image/png', 0, 1863), +('FILE', 'image/png', 0, 1864), +('FILE', 'image/png', 0, 1865), +('FILE', 'image/png', 0, 1866), +('FILE', 'image/png', 0, 1867), +('FILE', 'image/png', 0, 1868), +('FILE', 'image/png', 0, 1869), +('FILE', 'image/png', 0, 1870), +('FILE', 'image/png', 0, 1871), +('FILE', 'image/png', 0, 1872), +('FILE', 'image/png', 0, 1873), +('FILE', 'image/png', 0, 1874), +('FILE', 'image/png', 0, 1875), +('FILE', 'image/png', 0, 1876), +('FILE', 'image/png', 0, 1877), +('FILE', 'image/png', 0, 1878), +('FILE', 'image/png', 0, 1879), +('FILE', 'image/png', 0, 1880), +('FILE', 'image/png', 0, 1881), +('FILE', 'image/png', 0, 1882), +('FILE', 'image/png', 0, 1883), +('FILE', 'image/png', 0, 1884), +('FILE', 'image/png', 0, 1885), +('FILE', 'image/png', 0, 1886), +('FILE', 'image/png', 0, 1887), +('FILE', 'image/png', 0, 1888), +('FILE', 'image/png', 0, 1889), +('FILE', 'image/png', 0, 1890), +('FILE', 'image/png', 0, 1891), +('FILE', 'image/png', 0, 1892), +('FILE', 'image/png', 0, 1893), +('FILE', 'image/png', 0, 1894), +('FILE', 'image/png', 0, 1895), +('FILE', 'image/png', 0, 1896), +('FILE', 'image/png', 0, 1897), +('FILE', 'image/png', 0, 1898), +('FILE', 'image/png', 0, 1899), +('FILE', 'image/png', 0, 1900), +('FILE', 'image/png', 0, 1901), +('FILE', 'image/png', 0, 1902), +('FILE', 'image/png', 0, 1903), +('FILE', 'image/png', 0, 1904), +('FILE', 'image/png', 0, 1905), +('FILE', 'image/png', 0, 1906), +('FILE', 'image/png', 0, 1907), +('FILE', 'image/png', 0, 1908), +('FILE', 'image/png', 0, 1909), +('FILE', 'image/png', 0, 1910), +('FILE', 'image/png', 0, 1911), +('FILE', 'image/png', 0, 1912), +('FILE', 'image/png', 0, 1913), +('FILE', 'image/png', 0, 1914), +('FILE', 'image/png', 0, 1915), +('FILE', 'image/png', 0, 1916), +('FILE', 'image/png', 0, 1917), +('FILE', 'image/png', 0, 1918), +('FILE', 'image/png', 0, 1919), +('FILE', 'image/png', 0, 1920), +('FILE', 'image/png', 0, 1921), +('FILE', 'image/png', 0, 1922), +('FILE', 'image/png', 0, 1923), +('FILE', 'image/png', 0, 1924), +('FILE', 'image/png', 0, 1925), +('FILE', 'image/png', 0, 1926), +('FILE', 'image/png', 0, 1927), +('FILE', 'image/png', 0, 1928), +('FILE', 'image/png', 0, 1929), +('FILE', 'image/png', 0, 1930), +('FILE', 'image/png', 0, 1931), +('FILE', 'image/png', 0, 1932), +('FILE', 'image/png', 0, 1933), +('FILE', 'image/png', 0, 1934), +('FILE', 'image/png', 0, 1935), +('FILE', 'image/png', 0, 1936), +('FILE', 'image/png', 0, 1937), +('FILE', 'image/png', 0, 1938), +('FILE', 'image/png', 0, 1939), +('FILE', 'image/png', 0, 1940), +('FILE', 'image/png', 0, 1941), +('FILE', 'image/png', 0, 1942), +('FILE', 'image/png', 0, 1943), +('FILE', 'image/png', 0, 1944), +('FILE', 'image/png', 0, 1945), +('FILE', 'image/png', 0, 1946), +('FILE', 'image/png', 0, 1947), +('FILE', 'image/png', 0, 1948), +('FILE', 'image/png', 0, 1949), +('FILE', 'image/png', 0, 1950), +('FILE', 'image/png', 0, 1951), +('FILE', 'image/png', 0, 1952), +('FILE', 'image/png', 0, 1953), +('FILE', 'image/png', 0, 1954), +('FILE', 'image/png', 0, 1955), +('FILE', 'image/png', 0, 1956), +('FILE', 'image/png', 0, 1957), +('FILE', 'image/png', 0, 1958), +('FILE', 'image/png', 0, 1959), +('FILE', 'image/png', 0, 1960), +('FILE', 'image/png', 0, 1961), +('FILE', 'image/png', 0, 1962), +('FILE', 'image/png', 0, 1963), +('FILE', 'image/png', 0, 1964), +('FILE', 'image/png', 0, 1965), +('FILE', 'image/png', 0, 1966), +('FILE', 'image/png', 0, 1967), +('FILE', 'image/png', 0, 1968), +('FILE', 'image/png', 0, 1969), +('FILE', 'image/png', 0, 1970), +('FILE', 'image/png', 0, 1971), +('FILE', 'image/png', 0, 1972), +('FILE', 'image/png', 0, 1973), +('FILE', 'image/png', 0, 1974), +('FILE', 'image/png', 0, 1975), +('FILE', 'image/png', 0, 1976), +('FILE', 'image/png', 0, 1977), +('FILE', 'image/png', 0, 1978), +('FILE', 'image/png', 0, 1979), +('FILE', 'image/png', 0, 1980), +('FILE', 'image/png', 0, 1981), +('FILE', 'image/png', 0, 1982), +('FILE', 'image/png', 0, 1983), +('FILE', 'image/png', 0, 1984), +('FILE', 'image/png', 0, 1985), +('FILE', 'image/png', 0, 1986), +('FILE', 'image/png', 0, 1987), +('FILE', 'image/png', 0, 1988), +('FILE', 'image/png', 0, 1989), +('FILE', 'image/png', 0, 1990), +('FILE', 'image/png', 0, 1991), +('FILE', 'image/png', 0, 1992), +('FILE', 'image/png', 0, 1993), +('FILE', 'image/png', 0, 1994), +('FILE', 'image/png', 0, 1995), +('FILE', 'image/png', 0, 1996), +('FILE', 'image/png', 0, 1997), +('FILE', 'image/png', 0, 1998), +('FILE', 'image/png', 0, 1999), +('FILE', 'image/png', 0, 2000), +('FILE', 'image/png', 0, 2001), +('FILE', 'image/png', 0, 2002), +('FILE', 'image/png', 0, 2003), +('FILE', 'image/png', 0, 2004), +('FILE', 'image/png', 0, 2005), +('FILE', 'image/png', 0, 2006), +('FILE', 'image/png', 0, 2007), +('FILE', 'image/png', 0, 2008), +('FILE', 'image/png', 0, 2009), +('FILE', 'image/png', 0, 2010), +('FILE', 'image/png', 0, 2011), +('FILE', 'image/png', 0, 2012), +('FILE', 'image/png', 0, 2013), +('FILE', 'image/png', 0, 2014), +('FILE', 'image/png', 0, 2015), +('FILE', 'image/png', 0, 2016), +('FILE', 'image/png', 0, 2017), +('FILE', 'image/png', 0, 2018), +('FILE', 'image/png', 0, 2019), +('FILE', 'image/png', 0, 2020), +('FILE', 'image/png', 0, 2021), +('FILE', 'image/png', 0, 2022), +('FILE', 'image/png', 0, 2023), +('FILE', 'image/png', 0, 2024), +('FILE', 'image/png', 0, 2025), +('FILE', 'image/png', 0, 2026), +('FILE', 'image/png', 0, 2027), +('FILE', 'image/png', 0, 2028), +('FILE', 'image/png', 0, 2029), +('FILE', 'image/png', 0, 2030), +('FILE', 'image/png', 0, 2031), +('FILE', 'image/png', 0, 2032), +('FILE', 'image/png', 0, 2033), +('FILE', 'image/png', 0, 2034), +('FILE', 'image/png', 0, 2035), +('FILE', 'image/png', 0, 2036), +('FILE', 'image/png', 0, 2037), +('FILE', 'image/png', 0, 2038), +('FILE', 'image/png', 0, 2039), +('FILE', 'image/png', 0, 2040), +('FILE', 'image/png', 0, 2041), +('FILE', 'image/png', 0, 2042), +('FILE', 'image/png', 0, 2043), +('FILE', 'image/png', 0, 2044), +('FILE', 'image/png', 0, 2045), +('FILE', 'image/png', 0, 2046), +('FILE', 'image/png', 0, 2047), +('FILE', 'image/png', 0, 2048), +('FILE', 'image/png', 0, 2049), +('FILE', 'image/png', 0, 2050), +('FILE', 'image/png', 0, 2051), +('FILE', 'image/png', 0, 2052), +('FILE', 'image/png', 0, 2053), +('FILE', 'image/png', 0, 2054), +('FILE', 'image/png', 0, 2055), +('FILE', 'image/png', 0, 2056), +('FILE', 'image/png', 0, 2057), +('FILE', 'image/png', 0, 2058), +('FILE', 'image/png', 0, 2059), +('FILE', 'image/png', 0, 2060), +('FILE', 'image/png', 0, 2061), +('FILE', 'image/png', 0, 2062), +('FILE', 'image/png', 0, 2063), +('FILE', 'image/png', 0, 2064), +('FILE', 'image/png', 0, 2065), +('FILE', 'image/png', 0, 2066), +('FILE', 'image/png', 0, 2067), +('FILE', 'image/png', 0, 2068), +('FILE', 'image/png', 0, 2069), +('FILE', 'image/png', 0, 2070), +('FILE', 'image/png', 0, 2071), +('FILE', 'image/png', 0, 2072), +('FILE', 'image/png', 0, 2073), +('FILE', 'image/png', 0, 2074), +('FILE', 'image/png', 0, 2075), +('FILE', 'image/png', 0, 2076), +('FILE', 'image/png', 0, 2077), +('FILE', 'image/png', 0, 2078), +('FILE', 'image/png', 0, 2079), +('FILE', 'image/png', 0, 2080), +('FILE', 'image/png', 0, 2081), +('FILE', 'image/png', 0, 2082), +('FILE', 'image/png', 0, 2083), +('FILE', 'image/png', 0, 2084), +('FILE', 'image/png', 0, 2085), +('FILE', 'image/png', 0, 2086), +('FILE', 'image/png', 0, 2087), +('FILE', 'image/png', 0, 2088), +('FILE', 'image/png', 0, 2089), +('FILE', 'image/png', 0, 2090), +('FILE', 'image/png', 0, 2091), +('FILE', 'image/png', 0, 2092), +('FILE', 'image/png', 0, 2093), +('FILE', 'image/png', 0, 2094), +('FILE', 'image/png', 0, 2095), +('FILE', 'image/png', 0, 2096), +('FILE', 'image/png', 0, 2097), +('FILE', 'image/png', 0, 2098), +('FILE', 'image/png', 0, 2099), +('FILE', 'image/png', 0, 2100), +('FILE', 'image/png', 0, 2101), +('FILE', 'image/png', 0, 2102), +('FILE', 'image/png', 0, 2103), +('FILE', 'image/png', 0, 2104), +('FILE', 'image/png', 0, 2105), +('FILE', 'image/png', 0, 2106), +('FILE', 'image/png', 0, 2107), +('FILE', 'image/png', 0, 2108), +('FILE', 'image/png', 0, 2109), +('FILE', 'image/png', 0, 2110), +('FILE', 'image/png', 0, 2111), +('FILE', 'image/png', 0, 2112), +('FILE', 'image/png', 0, 2113), +('FILE', 'image/png', 0, 2114), +('FILE', 'image/png', 0, 2115), +('FILE', 'image/png', 0, 2116), +('FILE', 'image/png', 0, 2117), +('FILE', 'image/png', 0, 2118), +('FILE', 'image/png', 0, 2119), +('FILE', 'image/png', 0, 2120), +('FILE', 'image/png', 0, 2121), +('FILE', 'image/png', 0, 2122), +('FILE', 'image/png', 0, 2123), +('FILE', 'image/png', 0, 2124), +('FILE', 'image/png', 0, 2125), +('FILE', 'image/png', 0, 2126), +('FILE', 'image/png', 0, 2127), +('FILE', 'image/png', 0, 2128), +('FILE', 'image/png', 0, 2129), +('FILE', 'image/png', 0, 2130), +('FILE', 'image/png', 0, 2131), +('FILE', 'image/png', 0, 2132), +('FILE', 'image/png', 0, 2133), +('FILE', 'image/png', 0, 2134), +('FILE', 'image/png', 0, 2135), +('FILE', 'image/png', 0, 2136), +('FILE', 'image/png', 0, 2137), +('FILE', 'image/png', 0, 2138), +('FILE', 'image/png', 0, 2139), +('FILE', 'image/png', 0, 2140), +('FILE', 'image/png', 0, 2141), +('FILE', 'image/png', 0, 2142), +('FILE', 'image/png', 0, 2143), +('FILE', 'image/png', 0, 2144), +('FILE', 'image/png', 0, 2145), +('FILE', 'image/png', 0, 2146), +('FILE', 'image/png', 0, 2147), +('FILE', 'image/png', 0, 2148), +('FILE', 'image/png', 0, 2149), +('FILE', 'image/png', 0, 2150), +('FILE', 'image/png', 0, 2151), +('FILE', 'image/png', 0, 2152), +('FILE', 'image/png', 0, 2153), +('FILE', 'image/png', 0, 2154), +('FILE', 'image/png', 0, 2155), +('FILE', 'image/png', 0, 2156), +('FILE', 'image/png', 0, 2157), +('FILE', 'image/png', 0, 2158), +('FILE', 'image/png', 0, 2159), +('FILE', 'image/png', 0, 2160), +('FILE', 'image/png', 0, 2161), +('FILE', 'image/png', 0, 2162), +('FILE', 'image/png', 0, 2163), +('FILE', 'image/png', 0, 2164), +('FILE', 'image/png', 0, 2165), +('FILE', 'image/png', 0, 2166), +('FILE', 'image/png', 0, 2167), +('FILE', 'image/png', 0, 2168), +('FILE', 'image/png', 0, 2169), +('FILE', 'image/png', 0, 2170), +('FILE', 'image/png', 0, 2171), +('FILE', 'image/png', 0, 2172), +('FILE', 'image/png', 0, 2173), +('FILE', 'image/png', 0, 2174), +('FILE', 'image/png', 0, 2175), +('FILE', 'image/png', 0, 2176), +('FILE', 'image/png', 0, 2177), +('FILE', 'image/png', 0, 2178), +('FILE', 'image/png', 0, 2179), +('FILE', 'image/png', 0, 2180); +INSERT INTO `artifact` (`artifactClass`, `mimeType`, `size`, `id`) VALUES +('FILE', 'image/png', 0, 2181), +('FILE', 'image/png', 0, 2182), +('FILE', 'image/png', 0, 2183), +('FILE', 'image/png', 0, 2184), +('FILE', 'image/png', 0, 2185), +('FILE', 'image/png', 0, 2186), +('FILE', 'image/png', 0, 2187), +('FILE', 'image/png', 0, 2188), +('FILE', 'image/png', 0, 2189), +('FILE', 'image/png', 0, 2190), +('FILE', 'image/png', 0, 2191), +('FILE', 'image/png', 0, 2192), +('FILE', 'image/png', 0, 2193), +('FILE', 'image/png', 0, 2194), +('FILE', 'image/png', 0, 2195), +('FILE', 'image/png', 0, 2196), +('FILE', 'image/png', 0, 2197), +('FILE', 'image/png', 0, 2198), +('FILE', 'image/png', 0, 2199), +('FILE', 'image/png', 0, 2200), +('FILE', 'image/png', 0, 2201), +('FILE', 'image/png', 0, 2202), +('FILE', 'image/png', 0, 2203), +('FILE', 'image/png', 0, 2204), +('FILE', 'image/png', 0, 2205), +('FILE', 'image/png', 0, 2206), +('FILE', 'image/png', 0, 2207), +('FILE', 'image/png', 0, 2208), +('FILE', 'image/png', 0, 2209), +('FILE', 'image/png', 0, 2210), +('FILE', 'image/png', 0, 2211), +('FILE', 'image/png', 0, 2212), +('FILE', 'image/png', 0, 2213), +('FILE', 'image/png', 0, 2214), +('FILE', 'image/png', 0, 2215), +('FILE', 'image/png', 0, 2216), +('FILE', 'image/png', 0, 2217), +('FILE', 'image/png', 0, 2218), +('FILE', 'image/png', 0, 2219), +('FILE', 'image/png', 0, 2220), +('FILE', 'image/png', 0, 2221), +('FILE', 'image/png', 0, 2222), +('FILE', 'image/png', 0, 2223), +('FILE', 'image/png', 0, 2224), +('FILE', 'image/png', 0, 2225), +('FILE', 'image/png', 0, 2226), +('FILE', 'image/png', 0, 2227), +('FILE', 'image/png', 0, 2228), +('FILE', 'image/png', 0, 2229), +('FILE', 'image/png', 0, 2230), +('FILE', 'image/png', 0, 2231), +('FILE', 'image/png', 0, 2232), +('FILE', 'image/png', 0, 2233), +('FILE', 'image/png', 0, 2234), +('FILE', 'image/png', 0, 2235), +('FILE', 'image/png', 0, 2236), +('FILE', 'image/png', 0, 2237), +('FILE', 'image/png', 0, 2238), +('FILE', 'image/png', 0, 2239), +('FILE', 'image/png', 0, 2240), +('FILE', 'image/png', 0, 2241), +('FILE', 'image/png', 0, 2242), +('FILE', 'image/png', 0, 2243), +('FILE', 'image/png', 0, 2244), +('FILE', 'image/png', 0, 2245), +('FILE', 'image/png', 0, 2246), +('FILE', 'image/png', 0, 2247), +('FILE', 'image/png', 0, 2248), +('FILE', 'image/png', 0, 2249), +('FILE', 'image/png', 0, 2250), +('FILE', 'image/png', 0, 2251), +('FILE', 'image/png', 0, 2252), +('FILE', 'image/png', 0, 2253), +('FILE', 'image/png', 0, 2254), +('FILE', 'image/png', 0, 2255), +('FILE', 'image/png', 0, 2256), +('FILE', 'image/png', 0, 2257), +('FILE', 'image/png', 0, 2258), +('FILE', 'image/png', 0, 2259), +('FILE', 'image/png', 0, 2260), +('FILE', 'image/png', 0, 2261), +('FILE', 'image/png', 0, 2262), +('FILE', 'image/png', 0, 2263), +('FILE', 'image/png', 0, 2264), +('FILE', 'image/png', 0, 2265), +('FILE', 'image/png', 0, 2266), +('FILE', 'image/png', 0, 2267), +('FILE', 'image/png', 0, 2268), +('FILE', 'image/png', 0, 2269), +('FILE', 'image/png', 0, 2270), +('FILE', 'image/png', 0, 2271), +('FILE', 'image/png', 0, 2272), +('FILE', 'image/png', 0, 2273), +('FILE', 'image/png', 0, 2274), +('FILE', 'image/png', 0, 2275), +('FILE', 'image/png', 0, 2276), +('FILE', 'image/png', 0, 2277), +('FILE', 'image/png', 0, 2278), +('FILE', 'image/png', 0, 2279), +('FILE', 'image/png', 0, 2280), +('FILE', 'image/png', 0, 2281), +('FILE', 'image/png', 0, 2282), +('FILE', 'image/png', 0, 2283), +('FILE', 'image/png', 0, 2284), +('FILE', 'image/png', 0, 2285), +('FILE', 'image/png', 0, 2286), +('FILE', 'image/png', 0, 2287), +('FILE', 'image/png', 0, 2288), +('FILE', 'image/png', 0, 2289), +('FILE', 'image/png', 0, 2290), +('FILE', 'image/png', 0, 2291), +('FILE', 'image/png', 0, 2292), +('FILE', 'image/png', 0, 2293), +('FILE', 'image/png', 0, 2294), +('FILE', 'image/png', 0, 2295), +('FILE', 'image/png', 0, 2296), +('FILE', 'image/png', 0, 2297), +('FILE', 'image/png', 0, 2298), +('FILE', 'image/png', 0, 2299), +('FILE', 'image/png', 0, 2300), +('FILE', 'image/png', 0, 2301), +('FILE', 'image/png', 0, 2302), +('FILE', 'image/png', 0, 2303), +('FILE', 'image/png', 0, 2304), +('FILE', 'image/png', 0, 2305), +('FILE', 'image/png', 0, 2306), +('FILE', 'image/png', 0, 2307), +('FILE', 'image/png', 0, 2308), +('FILE', 'image/png', 0, 2309), +('FILE', 'image/png', 0, 2310), +('FILE', 'image/png', 0, 2311), +('FILE', 'image/png', 0, 2312), +('FILE', 'image/png', 0, 2313), +('FILE', 'image/png', 0, 2314), +('FILE', 'image/png', 0, 2315), +('FILE', 'image/png', 0, 2316), +('FILE', 'image/png', 0, 2317), +('FILE', 'image/png', 0, 2318), +('FILE', 'image/png', 0, 2319), +('FILE', 'image/png', 0, 2320), +('FILE', 'image/png', 0, 2321), +('FILE', 'image/png', 0, 2322), +('FILE', 'image/png', 0, 2323), +('FILE', 'image/png', 0, 2324), +('FILE', 'image/png', 0, 2325), +('FILE', 'image/png', 0, 2326), +('FILE', 'image/png', 0, 2327), +('FILE', 'image/png', 0, 2328), +('FILE', 'image/png', 0, 2329), +('FILE', 'image/png', 0, 2330), +('FILE', 'image/png', 0, 2331), +('FILE', 'image/png', 0, 2332), +('FILE', 'image/png', 0, 2333), +('FILE', 'image/png', 0, 2334), +('FILE', 'image/png', 0, 2335), +('FILE', 'image/png', 0, 2336), +('FILE', 'image/png', 0, 2337), +('FILE', 'image/png', 0, 2338), +('FILE', 'image/png', 0, 2339), +('FILE', 'image/png', 0, 2340), +('FILE', 'image/png', 0, 2341), +('FILE', 'image/png', 0, 2342), +('FILE', 'image/png', 0, 2343), +('FILE', 'image/png', 0, 2344), +('FILE', 'image/png', 0, 2345), +('FILE', 'image/png', 0, 2346), +('FILE', 'image/png', 0, 2347), +('FILE', 'image/png', 0, 2348), +('FILE', 'image/png', 0, 2349), +('FILE', 'image/png', 0, 2350), +('FILE', 'image/png', 0, 2351), +('FILE', 'image/png', 0, 2352), +('FILE', 'image/png', 0, 2353), +('FILE', 'image/png', 0, 2354), +('FILE', 'image/png', 0, 2355), +('FILE', 'image/png', 0, 2356), +('FILE', 'image/png', 0, 2357), +('FILE', 'image/png', 0, 2358), +('FILE', 'image/png', 0, 2359), +('FILE', 'image/png', 0, 2360), +('FILE', 'image/png', 0, 2361), +('FILE', 'image/png', 0, 2362), +('FILE', 'image/png', 0, 2363), +('FILE', 'image/png', 0, 2364), +('FILE', 'image/png', 0, 2365), +('FILE', 'image/png', 0, 2366), +('FILE', 'image/png', 0, 2367), +('FILE', 'image/png', 0, 2368), +('FILE', 'image/png', 0, 2369), +('FILE', 'image/png', 0, 2370), +('FILE', 'image/png', 0, 2371), +('FILE', 'image/png', 0, 2372), +('FILE', 'image/png', 0, 2373), +('FILE', 'image/png', 0, 2374), +('FILE', 'image/png', 0, 2375), +('FILE', 'image/png', 0, 2376), +('FILE', 'image/png', 0, 2377), +('FILE', 'image/png', 0, 2378), +('FILE', 'image/png', 0, 2379), +('FILE', 'image/png', 0, 2380), +('FILE', 'image/png', 0, 2381), +('FILE', 'image/png', 0, 2382), +('FILE', 'image/png', 0, 2383), +('FILE', 'image/png', 0, 2384), +('FILE', 'image/png', 0, 2385), +('FILE', 'image/png', 0, 2386), +('FILE', 'image/png', 0, 2387), +('FILE', 'image/png', 0, 2388), +('FILE', 'image/png', 0, 2389), +('FILE', 'image/png', 0, 2390), +('FILE', 'image/png', 0, 2391), +('FILE', 'image/png', 0, 2392), +('FILE', 'image/png', 0, 2393), +('FILE', 'image/png', 0, 2394), +('FILE', 'image/png', 0, 2395), +('FILE', 'image/png', 0, 2396), +('FILE', 'image/png', 0, 2397), +('FILE', 'image/png', 0, 2398), +('FILE', 'image/png', 0, 2399), +('FILE', 'image/png', 0, 2400), +('FILE', 'image/png', 0, 2401), +('FILE', 'image/png', 0, 2402), +('FILE', 'image/png', 0, 2403), +('FILE', 'image/png', 0, 2404), +('FILE', 'image/png', 0, 2405), +('FILE', 'image/png', 0, 2406), +('FILE', 'image/png', 0, 2407), +('FILE', 'image/png', 0, 2408), +('FILE', 'image/png', 0, 2409), +('FILE', 'image/png', 0, 2410), +('FILE', 'image/png', 0, 2411), +('FILE', 'image/png', 0, 2412), +('FILE', 'image/png', 0, 2413), +('FILE', 'image/png', 0, 2414), +('FILE', 'image/png', 0, 2415), +('FILE', 'image/png', 0, 2416), +('FILE', 'image/png', 0, 2417), +('FILE', 'image/png', 0, 2418), +('FILE', 'image/png', 0, 2419), +('FILE', 'image/png', 0, 2420), +('FILE', 'image/png', 0, 2421), +('FILE', 'image/png', 0, 2422), +('FILE', 'image/png', 0, 2423), +('FILE', 'image/png', 0, 2424), +('FILE', 'image/png', 0, 2425), +('FILE', 'image/png', 0, 2426), +('FILE', 'image/png', 0, 2427), +('FILE', 'image/png', 0, 2428), +('FILE', 'image/png', 0, 2429), +('FILE', 'image/png', 0, 2430), +('FILE', 'image/png', 0, 2431), +('FILE', 'image/png', 0, 2432), +('FILE', 'image/png', 0, 2433), +('FILE', 'image/png', 0, 2434), +('FILE', 'image/png', 0, 2435), +('FILE', 'image/png', 0, 2436), +('FILE', 'image/png', 0, 2437), +('FILE', 'image/png', 0, 2438), +('FILE', 'image/png', 0, 2439), +('FILE', 'image/png', 0, 2440), +('FILE', 'image/png', 0, 2441), +('FILE', 'image/png', 0, 2442), +('FILE', 'image/png', 0, 2443), +('FILE', 'image/png', 0, 2444), +('FILE', 'image/png', 0, 2445), +('FILE', 'image/png', 0, 2446), +('FILE', 'image/png', 0, 2447), +('FILE', 'image/png', 0, 2448), +('FILE', 'image/png', 0, 2449), +('FILE', 'image/png', 0, 2450), +('FILE', 'image/png', 0, 2451), +('FILE', 'image/png', 0, 2452), +('FILE', 'image/png', 0, 2453), +('FILE', 'image/png', 0, 2454), +('FILE', 'image/png', 0, 2455), +('FILE', 'image/png', 0, 2456), +('FILE', 'image/png', 0, 2457), +('FILE', 'image/png', 0, 2458), +('FILE', 'image/png', 0, 2459), +('FILE', 'image/png', 0, 2460), +('FILE', 'image/png', 0, 2461), +('FILE', 'image/png', 0, 2462), +('FILE', 'image/png', 0, 2463), +('FILE', 'image/png', 0, 2464), +('FILE', 'image/png', 0, 2465), +('FILE', 'image/png', 0, 2466), +('FILE', 'image/png', 0, 2467), +('FILE', 'image/png', 0, 2468), +('FILE', 'image/png', 0, 2469), +('FILE', 'image/png', 0, 2470), +('FILE', 'image/png', 0, 2471), +('FILE', 'image/png', 0, 2472), +('FILE', 'image/png', 0, 2473), +('FILE', 'image/png', 0, 2474), +('FILE', 'image/png', 0, 2475), +('FILE', 'image/png', 0, 2476), +('FILE', 'image/png', 0, 2477), +('FILE', 'image/png', 0, 2478), +('FILE', 'image/png', 0, 2479), +('FILE', 'image/png', 0, 2480), +('FILE', 'image/png', 0, 2481), +('FILE', 'image/png', 0, 2482), +('FILE', 'image/png', 0, 2483), +('FILE', 'image/png', 0, 2484), +('FILE', 'image/png', 0, 2485), +('FILE', 'image/png', 0, 2486), +('FILE', 'image/png', 0, 2487), +('FILE', 'image/png', 0, 2488), +('FILE', 'image/png', 0, 2489), +('FILE', 'image/png', 0, 2490), +('FILE', 'image/png', 0, 2491), +('FILE', 'image/png', 0, 2492), +('FILE', 'image/png', 0, 2493), +('FILE', 'image/png', 0, 2494), +('FILE', 'image/png', 0, 2495), +('FILE', 'image/png', 0, 2496), +('FILE', 'image/png', 0, 2497), +('FILE', 'image/png', 0, 2498), +('FILE', 'image/png', 0, 2499), +('FILE', 'image/png', 0, 2500), +('FILE', 'image/png', 0, 2501), +('FILE', 'image/png', 0, 2502), +('FILE', 'image/png', 0, 2503), +('FILE', 'image/png', 0, 2504), +('FILE', 'image/png', 0, 2505), +('FILE', 'image/png', 0, 2506), +('FILE', 'image/png', 0, 2507), +('FILE', 'image/png', 0, 2508), +('FILE', 'image/png', 0, 2509), +('FILE', 'image/png', 0, 2510), +('FILE', 'image/png', 0, 2511), +('FILE', 'image/png', 0, 2512), +('FILE', 'image/png', 0, 2513), +('FILE', 'image/png', 0, 2514), +('FILE', 'image/png', 0, 2515), +('FILE', 'image/png', 0, 2516), +('FILE', 'image/png', 0, 2517), +('FILE', 'image/png', 0, 2518), +('FILE', 'image/png', 0, 2519), +('FILE', 'image/png', 0, 2520), +('FILE', 'image/png', 0, 2521), +('FILE', 'image/png', 0, 2522), +('FILE', 'image/png', 0, 2523), +('FILE', 'image/png', 0, 2524), +('FILE', 'image/png', 0, 2525), +('FILE', 'image/png', 0, 2526), +('FILE', 'image/png', 0, 2527), +('FILE', 'image/png', 0, 2528), +('FILE', 'image/png', 0, 2529), +('FILE', 'image/png', 0, 2530), +('FILE', 'image/png', 0, 2531), +('FILE', 'image/png', 0, 2532), +('FILE', 'image/png', 0, 2533), +('FILE', 'image/png', 0, 2534), +('FILE', 'image/png', 0, 2535), +('FILE', 'image/png', 0, 2536), +('FILE', 'image/png', 0, 2537), +('FILE', 'image/png', 0, 2538), +('FILE', 'image/png', 0, 2539), +('FILE', 'image/png', 0, 2540), +('FILE', 'image/png', 0, 2541), +('FILE', 'image/png', 0, 2542), +('FILE', 'image/png', 0, 2543), +('FILE', 'image/png', 0, 2544), +('FILE', 'image/png', 0, 2545), +('FILE', 'image/png', 0, 2546), +('FILE', 'image/png', 0, 2547), +('FILE', 'image/png', 0, 2548), +('FILE', 'image/png', 0, 2549), +('FILE', 'image/png', 0, 2550), +('FILE', 'image/png', 0, 2551), +('FILE', 'image/png', 0, 2552), +('FILE', 'image/png', 0, 2553), +('FILE', 'image/png', 0, 2554), +('FILE', 'image/png', 0, 2555), +('FILE', 'image/png', 0, 2556), +('FILE', 'image/png', 0, 2557), +('FILE', 'image/png', 0, 2558), +('FILE', 'image/png', 0, 2559), +('FILE', 'image/png', 0, 2560), +('FILE', 'image/png', 0, 2561), +('FILE', 'image/png', 0, 2562), +('FILE', 'image/png', 0, 2563), +('FILE', 'image/png', 0, 2564), +('FILE', 'image/png', 0, 2565), +('FILE', 'image/png', 0, 2566), +('FILE', 'image/png', 0, 2567), +('FILE', 'image/png', 0, 2568), +('FILE', 'image/png', 0, 2569), +('FILE', 'image/png', 0, 2570), +('FILE', 'image/png', 0, 2571), +('FILE', 'image/png', 0, 2572), +('FILE', 'image/png', 0, 2573), +('FILE', 'image/png', 0, 2574), +('FILE', 'image/png', 0, 2575), +('FILE', 'image/png', 0, 2576), +('FILE', 'image/png', 0, 2577), +('FILE', 'image/png', 0, 2578), +('FILE', 'image/png', 0, 2579), +('FILE', 'image/png', 0, 2580), +('FILE', 'image/png', 0, 2581), +('FILE', 'image/png', 0, 2582), +('FILE', 'image/png', 0, 2583), +('FILE', 'image/png', 0, 2584), +('FILE', 'image/png', 0, 2585), +('FILE', 'image/png', 0, 2586), +('FILE', 'image/png', 0, 2587), +('FILE', 'image/png', 0, 2588), +('FILE', 'image/png', 0, 2589), +('FILE', 'image/png', 0, 2590), +('FILE', 'image/png', 0, 2591), +('FILE', 'image/png', 0, 2592), +('FILE', 'image/png', 0, 2593), +('FILE', 'image/png', 0, 2594), +('FILE', 'image/png', 0, 2595), +('FILE', 'image/png', 0, 2596), +('FILE', 'image/png', 0, 2597), +('FILE', 'image/png', 0, 2598), +('FILE', 'image/png', 0, 2599), +('FILE', 'image/png', 0, 2600), +('FILE', 'image/png', 0, 2601), +('FILE', 'image/png', 0, 2602), +('FILE', 'image/png', 0, 2603), +('FILE', 'image/png', 0, 2604), +('FILE', 'image/png', 0, 2605), +('FILE', 'image/png', 0, 2606), +('FILE', 'image/png', 0, 2607), +('FILE', 'image/png', 0, 2608), +('FILE', 'image/png', 0, 2609), +('FILE', 'image/png', 0, 2610), +('FILE', 'image/png', 0, 2611), +('FILE', 'image/png', 0, 2612), +('FILE', 'image/png', 0, 2613), +('FILE', 'image/png', 0, 2614), +('FILE', 'image/png', 0, 2615), +('FILE', 'image/png', 0, 2616), +('FILE', 'image/png', 0, 2617), +('FILE', 'image/png', 0, 2618), +('FILE', 'image/png', 0, 2619), +('FILE', 'image/png', 0, 2620), +('FILE', 'image/png', 0, 2621), +('FILE', 'image/png', 0, 2622), +('FILE', 'image/png', 0, 2623), +('FILE', 'image/png', 0, 2624), +('FILE', 'image/png', 0, 2625), +('FILE', 'image/png', 0, 2626), +('FILE', 'image/png', 0, 2627), +('FILE', 'image/png', 0, 2628), +('FILE', 'image/png', 0, 2629), +('FILE', 'image/png', 0, 2630), +('FILE', 'image/png', 0, 2631), +('FILE', 'image/png', 0, 2632), +('FILE', 'image/png', 0, 2633), +('FILE', 'image/png', 0, 2634), +('FILE', 'image/png', 0, 2635), +('FILE', 'image/png', 0, 2636), +('FILE', 'image/png', 0, 2637), +('FILE', 'image/png', 0, 2638), +('FILE', 'image/png', 0, 2639), +('FILE', 'image/png', 0, 2640), +('FILE', 'image/png', 0, 2641), +('FILE', 'image/png', 0, 2642), +('FILE', 'image/png', 0, 2643), +('FILE', 'image/png', 0, 2644), +('FILE', 'image/png', 0, 2645), +('FILE', 'image/png', 0, 2646), +('FILE', 'image/png', 0, 2647), +('FILE', 'image/png', 0, 2648), +('FILE', 'image/png', 0, 2649), +('FILE', 'image/png', 0, 2650), +('FILE', 'image/png', 0, 2651), +('FILE', 'image/png', 0, 2652), +('FILE', 'image/png', 0, 2653), +('FILE', 'image/png', 0, 2654), +('FILE', 'image/png', 0, 2655), +('FILE', 'image/png', 0, 2656), +('FILE', 'image/png', 0, 2657), +('FILE', 'image/png', 0, 2658), +('FILE', 'image/png', 0, 2659), +('FILE', 'image/png', 0, 2660), +('FILE', 'image/png', 0, 2661), +('FILE', 'image/png', 0, 2662), +('FILE', 'image/png', 0, 2663), +('FILE', 'image/png', 0, 2664), +('FILE', 'image/png', 0, 2665), +('FILE', 'image/png', 0, 2666), +('FILE', 'image/png', 0, 2667), +('FILE', 'image/png', 0, 2668), +('FILE', 'image/png', 0, 2669), +('FILE', 'image/png', 0, 2670), +('FILE', 'image/png', 0, 2671), +('FILE', 'image/png', 0, 2672), +('FILE', 'image/png', 0, 2673), +('FILE', 'image/png', 0, 2674), +('FILE', 'image/png', 0, 2675), +('FILE', 'image/png', 0, 2676), +('FILE', 'image/png', 0, 2677), +('FILE', 'image/png', 0, 2678), +('FILE', 'image/png', 0, 2679), +('FILE', 'image/png', 0, 2680), +('FILE', 'image/png', 0, 2681), +('FILE', 'image/png', 0, 2682), +('FILE', 'image/png', 0, 2683), +('FILE', 'image/png', 0, 2684), +('FILE', 'image/png', 0, 2685), +('FILE', 'image/png', 0, 2686), +('FILE', 'image/png', 0, 2687), +('FILE', 'image/png', 0, 2688), +('FILE', 'image/png', 0, 2689), +('FILE', 'image/png', 0, 2690), +('FILE', 'image/png', 0, 2691), +('FILE', 'image/png', 0, 2692), +('FILE', 'image/png', 0, 2693), +('FILE', 'image/png', 0, 2694), +('FILE', 'image/png', 0, 2695), +('FILE', 'image/png', 0, 2696), +('FILE', 'image/png', 0, 2697), +('FILE', 'image/png', 0, 2698), +('FILE', 'image/png', 0, 2699), +('FILE', 'image/png', 0, 2700), +('FILE', 'image/png', 0, 2701), +('FILE', 'image/png', 0, 2702), +('FILE', 'image/png', 0, 2703), +('FILE', 'image/png', 0, 2704), +('FILE', 'image/png', 0, 2705), +('FILE', 'image/png', 0, 2706), +('FILE', 'image/png', 0, 2707), +('FILE', 'image/png', 0, 2708), +('FILE', 'image/png', 0, 2709), +('FILE', 'image/png', 0, 2710), +('FILE', 'image/png', 0, 2711), +('FILE', 'image/png', 0, 2712), +('FILE', 'image/png', 0, 2713), +('FILE', 'image/png', 0, 2714), +('FILE', 'image/png', 0, 2715), +('FILE', 'image/png', 0, 2716), +('FILE', 'image/png', 0, 2717), +('FILE', 'image/png', 0, 2718), +('FILE', 'image/png', 0, 2719), +('FILE', 'image/png', 0, 2720), +('FILE', 'image/png', 0, 2721), +('FILE', 'image/png', 0, 2722), +('FILE', 'image/png', 0, 2723), +('FILE', 'image/png', 0, 2724), +('FILE', 'image/png', 0, 2725), +('FILE', 'image/png', 0, 2726), +('FILE', 'image/png', 0, 2727), +('FILE', 'image/png', 0, 2728), +('FILE', 'image/png', 0, 2729), +('FILE', 'image/png', 0, 2730), +('FILE', 'image/png', 0, 2731), +('FILE', 'image/png', 0, 2732), +('FILE', 'image/png', 0, 2733), +('FILE', 'image/png', 0, 2734), +('FILE', 'image/png', 0, 2735), +('FILE', 'image/png', 0, 2736), +('FILE', 'image/png', 0, 2737), +('FILE', 'image/png', 0, 2738), +('FILE', 'image/png', 0, 2739), +('FILE', 'image/png', 0, 2740), +('FILE', 'image/png', 0, 2741), +('FILE', 'image/png', 0, 2742), +('FILE', 'image/png', 0, 2743), +('FILE', 'image/png', 0, 2744), +('FILE', 'image/png', 0, 2745), +('FILE', 'image/png', 0, 2746), +('FILE', 'image/png', 0, 2747), +('FILE', 'image/png', 0, 2748), +('FILE', 'image/png', 0, 2749), +('FILE', 'image/png', 0, 2750), +('FILE', 'image/png', 0, 2751), +('FILE', 'image/png', 0, 2752), +('FILE', 'image/png', 0, 2753), +('FILE', 'image/png', 0, 2754), +('FILE', 'image/png', 0, 2755), +('FILE', 'image/png', 0, 2756), +('FILE', 'image/png', 0, 2757), +('FILE', 'image/png', 0, 2758), +('FILE', 'image/png', 0, 2759), +('FILE', 'image/png', 0, 2760), +('FILE', 'image/png', 0, 2761), +('FILE', 'image/png', 0, 2762), +('FILE', 'image/png', 0, 2763), +('FILE', 'image/png', 0, 2764), +('FILE', 'image/png', 0, 2765), +('FILE', 'image/png', 0, 2766), +('FILE', 'image/png', 0, 2767), +('FILE', 'image/png', 0, 2768), +('FILE', 'image/png', 0, 2769), +('FILE', 'image/png', 0, 2770), +('FILE', 'image/png', 0, 2771), +('FILE', 'image/png', 0, 2772), +('FILE', 'image/png', 0, 2773), +('FILE', 'image/png', 0, 2774), +('FILE', 'image/png', 0, 2775), +('FILE', 'image/png', 0, 2776), +('FILE', 'image/png', 0, 2777), +('FILE', 'image/png', 0, 2778), +('FILE', 'image/png', 0, 2779), +('FILE', 'image/png', 0, 2780), +('FILE', 'image/png', 0, 2781), +('FILE', 'image/png', 0, 2782), +('FILE', 'image/png', 0, 2783), +('FILE', 'image/png', 0, 2784), +('FILE', 'image/png', 0, 2785), +('FILE', 'image/png', 0, 2786), +('FILE', 'image/png', 0, 2787), +('FILE', 'image/png', 0, 2788), +('FILE', 'image/png', 0, 2789), +('FILE', 'image/png', 0, 2790), +('FILE', 'image/png', 0, 2791), +('FILE', 'image/png', 0, 2792), +('FILE', 'image/png', 0, 2793), +('FILE', 'image/png', 0, 2794), +('FILE', 'image/png', 0, 2795), +('FILE', 'image/png', 0, 2796), +('FILE', 'image/png', 0, 2797), +('FILE', 'image/png', 0, 2798), +('FILE', 'image/png', 0, 2799), +('FILE', 'image/png', 0, 2800), +('FILE', 'image/png', 0, 2801), +('FILE', 'image/png', 0, 2802), +('FILE', 'image/png', 0, 2803), +('FILE', 'image/png', 0, 2804), +('FILE', 'image/png', 0, 2805), +('FILE', 'image/png', 0, 2806), +('FILE', 'image/png', 0, 2807), +('FILE', 'image/png', 0, 2808), +('FILE', 'image/png', 0, 2809), +('FILE', 'image/png', 0, 2810), +('FILE', 'image/png', 0, 2811), +('FILE', 'image/png', 0, 2812), +('FILE', 'image/png', 0, 2813), +('FILE', 'image/png', 0, 2814), +('FILE', 'image/png', 0, 2815), +('FILE', 'image/png', 0, 2816), +('FILE', 'image/png', 0, 2817), +('FILE', 'image/png', 0, 2818), +('FILE', 'image/png', 0, 2819), +('FILE', 'image/png', 0, 2820), +('FILE', 'image/png', 0, 2821), +('FILE', 'image/png', 0, 2822), +('FILE', 'image/png', 0, 2823), +('FILE', 'image/png', 0, 2824), +('FILE', 'image/png', 0, 2825), +('FILE', 'image/png', 0, 2826), +('FILE', 'image/png', 0, 2827), +('FILE', 'image/png', 0, 2828), +('FILE', 'image/png', 0, 2829), +('FILE', 'image/png', 0, 2830), +('FILE', 'image/png', 0, 2831), +('FILE', 'image/png', 0, 2832), +('FILE', 'image/png', 0, 2833), +('FILE', 'image/png', 0, 2834), +('FILE', 'image/png', 0, 2835), +('FILE', 'image/png', 0, 2836), +('FILE', 'image/png', 0, 2837), +('FILE', 'image/png', 0, 2838), +('FILE', 'image/png', 0, 2839), +('FILE', 'image/png', 0, 2840), +('FILE', 'image/png', 0, 2841), +('FILE', 'image/png', 0, 2842), +('FILE', 'image/png', 0, 2843), +('FILE', 'image/png', 0, 2844), +('FILE', 'image/png', 0, 2845), +('FILE', 'image/png', 0, 2846), +('FILE', 'image/png', 0, 2847), +('FILE', 'image/png', 0, 2848), +('FILE', 'image/png', 0, 2849), +('FILE', 'image/png', 0, 2850), +('FILE', 'image/png', 0, 2851), +('FILE', 'image/png', 0, 2852), +('FILE', 'image/png', 0, 2853), +('FILE', 'image/png', 0, 2854), +('FILE', 'image/png', 0, 2855), +('FILE', 'image/png', 0, 2856), +('FILE', 'image/png', 0, 2857), +('FILE', 'image/png', 0, 2858), +('FILE', 'image/png', 0, 2859), +('FILE', 'image/png', 0, 2860), +('FILE', 'image/png', 0, 2861), +('FILE', 'image/png', 0, 2862), +('FILE', 'image/png', 0, 2863), +('FILE', 'image/png', 0, 2864), +('FILE', 'image/png', 0, 2865), +('FILE', 'image/png', 0, 2866), +('FILE', 'image/png', 0, 2867), +('FILE', 'image/png', 0, 2868), +('FILE', 'image/png', 0, 2869), +('FILE', 'image/png', 0, 2870), +('FILE', 'image/png', 0, 2871), +('FILE', 'image/png', 0, 2872), +('FILE', 'image/png', 0, 2873), +('FILE', 'image/png', 0, 2874), +('FILE', 'image/png', 0, 2875), +('FILE', 'image/png', 0, 2876), +('FILE', 'image/png', 0, 2877), +('FILE', 'image/png', 0, 2878), +('FILE', 'image/png', 0, 2879), +('FILE', 'image/png', 0, 2880), +('FILE', 'image/png', 0, 2881), +('FILE', 'image/png', 0, 2882), +('FILE', 'image/png', 0, 2883), +('FILE', 'image/png', 0, 2884), +('FILE', 'image/png', 0, 2885), +('FILE', 'image/png', 0, 2886), +('FILE', 'image/png', 0, 2887), +('FILE', 'image/png', 0, 2888), +('FILE', 'image/png', 0, 2889), +('FILE', 'image/png', 0, 2890), +('FILE', 'image/png', 0, 2891), +('FILE', 'image/png', 0, 2892), +('FILE', 'image/png', 0, 2893), +('FILE', 'image/png', 0, 2894), +('FILE', 'image/png', 0, 2895), +('FILE', 'image/png', 0, 2896), +('FILE', 'image/png', 0, 2897), +('FILE', 'image/png', 0, 2898), +('FILE', 'image/png', 0, 2899), +('FILE', 'image/png', 0, 2900), +('FILE', 'image/png', 0, 2901), +('FILE', 'image/png', 0, 2902), +('FILE', 'image/png', 0, 2903), +('FILE', 'image/png', 0, 2904), +('FILE', 'image/png', 0, 2905), +('FILE', 'image/png', 0, 2906), +('FILE', 'image/png', 0, 2907), +('FILE', 'image/png', 0, 2908), +('FILE', 'image/png', 0, 2909), +('FILE', 'image/png', 0, 2910), +('FILE', 'image/png', 0, 2911), +('FILE', 'image/png', 0, 2912), +('FILE', 'image/png', 0, 2913), +('FILE', 'image/png', 0, 2914), +('FILE', 'image/png', 0, 2915), +('FILE', 'image/png', 0, 2916), +('FILE', 'image/png', 0, 2917), +('FILE', 'image/png', 0, 2918), +('FILE', 'image/png', 0, 2919), +('FILE', 'image/png', 0, 2920), +('FILE', 'image/png', 0, 2921), +('FILE', 'image/png', 0, 2922), +('FILE', 'image/png', 0, 2923), +('FILE', 'image/png', 0, 2924), +('FILE', 'image/png', 0, 2925), +('FILE', 'image/png', 0, 2926), +('FILE', 'image/png', 0, 2927), +('FILE', 'image/png', 0, 2928), +('FILE', 'image/png', 0, 2929), +('FILE', 'image/png', 0, 2930), +('FILE', 'image/png', 0, 2931), +('FILE', 'image/png', 0, 2932), +('FILE', 'image/png', 0, 2933), +('FILE', 'image/png', 0, 2934), +('FILE', 'image/png', 0, 2935), +('FILE', 'image/png', 0, 2936), +('FILE', 'image/png', 0, 2937), +('FILE', 'image/png', 0, 2938), +('FILE', 'image/png', 0, 2939), +('FILE', 'image/png', 0, 2940), +('FILE', 'image/png', 0, 2941), +('FILE', 'image/png', 0, 2942), +('FILE', 'image/png', 0, 2943), +('FILE', 'image/png', 0, 2944), +('FILE', 'image/png', 0, 2945), +('FILE', 'image/png', 0, 2946), +('FILE', 'image/png', 0, 2947), +('FILE', 'image/png', 0, 2948), +('FILE', 'image/png', 0, 2949), +('FILE', 'image/png', 0, 2950), +('FILE', 'image/png', 0, 2951), +('FILE', 'image/png', 0, 2952), +('FILE', 'image/png', 0, 2953), +('FILE', 'image/png', 0, 2954), +('FILE', 'image/png', 0, 2955), +('FILE', 'image/png', 0, 2956), +('FILE', 'image/png', 0, 2957), +('FILE', 'image/png', 0, 2958), +('FILE', 'image/png', 0, 2959), +('FILE', 'image/png', 0, 2960), +('FILE', 'image/png', 0, 2961), +('FILE', 'image/png', 0, 2962), +('FILE', 'image/png', 0, 2963), +('FILE', 'image/png', 0, 2964), +('FILE', 'image/png', 0, 2965), +('FILE', 'image/png', 0, 2966), +('FILE', 'image/png', 0, 2967), +('FILE', 'image/png', 0, 2968), +('FILE', 'image/png', 0, 2969), +('FILE', 'image/png', 0, 2970), +('FILE', 'image/png', 0, 2971), +('FILE', 'image/png', 0, 2972), +('FILE', 'image/png', 0, 2973), +('FILE', 'image/png', 0, 2974), +('FILE', 'image/png', 0, 2975), +('FILE', 'image/png', 0, 2976), +('FILE', 'image/png', 0, 2977), +('FILE', 'image/png', 0, 2978), +('FILE', 'image/png', 0, 2979), +('FILE', 'image/png', 0, 2980), +('FILE', 'image/png', 0, 2981), +('FILE', 'image/png', 0, 2982), +('FILE', 'image/png', 0, 2983), +('FILE', 'image/png', 0, 2984), +('FILE', 'image/png', 0, 2985), +('FILE', 'image/png', 0, 2986), +('FILE', 'image/png', 0, 2987), +('FILE', 'image/png', 0, 2988), +('FILE', 'image/png', 0, 2989), +('FILE', 'image/png', 0, 2990), +('FILE', 'image/png', 0, 2991), +('FILE', 'image/png', 0, 2992), +('FILE', 'image/png', 0, 2993), +('FILE', 'image/png', 0, 2994), +('FILE', 'php', 0, 2995), +('FILE', 'php', 0, 2996), +('FILE', 'php', 0, 2997), +('FILE', 'php', 0, 2998), +('FILE', 'php', 0, 2999), +('FILE', 'php', 0, 3000), +('FILE', 'php', 0, 3001), +('FILE', 'php', 0, 3002), +('FILE', 'php', 0, 3003), +('FILE', 'php', 0, 3004), +('FILE', 'php', 0, 3005), +('FILE', 'php', 0, 3006), +('FILE', 'php', 0, 3007), +('FILE', 'php', 0, 3008), +('FILE', 'php', 0, 3009), +('FILE', 'php', 0, 3010), +('FILE', 'php', 0, 3011), +('FILE', 'php', 0, 3012), +('FILE', 'php3', 0, 3013), +('FILE', 'php3', 0, 3014), +('FILE', 'php', 0, 3015), +('FILE', 'php', 0, 3016), +('FILE', 'php', 0, 3017), +('FILE', 'php', 0, 3018), +('FILE', 'php', 0, 3019), +('FILE', 'php', 0, 3020), +('FILE', 'php3', 0, 3021), +('FILE', 'utx', 0, 3022), +('FILE', 'utx', 0, 3023), +('FILE', 'utx', 0, 3024), +('FILE', 'php', 0, 3025), +('FILE', 'text/plain', 0, 3026), +('FILE', 'bat', 0, 3027), +('FILE', 'php', 0, 3028), +('FILE', 'utx', 0, 3029), +('FILE', 'php3', 0, 3030), +('FILE', 'php3', 0, 3031), +('FILE', 'php', 0, 3032), +('FILE', 'php', 0, 3033), +('FILE', 'php', 0, 3034), +('FILE', 'php', 0, 3035), +('FILE', 'php', 0, 3036), +('FILE', 'php', 0, 3037), +('FILE', 'php', 0, 3038), +('FILE', 'php', 0, 3039), +('FILE', 'php_old', 0, 3040), +('FILE', 'php', 0, 3041), +('FILE', 'text/plain', 0, 3042), +('FILE', 'php', 0, 3043), +('FILE', 'php', 0, 3044), +('FILE', 'php', 0, 3045), +('FILE', 'php', 0, 3046), +('FILE', 'php', 0, 3047), +('FILE', 'php', 0, 3048), +('FILE', 'php', 0, 3049), +('FILE', 'php', 0, 3050), +('FILE', 'php', 0, 3051), +('FILE', 'php', 0, 3052), +('FILE', 'php', 0, 3053), +('FILE', 'php', 0, 3054), +('FILE', 'php', 0, 3055), +('FILE', 'php', 0, 3056), +('FILE', 'php', 0, 3057), +('FILE', 'php', 0, 3058), +('FILE', 'php', 0, 3059), +('FILE', 'php', 0, 3060), +('FILE', 'php', 0, 3061), +('FILE', 'php', 0, 3062), +('FILE', 'php', 0, 3063), +('FILE', 'php', 0, 3064), +('FILE', 'php', 0, 3065), +('FILE', 'php', 0, 3066), +('FILE', 'php', 0, 3067), +('FILE', 'php', 0, 3068), +('FILE', 'php', 0, 3069), +('FILE', 'php', 0, 3070), +('FILE', 'php', 0, 3071), +('FILE', 'php', 0, 3072), +('FILE', 'php', 0, 3073), +('FILE', 'php', 0, 3074), +('FILE', 'old', 0, 3075), +('FILE', 'php', 0, 3076), +('FILE', 'php', 0, 3077), +('FILE', 'class', 0, 3078), +('FILE', 'class', 0, 3079), +('FILE', 'class', 0, 3080), +('FILE', 'application/xml', 0, 3081), +('FILE', 'application/zip', 0, 3082), +('FILE', 'dtd', 0, 3083), +('FILE', 'php', 0, 3084), +('FILE', 'php', 0, 3085), +('FILE', 'php', 0, 3086), +('FILE', 'php', 0, 3087), +('FILE', 'php', 0, 3088), +('FILE', 'php', 0, 3089), +('FILE', 'php3', 0, 3090), +('FILE', 'php', 0, 3091), +('FILE', 'php', 0, 3092), +('FILE', 'image/png', 0, 3364), +('FILE', 'image/png', 0, 3365), +('FILE', 'image/png', 0, 3366), +('FILE', 'application/pdf', 0, 3565), +('FILE', 'application/pdf', 0, 3566), +('FILE', 'application/pdf', 0, 3648), +('FILE', 'image/png', 0, 3720), +('FILE', 'image/png', 0, 3721), +('FILE', 'image/png', 0, 3725), +('FILE', 'text/html', 0, 3860), +('FILE', 'text/html', 0, 3862), +('WIKIPAGE', NULL, 0, 3912), +('WIKIPAGE', NULL, 0, 3914), +('WIKIPAGE', NULL, 0, 3915), +('FILE', 'application/xml', 0, 3923), +('FILE', 'gitignore', 0, 3925), +('FILE', 'yml', 0, 3926), +('FILE', 'text/plain', 0, 3929), +('FILE', 'text/plain', 0, 3930), +('FILE', 'text/plain', 0, 3931), +('FILE', 'text/plain', 0, 3934), +('FILE', 'text/plain', 0, 3936), +('FILE', 'text/plain', 0, 3942), +('FILE', 'text/plain', 0, 3944), +('FILE', 'text/plain', 0, 3951), +('FILE', 'text/plain', 0, 3956), +('FILE', 'application/xml', 0, 3958), +('FILE', 'application/xml', 0, 3959), +('FILE', 'md', 0, 3963), +('FILE', 'text/plain', 0, 3967), +('FILE', 'sql', 0, 3968), +('FILE', 'application/xml', 0, 3969), +('WIKIPAGE', NULL, 0, 3972), +('WIKIPAGE', NULL, 0, 3973), +('WIKIPAGE', NULL, 0, 3974), +('WIKIPAGE', NULL, 0, 3975), +('WIKIPAGE', NULL, 0, 3983), +('WIKIPAGE', NULL, 0, 3984), +('FILE', 'json', 0, 4009), +('FILE', 'json', 0, 4010), +('FILE', 'json', 0, 4011), +('FILE', 'json', 0, 4012), +('FILE', 'json', 0, 4013), +('WIKIPAGE', NULL, 0, 4023), +('WIKIPAGE', NULL, 0, 4045), +('FILE', 'css', 0, 4048), +('FILE', 'js', 0, 4049), +('FILE', 'jsp', 0, 4050), +('FILE', 'js', 0, 4054), +('FILE', 'css', 0, 4060), +('FILE', 'js', 0, 4061), +('FILE', 'js', 0, 4064), +('FILE', 'js', 0, 4065), +('FILE', 'js', 0, 4069), +('FILE', 'js', 0, 4071), +('FILE', 'jsp', 0, 4072), +('FILE', 'md', 0, 4076), +('WIKIPAGE', NULL, 0, 4079), +('FILE', 'jsp', 0, 4086), +('FILE', 'text/plain', 0, 4090), +('FILE', 'text/plain', 0, 4091), +('FILE', 'js', 0, 4092), +('FILE', 'jsp', 0, 4093), +('FILE', 'robot', 0, 4095), +('FILE', 'js', 0, 4099), +('FILE', 'js', 0, 4100), +('FILE', 'js', 0, 4101), +('FILE', 'js', 0, 4102), +('WIKIPAGE', NULL, 0, 4103), +('FILE', 'js', 0, 4112), +('FILE', 'js', 0, 4113), +('FILE', 'css', 0, 4116), +('FILE', 'text/plain', 0, 4125), +('FILE', 'robot', 0, 4126), +('FILE', 'js', 0, 4130), +('WIKIPAGE', NULL, 0, 4141), +('FILE', 'text/plain', 0, 4147), +('FILE', 'application/pdf', 0, 4153), +('FILE', 'application/xml', 0, 4154), +('FILE', 'text/plain', 0, 4156), +('FILE', 'application/xml', 0, 4159), +('FILE', 'text/plain', 0, 4160), +('FILE', 'jsp', 0, 4161), +('FILE', 'application/xml', 0, 4162), +('FILE', 'text/plain', 0, 4163), +('FILE', 'text/plain', 0, 4164), +('FILE', 'text/plain', 0, 4165), +('FILE', 'text/plain', 0, 4166), +('FILE', 'text/plain', 0, 4167), +('FILE', 'text/plain', 0, 4168), +('FILE', 'text/plain', 0, 4169), +('FILE', 'text/plain', 0, 4170), +('FILE', 'text/plain', 0, 4171), +('FILE', 'text/plain', 0, 4172), +('FILE', 'text/plain', 0, 4173), +('FILE', 'text/plain', 0, 4174), +('FILE', 'application/xml', 0, 4175), +('FILE', 'text/plain', 0, 4176), +('FILE', 'text/plain', 0, 4177), +('FILE', 'application/xml', 0, 4178), +('FILE', 'text/plain', 0, 4179), +('FILE', 'js', 0, 4182), +('FILE', 'js', 0, 4183), +('FILE', 'js', 0, 4184), +('FILE', 'robot', 0, 4188), +('FILE', 'robot', 0, 4189), +('FILE', 'css', 0, 4191), +('FILE', 'js', 0, 4192), +('FILE', 'js', 0, 4193), +('FILE', 'js', 0, 4194), +('FILE', 'js', 0, 4195), +('FILE', 'text/plain', 0, 4197), +('FILE', 'js', 0, 4198), +('FILE', 'js', 0, 4200), +('FILE', 'css', 0, 4202), +('FILE', 'js', 0, 4203), +('FILE', 'js', 0, 4204), +('FILE', 'js', 0, 4205), +('FILE', 'js', 0, 4206), +('FILE', 'js', 0, 4207), +('FILE', 'css', 0, 4209), +('FILE', 'robot', 0, 4211), +('FILE', 'js', 0, 4213), +('FILE', 'robot', 0, 4214), +('FILE', 'robot', 0, 4215), +('FILE', 'robot', 0, 4216), +('FILE', 'robot', 0, 4217), +('FILE', 'robot', 0, 4218), +('FILE', 'robot', 0, 4219), +('FILE', 'robot', 0, 4220), +('FILE', 'image/gif', 0, 4223), +('FILE', 'text/plain', 0, 4224), +('FILE', 'js', 0, 4225), +('FILE', 'text/plain', 0, 4226), +('FILE', 'text/plain', 0, 4227), +('FILE', 'text/plain', 0, 4228), +('FILE', 'text/plain', 0, 4229), +('FILE', 'text/plain', 0, 4230), +('FILE', 'text/plain', 0, 4231), +('FILE', 'json', 0, 4235), +('FILE', 'js', 0, 4237), +('FILE', 'js', 0, 4238), +('FILE', 'jar', 0, 4242), +('FILE', 'text/plain', 0, 4247), +('FILE', 'text/plain', 0, 4248), +('FILE', 'text/plain', 0, 4249), +('FILE', 'text/plain', 0, 4250), +('FILE', 'text/plain', 0, 4251), +('FILE', 'text/plain', 0, 4252), +('FILE', NULL, 0, 4257), +('FILE', NULL, 0, 4258), +('FILE', NULL, 0, 4259), +('FILE', 'jar', 0, 4260), +('FILE', 'jar', 0, 4261), +('FILE', 'class', 0, 4262), +('FILE', 'class', 0, 4263), +('FILE', 'class', 0, 4264), +('FILE', 'class', 0, 4265), +('FILE', 'class', 0, 4266), +('FILE', 'class', 0, 4267), +('FILE', 'class', 0, 4268), +('FILE', 'class', 0, 4269), +('FILE', 'class', 0, 4270), +('FILE', 'class', 0, 4271), +('FILE', 'class', 0, 4272), +('FILE', 'class', 0, 4273), +('FILE', 'class', 0, 4274), +('FILE', 'class', 0, 4275), +('FILE', 'class', 0, 4276), +('FILE', 'class', 0, 4277), +('FILE', 'class', 0, 4278), +('FILE', 'class', 0, 4279), +('FILE', 'class', 0, 4280), +('FILE', 'class', 0, 4281), +('FILE', 'class', 0, 4282), +('FILE', 'class', 0, 4283), +('FILE', 'class', 0, 4284), +('FILE', 'class', 0, 4285), +('FILE', 'jar', 0, 4286), +('FILE', 'jar', 0, 4287), +('FILE', 'jar', 0, 4288), +('FILE', 'jar', 0, 4289), +('FILE', 'jar', 0, 4290), +('FILE', 'jar', 0, 4291), +('FILE', 'jar', 0, 4292), +('FILE', 'jar', 0, 4293), +('FILE', 'jar', 0, 4294), +('FILE', 'json', 0, 4295), +('FILE', 'text/plain', 0, 4296), +('FILE', 'text/plain', 0, 4297), +('FILE', 'text/plain', 0, 4298), +('FILE', 'text/plain', 0, 4299), +('FILE', 'text/plain', 0, 4300), +('FILE', 'text/plain', 0, 4301), +('FILE', 'MF', 0, 4302), +('FILE', 'application/xml', 0, 4303), +('FILE', 'jar', 0, 4304), +('FILE', 'jar', 0, 4305), +('FILE', 'jar', 0, 4306), +('FILE', 'jar', 0, 4307), +('FILE', 'jar', 0, 4308), +('FILE', 'jar', 0, 4309), +('FILE', 'jar', 0, 4310), +('FILE', 'jar', 0, 4311), +('FILE', 'jar', 0, 4312), +('FILE', 'jar', 0, 4313), +('FILE', 'jar', 0, 4314), +('FILE', 'jar', 0, 4315), +('FILE', 'css', 0, 4316), +('FILE', 'css', 0, 4317), +('FILE', 'css', 0, 4318), +('FILE', 'css', 0, 4319), +('FILE', 'css', 0, 4320), +('FILE', 'css', 0, 4321), +('FILE', 'css', 0, 4322), +('FILE', 'css', 0, 4323), +('FILE', 'css', 0, 4324), +('FILE', 'image/png', 0, 4325), +('FILE', 'image/png', 0, 4326), +('FILE', 'image/png', 0, 4327), +('FILE', 'image/png', 0, 4328), +('FILE', 'image/png', 0, 4329), +('FILE', 'image/png', 0, 4330), +('FILE', 'image/png', 0, 4331), +('FILE', 'svg', 0, 4332), +('FILE', 'image/png', 0, 4333), +('FILE', 'image/png', 0, 4334), +('FILE', 'image/png', 0, 4335), +('FILE', 'image/png', 0, 4336), +('FILE', 'image/png', 0, 4337), +('FILE', 'image/png', 0, 4338), +('FILE', 'image/png', 0, 4339), +('FILE', 'image/png', 0, 4340), +('FILE', 'image/png', 0, 4341), +('FILE', 'js', 0, 4342), +('FILE', 'js', 0, 4343), +('FILE', 'js', 0, 4344), +('FILE', 'js', 0, 4345), +('FILE', 'js', 0, 4346), +('FILE', 'js', 0, 4347), +('FILE', 'js', 0, 4348), +('FILE', 'js', 0, 4349), +('FILE', 'js', 0, 4350), +('FILE', 'js', 0, 4351), +('FILE', 'js', 0, 4352), +('FILE', 'js', 0, 4353), +('FILE', 'js', 0, 4354), +('FILE', 'js', 0, 4355), +('FILE', 'js', 0, 4356), +('FILE', 'js', 0, 4357), +('FILE', 'js', 0, 4358), +('FILE', 'js', 0, 4359), +('FILE', 'js', 0, 4360), +('FILE', 'js', 0, 4361), +('FILE', 'js', 0, 4362), +('FILE', 'js', 0, 4363), +('FILE', 'js', 0, 4364), +('FILE', 'js', 0, 4365), +('FILE', 'js', 0, 4366), +('FILE', 'js', 0, 4367), +('FILE', 'js', 0, 4368), +('FILE', 'js', 0, 4369), +('FILE', 'js', 0, 4370), +('FILE', 'js', 0, 4371), +('FILE', 'js', 0, 4372), +('FILE', 'js', 0, 4373), +('FILE', 'js', 0, 4374), +('FILE', 'js', 0, 4375), +('FILE', 'js', 0, 4376), +('FILE', 'js', 0, 4377), +('FILE', 'js', 0, 4378), +('FILE', 'js', 0, 4379), +('FILE', 'js', 0, 4380), +('FILE', 'js', 0, 4381), +('FILE', 'js', 0, 4382), +('FILE', 'text/plain', 0, 4383), +('FILE', 'conf', 0, 4384), +('FILE', 'json', 0, 4385), +('FILE', 'json', 0, 4386), +('FILE', 'text/html', 0, 4387), +('FILE', 'md', 0, 4388), +('FILE', 'robot', 0, 4389), +('FILE', 'text/plain', 0, 4390), +('FILE', 'text/plain', 0, 4391), +('FILE', 'text/plain', 0, 4392), +('FILE', 'text/plain', 0, 4393), +('FILE', 'text/plain', 0, 4394), +('FILE', 'text/plain', 0, 4395), +('FILE', 'json', 0, 4396), +('FILE', 'json', 0, 4397), +('FILE', 'json', 0, 4398), +('FILE', 'json', 0, 4399), +('FILE', 'json', 0, 4400), +('FILE', 'image/png', 0, 4401), +('FILE', 'json', 0, 4402), +('FILE', 'text/plain', 0, 4403), +('FILE', 'text/plain', 0, 4404), +('FILE', 'text/plain', 0, 4405), +('FILE', 'text/plain', 0, 4406), +('FILE', 'text/plain', 0, 4407), +('FILE', 'text/plain', 0, 4408), +('FILE', 'text/plain', 0, 4409), +('FILE', 'text/plain', 0, 4410), +('FILE', 'text/plain', 0, 4411), +('FILE', 'text/plain', 0, 4412), +('FILE', 'text/plain', 0, 4413), +('FILE', 'text/plain', 0, 4414), +('FILE', 'json', 0, 4415), +('FILE', 'text/plain', 0, 4416), +('FILE', 'json', 0, 4417), +('FILE', 'text/plain', 0, 4418), +('FILE', 'json', 0, 4419), +('FILE', 'text/plain', 0, 4420), +('FILE', 'json', 0, 4421), +('FILE', 'text/plain', 0, 4422), +('FILE', 'json', 0, 4423), +('FILE', 'text/plain', 0, 4424), +('FILE', 'json', 0, 4425), +('FILE', 'json', 0, 4426), +('FILE', 'robot', 0, 4445), +('FILE', 'jsp', 0, 4503), +('FILE', 'text/plain', 0, 4730), +('FILE', 'text/plain', 0, 4733), +('FILE', 'application/xml', 0, 4737), +('FILE', 'md', 0, 4738), +('WIKIPAGE', NULL, 0, 5568), +('WIKIPAGE', NULL, 0, 5574), +('WIKIPAGE', NULL, 0, 5576), +('WIKIPAGE', NULL, 0, 5582), +('WIKIPAGE', NULL, 0, 5585), +('WIKIPAGE', NULL, 0, 5588), +('WIKIPAGE', NULL, 0, 5590), +('WIKIPAGE', NULL, 0, 5592), +('WIKIPAGE', NULL, 0, 5667), +('WIKIPAGE', NULL, 0, 5675), +('WIKIPAGE', NULL, 0, 5687), +('WIKIPAGE', NULL, 0, 5689), +('WIKIPAGE', NULL, 0, 5691), +('WIKIPAGE', NULL, 0, 5692), +('WIKIPAGE', NULL, 0, 5693), +('WIKIPAGE', NULL, 0, 5726), +('WIKIPAGE', NULL, 0, 5728), +('WIKIPAGE', NULL, 0, 5732), +('FILE', 'text/plain', 0, 5776), +('FILE', 'dockerignore', 0, 5778), +('FILE', 'editorconfig', 0, 5779), +('FILE', NULL, 0, 5780), +('FILE', 'conf', 0, 5781), +('FILE', 'lock', 0, 5782), +('FILE', 'js', 0, 5784), +('FILE', 'json', 0, 5786), +('FILE', 'ico', 0, 5787), +('FILE', 'js', 0, 5789), +('FILE', 'js', 0, 5790), +('FILE', 'js', 0, 5791), +('FILE', 'js', 0, 5792), +('FILE', 'js', 0, 5793), +('FILE', 'js', 0, 5794), +('FILE', 'js', 0, 5795), +('FILE', 'js', 0, 5796), +('FILE', 'css', 0, 5797), +('FILE', 'md', 0, 5798), +('FILE', 'json', 0, 5799), +('FILE', 'js', 0, 5800), +('FILE', 'js', 0, 5801), +('FILE', 'css', 0, 5804), +('FILE', 'text/plain', 0, 5809), +('FILE', 'text/plain', 0, 5819), +('FILE', 'text/plain', 0, 5820), +('FILE', 'text/plain', 0, 5822), +('FILE', 'text/plain', 0, 5825), +('FILE', 'text/plain', 0, 5826), +('FILE', 'text/plain', 0, 5827), +('FILE', 'text/plain', 0, 5828), +('FILE', 'text/plain', 0, 5829), +('FILE', 'text/plain', 0, 5830), +('FILE', 'text/plain', 0, 5831), +('FILE', 'text/plain', 0, 5832), +('FILE', 'text/plain', 0, 5833), +('FILE', 'text/plain', 0, 5834), +('FILE', 'text/plain', 0, 5835), +('FILE', 'text/plain', 0, 5836), +('FILE', 'text/plain', 0, 5837), +('FILE', 'text/plain', 0, 5838), +('FILE', 'text/plain', 0, 5839), +('FILE', 'text/plain', 0, 5840), +('FILE', 'text/plain', 0, 5841), +('FILE', 'text/plain', 0, 5844), +('FILE', 'text/plain', 0, 5845), +('FILE', 'text/plain', 0, 5846), +('FILE', 'text/plain', 0, 5847), +('FILE', 'text/plain', 0, 5849), +('FILE', 'text/plain', 0, 5850), +('FILE', 'text/plain', 0, 5851), +('FILE', 'text/plain', 0, 5852), +('FILE', 'text/plain', 0, 5853), +('FILE', 'text/plain', 0, 5854), +('FILE', 'application/xml', 0, 5856), +('FILE', 'properties', 0, 5857), +('FILE', 'sql', 0, 5858), +('FILE', 'text/plain', 0, 5861), +('FILE', 'text/plain', 0, 5862), +('FILE', 'text/plain', 0, 5864), +('FILE', 'text/plain', 0, 5865), +('FILE', 'text/plain', 0, 5867), +('FILE', 'text/plain', 0, 5869), +('FILE', 'text/plain', 0, 5870), +('FILE', NULL, 0, 5879), +('FILE', NULL, 0, 5881), +('FILE', 'text/plain', 0, 5884), +('FILE', 'dockerignore', 0, 5888), +('FILE', 'yml', 0, 5889), +('FILE', 'text/plain', 0, 5895), +('FILE', 'text/plain', 0, 5898), +('FILE', 'text/plain', 0, 5909), +('FILE', 'text/plain', 0, 5918), +('FILE', 'text/plain', 0, 5919), +('FILE', 'gitignore', 0, 5920), +('FILE', 'text/plain', 0, 5938), +('FILE', 'text/plain', 0, 5939), +('FILE', 'text/plain', 0, 5940), +('FILE', 'text/plain', 0, 5941), +('FILE', 'text/plain', 0, 5942), +('FILE', 'text/plain', 0, 5943), +('FILE', 'text/plain', 0, 5944), +('FILE', 'text/plain', 0, 5945), +('FILE', 'text/plain', 0, 5946), +('FILE', 'sql', 0, 6018), +('FILE', 'application/x-shar', 0, 6079), +('FILE', 'application/x-shar', 0, 6080), +('FILE', 'gitignore', 0, 6086), +('FILE', 'properties', 0, 6095), +('FILE', 'properties', 0, 6096), +('FILE', 'gitignore', 0, 6113), +('FILE', 'application/xml', 0, 6116), +('FILE', 'text/plain', 0, 6117), +('FILE', 'image/png', 0, 6676), +('FILE', 'image/png', 0, 6677), +('FILE', 'image/png', 0, 6678), +('FILE', 'image/png', 0, 6679), +('FILE', 'image/png', 0, 6680), +('FILE', 'image/png', 0, 6737), +('FILE', 'image/png', 0, 6738), +('FILE', 'image/png', 0, 6739), +('FILE', 'image/png', 0, 6781), +('WIKIPAGE', NULL, 0, 6799), +('WIKIPAGE', NULL, 0, 6803), +('WIKIPAGE', NULL, 0, 6809), +('WIKIPAGE', NULL, 0, 6818), +('FILE', 'text/plain', 0, 6828), +('FILE', 'md', 0, 6832), +('FILE', 'text/plain', 0, 6833), +('FILE', 'text/plain', 0, 6834), +('FILE', 'text/plain', 0, 6835), +('FILE', 'text/plain', 0, 6836), +('FILE', 'text/plain', 0, 6837), +('FILE', 'text/plain', 0, 6838), +('FILE', 'text/plain', 0, 6839), +('FILE', 'jar', 0, 6840), +('FILE', 'text/plain', 0, 6848), +('FILE', 'text/plain', 0, 6869), +('FILE', 'text/plain', 0, 6885), +('FILE', 'text/plain', 0, 6887), +('WIKIPAGE', NULL, 0, 7157), +('WIKIPAGE', NULL, 0, 7158), +('WIKIPAGE', NULL, 0, 7159), +('WIKIPAGE', NULL, 0, 7160), +('WIKIPAGE', NULL, 0, 7456), +('FILE', 'text/plain', 0, 7463), +('FILE', 'application/xml', 0, 7464), +('FILE', 'css', 0, 7466), +('FILE', 'yml', 0, 7468), +('FILE', 'bat', 0, 7469), +('FILE', 'application/x-shar', 0, 7470), +('FILE', 'text/plain', 0, 7472), +('FILE', 'ts', 0, 7475), +('FILE', 'ts', 0, 7480), +('FILE', 'ts', 0, 7481), +('FILE', 'ts', 0, 7482), +('FILE', 'ts', 0, 7483), +('FILE', 'json', 0, 7484), +('FILE', 'json', 0, 7485), +('FILE', 'json', 0, 7486), +('FILE', 'ts', 0, 7488), +('FILE', 'ts', 0, 7489), +('FILE', 'ts', 0, 7490), +('FILE', 'text/plain', 0, 7494), +('FILE', 'text/plain', 0, 7495), +('FILE', 'text/plain', 0, 7496), +('FILE', 'text/plain', 0, 7497), +('FILE', 'text/plain', 0, 7498), +('FILE', 'text/plain', 0, 7499), +('FILE', 'text/plain', 0, 7500), +('FILE', 'text/plain', 0, 7501), +('FILE', 'text/plain', 0, 7502), +('FILE', 'ts', 0, 7503), +('FILE', 'text/plain', 0, 7504), +('FILE', 'ico', 0, 7505), +('FILE', 'ts', 0, 7511), +('FILE', 'ts', 0, 7514), +('FILE', 'css', 0, 7517), +('FILE', 'md', 0, 7520), +('FILE', 'application/xml', 0, 7522), +('FILE', 'json', 0, 7523), +('FILE', 'ts', 0, 7524), +('FILE', 'md', 0, 7528), +('FILE', 'ts', 0, 7529), +('FILE', 'css', 0, 7530), +('FILE', 'ts', 0, 7531), +('FILE', 'ts', 0, 7532), +('FILE', 'ts', 0, 7533), +('FILE', 'json', 0, 7537), +('FILE', 'ts', 0, 7538), +('FILE', 'ts', 0, 7539), +('FILE', 'ts', 0, 7540), +('FILE', 'ts', 0, 7541), +('FILE', 'ts', 0, 7542), +('FILE', 'ts', 0, 7543), +('FILE', 'ts', 0, 7544), +('FILE', 'ts', 0, 7568), +('FILE', 'ts', 0, 7569), +('FILE', 'ts', 0, 7570), +('FILE', 'ts', 0, 7571), +('FILE', 'ts', 0, 7572), +('FILE', 'js', 0, 7585), +('WIKIPAGE', NULL, 0, 7589), +('WIKIPAGE', NULL, 0, 7590), +('WIKIPAGE', NULL, 0, 7591), +('WIKIPAGE', NULL, 0, 7592), +('WIKIPAGE', NULL, 0, 7593), +('WIKIPAGE', NULL, 0, 7594), +('WIKIPAGE', NULL, 0, 7595), +('WIKIPAGE', NULL, 0, 7596), +('WIKIPAGE', NULL, 0, 7597), +('WIKIPAGE', NULL, 0, 7598), +('FILE', 'text/plain', 0, 7610), +('FILE', 'js', 0, 7611), +('FILE', 'ts', 0, 7612), +('FILE', 'ts', 0, 7613), +('FILE', 'ts', 0, 7614), +('FILE', 'ts', 0, 7615), +('FILE', 'gitignore', 0, 7618), +('FILE', NULL, 0, 7619), +('FILE', 'css', 0, 7626), +('FILE', 'ts', 0, 7627), +('FILE', 'css', 0, 7629), +('FILE', 'css', 0, 7631), +('FILE', 'ts', 0, 7635), +('FILE', 'ts', 0, 7636), +('FILE', 'ts', 0, 7637), +('FILE', 'ts', 0, 7638), +('FILE', 'json', 0, 7644), +('FILE', 'json', 0, 7645), +('FILE', 'text/plain', 0, 7648), +('FILE', 'ts', 0, 7669), +('FILE', 'text/plain', 0, 7677), +('FILE', 'ts', 0, 7687), +('FILE', 'css', 0, 7692), +('FILE', 'ts', 0, 7693), +('FILE', 'ts', 0, 7694), +('FILE', 'text/plain', 0, 7698), +('FILE', 'css', 0, 7700), +('FILE', 'ts', 0, 7702), +('FILE', 'ts', 0, 7703), +('FILE', 'text/plain', 0, 7706), +('FILE', 'text/plain', 0, 7707), +('FILE', 'css', 0, 7723), +('FILE', 'text/html', 0, 7724), +('WIKIPAGE', NULL, 0, 8455), +('WIKIPAGE', NULL, 0, 8457), +('WIKIPAGE', NULL, 0, 8472), +('WIKIPAGE', NULL, 0, 8490), +('FILE', 'image/png', 27499, 8491), +('FILE', 'image/png', 156830, 8492), +('WIKIPAGE', NULL, 0, 8493), +('WIKIPAGE', NULL, 0, 8544), +('WIKIPAGE', NULL, 0, 8545), +('WIKIPAGE', NULL, 0, 8546), +('WIKIPAGE', NULL, 0, 8547), +('FILE', 'image/png', 34855, 8548), +('FILE', 'image/png', 18634, 8549), +('FILE', 'image/png', 206105, 8550), +('WIKIPAGE', NULL, 0, 8684), +('WIKIPAGE', NULL, 0, 8686), +('WIKIPAGE', NULL, 0, 8704), +('WIKIPAGE', NULL, 0, 8705), +('WIKIPAGE', NULL, 0, 8706), +('WIKIPAGE', NULL, 0, 8722), +('WIKIPAGE', NULL, 0, 8727), +('WIKIPAGE', NULL, 0, 8758), +('WIKIPAGE', NULL, 0, 8764), +('WIKIPAGE', NULL, 0, 8790), +('WIKIPAGE', NULL, 0, 8808), +('WIKIPAGE', NULL, 0, 8835), +('WIKIPAGE', NULL, 0, 8837), +('WIKIPAGE', NULL, 0, 8898), +('FILE', 'application/x-shar', 0, 8943), +('FILE', 'application/x-shar', 0, 8945), +('FILE', 'application/x-shar', 0, 8947), +('FILE', 'json', 0, 8948), +('FILE', 'php', 0, 8949), +('FILE', 'yaml', 0, 8950), +('FILE', 'gitignore', 0, 8951), +('FILE', 'yml', 0, 8952), +('FILE', 'lock', 0, 8953), +('FILE', 'bat', 0, 8955), +('FILE', 'env', 0, 8956), +('FILE', 'yaml', 0, 8957), +('FILE', 'yaml', 0, 8958), +('FILE', 'yaml', 0, 8959), +('FILE', 'code-workspace', 0, 8960), +('FILE', 'yml', 0, 8962), +('FILE', 'js', 0, 8964), +('FILE', 'gitignore', 0, 8967), +('FILE', 'yml', 0, 8968), +('FILE', NULL, 0, 8969), +('FILE', 'bat', 0, 8970), +('FILE', 'php', 0, 8971), +('FILE', 'conf', 0, 9028), +('FILE', 'conf', 0, 9029), +('FILE', 'yml', 0, 9039), +('FILE', 'gitignore', 0, 9040), +('FILE', 'bat', 0, 9041), +('FILE', 'json', 0, 9042), +('FILE', 'php', 0, 9043), +('FILE', 'twig', 0, 9044), +('FILE', 'image/png', 0, 9045), +('FILE', 'yml', 0, 9050), +('FILE', 'gitignore', 0, 9051), +('FILE', 'js', 0, 9052), +('FILE', 'application/x-shar', 0, 9057), +('FILE', 'yaml', 0, 9063), +('FILE', 'yaml', 0, 9064), +('FILE', 'yaml', 0, 9065), +('FILE', 'py', 0, 9066), +('FILE', 'py', 0, 9067), +('FILE', 'py', 0, 9068), +('FILE', 'py', 0, 9069), +('FILE', 'py', 0, 9070), +('FILE', 'py', 0, 9071), +('FILE', 'py', 0, 9072), +('FILE', 'py', 0, 9073), +('FILE', 'py', 0, 9074), +('FILE', 'py', 0, 9075), +('FILE', 'py', 0, 9076), +('FILE', 'py', 0, 9077), +('FILE', 'text/plain', 0, 9078), +('FILE', 'yaml', 0, 9079), +('FILE', 'py', 0, 9080), +('FILE', 'py', 0, 9081), +('FILE', 'py', 0, 9082), +('FILE', 'py', 0, 9083), +('FILE', 'py', 0, 9084), +('FILE', 'py', 0, 9086), +('FILE', 'py', 0, 9090), +('FILE', 'py', 0, 9091), +('FILE', 'py', 0, 9092), +('FILE', 'py', 0, 9093), +('FILE', 'json', 0, 9095), +('FILE', 'py', 0, 9096), +('FILE', 'gitignore', 0, 9120), +('FILE', 'text/plain', 0, 9121), +('FILE', 'yml', 0, 9127), +('FILE', 'yml', 0, 9128), +('FILE', NULL, 0, 9129), +('FILE', 'yml', 0, 9132), +('FILE', NULL, 0, 9134), +('FILE', 'code-workspace', 0, 9145), +('FILE', 'text/plain', 0, 9147), +('FILE', 'css', 0, 9153), +('FILE', 'svg', 0, 9154), +('FILE', 'twig', 0, 9155), +('FILE', 'js', 0, 9158), +('FILE', 'php', 0, 9159), +('FILE', 'twig', 0, 9160), +('FILE', 'json', 0, 9162), +('FILE', 'md', 0, 9164), +('FILE', 'code-workspace', 0, 9166), +('FILE', 'bat', 0, 9169), +('FILE', 'application/x-shar', 0, 9170), +('FILE', 'gitignore', 0, 9171), +('FILE', 'php', 0, 9173), +('FILE', 'php', 0, 9174), +('FILE', 'svg', 0, 9177), +('FILE', 'twig', 0, 9183), +('FILE', 'yml', 0, 9198), +('FILE', 'yaml', 0, 9201), +('FILE', 'py', 0, 9202), +('FILE', 'json', 0, 9205), +('FILE', 'conf', 0, 9209), +('FILE', 'dist', 0, 9212), +('FILE', 'yml', 0, 9215), +('FILE', NULL, 0, 9217), +('FILE', 'py', 0, 9223), +('FILE', 'py', 0, 9224), +('FILE', 'py', 0, 9225), +('FILE', 'py', 0, 9226), +('FILE', 'py', 0, 9227), +('FILE', 'py', 0, 9228), +('FILE', 'php', 0, 9230), +('FILE', 'js', 0, 9233), +('FILE', 'php', 0, 9234), +('FILE', 'php', 0, 9235), +('FILE', 'php', 0, 9236), +('FILE', 'php', 0, 9237), +('FILE', 'php', 0, 9238), +('FILE', 'twig', 0, 9240), +('FILE', 'bat', 0, 9247), +('FILE', 'gitignore', 0, 9248), +('FILE', 'php', 0, 9249), +('FILE', 'php', 0, 9250), +('FILE', 'gitignore', 0, 9251), +('FILE', 'css', 0, 9257), +('FILE', 'css', 0, 9258), +('FILE', 'scss', 0, 9259), +('FILE', 'js', 0, 9260), +('FILE', 'json', 0, 9262), +('FILE', 'code-workspace', 0, 9263), +('FILE', 'twig', 0, 9264), +('FILE', 'twig', 0, 9266), +('FILE', 'yaml', 0, 9268), +('FILE', 'image/jpeg', 0, 9269), +('FILE', 'yaml', 0, 9274), +('FILE', 'json', 0, 9276), +('FILE', 'yml', 0, 9279), +('FILE', 'py', 0, 9284), +('FILE', 'gitignore', 0, 9287), +('FILE', 'py', 0, 9288), +('FILE', 'py', 0, 9289), +('FILE', 'py', 0, 9290), +('FILE', 'application/x-shar', 0, 9291), +('FILE', 'conf', 0, 9296), +('FILE', NULL, 0, 9299), +('FILE', 'application/x-shar', 0, 9305), +('WIKIPAGE', NULL, 0, 10147), +('WIKIPAGE', NULL, 0, 10153), +('WIKIPAGE', NULL, 0, 10154), +('WIKIPAGE', NULL, 0, 10155), +('WIKIPAGE', NULL, 0, 10156), +('WIKIPAGE', NULL, 0, 10157), +('WIKIPAGE', NULL, 0, 10158), +('WIKIPAGE', NULL, 0, 10159), +('FILE', 'image/jpeg', 2503602, 10160), +('FILE', 'image/jpeg', 746468, 10161), +('FILE', 'image/png', 153339, 10162), +('WIKIPAGE', NULL, 0, 10163), +('WIKIPAGE', NULL, 0, 10164), +('WIKIPAGE', NULL, 0, 10165), +('WIKIPAGE', NULL, 0, 10166), +('WIKIPAGE', NULL, 0, 10167), +('WIKIPAGE', NULL, 0, 10168), +('WIKIPAGE', NULL, 0, 10169), +('FILE', 'image/png', 389763, 10170), +('FILE', 'image/png', 71011, 10171), +('FILE', 'image/png', 59273, 10172), +('FILE', 'image/png', 40481, 10173), +('WIKIPAGE', NULL, 0, 10178), +('FILE', 'image/png', 16832, 10179), +('WIKIPAGE', NULL, 0, 10180), +('WIKIPAGE', NULL, 0, 10181), +('WIKIPAGE', NULL, 0, 10182), +('WIKIPAGE', NULL, 0, 10183), +('WIKIPAGE', NULL, 0, 10184), +('FILE', 'image/png', 33022, 10185), +('WIKIPAGE', NULL, 0, 10186), +('FILE', 'image/png', 17334, 10187), +('WIKIPAGE', NULL, 0, 10188), +('WIKIPAGE', NULL, 0, 10197), +('WIKIPAGE', NULL, 0, 10229), +('WIKIPAGE', NULL, 0, 10271), +('WIKIPAGE', NULL, 0, 10307), +('WIKIPAGE', NULL, 0, 10318), +('WIKIPAGE', NULL, 0, 10332), +('WIKIPAGE', NULL, 0, 10404), +('WIKIPAGE', NULL, 0, 10421), +('WIKIPAGE', NULL, 0, 10524), +('FILE', 'text/plain', 0, 10587), +('FILE', 'text/plain', 0, 10588), +('FILE', 'text/plain', 0, 10589), +('FILE', 'text/plain', 0, 10590), +('FILE', 'text/plain', 0, 10591), +('FILE', 'text/plain', 0, 10592), +('FILE', 'classpath', 0, 10595), +('FILE', 'config', 0, 10596), +('FILE', 'project', 0, 10597), +('FILE', 'out', 0, 10598), +('FILE', 'text/plain', 0, 10599), +('FILE', 'jar', 0, 10600), +('FILE', 'application/zip', 0, 10601), +('FILE', 'css', 0, 10602), +('FILE', 'jar', 0, 10603), +('FILE', 'application/zip', 0, 10604), +('FILE', 'jar', 0, 10605), +('FILE', 'dll', 0, 10606), +('FILE', 'dll', 0, 10607), +('FILE', 'dll', 0, 10608), +('FILE', 'dll', 0, 10609), +('FILE', 'dll', 0, 10610), +('FILE', 'dll', 0, 10611), +('FILE', 'dll', 0, 10612), +('FILE', 'dll', 0, 10613), +('FILE', 'dll', 0, 10614), +('FILE', 'dll', 0, 10615), +('FILE', 'dll', 0, 10616), +('FILE', 'dll', 0, 10617), +('FILE', 'dll', 0, 10618), +('FILE', 'dll', 0, 10619), +('FILE', 'dll', 0, 10620), +('FILE', 'dll', 0, 10621), +('FILE', 'dll', 0, 10622), +('FILE', 'dll', 0, 10623), +('FILE', 'dll', 0, 10624), +('FILE', 'dll', 0, 10625), +('FILE', 'dll', 0, 10626), +('FILE', 'dll', 0, 10627), +('FILE', 'dll', 0, 10628), +('FILE', 'dll', 0, 10629), +('FILE', 'dll', 0, 10630), +('FILE', 'dll', 0, 10631), +('FILE', 'dll', 0, 10632), +('FILE', 'dll', 0, 10633), +('FILE', 'dll', 0, 10634), +('FILE', 'dll', 0, 10635), +('FILE', 'dll', 0, 10636), +('FILE', 'dll', 0, 10637), +('FILE', 'dll', 0, 10638), +('FILE', 'dll', 0, 10639), +('FILE', 'dll', 0, 10640), +('FILE', 'dll', 0, 10641), +('FILE', 'dll', 0, 10642), +('FILE', 'dll', 0, 10643), +('FILE', 'dll', 0, 10644), +('FILE', 'dll', 0, 10645), +('FILE', 'dll', 0, 10646), +('FILE', 'dll', 0, 10647), +('FILE', 'dll', 0, 10648), +('FILE', 'dll', 0, 10649), +('FILE', 'dll', 0, 10650), +('FILE', 'dll', 0, 10651), +('FILE', 'dll', 0, 10652), +('FILE', 'dll', 0, 10653), +('FILE', 'dll', 0, 10654), +('FILE', 'dll', 0, 10655), +('FILE', 'dll', 0, 10656), +('FILE', 'dll', 0, 10657), +('FILE', 'dll', 0, 10658), +('FILE', 'dll', 0, 10659), +('FILE', 'dll', 0, 10660), +('FILE', 'dll', 0, 10661), +('FILE', NULL, 0, 10662), +('FILE', NULL, 0, 10663), +('FILE', NULL, 0, 10664), +('FILE', 'md', 0, 10665), +('FILE', 'md', 0, 10666), +('FILE', 'md', 0, 10667); +INSERT INTO `artifact` (`artifactClass`, `mimeType`, `size`, `id`) VALUES +('FILE', 'md', 0, 10668), +('FILE', 'md', 0, 10669), +('FILE', 'md', 0, 10670), +('FILE', 'md', 0, 10671), +('FILE', 'md', 0, 10672), +('FILE', 'md', 0, 10673), +('FILE', 'jar', 0, 10674), +('FILE', 'jar', 0, 10675), +('FILE', 'jar', 0, 10676), +('FILE', 'jar', 0, 10677), +('FILE', 'jar', 0, 10678), +('FILE', 'jar', 0, 10679), +('FILE', 'properties', 0, 10680), +('FILE', 'jar', 0, 10681), +('FILE', 'jar', 0, 10682), +('FILE', 'data', 0, 10683), +('FILE', 'text/plain', 0, 10684), +('FILE', 'json', 0, 10685), +('FILE', 'prefs', 0, 10686), +('FILE', 'jar', 0, 10687), +('FILE', 'application/zip', 0, 10688), +('FILE', 'data', 0, 10689), +('FILE', 'data', 0, 10690), +('FILE', 'data', 0, 10691), +('FILE', 'data', 0, 10692), +('FILE', 'data', 0, 10693), +('FILE', 'data', 0, 10694), +('FILE', 'data', 0, 10695), +('FILE', 'data', 0, 10696), +('FILE', 'data', 0, 10697), +('FILE', 'text/plain', 0, 10699), +('FILE', 'text/plain', 0, 10701), +('FILE', 'text/html', 0, 10703), +('FILE', 'text/html', 0, 10704), +('FILE', 'text/html', 0, 10705), +('FILE', 'text/html', 0, 10706), +('FILE', 'text/html', 0, 10707), +('FILE', 'text/html', 0, 10708), +('FILE', 'text/html', 0, 10709), +('FILE', 'text/html', 0, 10710), +('FILE', 'text/html', 0, 10711), +('FILE', 'text/html', 0, 10712), +('FILE', 'text/html', 0, 10713), +('FILE', 'text/html', 0, 10714), +('FILE', 'text/html', 0, 10715), +('FILE', 'text/html', 0, 10716), +('FILE', 'text/html', 0, 10717), +('FILE', 'text/html', 0, 10718), +('FILE', 'text/html', 0, 10719), +('FILE', 'text/html', 0, 10720), +('FILE', 'text/html', 0, 10721), +('FILE', 'text/html', 0, 10722), +('FILE', 'text/html', 0, 10723), +('FILE', 'text/html', 0, 10724), +('FILE', 'text/html', 0, 10725), +('FILE', 'text/html', 0, 10726), +('FILE', 'text/html', 0, 10727), +('FILE', 'text/html', 0, 10728), +('FILE', 'text/html', 0, 10729), +('FILE', 'text/html', 0, 10730), +('FILE', 'text/html', 0, 10731), +('FILE', 'text/html', 0, 10732), +('FILE', 'text/html', 0, 10733), +('FILE', 'text/html', 0, 10734), +('FILE', 'text/html', 0, 10735), +('FILE', 'text/html', 0, 10736), +('FILE', 'text/html', 0, 10737), +('FILE', 'text/html', 0, 10738), +('FILE', 'text/html', 0, 10739), +('FILE', 'text/html', 0, 10740), +('FILE', 'text/html', 0, 10741), +('FILE', 'text/html', 0, 10742), +('FILE', 'text/html', 0, 10743), +('FILE', 'text/html', 0, 10744), +('FILE', 'text/html', 0, 10745), +('FILE', 'text/html', 0, 10746), +('FILE', 'text/html', 0, 10747), +('FILE', 'text/html', 0, 10748), +('FILE', 'text/html', 0, 10749), +('FILE', 'text/html', 0, 10750), +('FILE', 'text/html', 0, 10751), +('FILE', 'text/html', 0, 10752), +('FILE', 'text/html', 0, 10753), +('FILE', 'text/html', 0, 10754), +('FILE', 'text/html', 0, 10755), +('FILE', 'text/html', 0, 10756), +('FILE', 'text/html', 0, 10757), +('FILE', 'text/html', 0, 10758), +('FILE', 'text/html', 0, 10759), +('FILE', 'text/html', 0, 10760), +('FILE', 'text/html', 0, 10761), +('FILE', 'text/html', 0, 10762), +('FILE', 'text/html', 0, 10763), +('FILE', 'text/html', 0, 10764), +('FILE', 'text/html', 0, 10765), +('FILE', 'text/html', 0, 10766), +('FILE', 'text/html', 0, 10767), +('FILE', 'text/html', 0, 10768), +('FILE', 'text/html', 0, 10769), +('FILE', 'text/html', 0, 10770), +('FILE', 'text/html', 0, 10771), +('FILE', 'text/html', 0, 10772), +('FILE', 'text/html', 0, 10773), +('FILE', 'text/html', 0, 10774), +('FILE', 'text/html', 0, 10775), +('FILE', 'text/html', 0, 10776), +('FILE', 'text/html', 0, 10777), +('FILE', 'text/html', 0, 10778), +('FILE', 'text/html', 0, 10779), +('FILE', 'text/html', 0, 10780), +('FILE', 'text/html', 0, 10781), +('FILE', 'text/html', 0, 10782), +('FILE', 'text/html', 0, 10783), +('FILE', 'text/html', 0, 10784), +('FILE', 'text/html', 0, 10785), +('FILE', 'text/html', 0, 10786), +('FILE', 'text/html', 0, 10787), +('FILE', 'text/html', 0, 10788), +('FILE', 'text/html', 0, 10789), +('FILE', 'text/html', 0, 10790), +('FILE', 'text/html', 0, 10791), +('FILE', 'text/html', 0, 10792), +('FILE', 'text/html', 0, 10793), +('FILE', 'text/html', 0, 10794), +('FILE', 'text/html', 0, 10795), +('FILE', 'text/html', 0, 10796), +('FILE', 'text/html', 0, 10797), +('FILE', 'text/html', 0, 10798), +('FILE', 'text/html', 0, 10799), +('FILE', 'text/html', 0, 10800), +('FILE', 'text/html', 0, 10801), +('FILE', 'text/html', 0, 10802), +('FILE', 'text/html', 0, 10803), +('FILE', 'text/html', 0, 10804), +('FILE', 'text/html', 0, 10805), +('FILE', 'text/html', 0, 10806), +('FILE', 'text/html', 0, 10807), +('FILE', 'text/html', 0, 10808), +('FILE', 'text/html', 0, 10809), +('FILE', 'text/html', 0, 10810), +('FILE', 'text/html', 0, 10811), +('FILE', 'text/html', 0, 10812), +('FILE', NULL, 0, 10813), +('FILE', 'text/html', 0, 10814), +('FILE', 'text/html', 0, 10815), +('FILE', 'text/html', 0, 10816), +('FILE', 'js', 0, 10817), +('FILE', 'text/html', 0, 10818), +('FILE', 'css', 0, 10819), +('FILE', 'text/plain', 0, 10820), +('FILE', 'data', 0, 10821), +('FILE', 'text/plain', 0, 10822), +('FILE', 'text/plain', 0, 10823), +('FILE', 'text/plain', 0, 10824), +('FILE', 'text/plain', 0, 10825), +('FILE', 'text/plain', 0, 10826), +('FILE', 'text/plain', 0, 10827), +('FILE', 'text/plain', 0, 10828), +('FILE', 'text/plain', 0, 10829), +('FILE', 'classpath', 0, 10831), +('FILE', 'gitignore', 0, 10832), +('FILE', 'project', 0, 10833), +('FILE', 'class', 0, 10834), +('FILE', 'application/xml', 0, 10835), +('FILE', 'jar', 0, 10836), +('FILE', 'text/plain', 0, 10837), +('FILE', 'jar', 0, 10838), +('FILE', NULL, 0, 10839), +('FILE', 'out', 0, 10840), +('FILE', 'out', 0, 10841), +('FILE', 'out', 0, 10842), +('FILE', 'text/plain', 0, 10843), +('FILE', 'text/plain', 0, 10844), +('FILE', 'text/plain', 0, 10845), +('FILE', 'text/plain', 0, 10846), +('FILE', 'text/plain', 0, 10847), +('FILE', 'gitignore', 0, 10848), +('FILE', 'iml', 0, 10849), +('FILE', NULL, 0, 10850), +('FILE', 'out', 0, 10851), +('FILE', 'application/zip', 0, 10852), +('FILE', NULL, 0, 10853), +('FILE', NULL, 0, 10854), +('FILE', 'json', 0, 10855), +('FILE', 'json', 0, 10856), +('FILE', 'text/plain', 0, 10857), +('FILE', 'text/plain', 0, 10858), +('FILE', 'text/plain', 0, 10859), +('FILE', 'text/plain', 0, 10860), +('FILE', 'text/plain', 0, 10861), +('FILE', 'text/plain', 0, 10862), +('FILE', 'text/plain', 0, 10863), +('FILE', 'text/plain', 0, 10864), +('FILE', 'text/plain', 0, 10865), +('FILE', 'text/plain', 0, 10866), +('FILE', 'text/plain', 0, 10867), +('FILE', 'text/plain', 0, 10870), +('FILE', 'text/plain', 0, 10871), +('FILE', 'md', 0, 10874), +('FILE', 'classpath', 0, 10890), +('FILE', 'jar', 0, 10895), +('FILE', 'text/plain', 0, 10903), +('FILE', 'text/plain', 0, 10905), +('FILE', 'text/plain', 0, 10906), +('FILE', 'text/plain', 0, 10907), +('FILE', 'gitignore', 0, 10926), +('FILE', 'image/png', 0, 10931), +('FILE', 'image/png', 0, 10932), +('FILE', 'image/png', 0, 10933), +('FILE', 'image/png', 0, 10934), +('WIKIPAGE', NULL, 0, 11378), +('WIKIPAGE', NULL, 0, 11379), +('WIKIPAGE', NULL, 0, 11380), +('FILE', 'application/pdf', 98606, 11381), +('WIKIPAGE', NULL, 0, 11382), +('WIKIPAGE', NULL, 0, 11383), +('FILE', 'application/pdf', 125988, 11384), +('FILE', 'js', 0, 11450), +('FILE', 'php', 0, 11451), +('FILE', 'php', 0, 11452), +('FILE', 'php', 0, 11455), +('FILE', 'php', 0, 11456), +('FILE', 'js', 0, 11457), +('FILE', 'scss', 0, 11458), +('FILE', 'php', 0, 11459), +('FILE', 'php', 0, 11460), +('FILE', 'image/png', 0, 11463), +('FILE', 'php', 0, 11465), +('FILE', 'php', 0, 11466), +('FILE', 'php', 0, 11467), +('FILE', 'php', 0, 11469), +('FILE', 'php', 0, 11470), +('FILE', 'php', 0, 11471), +('FILE', 'php', 0, 11482), +('FILE', 'php', 0, 11483), +('FILE', 'json', 0, 11484), +('FILE', 'lock', 0, 11485), +('FILE', 'js', 0, 11486), +('FILE', 'image/png', 0, 11487), +('FILE', 'php', 0, 11499), +('FILE', 'php', 0, 11502), +('FILE', 'php', 0, 11503), +('FILE', 'scss', 0, 11504), +('FILE', 'php', 0, 11522), +('FILE', 'image/png', 0, 11523), +('FILE', 'php', 0, 11524), +('FILE', 'php', 0, 11525), +('FILE', 'php', 0, 11526), +('FILE', 'php', 0, 11527), +('FILE', 'image/png', 0, 11534), +('FILE', 'css', 0, 11536), +('FILE', 'scss', 0, 11537), +('FILE', 'php', 0, 11538), +('FILE', 'php', 0, 11544), +('FILE', 'css', 0, 11545), +('FILE', 'image/png', 0, 11546), +('FILE', 'scss', 0, 11547), +('FILE', 'scss', 0, 11548), +('FILE', 'scss', 0, 11549), +('FILE', 'php', 0, 11550), +('FILE', 'php', 0, 11551), +('FILE', 'php', 0, 11552), +('FILE', 'php', 0, 11553), +('FILE', 'php', 0, 11554), +('FILE', 'php', 0, 11555), +('FILE', 'php', 0, 11556), +('FILE', 'php', 0, 11557), +('FILE', 'php', 0, 11558), +('FILE', 'php', 0, 11559), +('FILE', 'php', 0, 11560), +('FILE', 'php', 0, 11561), +('FILE', 'php', 0, 11562), +('FILE', 'php', 0, 11581), +('FILE', 'php', 0, 11584), +('FILE', 'php', 0, 11585), +('FILE', 'scss', 0, 11590), +('FILE', 'php', 0, 11593), +('FILE', 'css', 0, 11594), +('FILE', 'scss', 0, 11595), +('FILE', 'php', 0, 11596), +('FILE', 'php', 0, 11601), +('FILE', 'image/png', 0, 11604), +('FILE', 'image/png', 0, 11605), +('FILE', 'image/png', 0, 11606), +('FILE', 'php', 0, 11608), +('FILE', 'php', 0, 11612), +('FILE', 'scss', 0, 11613), +('FILE', 'image/png', 0, 11625), +('FILE', 'image/png', 0, 11626), +('FILE', 'scss', 0, 11628), +('FILE', 'css', 0, 11652), +('FILE', 'image/png', 0, 11660), +('FILE', 'image/png', 0, 11661), +('FILE', 'image/png', 0, 11664), +('FILE', 'image/png', 0, 11665), +('FILE', 'image/png', 0, 11666), +('FILE', 'image/png', 0, 11667), +('FILE', 'php', 0, 11669), +('FILE', 'php', 0, 11682), +('FILE', 'php', 0, 11683), +('FILE', 'scss', 0, 11687), +('FILE', 'scss', 0, 11693), +('FILE', 'php', 0, 11694), +('FILE', 'image/png', 0, 11700), +('FILE', 'php', 0, 11704), +('FILE', 'php', 0, 11705), +('FILE', 'php', 0, 11713), +('FILE', 'php', 0, 11714), +('FILE', 'scss', 0, 11715), +('FILE', 'php', 0, 11716), +('FILE', 'php', 0, 11719), +('FILE', 'image/png', 0, 11722), +('FILE', 'image/png', 0, 11723), +('FILE', 'php', 0, 11725), +('FILE', 'php', 0, 11726), +('FILE', 'yml', 0, 11732), +('FILE', 'scss', 0, 11735), +('FILE', 'php', 0, 11738), +('FILE', 'php', 0, 11739), +('FILE', 'php', 0, 11744), +('FILE', 'scss', 0, 11763), +('FILE', 'image/png', 0, 11775), +('FILE', 'image/jpeg', 0, 11776), +('FILE', 'image/jpeg', 0, 11777), +('FILE', 'scss', 0, 11778), +('FILE', 'docx', 0, 11877), +('FILE', 'application/rtf', 0, 11878), +('WIKIPAGE', NULL, 0, 12672), +('WIKIPAGE', NULL, 0, 12678), +('WIKIPAGE', NULL, 0, 12682), +('WIKIPAGE', NULL, 0, 12686), +('WIKIPAGE', NULL, 0, 12688), +('WIKIPAGE', NULL, 0, 12690), +('WIKIPAGE', NULL, 0, 12695), +('WIKIPAGE', NULL, 0, 12697), +('FILE', 'image/png', 31230, 12698), +('FILE', 'image/png', 2966937, 12699), +('FILE', 'image/png', 39037, 12700), +('WIKIPAGE', NULL, 0, 12701), +('FILE', 'image/png', 13927, 12702), +('FILE', 'image/png', 575535, 12703), +('FILE', 'image/png', 27505, 12704), +('FILE', 'application/pdf', 253751, 12705), +('FILE', 'application/pdf', 959152, 12706), +('WIKIPAGE', NULL, 0, 12707), +('WIKIPAGE', NULL, 0, 12708), +('WIKIPAGE', NULL, 0, 12709), +('WIKIPAGE', NULL, 0, 12710), +('WIKIPAGE', NULL, 0, 12711), +('WIKIPAGE', NULL, 0, 12712), +('WIKIPAGE', NULL, 0, 12713), +('WIKIPAGE', NULL, 0, 12730), +('WIKIPAGE', NULL, 0, 12734), +('WIKIPAGE', NULL, 0, 12738), +('WIKIPAGE', NULL, 0, 12746), +('WIKIPAGE', NULL, 0, 12750), +('WIKIPAGE', NULL, 0, 12752), +('WIKIPAGE', NULL, 0, 12766), +('WIKIPAGE', NULL, 0, 12777), +('WIKIPAGE', NULL, 0, 12779), +('WIKIPAGE', NULL, 0, 12875), +('FILE', 'text/html', 0, 12888), +('FILE', 'js', 0, 12889), +('FILE', 'map', 0, 12893), +('FILE', 'text/plain', 0, 12896), +('FILE', 'text/html', 0, 12897), +('FILE', 'js', 0, 12898), +('FILE', 'text/plain', 0, 12901), +('FILE', 'text/plain', 0, 12902), +('FILE', 'text/plain', 0, 12903), +('FILE', 'text/plain', 0, 12904), +('FILE', 'text/plain', 0, 12906), +('FILE', 'text/plain', 0, 12908), +('FILE', 'text/plain', 0, 12909), +('FILE', 'text/plain', 0, 12910), +('FILE', 'text/html', 0, 12911), +('FILE', 'text/plain', 0, 12915), +('FILE', 'text/plain', 0, 12916), +('FILE', 'text/plain', 0, 12917), +('FILE', 'text/plain', 0, 12918), +('FILE', 'text/html', 0, 12925), +('FILE', 'js', 0, 12926), +('FILE', 'text/plain', 0, 12933), +('FILE', 'css', 0, 12934), +('FILE', 'text/plain', 0, 12940), +('FILE', 'text/plain', 0, 12943), +('FILE', 'text/plain', 0, 12944), +('FILE', 'text/plain', 0, 12945), +('FILE', 'text/plain', 0, 12946), +('FILE', 'text/html', 0, 12949), +('FILE', 'text/plain', 0, 12959), +('FILE', 'text/plain', 0, 12960), +('FILE', 'text/plain', 0, 12961), +('FILE', 'text/plain', 0, 12963), +('FILE', 'text/plain', 0, 12968), +('FILE', 'text/plain', 0, 12969), +('FILE', 'text/plain', 0, 12975), +('FILE', 'text/plain', 0, 12976), +('FILE', 'text/plain', 0, 12977), +('FILE', 'text/plain', 0, 12978), +('FILE', 'text/plain', 0, 12979), +('FILE', 'text/plain', 0, 12980), +('FILE', 'text/plain', 0, 12981), +('FILE', 'text/plain', 0, 12991), +('FILE', 'text/plain', 0, 12993), +('FILE', 'text/plain', 0, 12994), +('FILE', 'text/plain', 0, 12995), +('FILE', 'text/plain', 0, 12996), +('FILE', 'text/plain', 0, 12997), +('FILE', 'text/plain', 0, 12998), +('FILE', 'text/plain', 0, 12999), +('FILE', 'text/plain', 0, 13000), +('FILE', 'text/plain', 0, 13001), +('FILE', 'text/html', 0, 13002), +('FILE', 'text/plain', 0, 13004), +('FILE', 'text/plain', 0, 13005), +('FILE', 'text/plain', 0, 13006), +('FILE', 'text/plain', 0, 13007), +('FILE', 'text/plain', 0, 13008), +('FILE', 'text/plain', 0, 13009), +('FILE', 'text/plain', 0, 13010), +('FILE', 'text/plain', 0, 13011), +('FILE', 'text/plain', 0, 13012), +('FILE', 'text/plain', 0, 13013), +('FILE', 'text/plain', 0, 13014), +('FILE', 'text/plain', 0, 13015), +('FILE', 'text/plain', 0, 13020), +('FILE', 'text/plain', 0, 13021), +('WIKIPAGE', NULL, 0, 13025), +('FILE', 'text/plain', 0, 13027), +('FILE', 'text/plain', 0, 13028), +('FILE', 'text/plain', 0, 13031), +('FILE', 'text/plain', 0, 13032), +('FILE', 'text/plain', 0, 13033), +('FILE', 'application/xml', 0, 13048), +('FILE', 'css', 0, 13049), +('FILE', 'text/html', 0, 13050), +('FILE', 'gitignore', 0, 13052), +('FILE', 'eot', 0, 13057), +('FILE', 'ttf', 0, 13058), +('FILE', 'woff', 0, 13059), +('FILE', 'woff2', 0, 13060), +('FILE', 'eot', 0, 13061), +('FILE', 'ttf', 0, 13062), +('FILE', 'woff', 0, 13063), +('FILE', 'woff2', 0, 13064), +('FILE', 'eot', 0, 13065), +('FILE', 'ttf', 0, 13066), +('FILE', 'woff', 0, 13067), +('FILE', 'woff2', 0, 13068), +('FILE', 'text/plain', 0, 13086), +('FILE', 'md', 0, 13094), +('FILE', 'image/png', 0, 13097), +('FILE', 'text/html', 0, 13104), +('FILE', 'text/html', 0, 13105), +('FILE', 'text/html', 0, 13106), +('FILE', 'text/plain', 0, 13123), +('FILE', 'text/plain', 0, 13124), +('FILE', 'text/plain', 0, 13125), +('FILE', 'text/plain', 0, 13126), +('FILE', 'text/plain', 0, 13127), +('FILE', 'text/plain', 0, 13128), +('FILE', 'text/plain', 0, 13139), +('FILE', 'text/plain', 0, 13141), +('FILE', 'text/plain', 0, 13142), +('FILE', 'image/png', 0, 13888), +('FILE', 'image/png', 0, 13889), +('FILE', 'image/png', 0, 13890), +('FILE', 'image/png', 0, 13891), +('FILE', 'application/pdf', 0, 13973), +('FILE', 'application/pdf', 0, 13997), +('FILE', 'application/xml', 0, 14008), +('FILE', 'xsd', 0, 14009), +('FILE', 'image/png', 0, 14037), +('FILE', 'image/png', 0, 14038), +('WIKIPAGE', NULL, 0, 14046), +('WIKIPAGE', NULL, 0, 14047), +('WIKIPAGE', NULL, 0, 14048), +('WIKIPAGE', NULL, 0, 14049), +('WIKIPAGE', NULL, 0, 14050), +('WIKIPAGE', NULL, 0, 14060), +('WIKIPAGE', NULL, 0, 14063), +('WIKIPAGE', NULL, 0, 14065), +('WIKIPAGE', NULL, 0, 14067), +('WIKIPAGE', NULL, 0, 14069), +('WIKIPAGE', NULL, 0, 14073), +('WIKIPAGE', NULL, 0, 14088), +('WIKIPAGE', NULL, 0, 14090), +('WIKIPAGE', NULL, 0, 14092), +('WIKIPAGE', NULL, 0, 14095), +('WIKIPAGE', NULL, 0, 14097), +('WIKIPAGE', NULL, 0, 14099), +('WIKIPAGE', NULL, 0, 14101), +('WIKIPAGE', NULL, 0, 14103), +('WIKIPAGE', NULL, 0, 14105), +('WIKIPAGE', NULL, 0, 14109), +('WIKIPAGE', NULL, 0, 14111), +('WIKIPAGE', NULL, 0, 14113), +('WIKIPAGE', NULL, 0, 14117), +('WIKIPAGE', NULL, 0, 14119), +('WIKIPAGE', NULL, 0, 14122), +('WIKIPAGE', NULL, 0, 14124), +('WIKIPAGE', NULL, 0, 14126), +('FILE', 'js', 0, 96131), +('FILE', 'js', 0, 96132), +('FILE', 'js', 0, 96133), +('FILE', 'js', 0, 96135), +('FILE', 'json', 0, 96136), +('FILE', 'js', 0, 96138), +('FILE', 'json', 0, 96140), +('FILE', 'json', 0, 96141), +('FILE', 'js', 0, 96144), +('FILE', 'cjs', 0, 96145), +('FILE', 'tgz', 0, 96146), +('FILE', 'js', 0, 96148), +('FILE', 'cjs', 0, 96149), +('FILE', 'json', 0, 96150), +('FILE', 'json', 0, 96151), +('FILE', 'json', 0, 96154), +('FILE', 'js', 0, 96157), +('FILE', 'js', 0, 96158), +('FILE', 'js', 0, 96162), +('FILE', 'cjs', 0, 96163), +('FILE', 'js', 0, 96164), +('FILE', 'js', 0, 96170), +('FILE', 'cjs', 0, 96171), +('FILE', 'tgz', 0, 96172), +('FILE', 'json', 0, 96173), +('FILE', 'js', 0, 96174), +('FILE', 'js', 0, 96176), +('FILE', 'js', 0, 96177), +('FILE', 'js', 0, 96179), +('FILE', 'js', 0, 96180), +('FILE', 'json', 0, 96181), +('FILE', 'json', 0, 96182), +('FILE', 'js', 0, 96184), +('FILE', 'js', 0, 96185), +('FILE', 'js', 0, 96186), +('FILE', 'cjs', 0, 96187), +('FILE', 'cjs', 0, 96188), +('FILE', 'cjs', 0, 96189), +('FILE', 'cjs', 0, 96190), +('FILE', 'js', 0, 96191), +('FILE', 'js', 0, 96192), +('FILE', 'js', 0, 96193), +('FILE', 'js', 0, 96198), +('FILE', 'cjs', 0, 96199), +('FILE', 'js', 0, 96200), +('FILE', 'json', 0, 96201), +('FILE', 'json', 0, 96202), +('FILE', 'js', 0, 96205), +('FILE', 'json', 0, 96206), +('FILE', 'cjs', 0, 96207), +('FILE', 'js', 0, 96208), +('FILE', 'js', 0, 96211), +('FILE', 'js', 0, 96212), +('FILE', 'js', 0, 96213), +('FILE', 'yml', 0, 96218), +('FILE', 'js', 0, 96223), +('FILE', 'js', 0, 96224), +('FILE', 'js', 0, 96225), +('FILE', 'js', 0, 96226), +('FILE', 'js', 0, 96227), +('FILE', 'js', 0, 96228), +('FILE', 'js', 0, 96229), +('FILE', 'js', 0, 96230), +('FILE', 'tgz', 0, 96231), +('FILE', 'js', 0, 96232), +('FILE', 'js', 0, 96233), +('FILE', 'json', 0, 96234), +('FILE', 'js', 0, 96235), +('FILE', 'js', 0, 96236), +('FILE', 'js', 0, 96237), +('FILE', 'js', 0, 96238), +('FILE', 'js', 0, 96239), +('FILE', 'js', 0, 96240), +('FILE', 'js', 0, 96241), +('FILE', 'js', 0, 96242), +('FILE', 'js', 0, 96243), +('FILE', 'js', 0, 96244), +('FILE', 'js', 0, 96245), +('FILE', 'js', 0, 96246), +('FILE', 'js', 0, 96247), +('FILE', 'js', 0, 96248), +('FILE', 'js', 0, 96249), +('FILE', 'js', 0, 96250), +('FILE', 'js', 0, 96251), +('FILE', 'js', 0, 96252), +('FILE', 'js', 0, 96253), +('FILE', 'json', 0, 96254), +('FILE', 'js', 0, 96255), +('FILE', 'js', 0, 96256), +('FILE', 'js', 0, 96257), +('FILE', 'js', 0, 96261), +('FILE', 'js', 0, 96262), +('FILE', 'json', 0, 96263), +('FILE', 'js', 0, 96264), +('FILE', 'js', 0, 96265), +('FILE', 'cjs', 0, 96285), +('FILE', 'cjs', 0, 96286), +('FILE', 'json', 0, 96287), +('FILE', 'cjs', 0, 96288), +('FILE', 'js', 0, 96289), +('FILE', 'js', 0, 96290), +('FILE', 'cjs', 0, 96323), +('FILE', 'js', 0, 96332), +('FILE', 'tgz', 0, 96340), +('FILE', 'js', 0, 96346), +('FILE', 'json', 0, 96361), +('FILE', 'js', 0, 96362), +('FILE', 'json', 0, 96371), +('FILE', 'json', 0, 96372), +('FILE', 'json', 0, 96375), +('FILE', 'json', 0, 96376), +('FILE', 'json', 0, 96377), +('FILE', 'json', 0, 96378), +('FILE', 'json', 0, 96379), +('FILE', 'json', 0, 96380), +('FILE', 'json', 0, 96381), +('FILE', 'json', 0, 96382), +('FILE', 'json', 0, 96383), +('FILE', 'json', 0, 96384), +('FILE', 'json', 0, 96385), +('FILE', 'json', 0, 96386), +('FILE', 'json', 0, 96387), +('FILE', 'json', 0, 96388), +('FILE', 'json', 0, 96389), +('FILE', 'json', 0, 96390), +('FILE', 'json', 0, 96391), +('FILE', 'js', 0, 96405), +('FILE', 'json', 0, 96406), +('FILE', 'json', 0, 96412), +('FILE', 'json', 0, 96413), +('FILE', 'json', 0, 96414), +('FILE', 'js', 0, 96415), +('FILE', 'js', 0, 96416), +('FILE', 'json', 0, 96417), +('FILE', 'json', 0, 96418), +('FILE', 'json', 0, 96419), +('FILE', 'md', 0, 96420), +('FILE', 'json', 0, 96421), +('FILE', 'json', 0, 96422), +('FILE', 'json', 0, 96423), +('FILE', 'json', 0, 96424), +('FILE', 'js', 0, 96426), +('FILE', 'js', 0, 96427), +('FILE', 'js', 0, 96429), +('FILE', 'js', 0, 96430), +('FILE', 'js', 0, 96432), +('FILE', 'json', 0, 96433), +('FILE', 'js', 0, 96434), +('FILE', 'js', 0, 96435), +('FILE', 'md', 0, 96437), +('FILE', 'js', 0, 96438), +('FILE', 'json', 0, 96440), +('FILE', 'cjs', 0, 96441), +('FILE', 'cjs', 0, 96442), +('FILE', 'cjs', 0, 96443), +('FILE', 'cjs', 0, 96444), +('FILE', 'lock', 0, 96445), +('FILE', 'json', 0, 96478), +('FILE', 'js', 0, 96479), +('FILE', 'js', 0, 96480), +('FILE', 'js', 0, 96481), +('FILE', 'js', 0, 96482), +('FILE', 'md', 0, 96497), +('FILE', 'json', 0, 96499), +('FILE', 'json', 0, 96500), +('FILE', 'js', 0, 96525), +('FILE', 'js', 0, 96533), +('FILE', 'js', 0, 96534), +('FILE', 'js', 0, 96535), +('FILE', 'gitignore', 0, 96542), +('FILE', 'md', 0, 96567), +('FILE', 'json', 0, 96568), +('FILE', 'json', 0, 96594), +('FILE', 'js', 0, 96595), +('FILE', 'json', 0, 96596), +('FILE', 'json', 0, 96597), +('FILE', 'json', 0, 96598), +('FILE', 'json', 0, 96599), +('FILE', 'json', 0, 96600), +('FILE', 'json', 0, 96601), +('FILE', 'js', 0, 96623), +('FILE', 'json', 0, 96632), +('FILE', 'json', 0, 96633), +('FILE', 'json', 0, 96648), +('FILE', 'json', 0, 96649), +('FILE', 'json', 0, 96650), +('FILE', 'json', 0, 96651), +('FILE', 'json', 0, 96652), +('FILE', 'json', 0, 96653), +('FILE', 'json', 0, 96670), +('FILE', 'json', 0, 96671), +('FILE', 'json', 0, 96672), +('FILE', 'json', 0, 96673), +('FILE', 'json', 0, 96674), +('FILE', 'json', 0, 96675), +('FILE', 'json', 0, 96676), +('FILE', 'json', 0, 96677), +('FILE', 'json', 0, 96678), +('FILE', 'json', 0, 96679), +('FILE', 'json', 0, 96680), +('FILE', 'json', 0, 96681), +('FILE', 'json', 0, 96682), +('FILE', 'json', 0, 96683), +('FILE', 'json', 0, 96684), +('FILE', 'json', 0, 96685), +('FILE', 'json', 0, 96686), +('FILE', 'json', 0, 96687), +('FILE', 'json', 0, 96688), +('FILE', 'json', 0, 96689), +('FILE', 'json', 0, 96690), +('FILE', 'json', 0, 96691), +('FILE', 'json', 0, 96692), +('FILE', 'json', 0, 96693), +('FILE', 'json', 0, 96694), +('FILE', 'json', 0, 96695), +('FILE', 'json', 0, 96696), +('FILE', 'json', 0, 96697), +('FILE', 'json', 0, 96698), +('FILE', 'json', 0, 96699), +('FILE', 'json', 0, 96700), +('FILE', 'tgz', 0, 96701), +('FILE', 'json', 0, 96702), +('FILE', 'json', 0, 96703), +('FILE', 'json', 0, 96704), +('FILE', 'json', 0, 96705), +('FILE', 'json', 0, 96706), +('FILE', 'json', 0, 96707), +('FILE', 'json', 0, 96708), +('FILE', 'json', 0, 96709), +('FILE', 'json', 0, 96710), +('FILE', 'json', 0, 96711), +('FILE', 'json', 0, 96712), +('FILE', 'json', 0, 96713), +('FILE', 'json', 0, 96714), +('FILE', 'json', 0, 96715), +('FILE', 'json', 0, 96716), +('FILE', 'json', 0, 96717), +('FILE', 'json', 0, 96718), +('FILE', 'json', 0, 96719), +('FILE', 'json', 0, 96720), +('FILE', 'json', 0, 96721), +('FILE', 'json', 0, 96722), +('FILE', 'json', 0, 96723), +('FILE', 'json', 0, 96724), +('FILE', 'json', 0, 96725), +('FILE', 'json', 0, 96726), +('FILE', 'json', 0, 96727), +('FILE', 'json', 0, 96728), +('FILE', 'json', 0, 96729), +('FILE', 'json', 0, 96730), +('FILE', 'json', 0, 96731), +('FILE', 'json', 0, 96732), +('FILE', 'json', 0, 96733), +('FILE', 'json', 0, 96734), +('FILE', 'json', 0, 96735), +('FILE', 'json', 0, 96736), +('FILE', 'json', 0, 96737), +('FILE', 'json', 0, 96738), +('FILE', 'json', 0, 96739), +('FILE', 'json', 0, 96740), +('FILE', 'json', 0, 96741), +('FILE', 'json', 0, 96742), +('FILE', 'json', 0, 96743), +('FILE', 'json', 0, 96744), +('FILE', 'json', 0, 96745), +('FILE', 'json', 0, 96746), +('FILE', 'json', 0, 96747), +('FILE', 'json', 0, 96748), +('FILE', 'json', 0, 96749), +('FILE', 'json', 0, 96750), +('FILE', 'json', 0, 96751), +('FILE', 'json', 0, 96752), +('FILE', 'json', 0, 96753), +('FILE', 'json', 0, 96754), +('FILE', 'json', 0, 96755), +('FILE', 'json', 0, 96756), +('FILE', 'json', 0, 96757), +('FILE', 'json', 0, 96758), +('FILE', 'tgz', 0, 96759), +('FILE', 'json', 0, 96760), +('FILE', 'json', 0, 96761), +('FILE', 'json', 0, 96762), +('FILE', 'json', 0, 96763), +('FILE', 'json', 0, 96764), +('FILE', 'json', 0, 96765), +('FILE', 'json', 0, 96766), +('FILE', 'json', 0, 96767), +('FILE', 'json', 0, 96768), +('FILE', 'json', 0, 96769), +('FILE', 'json', 0, 96770), +('FILE', 'json', 0, 96771), +('FILE', 'json', 0, 96772), +('FILE', 'json', 0, 96773), +('FILE', 'json', 0, 96774), +('FILE', 'json', 0, 96775), +('FILE', 'json', 0, 96776), +('FILE', 'json', 0, 96777), +('FILE', 'json', 0, 96778), +('FILE', 'json', 0, 96779), +('FILE', 'json', 0, 96780), +('FILE', 'json', 0, 96781), +('FILE', 'json', 0, 96782), +('FILE', 'json', 0, 96783), +('FILE', 'json', 0, 96784), +('FILE', 'json', 0, 96785), +('FILE', 'json', 0, 96786), +('FILE', 'json', 0, 96787), +('FILE', 'json', 0, 96788), +('FILE', 'json', 0, 96789), +('FILE', 'json', 0, 96790), +('FILE', 'json', 0, 96791), +('FILE', 'json', 0, 96792), +('FILE', 'json', 0, 96793), +('FILE', 'json', 0, 96794), +('FILE', 'json', 0, 96795), +('FILE', 'json', 0, 96796), +('FILE', 'json', 0, 96797), +('FILE', 'json', 0, 96798), +('FILE', 'json', 0, 96799), +('FILE', 'json', 0, 96800), +('FILE', 'json', 0, 96801), +('FILE', 'json', 0, 96802), +('FILE', 'json', 0, 96803), +('FILE', 'json', 0, 96804), +('FILE', 'json', 0, 96805), +('FILE', 'json', 0, 96806), +('FILE', 'json', 0, 96807), +('FILE', 'json', 0, 96808), +('FILE', 'json', 0, 96809), +('FILE', 'json', 0, 96810), +('FILE', 'json', 0, 96811), +('FILE', 'json', 0, 96812), +('FILE', 'json', 0, 96813), +('FILE', 'json', 0, 96814), +('FILE', 'json', 0, 96815), +('FILE', 'json', 0, 96816), +('FILE', 'json', 0, 96817), +('FILE', 'json', 0, 96818), +('FILE', 'json', 0, 96819), +('FILE', 'json', 0, 96820), +('FILE', 'json', 0, 96821), +('FILE', 'json', 0, 96822), +('FILE', 'json', 0, 96823), +('FILE', 'json', 0, 96824), +('FILE', 'json', 0, 96825), +('FILE', 'json', 0, 96826), +('FILE', 'json', 0, 96827), +('FILE', 'json', 0, 96828), +('FILE', 'json', 0, 96829), +('FILE', 'json', 0, 96830), +('FILE', 'json', 0, 96831), +('FILE', 'json', 0, 96832), +('FILE', 'json', 0, 96833), +('FILE', 'json', 0, 96834), +('FILE', 'json', 0, 96835), +('FILE', 'json', 0, 96836), +('FILE', 'json', 0, 96837), +('FILE', 'json', 0, 96838), +('FILE', 'json', 0, 96839), +('FILE', 'json', 0, 96840), +('FILE', 'json', 0, 96841), +('FILE', 'json', 0, 96842), +('FILE', 'json', 0, 96843), +('FILE', 'json', 0, 96844), +('FILE', 'json', 0, 96845), +('FILE', 'json', 0, 96846), +('FILE', 'json', 0, 96847), +('FILE', 'json', 0, 96848), +('FILE', 'json', 0, 96849), +('FILE', 'json', 0, 96850), +('FILE', 'json', 0, 96851), +('FILE', 'json', 0, 96852), +('FILE', 'json', 0, 96853), +('FILE', 'json', 0, 96854), +('FILE', 'json', 0, 96855), +('FILE', 'json', 0, 96856), +('FILE', 'json', 0, 96857), +('FILE', 'json', 0, 96858), +('FILE', 'json', 0, 96859), +('FILE', 'json', 0, 96860), +('FILE', 'json', 0, 96861), +('FILE', 'json', 0, 96862), +('FILE', 'json', 0, 96863), +('FILE', 'json', 0, 96864), +('FILE', 'json', 0, 96865), +('FILE', 'json', 0, 96866), +('FILE', 'json', 0, 96867), +('FILE', 'json', 0, 96868), +('FILE', 'json', 0, 96869), +('FILE', 'json', 0, 96870), +('FILE', 'json', 0, 96871), +('FILE', 'json', 0, 96872), +('FILE', 'json', 0, 96873), +('FILE', 'json', 0, 96874), +('FILE', 'json', 0, 96875), +('FILE', 'json', 0, 96876), +('FILE', 'json', 0, 96877), +('FILE', 'json', 0, 96878), +('FILE', 'json', 0, 96879), +('FILE', 'json', 0, 96880), +('FILE', 'json', 0, 96881), +('FILE', 'json', 0, 96882), +('FILE', 'json', 0, 96883), +('FILE', 'json', 0, 96884), +('FILE', 'json', 0, 96885), +('FILE', 'json', 0, 96886), +('FILE', 'json', 0, 96887), +('FILE', 'json', 0, 96888), +('FILE', 'json', 0, 96889), +('FILE', 'json', 0, 96890), +('FILE', 'json', 0, 96891), +('FILE', 'json', 0, 96892), +('FILE', 'json', 0, 96893), +('FILE', 'json', 0, 96894), +('FILE', 'json', 0, 96895), +('FILE', 'json', 0, 96896), +('FILE', 'json', 0, 96897), +('FILE', 'json', 0, 96898), +('FILE', 'json', 0, 96899), +('FILE', 'json', 0, 96900), +('FILE', 'json', 0, 96901), +('FILE', 'json', 0, 96902), +('FILE', 'json', 0, 96903), +('FILE', 'json', 0, 96904), +('FILE', 'json', 0, 96905), +('FILE', 'json', 0, 96906), +('FILE', 'json', 0, 96907), +('FILE', 'json', 0, 96908), +('FILE', 'json', 0, 96909), +('FILE', 'json', 0, 96910), +('FILE', 'json', 0, 96911), +('FILE', 'json', 0, 96912), +('FILE', 'json', 0, 96913), +('FILE', 'json', 0, 96914), +('FILE', 'json', 0, 96915), +('FILE', 'json', 0, 96916), +('FILE', 'json', 0, 96917), +('FILE', 'json', 0, 96918), +('FILE', 'json', 0, 96919), +('FILE', 'json', 0, 96920), +('FILE', 'json', 0, 96921), +('FILE', 'json', 0, 96922), +('FILE', 'json', 0, 96923), +('FILE', 'json', 0, 96924), +('FILE', 'json', 0, 96925), +('FILE', 'json', 0, 96926), +('FILE', 'json', 0, 96927), +('FILE', 'json', 0, 96928), +('FILE', 'json', 0, 96929), +('FILE', 'json', 0, 96930), +('FILE', 'json', 0, 96931), +('FILE', 'json', 0, 96932), +('FILE', 'json', 0, 96933), +('FILE', 'json', 0, 96934), +('FILE', 'json', 0, 96935), +('FILE', 'json', 0, 96936), +('FILE', 'json', 0, 96937), +('FILE', 'json', 0, 96938), +('FILE', 'json', 0, 96939), +('FILE', 'json', 0, 96940), +('FILE', 'json', 0, 96941), +('FILE', 'json', 0, 96942), +('FILE', 'json', 0, 96943), +('FILE', 'json', 0, 96944), +('FILE', 'json', 0, 96945), +('FILE', 'json', 0, 96946), +('FILE', 'json', 0, 96947), +('FILE', 'json', 0, 96948), +('FILE', 'json', 0, 96949), +('FILE', 'json', 0, 96950), +('FILE', 'json', 0, 96951), +('FILE', 'json', 0, 96952), +('FILE', 'json', 0, 96953), +('FILE', 'json', 0, 96954), +('FILE', 'json', 0, 96955), +('FILE', 'json', 0, 96956), +('FILE', 'json', 0, 96957), +('FILE', 'json', 0, 96958), +('FILE', 'json', 0, 96959), +('FILE', 'json', 0, 96960), +('FILE', 'json', 0, 96961), +('FILE', 'json', 0, 96962), +('FILE', 'json', 0, 96963), +('FILE', 'json', 0, 96964), +('FILE', 'json', 0, 96965), +('FILE', 'json', 0, 96966), +('FILE', 'json', 0, 96967), +('FILE', 'json', 0, 96968), +('FILE', 'json', 0, 96969), +('FILE', 'json', 0, 96970), +('FILE', 'json', 0, 96971), +('FILE', 'json', 0, 96972), +('FILE', 'json', 0, 96973), +('FILE', 'json', 0, 96974), +('FILE', 'json', 0, 96975), +('FILE', 'json', 0, 96976), +('FILE', 'json', 0, 96977), +('FILE', 'json', 0, 96978), +('FILE', 'json', 0, 96979), +('FILE', 'json', 0, 96980), +('FILE', 'json', 0, 96981), +('FILE', 'json', 0, 96982), +('FILE', 'json', 0, 96983), +('FILE', 'json', 0, 96984), +('FILE', 'json', 0, 96985), +('FILE', 'json', 0, 96986), +('FILE', 'json', 0, 96987), +('FILE', 'json', 0, 96988), +('FILE', 'json', 0, 96989), +('FILE', 'json', 0, 96990), +('FILE', 'json', 0, 96991), +('FILE', 'json', 0, 96992), +('FILE', 'json', 0, 96993), +('FILE', 'json', 0, 96994), +('FILE', 'json', 0, 96995), +('FILE', 'json', 0, 96996), +('FILE', 'json', 0, 96997), +('FILE', 'json', 0, 96998), +('FILE', 'json', 0, 96999), +('FILE', 'json', 0, 97000), +('FILE', 'json', 0, 97001), +('FILE', 'json', 0, 97002), +('FILE', 'json', 0, 97003), +('FILE', 'json', 0, 97004), +('FILE', 'json', 0, 97005), +('FILE', 'json', 0, 97006), +('FILE', 'json', 0, 97007), +('FILE', 'json', 0, 97008), +('FILE', 'json', 0, 97009), +('FILE', 'json', 0, 97010), +('FILE', 'json', 0, 97011), +('FILE', 'json', 0, 97012), +('FILE', 'json', 0, 97013), +('FILE', 'json', 0, 97014), +('FILE', 'json', 0, 97015), +('FILE', 'json', 0, 97016), +('FILE', 'json', 0, 97017), +('FILE', 'json', 0, 97018), +('FILE', 'json', 0, 97019), +('FILE', 'json', 0, 97020), +('FILE', 'json', 0, 97021), +('FILE', 'json', 0, 97022), +('FILE', 'json', 0, 97023), +('FILE', 'json', 0, 97024), +('FILE', 'json', 0, 97025), +('FILE', 'json', 0, 97026), +('FILE', 'json', 0, 97027), +('FILE', 'json', 0, 97028), +('FILE', 'json', 0, 97029), +('FILE', 'json', 0, 97030), +('FILE', 'json', 0, 97031), +('FILE', 'json', 0, 97032), +('FILE', 'json', 0, 97033), +('FILE', 'json', 0, 97034), +('FILE', 'json', 0, 97035), +('FILE', 'json', 0, 97036), +('FILE', 'json', 0, 97037), +('FILE', 'json', 0, 97038), +('FILE', 'json', 0, 97039), +('FILE', 'tgz', 0, 97040), +('FILE', 'json', 0, 97041), +('FILE', 'tgz', 0, 97042), +('FILE', 'json', 0, 97043), +('FILE', 'json', 0, 97044), +('FILE', 'json', 0, 97045), +('FILE', 'tgz', 0, 97046), +('FILE', 'json', 0, 97047), +('FILE', 'json', 0, 97048), +('FILE', 'json', 0, 97049), +('FILE', 'json', 0, 97050), +('FILE', 'json', 0, 97051), +('FILE', 'json', 0, 97052), +('FILE', 'tgz', 0, 97053), +('FILE', 'json', 0, 97054), +('FILE', 'json', 0, 97055), +('FILE', 'json', 0, 97056), +('FILE', 'json', 0, 97057), +('FILE', 'json', 0, 97058), +('FILE', 'json', 0, 97059), +('FILE', 'json', 0, 97060), +('FILE', 'json', 0, 97061), +('FILE', 'tgz', 0, 97062), +('FILE', 'json', 0, 97063), +('FILE', 'json', 0, 97064), +('FILE', 'json', 0, 97065), +('FILE', 'tgz', 0, 97066), +('FILE', 'tgz', 0, 97067), +('FILE', 'json', 0, 97068), +('FILE', 'tgz', 0, 97069), +('FILE', 'json', 0, 97070), +('FILE', 'tgz', 0, 97071), +('FILE', 'json', 0, 97072), +('FILE', 'tgz', 0, 97073), +('FILE', 'json', 0, 97074), +('FILE', 'tgz', 0, 97075), +('FILE', 'json', 0, 97076), +('FILE', 'tgz', 0, 97077), +('FILE', 'json', 0, 97078), +('FILE', 'json', 0, 97079), +('FILE', 'json', 0, 97080), +('FILE', 'json', 0, 97081), +('FILE', 'json', 0, 97082), +('FILE', 'json', 0, 97083), +('FILE', 'json', 0, 97084), +('FILE', 'json', 0, 97085), +('FILE', 'json', 0, 97086), +('FILE', 'json', 0, 97087), +('FILE', 'json', 0, 97088), +('FILE', 'json', 0, 97089), +('FILE', 'json', 0, 97090), +('FILE', 'tgz', 0, 97091), +('FILE', 'json', 0, 97092), +('FILE', 'tgz', 0, 97093), +('FILE', 'json', 0, 97094), +('FILE', 'json', 0, 97095), +('FILE', 'json', 0, 97096), +('FILE', 'json', 0, 97097), +('FILE', 'json', 0, 97098), +('FILE', 'tgz', 0, 97099), +('FILE', 'json', 0, 97100), +('FILE', 'json', 0, 97101), +('FILE', 'json', 0, 97102), +('FILE', 'json', 0, 97103), +('FILE', 'json', 0, 97104), +('FILE', 'json', 0, 97105), +('FILE', 'json', 0, 97106), +('FILE', 'json', 0, 97107), +('FILE', 'json', 0, 97108), +('FILE', 'json', 0, 97109), +('FILE', 'json', 0, 97110), +('FILE', 'json', 0, 97111), +('FILE', 'json', 0, 97112), +('FILE', 'json', 0, 97113), +('FILE', 'json', 0, 97114), +('FILE', 'json', 0, 97115), +('FILE', 'json', 0, 97116), +('FILE', 'json', 0, 97117), +('FILE', 'json', 0, 97118), +('FILE', 'json', 0, 97119), +('FILE', 'json', 0, 97120), +('FILE', 'json', 0, 97121), +('FILE', 'json', 0, 97122), +('FILE', 'json', 0, 97123), +('FILE', 'json', 0, 97124), +('FILE', 'json', 0, 97125), +('FILE', 'json', 0, 97126), +('FILE', 'json', 0, 97127), +('FILE', 'json', 0, 97128), +('FILE', 'json', 0, 97129), +('FILE', 'json', 0, 97130), +('FILE', 'json', 0, 97131), +('FILE', 'json', 0, 97132), +('FILE', 'json', 0, 97133), +('FILE', 'json', 0, 97134), +('FILE', 'json', 0, 97135), +('FILE', 'json', 0, 97136), +('FILE', 'json', 0, 97137), +('FILE', 'json', 0, 97138), +('FILE', 'json', 0, 97139), +('FILE', 'json', 0, 97140), +('FILE', 'json', 0, 97141), +('FILE', 'json', 0, 97142), +('FILE', 'json', 0, 97143), +('FILE', 'json', 0, 97144), +('FILE', 'json', 0, 97145), +('FILE', 'json', 0, 97146), +('FILE', 'json', 0, 97147), +('FILE', 'json', 0, 97148), +('FILE', 'json', 0, 97149), +('FILE', 'json', 0, 97150), +('FILE', 'json', 0, 97151), +('FILE', 'json', 0, 97152), +('FILE', 'json', 0, 97153), +('FILE', 'json', 0, 97154), +('FILE', 'json', 0, 97155), +('FILE', 'json', 0, 97156), +('FILE', 'json', 0, 97157), +('FILE', 'json', 0, 97158), +('FILE', 'json', 0, 97159), +('FILE', 'json', 0, 97160), +('FILE', 'json', 0, 97161), +('FILE', 'json', 0, 97162), +('FILE', 'json', 0, 97163), +('FILE', 'json', 0, 97164), +('FILE', 'json', 0, 97165), +('FILE', 'json', 0, 97166), +('FILE', 'json', 0, 97167), +('FILE', 'json', 0, 97168), +('FILE', 'json', 0, 97169), +('FILE', 'json', 0, 97170), +('FILE', 'json', 0, 97171), +('FILE', 'json', 0, 97172), +('FILE', 'json', 0, 97173), +('FILE', 'json', 0, 97174), +('FILE', 'json', 0, 97175), +('FILE', 'json', 0, 97176), +('FILE', 'json', 0, 97177), +('FILE', 'json', 0, 97178), +('FILE', 'json', 0, 97179), +('FILE', 'json', 0, 97180), +('FILE', 'json', 0, 97181), +('FILE', 'json', 0, 97182), +('FILE', 'json', 0, 97183), +('FILE', 'json', 0, 97184), +('FILE', 'json', 0, 97185), +('FILE', 'json', 0, 97186), +('FILE', 'json', 0, 97187), +('FILE', 'json', 0, 97188), +('FILE', 'json', 0, 97189), +('FILE', 'json', 0, 97190), +('FILE', 'json', 0, 97191), +('FILE', 'json', 0, 97192), +('FILE', 'json', 0, 97193), +('FILE', 'json', 0, 97194), +('FILE', 'json', 0, 97195), +('FILE', 'json', 0, 97196), +('FILE', 'json', 0, 97197), +('FILE', 'json', 0, 97198), +('FILE', 'json', 0, 97199), +('FILE', 'json', 0, 97200), +('FILE', 'json', 0, 97201), +('FILE', 'json', 0, 97202), +('FILE', 'json', 0, 97203), +('FILE', 'json', 0, 97204), +('FILE', 'json', 0, 97205), +('FILE', 'json', 0, 97206), +('FILE', 'json', 0, 97207), +('FILE', 'json', 0, 97208), +('FILE', 'json', 0, 97209), +('FILE', 'json', 0, 97210), +('FILE', 'json', 0, 97211), +('FILE', 'json', 0, 97212), +('FILE', 'json', 0, 97213), +('FILE', 'json', 0, 97214), +('FILE', 'json', 0, 97215), +('FILE', 'json', 0, 97216), +('FILE', 'json', 0, 97217), +('FILE', 'json', 0, 97218), +('FILE', 'json', 0, 97219), +('FILE', 'json', 0, 97220), +('FILE', 'json', 0, 97221), +('FILE', 'json', 0, 97222), +('FILE', 'json', 0, 97223), +('FILE', 'json', 0, 97224), +('FILE', 'json', 0, 97225), +('FILE', 'json', 0, 97226), +('FILE', 'json', 0, 97227), +('FILE', 'json', 0, 97228), +('FILE', 'json', 0, 97229), +('FILE', 'json', 0, 97230), +('FILE', 'json', 0, 97231), +('FILE', 'json', 0, 97232), +('FILE', 'json', 0, 97233), +('FILE', 'tgz', 0, 97234), +('FILE', 'json', 0, 97235), +('FILE', 'json', 0, 97236), +('FILE', 'json', 0, 97237), +('FILE', 'json', 0, 97238), +('FILE', 'json', 0, 97239), +('FILE', 'json', 0, 97240), +('FILE', 'json', 0, 97241), +('FILE', 'json', 0, 97242), +('FILE', 'json', 0, 97243), +('FILE', 'json', 0, 97244), +('FILE', 'json', 0, 97245), +('FILE', 'json', 0, 97246), +('FILE', 'json', 0, 97247), +('FILE', 'json', 0, 97248), +('FILE', 'json', 0, 97249), +('FILE', 'json', 0, 97250), +('FILE', 'json', 0, 97251), +('FILE', 'json', 0, 97252), +('FILE', 'json', 0, 97253), +('FILE', 'json', 0, 97254), +('FILE', 'json', 0, 97255), +('FILE', 'json', 0, 97256), +('FILE', 'json', 0, 97257), +('FILE', 'json', 0, 97258), +('FILE', 'json', 0, 97259), +('FILE', 'json', 0, 97260), +('FILE', 'json', 0, 97261), +('FILE', 'json', 0, 97262), +('FILE', 'json', 0, 97263), +('FILE', 'json', 0, 97264), +('FILE', 'json', 0, 97265), +('FILE', 'json', 0, 97266), +('FILE', 'json', 0, 97267), +('FILE', 'json', 0, 97268), +('FILE', 'json', 0, 97269), +('FILE', 'json', 0, 97270), +('FILE', 'json', 0, 97271), +('FILE', 'json', 0, 97272), +('FILE', 'json', 0, 97273), +('FILE', 'json', 0, 97274), +('FILE', 'json', 0, 97275), +('FILE', 'json', 0, 97276), +('FILE', 'json', 0, 97277), +('FILE', 'json', 0, 97278), +('FILE', 'json', 0, 97279), +('FILE', 'json', 0, 97280), +('FILE', 'json', 0, 97281), +('FILE', 'json', 0, 97282), +('FILE', 'json', 0, 97283), +('FILE', 'json', 0, 97284), +('FILE', 'json', 0, 97285), +('FILE', 'json', 0, 97286), +('FILE', 'json', 0, 97287), +('FILE', 'json', 0, 97288), +('FILE', 'json', 0, 97289), +('FILE', 'json', 0, 97290), +('FILE', 'json', 0, 97291), +('FILE', 'json', 0, 97292), +('FILE', 'json', 0, 97293), +('FILE', 'json', 0, 97294), +('FILE', 'json', 0, 97295), +('FILE', 'json', 0, 97296), +('FILE', 'json', 0, 97297), +('FILE', 'tgz', 0, 97298), +('FILE', 'json', 0, 97299), +('FILE', 'json', 0, 97300), +('FILE', 'json', 0, 97301), +('FILE', 'json', 0, 97302), +('FILE', 'json', 0, 97303), +('FILE', 'json', 0, 97304), +('FILE', 'json', 0, 97305), +('FILE', 'json', 0, 97306), +('FILE', 'json', 0, 97307), +('FILE', 'json', 0, 97308), +('FILE', 'json', 0, 97309), +('FILE', 'json', 0, 97310), +('FILE', 'json', 0, 97311), +('FILE', 'json', 0, 97312), +('FILE', 'json', 0, 97313), +('FILE', 'json', 0, 97314), +('FILE', 'json', 0, 97315), +('FILE', 'json', 0, 97316), +('FILE', 'json', 0, 97317), +('FILE', 'json', 0, 97318), +('FILE', 'json', 0, 97319), +('FILE', 'json', 0, 97320), +('FILE', 'json', 0, 97321), +('FILE', 'json', 0, 97322), +('FILE', 'json', 0, 97323), +('FILE', 'json', 0, 97324), +('FILE', 'json', 0, 97325), +('FILE', 'json', 0, 97326), +('FILE', 'json', 0, 97327), +('FILE', 'json', 0, 97328), +('FILE', 'json', 0, 97329), +('FILE', 'json', 0, 97330), +('FILE', 'json', 0, 97331), +('FILE', 'tgz', 0, 97332), +('FILE', 'json', 0, 97333), +('FILE', 'json', 0, 97334), +('FILE', 'json', 0, 97335), +('FILE', 'json', 0, 97336), +('FILE', 'json', 0, 97337), +('FILE', 'tgz', 0, 97338), +('FILE', 'json', 0, 97339), +('FILE', 'json', 0, 97340), +('FILE', 'json', 0, 97341), +('FILE', 'json', 0, 97342), +('FILE', 'json', 0, 97343), +('FILE', 'json', 0, 97344), +('FILE', 'json', 0, 97345), +('FILE', 'json', 0, 97346), +('FILE', 'json', 0, 97347), +('FILE', 'json', 0, 97348), +('FILE', 'json', 0, 97349), +('FILE', 'json', 0, 97350), +('FILE', 'json', 0, 97351), +('FILE', 'json', 0, 97352), +('FILE', 'json', 0, 97353), +('FILE', 'json', 0, 97354), +('FILE', 'json', 0, 97355), +('FILE', 'json', 0, 97356), +('FILE', 'json', 0, 97357), +('FILE', 'json', 0, 97358), +('FILE', 'json', 0, 97359), +('FILE', 'json', 0, 97360), +('FILE', 'json', 0, 97361), +('FILE', 'json', 0, 97362), +('FILE', 'json', 0, 97363), +('FILE', 'json', 0, 97364), +('FILE', 'json', 0, 97365), +('FILE', 'json', 0, 97366), +('FILE', 'json', 0, 97367), +('FILE', 'json', 0, 97368), +('FILE', 'json', 0, 97369), +('FILE', 'json', 0, 97370), +('FILE', 'json', 0, 97371), +('FILE', 'json', 0, 97372), +('FILE', 'json', 0, 97373), +('FILE', 'json', 0, 97374), +('FILE', 'json', 0, 97375), +('FILE', 'json', 0, 97376), +('FILE', 'json', 0, 97377), +('FILE', 'json', 0, 97378), +('FILE', 'json', 0, 97379), +('FILE', 'json', 0, 97380), +('FILE', 'json', 0, 97381), +('FILE', 'json', 0, 97382), +('FILE', 'json', 0, 97383), +('FILE', 'json', 0, 97384), +('FILE', 'json', 0, 97385), +('FILE', 'json', 0, 97386), +('FILE', 'json', 0, 97387), +('FILE', 'json', 0, 97388), +('FILE', 'json', 0, 97389), +('FILE', 'json', 0, 97390), +('FILE', 'json', 0, 97391), +('FILE', 'json', 0, 97392), +('FILE', 'json', 0, 97393), +('FILE', 'json', 0, 97394), +('FILE', 'json', 0, 97395), +('FILE', 'json', 0, 97396), +('FILE', 'json', 0, 97397), +('FILE', 'json', 0, 97398), +('FILE', 'json', 0, 97399), +('FILE', 'tgz', 0, 97400), +('FILE', 'json', 0, 97401), +('FILE', 'json', 0, 97402), +('FILE', 'json', 0, 97403), +('FILE', 'json', 0, 97404), +('FILE', 'json', 0, 97405), +('FILE', 'json', 0, 97406), +('FILE', 'json', 0, 97407), +('FILE', 'json', 0, 97408), +('FILE', 'json', 0, 97409), +('FILE', 'js', 0, 97410), +('FILE', 'json', 0, 97411), +('FILE', 'json', 0, 97412), +('FILE', 'json', 0, 97413), +('FILE', 'json', 0, 97414), +('FILE', 'json', 0, 97415), +('FILE', 'json', 0, 97416), +('FILE', 'json', 0, 97417), +('FILE', 'json', 0, 97418), +('FILE', 'json', 0, 97419), +('FILE', 'json', 0, 97420), +('FILE', 'json', 0, 97421), +('FILE', 'json', 0, 97422), +('FILE', 'json', 0, 97423), +('FILE', 'json', 0, 97424), +('FILE', 'json', 0, 97425), +('FILE', 'json', 0, 97426), +('FILE', 'json', 0, 97427), +('FILE', 'json', 0, 97428), +('FILE', 'json', 0, 97429), +('FILE', 'json', 0, 97430), +('FILE', 'json', 0, 97431), +('FILE', 'json', 0, 97432), +('FILE', 'json', 0, 97433), +('FILE', 'json', 0, 97434), +('FILE', 'json', 0, 97435), +('FILE', 'tgz', 0, 97436), +('FILE', 'json', 0, 97437), +('FILE', 'json', 0, 97438), +('FILE', 'json', 0, 97439), +('FILE', 'json', 0, 97440), +('FILE', 'json', 0, 97441), +('FILE', 'json', 0, 97442), +('FILE', 'json', 0, 97443), +('FILE', 'json', 0, 97444), +('FILE', 'json', 0, 97445), +('FILE', 'json', 0, 97446), +('FILE', 'json', 0, 97447), +('FILE', 'json', 0, 97448), +('FILE', 'json', 0, 97449), +('FILE', 'json', 0, 97450), +('FILE', 'json', 0, 97451), +('FILE', 'json', 0, 97452), +('FILE', 'json', 0, 97453), +('FILE', 'json', 0, 97454), +('FILE', 'json', 0, 97455), +('FILE', 'json', 0, 97456), +('FILE', 'json', 0, 97457), +('FILE', 'json', 0, 97458), +('FILE', 'json', 0, 97459), +('FILE', 'json', 0, 97460), +('FILE', 'json', 0, 97461), +('FILE', 'json', 0, 97462), +('FILE', 'json', 0, 97463), +('FILE', 'json', 0, 97464), +('FILE', 'json', 0, 97465), +('FILE', 'json', 0, 97466), +('FILE', 'json', 0, 97467), +('FILE', 'json', 0, 97468), +('FILE', 'json', 0, 97469), +('FILE', 'json', 0, 97470), +('FILE', 'json', 0, 97471), +('FILE', 'json', 0, 97472), +('FILE', 'json', 0, 97473), +('FILE', 'json', 0, 97474), +('FILE', 'json', 0, 97475), +('FILE', 'json', 0, 97476), +('FILE', 'json', 0, 97477), +('FILE', 'json', 0, 97478), +('FILE', 'json', 0, 97479), +('FILE', 'json', 0, 97480), +('FILE', 'json', 0, 97481), +('FILE', 'json', 0, 97482), +('FILE', 'json', 0, 97483), +('FILE', 'json', 0, 97484), +('FILE', 'json', 0, 97485), +('FILE', 'json', 0, 97486), +('FILE', 'md', 0, 97495), +('FILE', 'json', 0, 97530), +('FILE', 'json', 0, 97531), +('FILE', 'json', 0, 97547), +('FILE', 'json', 0, 97548), +('FILE', 'json', 0, 97568), +('FILE', 'js', 0, 97569), +('FILE', 'md', 0, 97570), +('FILE', 'js', 0, 97571), +('FILE', 'json', 0, 97572), +('FILE', 'js', 0, 97573), +('FILE', 'js', 0, 97574), +('FILE', 'json', 0, 97575), +('FILE', 'tgz', 0, 97577), +('FILE', 'js', 0, 97584), +('FILE', 'json', 0, 97586), +('FILE', 'json', 0, 97643), +('FILE', 'js', 0, 97677), +('FILE', 'js', 0, 97678), +('FILE', 'js', 0, 97679), +('FILE', 'js', 0, 97680), +('FILE', 'js', 0, 97681), +('FILE', 'js', 0, 97682), +('FILE', 'js', 0, 97683), +('FILE', 'js', 0, 97684), +('FILE', 'js', 0, 97685), +('FILE', 'js', 0, 97686), +('FILE', 'js', 0, 97687), +('FILE', 'js', 0, 97688), +('FILE', 'json', 0, 97689), +('FILE', 'js', 0, 97690), +('FILE', 'js', 0, 97691), +('FILE', 'js', 0, 97692), +('FILE', 'js', 0, 97693), +('FILE', 'js', 0, 97694), +('FILE', 'js', 0, 97695), +('FILE', 'js', 0, 97696), +('FILE', 'js', 0, 97697), +('FILE', 'js', 0, 97698), +('FILE', 'js', 0, 97699), +('FILE', 'js', 0, 97700), +('FILE', 'js', 0, 97701), +('FILE', 'js', 0, 97702), +('FILE', 'js', 0, 97703), +('FILE', 'js', 0, 97704), +('FILE', 'js', 0, 97705), +('FILE', 'js', 0, 97706), +('FILE', 'js', 0, 97707), +('FILE', 'js', 0, 97708), +('FILE', 'js', 0, 97709), +('FILE', 'js', 0, 97710), +('FILE', 'js', 0, 97711), +('FILE', 'json', 0, 97712), +('FILE', 'js', 0, 97713), +('FILE', 'js', 0, 97714), +('FILE', 'js', 0, 97715), +('FILE', 'js', 0, 97716), +('FILE', 'js', 0, 97717), +('FILE', 'js', 0, 97718), +('FILE', 'js', 0, 97719), +('FILE', 'json', 0, 97720), +('FILE', 'js', 0, 97721), +('FILE', 'js', 0, 97722), +('FILE', 'js', 0, 97723), +('FILE', 'js', 0, 97724), +('FILE', 'js', 0, 97725), +('FILE', 'js', 0, 97726), +('FILE', 'json', 0, 97727), +('FILE', 'js', 0, 97728), +('FILE', 'js', 0, 97729), +('FILE', 'js', 0, 97730), +('FILE', 'json', 0, 97731), +('FILE', 'json', 0, 97732), +('FILE', 'js', 0, 97733), +('FILE', 'json', 0, 97750), +('FILE', 'lock', 0, 97790), +('FILE', 'json', 0, 97806), +('FILE', 'json', 0, 97822), +('FILE', 'js', 0, 97833), +('FILE', NULL, 0, 97862), +('FILE', 'application/x-shar', 0, 97888), +('FILE', 'json', 0, 97920), +('FILE', 'json', 0, 97921), +('FILE', 'json', 0, 97922), +('FILE', 'json', 0, 97923), +('FILE', 'json', 0, 97924), +('FILE', 'md', 0, 97958), +('FILE', 'js', 0, 97964), +('FILE', 'json', 0, 97971), +('FILE', 'json', 0, 97982), +('FILE', 'js', 0, 97990), +('FILE', 'md', 0, 97991), +('FILE', 'json', 0, 98014), +('FILE', 'tgz', 0, 98029), +('FILE', 'tgz', 0, 98030), +('FILE', 'tgz', 0, 98031), +('FILE', 'tgz', 0, 98032), +('FILE', 'tgz', 0, 98033), +('FILE', 'tgz', 0, 98034), +('FILE', 'tgz', 0, 98035), +('FILE', 'tgz', 0, 98036), +('FILE', 'tgz', 0, 98037), +('FILE', 'tgz', 0, 98038), +('FILE', 'tgz', 0, 98039), +('FILE', 'tgz', 0, 98040), +('FILE', 'tgz', 0, 98041), +('FILE', 'tgz', 0, 98042), +('FILE', 'tgz', 0, 98043), +('FILE', 'tgz', 0, 98044), +('FILE', 'tgz', 0, 98045), +('FILE', 'tgz', 0, 98046), +('FILE', 'tgz', 0, 98047), +('FILE', 'tgz', 0, 98048), +('FILE', 'tgz', 0, 98049), +('FILE', 'tgz', 0, 98050), +('FILE', 'tgz', 0, 98051), +('FILE', 'tgz', 0, 98052), +('FILE', 'tgz', 0, 98053), +('FILE', 'tgz', 0, 98054), +('FILE', 'tgz', 0, 98055), +('FILE', 'tgz', 0, 98056), +('FILE', 'tgz', 0, 98057), +('FILE', 'tgz', 0, 98058), +('FILE', 'tgz', 0, 98059), +('FILE', 'tgz', 0, 98060), +('FILE', 'tgz', 0, 98061), +('FILE', 'tgz', 0, 98062), +('FILE', 'tgz', 0, 98063), +('FILE', 'tgz', 0, 98064), +('FILE', 'tgz', 0, 98065), +('FILE', 'tgz', 0, 98066), +('FILE', 'tgz', 0, 98067), +('FILE', 'tgz', 0, 98068), +('FILE', 'tgz', 0, 98069), +('FILE', 'tgz', 0, 98070), +('FILE', 'tgz', 0, 98071), +('FILE', 'tgz', 0, 98072), +('FILE', 'tgz', 0, 98073), +('FILE', 'tgz', 0, 98074), +('FILE', 'tgz', 0, 98075), +('FILE', 'tgz', 0, 98076), +('FILE', 'tgz', 0, 98077), +('FILE', 'tgz', 0, 98078), +('FILE', 'tgz', 0, 98079), +('FILE', 'tgz', 0, 98080), +('FILE', 'tgz', 0, 98081), +('FILE', 'tgz', 0, 98082), +('FILE', 'tgz', 0, 98083), +('FILE', 'tgz', 0, 98084), +('FILE', 'tgz', 0, 98085), +('FILE', 'tgz', 0, 98086), +('FILE', 'tgz', 0, 98087), +('FILE', 'tgz', 0, 98088), +('FILE', 'tgz', 0, 98089), +('FILE', 'tgz', 0, 98090), +('FILE', 'tgz', 0, 98091), +('FILE', 'tgz', 0, 98092), +('FILE', 'tgz', 0, 98093), +('FILE', 'tgz', 0, 98094), +('FILE', 'tgz', 0, 98095), +('FILE', 'tgz', 0, 98096), +('FILE', 'tgz', 0, 98097), +('FILE', 'tgz', 0, 98098), +('FILE', 'tgz', 0, 98099), +('FILE', 'tgz', 0, 98100), +('FILE', 'tgz', 0, 98101), +('FILE', 'tgz', 0, 98102), +('FILE', 'tgz', 0, 98103), +('FILE', 'tgz', 0, 98104), +('FILE', 'tgz', 0, 98105), +('FILE', 'tgz', 0, 98106), +('FILE', 'tgz', 0, 98107), +('FILE', 'tgz', 0, 98108), +('FILE', 'tgz', 0, 98109), +('FILE', 'tgz', 0, 98110), +('FILE', 'tgz', 0, 98111), +('FILE', 'tgz', 0, 98112), +('FILE', 'tgz', 0, 98113), +('FILE', 'tgz', 0, 98114), +('FILE', 'tgz', 0, 98115), +('FILE', 'tgz', 0, 98116), +('FILE', 'tgz', 0, 98117), +('FILE', 'tgz', 0, 98118), +('FILE', 'tgz', 0, 98119), +('FILE', 'tgz', 0, 98120), +('FILE', 'tgz', 0, 98121), +('FILE', 'tgz', 0, 98122), +('FILE', 'tgz', 0, 98123), +('FILE', 'tgz', 0, 98124), +('FILE', 'tgz', 0, 98125), +('FILE', 'tgz', 0, 98126), +('FILE', 'tgz', 0, 98127), +('FILE', 'tgz', 0, 98128), +('FILE', 'tgz', 0, 98129), +('FILE', 'tgz', 0, 98130), +('FILE', 'tgz', 0, 98131), +('FILE', 'tgz', 0, 98132), +('FILE', 'tgz', 0, 98133), +('FILE', 'tgz', 0, 98134), +('FILE', 'tgz', 0, 98135), +('FILE', 'tgz', 0, 98136), +('FILE', 'tgz', 0, 98137), +('FILE', 'tgz', 0, 98138), +('FILE', 'tgz', 0, 98139), +('FILE', 'tgz', 0, 98140), +('FILE', 'tgz', 0, 98141), +('FILE', 'tgz', 0, 98142), +('FILE', 'tgz', 0, 98143), +('FILE', 'tgz', 0, 98144), +('FILE', 'tgz', 0, 98145), +('FILE', 'tgz', 0, 98146), +('FILE', 'tgz', 0, 98147), +('FILE', 'tgz', 0, 98148), +('FILE', 'tgz', 0, 98149), +('FILE', 'tgz', 0, 98150), +('FILE', 'tgz', 0, 98151), +('FILE', 'tgz', 0, 98152), +('FILE', 'tgz', 0, 98153), +('FILE', 'tgz', 0, 98154), +('FILE', 'tgz', 0, 98155), +('FILE', 'tgz', 0, 98156), +('FILE', 'tgz', 0, 98157), +('FILE', 'tgz', 0, 98158), +('FILE', 'tgz', 0, 98159), +('FILE', 'tgz', 0, 98160), +('FILE', 'tgz', 0, 98161), +('FILE', 'tgz', 0, 98162), +('FILE', 'tgz', 0, 98163), +('FILE', 'tgz', 0, 98164), +('FILE', 'tgz', 0, 98165), +('FILE', 'tgz', 0, 98166), +('FILE', 'tgz', 0, 98167), +('FILE', 'tgz', 0, 98168), +('FILE', 'tgz', 0, 98169), +('FILE', 'tgz', 0, 98170), +('FILE', 'tgz', 0, 98171), +('FILE', 'tgz', 0, 98172), +('FILE', 'tgz', 0, 98173), +('FILE', 'tgz', 0, 98174), +('FILE', 'tgz', 0, 98175), +('FILE', 'tgz', 0, 98176), +('FILE', 'tgz', 0, 98177), +('FILE', 'tgz', 0, 98178), +('FILE', 'tgz', 0, 98179), +('FILE', 'tgz', 0, 98180), +('FILE', 'tgz', 0, 98181), +('FILE', 'tgz', 0, 98182), +('FILE', 'tgz', 0, 98183), +('FILE', 'tgz', 0, 98184), +('FILE', 'tgz', 0, 98185), +('FILE', 'tgz', 0, 98186), +('FILE', 'tgz', 0, 98187), +('FILE', 'tgz', 0, 98188), +('FILE', 'tgz', 0, 98189), +('FILE', 'tgz', 0, 98190), +('FILE', 'tgz', 0, 98191), +('FILE', 'tgz', 0, 98192), +('FILE', 'tgz', 0, 98193), +('FILE', 'tgz', 0, 98194), +('FILE', 'tgz', 0, 98195), +('FILE', 'tgz', 0, 98196), +('FILE', 'tgz', 0, 98197), +('FILE', 'tgz', 0, 98198), +('FILE', 'tgz', 0, 98199), +('FILE', 'tgz', 0, 98200), +('FILE', 'tgz', 0, 98201), +('FILE', 'tgz', 0, 98202), +('FILE', 'tgz', 0, 98203), +('FILE', 'tgz', 0, 98204), +('FILE', 'tgz', 0, 98205), +('FILE', 'tgz', 0, 98206), +('FILE', 'tgz', 0, 98207), +('FILE', 'tgz', 0, 98208), +('FILE', 'tgz', 0, 98209), +('FILE', 'tgz', 0, 98210), +('FILE', 'tgz', 0, 98211), +('FILE', 'tgz', 0, 98212), +('FILE', 'tgz', 0, 98213), +('FILE', 'tgz', 0, 98214), +('FILE', 'tgz', 0, 98215), +('FILE', 'tgz', 0, 98216), +('FILE', 'tgz', 0, 98217), +('FILE', 'tgz', 0, 98218), +('FILE', 'tgz', 0, 98219), +('FILE', 'tgz', 0, 98220), +('FILE', 'tgz', 0, 98221), +('FILE', 'tgz', 0, 98222), +('FILE', 'tgz', 0, 98223), +('FILE', 'tgz', 0, 98224), +('FILE', 'tgz', 0, 98225), +('FILE', 'tgz', 0, 98226), +('FILE', 'tgz', 0, 98227), +('FILE', 'tgz', 0, 98228), +('FILE', 'tgz', 0, 98229), +('FILE', 'tgz', 0, 98230), +('FILE', 'tgz', 0, 98231), +('FILE', 'tgz', 0, 98232), +('FILE', 'tgz', 0, 98233), +('FILE', 'tgz', 0, 98234), +('FILE', 'tgz', 0, 98235), +('FILE', 'tgz', 0, 98236), +('FILE', 'tgz', 0, 98237), +('FILE', 'tgz', 0, 98238), +('FILE', 'tgz', 0, 98239), +('FILE', 'tgz', 0, 98240), +('FILE', 'tgz', 0, 98241), +('FILE', 'tgz', 0, 98242), +('FILE', 'tgz', 0, 98243), +('FILE', 'tgz', 0, 98244), +('FILE', 'tgz', 0, 98245), +('FILE', 'tgz', 0, 98246), +('FILE', 'tgz', 0, 98247), +('FILE', 'tgz', 0, 98248), +('FILE', 'tgz', 0, 98249), +('FILE', 'tgz', 0, 98250), +('FILE', 'tgz', 0, 98251), +('FILE', 'tgz', 0, 98252), +('FILE', 'tgz', 0, 98253), +('FILE', 'tgz', 0, 98254), +('FILE', 'tgz', 0, 98255), +('FILE', 'tgz', 0, 98256), +('FILE', 'tgz', 0, 98257), +('FILE', 'tgz', 0, 98258), +('FILE', 'tgz', 0, 98259), +('FILE', 'tgz', 0, 98260), +('FILE', 'tgz', 0, 98261), +('FILE', 'tgz', 0, 98262), +('FILE', 'tgz', 0, 98263), +('FILE', 'tgz', 0, 98264), +('FILE', 'tgz', 0, 98265), +('FILE', 'tgz', 0, 98266), +('FILE', 'tgz', 0, 98267), +('FILE', 'tgz', 0, 98268), +('FILE', 'tgz', 0, 98269), +('FILE', 'tgz', 0, 98270), +('FILE', 'tgz', 0, 98271), +('FILE', 'tgz', 0, 98272), +('FILE', 'tgz', 0, 98273), +('FILE', 'tgz', 0, 98274), +('FILE', 'tgz', 0, 98275), +('FILE', 'tgz', 0, 98276), +('FILE', 'tgz', 0, 98277), +('FILE', 'tgz', 0, 98278), +('FILE', 'tgz', 0, 98279), +('FILE', 'tgz', 0, 98280), +('FILE', 'tgz', 0, 98281), +('FILE', 'tgz', 0, 98282), +('FILE', 'tgz', 0, 98283), +('FILE', 'tgz', 0, 98284), +('FILE', 'tgz', 0, 98285), +('FILE', 'tgz', 0, 98286), +('FILE', 'tgz', 0, 98287), +('FILE', 'tgz', 0, 98288), +('FILE', 'tgz', 0, 98289), +('FILE', 'tgz', 0, 98290), +('FILE', 'tgz', 0, 98291), +('FILE', 'tgz', 0, 98292), +('FILE', 'tgz', 0, 98293), +('FILE', 'tgz', 0, 98294), +('FILE', 'tgz', 0, 98295), +('FILE', 'tgz', 0, 98296), +('FILE', 'tgz', 0, 98297), +('FILE', 'tgz', 0, 98298), +('FILE', 'tgz', 0, 98299), +('FILE', 'tgz', 0, 98300), +('FILE', 'tgz', 0, 98301), +('FILE', 'tgz', 0, 98302), +('FILE', 'tgz', 0, 98303), +('FILE', 'tgz', 0, 98304), +('FILE', 'tgz', 0, 98305), +('FILE', 'tgz', 0, 98306); +INSERT INTO `artifact` (`artifactClass`, `mimeType`, `size`, `id`) VALUES +('FILE', 'tgz', 0, 98307), +('FILE', 'tgz', 0, 98308), +('FILE', 'tgz', 0, 98309), +('FILE', 'tgz', 0, 98310), +('FILE', 'tgz', 0, 98311), +('FILE', 'tgz', 0, 98312), +('FILE', 'tgz', 0, 98313), +('FILE', 'tgz', 0, 98314), +('FILE', 'tgz', 0, 98315), +('FILE', 'tgz', 0, 98316), +('FILE', 'tgz', 0, 98317), +('FILE', 'tgz', 0, 98318), +('FILE', 'tgz', 0, 98319), +('FILE', 'tgz', 0, 98320), +('FILE', 'tgz', 0, 98321), +('FILE', 'tgz', 0, 98322), +('FILE', 'tgz', 0, 98323), +('FILE', 'tgz', 0, 98324), +('FILE', 'tgz', 0, 98325), +('FILE', 'tgz', 0, 98326), +('FILE', 'tgz', 0, 98327), +('FILE', 'tgz', 0, 98328), +('FILE', 'tgz', 0, 98329), +('FILE', 'tgz', 0, 98330), +('FILE', 'tgz', 0, 98331), +('FILE', 'tgz', 0, 98332), +('FILE', 'tgz', 0, 98333), +('FILE', 'tgz', 0, 98334), +('FILE', 'tgz', 0, 98335), +('FILE', 'tgz', 0, 98336), +('FILE', 'tgz', 0, 98337), +('FILE', 'tgz', 0, 98338), +('FILE', 'tgz', 0, 98339), +('FILE', 'tgz', 0, 98340), +('FILE', 'tgz', 0, 98341), +('FILE', 'tgz', 0, 98342), +('FILE', 'tgz', 0, 98343), +('FILE', 'tgz', 0, 98344), +('FILE', 'tgz', 0, 98345), +('FILE', 'tgz', 0, 98346), +('FILE', 'tgz', 0, 98347), +('FILE', 'tgz', 0, 98348), +('FILE', 'tgz', 0, 98349), +('FILE', 'tgz', 0, 98350), +('FILE', 'tgz', 0, 98351), +('FILE', 'tgz', 0, 98352), +('FILE', 'tgz', 0, 98353), +('FILE', 'tgz', 0, 98354), +('FILE', 'tgz', 0, 98355), +('FILE', 'tgz', 0, 98356), +('FILE', 'tgz', 0, 98357), +('FILE', 'tgz', 0, 98358), +('FILE', 'tgz', 0, 98359), +('FILE', 'tgz', 0, 98360), +('FILE', 'tgz', 0, 98361), +('FILE', 'tgz', 0, 98362), +('FILE', 'tgz', 0, 98363), +('FILE', 'tgz', 0, 98364), +('FILE', 'tgz', 0, 98365), +('FILE', 'tgz', 0, 98366), +('FILE', 'tgz', 0, 98367), +('FILE', 'tgz', 0, 98368), +('FILE', 'tgz', 0, 98369), +('FILE', 'tgz', 0, 98370), +('FILE', 'tgz', 0, 98371), +('FILE', 'tgz', 0, 98372), +('FILE', 'json', 0, 98383), +('FILE', 'json', 0, 98413), +('FILE', 'json', 0, 98415), +('FILE', 'json', 0, 98416), +('FILE', 'js', 0, 98428), +('FILE', 'json', 0, 98449), +('FILE', 'json', 0, 98450), +('FILE', 'js', 0, 98461), +('FILE', 'json', 0, 98516), +('FILE', 'json', 0, 98519), +('FILE', 'json', 0, 98522), +('FILE', 'json', 0, 98523), +('FILE', 'json', 0, 98525), +('FILE', 'json', 0, 98528), +('FILE', 'json', 0, 98529), +('FILE', 'json', 0, 98530), +('FILE', 'json', 0, 98580), +('FILE', 'md', 0, 98612), +('FILE', 'js', 0, 98627), +('FILE', 'js', 0, 98628), +('FILE', 'json', 0, 98630), +('FILE', 'json', 0, 98631), +('FILE', 'js', 0, 98635), +('FILE', 'js', 0, 98636), +('FILE', 'js', 0, 98637), +('FILE', 'js', 0, 98638), +('FILE', 'js', 0, 98639), +('FILE', 'js', 0, 98640), +('FILE', 'js', 0, 98641), +('FILE', 'js', 0, 98642), +('FILE', 'js', 0, 98643), +('FILE', 'yml', 0, 98645), +('FILE', 'md', 0, 98647), +('FILE', 'js', 0, 98651), +('FILE', 'js', 0, 98652), +('FILE', 'js', 0, 98655), +('FILE', 'json', 0, 98658), +('FILE', 'json', 0, 98660), +('FILE', 'js', 0, 98672), +('FILE', 'md', 0, 99196), +('FILE', 'swift', 0, 99197), +('FILE', 'image/png', 0, 99199), +('FILE', 'swift', 0, 99203), +('FILE', 'podspec', 0, 99206), +('FILE', 'pbxproj', 0, 99209), +('FILE', NULL, 0, 99210), +('FILE', 'lock', 0, 99211), +('FILE', 'pbxproj', 0, 99213), +('FILE', 'xcscheme', 0, 99214), +('FILE', 'swift', 0, 99215), +('FILE', 'swift', 0, 99216), +('FILE', 'swift', 0, 99217), +('FILE', 'md', 0, 99227), +('FILE', 'xcworkspacedata', 0, 99231), +('FILE', 'swift', 0, 99248), +('FILE', 'swift', 0, 99260), +('FILE', 'image/png', 0, 99264), +('FILE', 'strings', 0, 99265), +('FILE', 'md', 0, 99266), +('FILE', 'swift', 0, 99267), +('FILE', 'strings', 0, 99268), +('FILE', 'swift', 0, 99269), +('FILE', 'swift', 0, 99275), +('FILE', 'yml', 0, 99314), +('FILE', 'json', 0, 99315), +('FILE', 'storyboard', 0, 99316), +('FILE', 'plist', 0, 99317), +('FILE', 'swift', 0, 99328), +('FILE', 'xcworkspacedata', 0, 99416), +('FILE', 'xcworkspacedata', 0, 99417), +('FILE', 'swift', 0, 99443), +('FILE', 'swift', 0, 99446), +('FILE', 'php', 0, 100116), +('FILE', 'php', 0, 100120), +('FILE', 'php', 0, 100122), +('FILE', 'md', 0, 100124), +('FILE', 'application/xml', 0, 100126), +('FILE', 'php', 0, 100128), +('FILE', 'yml', 0, 100130), +('FILE', 'md', 0, 100132), +('FILE', 'json', 0, 100136), +('FILE', 'dist', 0, 100137), +('FILE', 'php', 0, 100138), +('FILE', 'php', 0, 100139), +('FILE', 'php', 0, 100140), +('FILE', 'php', 0, 100141), +('FILE', 'php', 0, 100142), +('FILE', 'php', 0, 100143), +('FILE', 'php', 0, 100144), +('FILE', 'php', 0, 100145), +('FILE', 'php', 0, 100146), +('FILE', 'php', 0, 100147), +('FILE', 'php', 0, 100158), +('FILE', 'php', 0, 100166), +('FILE', 'php', 0, 100168), +('FILE', 'php', 0, 100170), +('FILE', 'php', 0, 100180), +('FILE', NULL, 0, 100182), +('FILE', 'php', 0, 100183), +('FILE', 'php', 0, 100189), +('FILE', 'php', 0, 100196), +('FILE', 'php', 0, 100197), +('FILE', 'php', 0, 100198), +('FILE', 'php', 0, 100199), +('FILE', 'php', 0, 100200), +('FILE', 'php', 0, 100201), +('FILE', 'php', 0, 100202), +('FILE', 'php', 0, 100203), +('FILE', 'php', 0, 100204), +('FILE', 'php', 0, 100229), +('FILE', 'php', 0, 100242), +('FILE', 'gitignore', 0, 100294), +('FILE', 'php', 0, 100305), +('FILE', 'php', 0, 100306), +('FILE', 'php', 0, 100326), +('FILE', 'php', 0, 100348), +('FILE', 'php', 0, 100391), +('FILE', 'pbxproj', 0, 100602), +('FILE', 'application/pdf', 0, 100603), +('FILE', 'swift', 0, 100604), +('FILE', 'swift', 0, 100605), +('FILE', 'storyboard', 0, 100606), +('FILE', 'strings', 0, 100608), +('FILE', 'storyboard', 0, 100610), +('FILE', 'plist', 0, 100611), +('FILE', 'storyboard', 0, 100612), +('FILE', 'strings', 0, 100615), +('FILE', 'yml', 0, 100617), +('FILE', 'swift', 0, 100618), +('FILE', 'swift', 0, 100619), +('FILE', 'swift', 0, 100620), +('FILE', 'resolved', 0, 100622), +('FILE', 'swift', 0, 100623), +('FILE', 'swift', 0, 100624), +('FILE', 'swift', 0, 100626), +('FILE', 'swift', 0, 100627), +('FILE', 'swift', 0, 100628), +('FILE', 'plist', 0, 100631), +('FILE', 'json', 0, 100633), +('FILE', 'image/png', 0, 100634), +('FILE', 'image/png', 0, 100635), +('FILE', 'image/png', 0, 100636), +('FILE', 'image/png', 0, 100637), +('FILE', 'image/png', 0, 100638), +('FILE', 'image/png', 0, 100639), +('FILE', 'image/png', 0, 100640), +('FILE', 'image/png', 0, 100641), +('FILE', 'image/png', 0, 100642), +('FILE', 'image/png', 0, 100643), +('FILE', 'image/png', 0, 100644), +('FILE', 'image/png', 0, 100645), +('FILE', 'image/png', 0, 100646), +('FILE', 'image/png', 0, 100647), +('FILE', 'image/png', 0, 100648), +('FILE', 'json', 0, 100649), +('FILE', 'json', 0, 100650), +('FILE', 'swift', 0, 100651), +('FILE', 'json', 0, 100652), +('FILE', 'application/pdf', 0, 100653), +('FILE', 'json', 0, 100654), +('FILE', 'application/pdf', 0, 100655), +('FILE', 'json', 0, 100656), +('FILE', 'application/pdf', 0, 100657), +('FILE', 'json', 0, 100658), +('FILE', 'application/pdf', 0, 100659), +('FILE', 'json', 0, 100660), +('FILE', 'swift', 0, 100661), +('FILE', 'json', 0, 100662), +('FILE', 'xcscheme', 0, 100663), +('FILE', 'swift', 0, 100664), +('FILE', 'yml', 0, 100665), +('FILE', 'swift', 0, 100667), +('FILE', 'swift', 0, 100668), +('FILE', 'swift', 0, 100669), +('FILE', 'swift', 0, 100670), +('FILE', 'swift', 0, 100671), +('FILE', 'gitignore', 0, 100674), +('FILE', 'swift', 0, 100688), +('FILE', 'swift', 0, 100689), +('FILE', 'swift', 0, 100690), +('FILE', 'swift', 0, 100691), +('FILE', 'swift', 0, 100694), +('FILE', 'plist', 0, 100699), +('FILE', 'swift', 0, 100704), +('FILE', 'swift', 0, 100705), +('FILE', 'swift', 0, 100706), +('FILE', 'plist', 0, 100709), +('FILE', 'swift', 0, 100710), +('FILE', 'swift', 0, 100712), +('FILE', 'swift', 0, 100719), +('FILE', 'swift', 0, 100727), +('FILE', 'swift', 0, 100728), +('FILE', 'swift', 0, 100729), +('FILE', 'swift', 0, 100730), +('FILE', 'swift', 0, 100731), +('FILE', 'entitlements', 0, 100732), +('FILE', 'swift', 0, 100754), +('FILE', 'xcworkspacedata', 0, 100850), +('FILE', 'strings', 0, 100853), +('FILE', 'swift', 0, 100854), +('FILE', 'swift', 0, 100855), +('FILE', 'swift', 0, 100856), +('FILE', 'swift', 0, 100857), +('FILE', 'entitlements', 0, 100858), +('FILE', 'pbxproj', 0, 100874), +('FILE', 'swift', 0, 100875), +('FILE', 'swift', 0, 100876), +('FILE', 'swift', 0, 100878), +('FILE', 'swift', 0, 100879), +('FILE', 'swift', 0, 100880), +('FILE', 'swift', 0, 100881), +('FILE', 'intentdefinition', 0, 100883), +('FILE', 'plist', 0, 100885), +('FILE', 'strings', 0, 100886), +('FILE', 'swift', 0, 100887), +('FILE', 'swift', 0, 100889), +('FILE', 'swift', 0, 100890), +('FILE', 'swift', 0, 100892), +('FILE', 'md', 0, 100904), +('FILE', 'swift', 0, 100907), +('FILE', 'swift', 0, 100914), +('FILE', 'strings', 0, 100917), +('FILE', 'strings', 0, 100921), +('FILE', 'yml', 0, 100922), +('FILE', 'application/pdf', 0, 100923), +('FILE', 'swift', 0, 100928), +('FILE', 'swift', 0, 100929), +('FILE', 'strings', 0, 100933), +('FILE', 'strings', 0, 100934), +('FILE', 'strings', 0, 100935), +('FILE', 'strings', 0, 100936), +('FILE', 'swift', 0, 100939), +('FILE', 'swift', 0, 100940), +('FILE', 'swift', 0, 100941), +('FILE', 'editorconfig', 0, 100945), +('FILE', 'strings', 0, 100957), +('FILE', 'strings', 0, 100958), +('FILE', 'swift', 0, 100963), +('FILE', 'swift', 0, 100964), +('FILE', 'strings', 0, 100965), +('FILE', 'swift', 0, 100966), +('FILE', 'swift', 0, 100968), +('FILE', 'storyboard', 0, 100969), +('FILE', 'swift', 0, 100972), +('FILE', 'swift', 0, 100975), +('FILE', 'swift', 0, 100976), +('FILE', 'xcscheme', 0, 100977), +('FILE', 'yml', 0, 100982), +('FILE', 'swift', 0, 100989), +('FILE', 'swift', 0, 100990), +('FILE', 'swift', 0, 100991), +('FILE', 'swift', 0, 100995), +('FILE', 'swift', 0, 101001), +('FILE', 'json', 0, 101003), +('FILE', 'swift', 0, 101004), +('FILE', 'swift', 0, 101005), +('FILE', 'swift', 0, 101006), +('FILE', 'swift', 0, 101007), +('FILE', 'swift', 0, 101014), +('FILE', 'strings', 0, 101017), +('FILE', 'strings', 0, 101018), +('FILE', 'lproj', 0, 101019), +('FILE', 'strings', 0, 101020), +('FILE', 'swift', 0, 101030), +('FILE', 'swift', 0, 101049), +('FILE', 'swift', 0, 101050), +('FILE', 'swift', 0, 101051), +('FILE', 'swift', 0, 101055), +('FILE', 'swift', 0, 101056), +('FILE', 'swift', 0, 101058), +('FILE', 'swift', 0, 101059), +('FILE', 'swift', 0, 101060), +('FILE', 'swift', 0, 101061), +('FILE', 'swift', 0, 101069), +('FILE', 'swift', 0, 101073), +('FILE', 'swift', 0, 101083), +('FILE', 'swift', 0, 101084), +('FILE', 'application/pdf', 0, 101085), +('FILE', 'swift', 0, 101086), +('FILE', 'swift', 0, 101087), +('FILE', 'swift', 0, 101088), +('FILE', 'swift', 0, 101091), +('FILE', 'swift', 0, 101092), +('FILE', 'swift', 0, 101093), +('FILE', 'image/png', 0, 101097), +('FILE', 'strings', 0, 101098), +('FILE', 'strings', 0, 101099), +('FILE', 'strings', 0, 101100), +('FILE', 'swift', 0, 101101), +('FILE', 'application/pdf', 0, 101103), +('FILE', 'resolved', 0, 101155), +('FILE', 'pbxproj', 0, 101160), +('FILE', 'swift', 0, 101678), +('FILE', 'md', 0, 101680), +('FILE', 'releaserc', 0, 101682), +('FILE', 'yml', 0, 101684), +('FILE', 'text/plain', 0, 101686), +('FILE', 'md', 0, 101687), +('FILE', 'pbxproj', 0, 101688), +('FILE', 'text/plain', 0, 101690), +('FILE', 'm', 0, 101691), +('FILE', 'kml', 0, 101693), +('FILE', 'kml', 0, 101699), +('FILE', 'swift', 0, 101700), +('FILE', 'm', 0, 101701), +('FILE', 'm', 0, 101702), +('FILE', 'md', 0, 101703), +('FILE', 'yml', 0, 101705), +('FILE', 'm', 0, 101707), +('FILE', 'md', 0, 101711), +('FILE', 'md', 0, 101718), +('FILE', 'text/plain', 0, 101721), +('FILE', 'm', 0, 101722), +('FILE', 'm', 0, 101723), +('FILE', 'swift', 0, 101725), +('FILE', 'text/plain', 0, 101727), +('FILE', 'text/plain', 0, 101730), +('FILE', 'storyboard', 0, 101731), +('FILE', 'text/plain', 0, 101732), +('FILE', 'text/plain', 0, 101733), +('FILE', 'text/plain', 0, 101734), +('FILE', 'm', 0, 101735), +('FILE', 'geojson', 0, 101736), +('FILE', 'text/plain', 0, 101737), +('FILE', 'text/plain', 0, 101738), +('FILE', 'm', 0, 101739), +('FILE', 'm', 0, 101740), +('FILE', 'm', 0, 101741), +('FILE', 'm', 0, 101742), +('FILE', 'm', 0, 101743), +('FILE', 'm', 0, 101744), +('FILE', 'm', 0, 101745), +('FILE', 'm', 0, 101746), +('FILE', 'm', 0, 101747), +('FILE', 'm', 0, 101748), +('FILE', 'xcscheme', 0, 101749), +('FILE', 'plist', 0, 101750), +('FILE', 'pbxproj', 0, 101755), +('FILE', 'm', 0, 101756), +('FILE', NULL, 0, 101757), +('FILE', NULL, 0, 101758), +('FILE', 'pbxproj', 0, 101759), +('FILE', 'swift', 0, 101760), +('FILE', 'text/plain', 0, 101761), +('FILE', 'text/plain', 0, 101762), +('FILE', 'm', 0, 101763), +('FILE', 'xcconfig', 0, 101764), +('FILE', NULL, 0, 101768), +('FILE', 'text/plain', 0, 101771), +('FILE', 'swift', 0, 101772), +('FILE', 'yml', 0, 101782), +('FILE', 'md', 0, 101784), +('FILE', 'md', 0, 101788), +('FILE', 'md', 0, 101791), +('FILE', 'md', 0, 101792), +('FILE', 'm', 0, 101799), +('FILE', 'text/plain', 0, 101808), +('FILE', 'text/plain', 0, 101809), +('FILE', 'm', 0, 101812), +('FILE', 'm', 0, 101813), +('FILE', 'm', 0, 101814), +('FILE', 'm', 0, 101815), +('FILE', 'm', 0, 101816), +('FILE', 'm', 0, 101817), +('FILE', 'm', 0, 101830), +('FILE', 'm', 0, 101838), +('FILE', 'xcconfig', 0, 101852), +('FILE', 'text/plain', 0, 101861), +('FILE', 'm', 0, 101868), +('FILE', 'm', 0, 101879), +('FILE', 'm', 0, 101880), +('FILE', 'md', 0, 101882), +('FILE', 'text/plain', 0, 101889), +('FILE', 'gitignore', 0, 101901), +('FILE', 'pbxproj', 0, 101913), +('FILE', 'podspec', 0, 101915), +('FILE', 'pbxproj', 0, 101916), +('FILE', 'text/plain', 0, 101917), +('FILE', 'md', 0, 101918), +('FILE', 'yml', 0, 101920), +('FILE', 'releaserc', 0, 101926), +('FILE', 'm', 0, 101932), +('FILE', 'm', 0, 101933), +('FILE', 'swift', 0, 101934), +('FILE', 'md', 0, 101938), +('FILE', 'swift', 0, 101939), +('FILE', 'swift', 0, 101942), +('FILE', NULL, 0, 101946), +('FILE', 'text/plain', 0, 101952), +('FILE', 'm', 0, 101954), +('FILE', 'yml', 0, 101957), +('FILE', 'swift', 0, 101966), +('FILE', 'resolved', 0, 101972), +('FILE', 'podspec', 0, 101973), +('FILE', 'template', 0, 101974), +('FILE', 'releaserc', 0, 101976), +('FILE', 'yml', 0, 101978), +('FILE', NULL, 0, 101979), +('FILE', 'swift', 0, 101980), +('FILE', 'md', 0, 101982), +('FILE', 'yml', 0, 101987), +('FILE', 'pbxproj', 0, 101989), +('FILE', 'swift', 0, 101990), +('FILE', 'md', 0, 101992), +('FILE', 'swift', 0, 101994), +('FILE', 'swift', 0, 101995), +('FILE', 'swift', 0, 101998), +('FILE', 'swift', 0, 101999), +('FILE', 'swift', 0, 102000), +('FILE', 'swift', 0, 102001), +('FILE', 'swift', 0, 102004), +('FILE', 'swift', 0, 102008), +('FILE', 'application/x-shar', 0, 102014), +('FILE', 'yml', 0, 102016), +('FILE', 'm', 0, 102017), +('FILE', 'md', 0, 102023), +('FILE', 'md', 0, 102043), +('FILE', 'template', 0, 102047), +('FILE', 'podspec', 0, 102049), +('FILE', 'pbxproj', 0, 102050), +('FILE', 'swift', 0, 102051), +('FILE', 'md', 0, 102052), +('FILE', 'yml', 0, 102054), +('FILE', 'resolved', 0, 102055), +('FILE', 'yml', 0, 102059), +('FILE', 'releaserc', 0, 102064), +('FILE', 'text/html', 0, 104095), +('FILE', 'text/html', 0, 104096), +('FILE', 'text/html', 0, 104097), +('FILE', 'text/html', 0, 104098), +('FILE', 'text/html', 0, 104099), +('FILE', 'js', 0, 104101), +('FILE', 'css', 0, 104103), +('FILE', 'text/html', 0, 104104), +('FILE', 'md', 0, 104110), +('FILE', 'js', 0, 104111), +('FILE', 'json', 0, 104112), +('FILE', 'text/html', 0, 104114), +('FILE', 'text/html', 0, 104121), +('FILE', 'image/png', 0, 104122), +('FILE', 'text/html', 0, 104123), +('FILE', 'text/html', 0, 104124), +('FILE', 'text/html', 0, 104125), +('FILE', 'text/html', 0, 104127), +('FILE', 'text/html', 0, 104128), +('FILE', 'css', 0, 104129), +('FILE', 'text/html', 0, 104130), +('FILE', 'md', 0, 104132), +('FILE', 'gitignore', 0, 104135), +('FILE', 'text/html', 0, 104140), +('FILE', 'image/png', 0, 104142), +('FILE', 'js', 0, 104148), +('FILE', 'json', 0, 104151), +('FILE', 'nvmrc', 0, 104155), +('FILE', 'js', 0, 104160), +('FILE', 'js', 0, 104176), +('FILE', 'text/html', 0, 104178), +('FILE', 'js', 0, 104180), +('FILE', 'md', 0, 104269), +('FILE', 'yml', 0, 104272), +('FILE', 'json', 0, 104273), +('FILE', 'json', 0, 104274), +('FILE', 'js', 0, 104275), +('FILE', 'nvmrc', 0, 104285), +('FILE', 'js', 0, 104286), +('FILE', 'js', 0, 104287), +('FILE', 'js', 0, 104297), +('FILE', 'js', 0, 104299), +('FILE', 'js', 0, 104305), +('FILE', 'text/html', 0, 104312), +('FILE', 'js', 0, 104316), +('FILE', 'js', 0, 104317), +('FILE', 'gitignore', 0, 104320), +('FILE', 'js', 0, 104323), +('FILE', 'js', 0, 104324), +('FILE', 'text/html', 0, 104328), +('FILE', 'text/html', 0, 104329), +('FILE', 'text/html', 0, 104330), +('FILE', 'lock', 0, 104331), +('FILE', 'prettierrc', 0, 104336), +('FILE', 'js', 0, 104340), +('FILE', 'js', 0, 104341), +('FILE', 'js', 0, 104342), +('FILE', 'js', 0, 104343), +('FILE', 'gitattributes', 0, 104369); + +-- +-- Dumping data for table `branch` +-- + +INSERT INTO `branch` (`id`, `externalId`, `name`, `isMain`) VALUES +(1, 'refs/heads/develop', 'develop', b'0'), +(2, 'refs/heads/master', 'master', b'1'), +(3, 'refs/heads/dot-module', 'dot-module', b'0'), +(4, 'refs/heads/initial-elimination', 'initial-elimination', b'0'), +(5, 'refs/heads/master', 'master', b'1'), +(6, 'refs/heads/pr-dot-plugin', 'pr-dot-plugin', b'0'), +(7, 'refs/heads/slider', 'slider', b'0'), +(8, 'refs/heads/timeline', 'timeline', b'0'), +(9, 'refs/heads/dependabot/npm_and_yarn/client/websocket-extensions-0.1.4', 'dependabot/npm_and_yarn/client/websocket-extensions-0.1.4', b'0'), +(10, 'refs/heads/master', 'master', b'1'), +(11, 'refs/heads/dependabot/npm_and_yarn/webapp/lodash-4.17.19', 'dependabot/npm_and_yarn/webapp/lodash-4.17.19', b'0'), +(12, 'refs/heads/dependabot/npm_and_yarn/webapp/npm-6.14.6', 'dependabot/npm_and_yarn/webapp/npm-6.14.6', b'0'), +(13, 'refs/heads/dependabot/npm_and_yarn/webapp/acorn-6.4.1', 'dependabot/npm_and_yarn/webapp/acorn-6.4.1', b'0'), +(14, 'refs/heads/dependabot/npm_and_yarn/webapp/handlebars-4.7.6', 'dependabot/npm_and_yarn/webapp/handlebars-4.7.6', b'0'), +(15, 'refs/heads/dependabot/npm_and_yarn/webapp/https-proxy-agent-2.2.4', 'dependabot/npm_and_yarn/webapp/https-proxy-agent-2.2.4', b'0'), +(16, 'refs/heads/dependabot/npm_and_yarn/webapp/websocket-extensions-0.1.4', 'dependabot/npm_and_yarn/webapp/websocket-extensions-0.1.4', b'0'), +(17, 'refs/heads/develop', 'develop', b'0'), +(18, 'refs/heads/master', 'master', b'1'), +(19, 'refs/heads/dev', 'dev', b'0'), +(20, 'refs/heads/master', 'master', b'1'), +(21, 'refs/heads/solr', 'solr', b'0'), +(22, 'refs/heads/feature/7822/connecting-all-layers', 'feature/7822/connecting-all-layers', b'0'), +(23, 'refs/heads/feature/7857/app-skeleton', 'feature/7857/app-skeleton', b'0'), +(24, 'refs/heads/feature/7924/datascript-beta', 'feature/7924/datascript-beta', b'0'), +(25, 'refs/heads/feature/7942/cron-setup', 'feature/7942/cron-setup', b'0'), +(26, 'refs/heads/feature/xxx/refactor-of-devops', 'feature/xxx/refactor-of-devops', b'0'), +(27, 'refs/heads/master', 'master', b'1'), +(28, 'refs/heads/master', 'master', b'1'), +(29, 'refs/heads/7694_vytvoreni_homepage', '7694_vytvoreni_homepage', b'0'), +(30, 'refs/heads/7695_vytvoreni_seznamu_artefaktu', '7695_vytvoreni_seznamu_artefaktu', b'0'), +(31, 'refs/heads/7696_vytvoreni_detailu_artefaktu', '7696_vytvoreni_detailu_artefaktu', b'0'), +(32, 'refs/heads/7788_registrace_uzivatele', '7788_registrace_uzivatele', b'0'), +(33, 'refs/heads/7846_oblibene_polozky_metadata', '7846_oblibene_polozky_metadata', b'0'), +(34, 'refs/heads/7848_homepage_vizual', '7848_homepage_vizual', b'0'), +(35, 'refs/heads/7954_oblibena_metadata_vizual', '7954_oblibena_metadata_vizual', b'0'), +(36, 'refs/heads/7956_info_o_artefaktu_vizual', '7956_info_o_artefaktu_vizual', b'0'), +(37, 'refs/heads/8008_homepage_desktop', '8008_homepage_desktop', b'0'), +(38, 'refs/heads/8013_artefakty_desktop', '8013_artefakty_desktop', b'0'), +(39, 'refs/heads/8050_vytvoreni_komponenty_knihy', '8050_vytvoreni_komponenty_knihy', b'0'), +(40, 'refs/heads/cicd', 'cicd', b'0'), +(41, 'refs/heads/dev-zabran', 'dev-zabran', b'0'), +(42, 'refs/heads/develop', 'develop', b'0'), +(43, 'refs/heads/master', 'master', b'1'), +(44, 'refs/heads/nohac-7845a7850', 'nohac-7845a7850', b'0'), +(45, 'refs/heads/nohac-7957', 'nohac-7957', b'0'), +(46, 'refs/heads/nohac-7958,7998,8001,8010,8012', 'nohac-7958,7998,8001,8010,8012', b'0'), +(47, 'refs/heads/revert-977060b9', 'revert-977060b9', b'0'), +(48, 'refs/heads/dev-nohac', 'dev-nohac', b'0'), +(49, 'refs/heads/bug/7991', 'bug/7991', b'0'), +(50, 'refs/heads/bug/8024', 'bug/8024', b'0'), +(51, 'refs/heads/bug/8100', 'bug/8100', b'0'), +(52, 'refs/heads/bug/8102', 'bug/8102', b'0'), +(53, 'refs/heads/bug/8115', 'bug/8115', b'0'), +(54, 'refs/heads/enhancement/7885', 'enhancement/7885', b'0'), +(55, 'refs/heads/enhancement/8099', 'enhancement/8099', b'0'), +(56, 'refs/heads/enhancement/8114', 'enhancement/8114', b'0'), +(57, 'refs/heads/master', 'master', b'1'), +(58, 'refs/heads/release/4iter', 'release/4iter', b'0'), +(59, 'refs/heads/bug/7993', 'bug/7993', b'0'), +(60, 'refs/heads/enhancement/8026', 'enhancement/8026', b'0'), +(61, 'refs/heads/enhancement/8025', 'enhancement/8025', b'0'), +(62, 'refs/heads/enhancement/7972', 'enhancement/7972', b'0'), +(63, 'refs/heads/enhancement/7971', 'enhancement/7971', b'0'), +(64, 'refs/heads/enhancement/8015', 'enhancement/8015', b'0'), +(65, 'refs/heads/enhancement/7969', 'enhancement/7969', b'0'), +(66, 'refs/heads/enhancement/7975', 'enhancement/7975', b'0'), +(67, 'refs/heads/enhancement/7970', 'enhancement/7970', b'0'), +(68, 'refs/heads/enhancement/7997', 'enhancement/7997', b'0'), +(69, 'refs/heads/enhancement/7883', 'enhancement/7883', b'0'), +(70, 'refs/heads/enhancement/7882', 'enhancement/7882', b'0'), +(71, 'refs/heads/enhancement/7884', 'enhancement/7884', b'0'), +(106, 'refs/heads/fritzy/dep-flags', 'fritzy/dep-flags', b'0'), +(107, 'refs/heads/lk/bin-logfile', 'lk/bin-logfile', b'0'), +(108, 'refs/heads/main', 'main', b'1'), +(109, 'refs/heads/isaacs/lockfile-version-config', 'isaacs/lockfile-version-config', b'0'), +(110, 'refs/heads/isaacs/conflicting-transitive-peer-dep-infinite-loop', 'isaacs/conflicting-transitive-peer-dep-infinite-loop', b'0'), +(111, 'refs/heads/isaacs/fix-failure-on-unresolvable-optional-dep', 'isaacs/fix-failure-on-unresolvable-optional-dep', b'0'), +(112, 'refs/heads/isaacs/npmcli-lint', 'isaacs/npmcli-lint', b'0'), +(113, 'refs/heads/isaacs/fix-cli-3565', 'isaacs/fix-cli-3565', b'0'), +(114, 'refs/heads/isaacs/workspace-root', 'isaacs/workspace-root', b'0'), +(115, 'refs/heads/nlf/always-set-name', 'nlf/always-set-name', b'0'), +(116, 'refs/heads/isaacs/docs', 'isaacs/docs', b'0'), +(117, 'refs/heads/ruyadorno/add-ability-for-link-scripts-to-depend-on-each-other', 'ruyadorno/add-ability-for-link-scripts-to-depend-on-each-other', b'0'), +(118, 'refs/heads/ruyadorno/test-run-build-scripts-of-linked-deps-of-a-package', 'ruyadorno/test-run-build-scripts-of-linked-deps-of-a-package', b'0'), +(119, 'refs/heads/isaacs/node-target-getter', 'isaacs/node-target-getter', b'0'), +(120, 'refs/heads/nlf/fix-pacote-extract', 'nlf/fix-pacote-extract', b'0'), +(121, 'refs/heads/isaacs/diff-follow-links-when-not-global', 'isaacs/diff-follow-links-when-not-global', b'0'), +(122, 'refs/heads/nlf/fix-old-lockfile-warning', 'nlf/fix-old-lockfile-warning', b'0'), +(123, 'refs/heads/isaacs/metadata-making-reify-not-good', 'isaacs/metadata-making-reify-not-good', b'0'), +(124, 'refs/heads/isaacs/get-workspace-set', 'isaacs/get-workspace-set', b'0'), +(125, 'refs/heads/isaacs/fix-spurious-conflict-partly-overlapping-peer-sets', 'isaacs/fix-spurious-conflict-partly-overlapping-peer-sets', b'0'), +(126, 'refs/heads/isaacs/fix-project-bundles-creating-duplicates', 'isaacs/fix-project-bundles-creating-duplicates', b'0'), +(127, 'refs/heads/fix-flash', 'fix-flash', b'0'), +(128, 'refs/heads/master', 'master', b'1'), +(129, 'refs/heads/master', 'master', b'1'), +(130, 'refs/heads/v2.0-dev', 'v2.0-dev', b'0'), +(131, 'refs/heads/v1.x', 'v1.x', b'0'), +(132, 'refs/heads/prehash', 'prehash', b'0'), +(133, 'refs/heads/feature/true-cases', 'feature/true-cases', b'0'), +(134, 'refs/heads/master', 'master', b'1'), +(135, 'refs/heads/feature/widget-favorites', 'feature/widget-favorites', b'0'), +(136, 'refs/heads/chris/fix/284', 'chris/fix/284', b'0'), +(137, 'refs/heads/chris/fix/326', 'chris/fix/326', b'0'), +(138, 'refs/heads/chris/versions', 'chris/versions', b'0'), +(139, 'refs/heads/gh-pages', 'gh-pages', b'0'), +(140, 'refs/heads/main', 'main', b'1'), +(141, 'refs/heads/master', 'master', b'0'), +(142, 'refs/heads/pr228', 'pr228', b'0'), +(143, 'refs/heads/fadeit@v4.x', 'fadeit@v4.x', b'0'), +(144, 'refs/heads/master', 'master', b'1'), +(145, 'refs/heads/gh-pages', 'gh-pages', b'0'); + +-- +-- Dumping data for table `category` +-- + +INSERT INTO `category` (`id`, `externalId`, `name`, `description`, `projectInstanceId`) VALUES +(1, '130', 'Proces', '', 2), +(2, NULL, 'administrativa, proces, plánování', '', 2), +(3, NULL, 'administrativa, wiki, redmine', '', 2), +(4, '131', 'DOT Plugin', '', 2), +(5, NULL, 'clean code, DOT plugin, ', '', 2), +(6, '127', 'Vedení projektu (procesně)', '', 2), +(7, NULL, 'administrativa, vedení procesu, redmine', '', 2), +(8, NULL, 'Testování', '', 2), +(9, NULL, 'DOTPlugin', '', 2), +(10, NULL, 'DOT plugin, dokumentace', '', 2), +(11, '128', 'Timeline', '', 2), +(12, NULL, 'Timeline, analýza', '', 2), +(13, NULL, 'párování', '', 2), +(14, NULL, 'Timeline, vývoj', '', 2), +(15, NULL, 'wiki, redmine, artefakty, vize', '', 2), +(16, NULL, 'administrativa, vedení procesu', '', 2), +(17, NULL, 'administrativa', '', 2), +(18, NULL, 'proces, retro', '', 2), +(19, NULL, 'proces, zákazník ', '', 2), +(20, NULL, 'proces', '', 2), +(21, NULL, 'proces, plánování', '', 2), +(22, NULL, 'proces, mentor', '', 2), +(23, NULL, 'prostředí', '', 2), +(24, NULL, 'specifikace JSON formát', '', 2), +(25, NULL, 'Standup', '', 2), +(26, NULL, 'specifikace', '', 2), +(27, '132', 'Clean code', '', 2), +(28, NULL, 'tag, DOT plugin, clean code', '', 2), +(29, '133', 'Initial Elimination', '', 2), +(30, NULL, 'initial elimination, vývoj', '', 2), +(31, NULL, 'administrativa, vedení procesu, artefakty', '', 2), +(32, NULL, 'administrativa, plánování', '', 2), +(33, NULL, 'administrativa, standup', '', 2), +(34, NULL, 'administrativa, schůzky, zadavatel', '', 2), +(35, NULL, 'administrativa, retro, revize', '', 2), +(36, NULL, 'administrativa, vedení procesu, plánování', '', 2), +(37, '126', 'Code Review', '', 2), +(38, NULL, 'vedouci programmer, vedeni projektu, clean code', '', 2), +(39, NULL, 'administrativa, schůzky, zadavatel, Timeline, upřesnění zadání', '', 2), +(40, NULL, 'Timeline, prototyp, vývoj', '', 2), +(41, NULL, 'administrativa, proces, wiki', '', 2), +(42, NULL, 'vývoj, filtr, Timeline', '', 2), +(43, NULL, 'vývoj, filtr, časové údaje', '', 2), +(44, NULL, 'vývoj, filtr, časové údaje, jquery, ui', '', 2), +(45, NULL, 'vývoj, initial elimination, clustery, ui, algoritmy', '', 2), +(46, NULL, 'vývoj, initial elimination, clustery, ui', '', 2), +(47, NULL, 'Timeline, vývoj, JS', '', 2), +(48, NULL, 'vývoj, párování, Javascript, Timeline, Slider, UI', '', 2), +(49, NULL, 'vývoj, filtr, ', '', 2), +(50, NULL, 'vývoj, DOT plugin, merge, git', '', 2), +(51, NULL, 'prezentace, retrospektiva projektu', '', 2), +(52, NULL, 'dokumentace, architektura', '', 2), +(53, NULL, 'proces, retrospektiva, prezentace', '', 2), +(54, '134', 'Filtrace', '', 2), +(55, NULL, 'administrativa, schůzka, proces, zadavatel', '', 2), +(56, NULL, 'optional', '', 2), +(57, NULL, 'Timeline, UI, Core, ', '', 2), +(58, NULL, 'administrativa, schůzka, proces, mentor, hodnocení', '', 2), +(59, NULL, 'schůzka, proces, retro, revize', '', 2), +(60, NULL, 'schůzka, zákazník, předávání', '', 2), +(61, NULL, 'standup, proces, administrativa', '', 2), +(62, NULL, 'vývoj, párování, Javascript, Timeline', '', 2), +(63, NULL, 'administrativa, proces, schůzka, retrospektiva, revize', '', 2), +(64, NULL, 'administrativa, proces, schůzka, zákazník', '', 2), +(65, NULL, 'administrativa, proces, schůzka, mentor', '', 2), +(66, NULL, 'administrativa, schůzky', '', 2), +(67, NULL, 'clean code, core, testy', '', 2), +(68, '129', 'JSON formát', '', 2), +(69, '125', 'Back end', '', 3), +(70, '124', 'Front end', '', 3), +(71, '123', 'CI/CD', '', 3), +(72, '122', 'Docs', '', 3), +(73, NULL, 'testing', '', 4), +(74, NULL, 'implementation', '', 4), +(75, NULL, 'development', '', 5), +(76, NULL, 'documentation', '', 5), +(77, NULL, 'development implementation', '', 5), +(78, NULL, 'implementation', '', 5), +(79, NULL, 'meeting', '', 5), +(80, NULL, 'architecture', '', 5), +(81, NULL, 'implementation documentation', '', 5), +(82, NULL, 'test', '', 5), +(83, NULL, 'implementation meeting', '', 5), +(84, NULL, 'meeting implementatio', '', 5), +(85, NULL, 'schůzka', '', 6), +(86, NULL, 'Schůzka', '', 6), +(87, NULL, 'schuzka', '', 6), +(88, NULL, 'IV. iterace', '', 7), +(89, NULL, 'III. iterace', '', 7), +(90, NULL, 'II. iterace, release', '', 7), +(91, NULL, 'II. iterace', '', 7), +(92, NULL, 'I. iterace', '', 7), +(93, NULL, 'administration', '', 8), +(94, NULL, 'dev, model', '', 8), +(95, NULL, 'dev, mvc', '', 8), +(96, NULL, 'dev, docs', '', 8), +(97, NULL, 'meeting', '', 8), +(98, NULL, 'stand-up, retrospective', '', 8), +(99, NULL, 'dev, data', '', 8), +(100, NULL, 'dev, demo, administrative', '', 8), +(101, NULL, 'dev, model, users', '', 8), +(102, NULL, 'dev, users', '', 8), +(103, NULL, 'dev, demo', '', 8), +(104, NULL, 'dev, setup', '', 8), +(105, NULL, 'dev, visual, front-end', '', 8), +(106, NULL, 'dev, front-end, visual', '', 8), +(107, NULL, 'dev, front-end', '', 8), +(108, NULL, 'dev', '', 8), +(109, NULL, 'PU', '', 8), +(110, NULL, 'docs', '', 8), +(111, NULL, 'stand-up', '', 8), +(112, NULL, 'stand-up, meeting', '', 8), +(113, NULL, 'testing', '', 8), +(114, NULL, 'slack, communication', '', 8), +(115, NULL, 'data', '', 8), +(116, NULL, 'meeting, design, functionality', '', 8), +(117, NULL, 'meeting, data', '', 8), +(118, NULL, 'plan, administration', '', 8), +(119, NULL, 'dev, architecture', '', 8), +(120, NULL, 'communication, slack', '', 8), +(121, NULL, 'plan', '', 8), +(122, NULL, '3', '', 9), +(123, 'https://api.github.com/repos/npm/arborist/labels/Needs%20Triage', 'Needs Triage', '1664ff', 10), +(124, 'https://api.github.com/repos/npm/cli/labels/ws:arborist', 'ws:arborist', 'D4C5F9', 10), +(125, 'https://api.github.com/repos/npm/cli/labels/Documentation', 'Documentation', '313DB0', 10), +(126, 'https://api.github.com/repos/npm/arborist/labels/semver:major', 'semver:major', 'D93F0B', 10), +(127, 'https://api.github.com/repos/npm/arborist/labels/Question', 'Question', 'ededed', 10), +(128, 'https://api.github.com/repos/npm/arborist/labels/:gem:%20Free%20Internet%20Points%20:gem:', ':gem: Free Internet Points :gem:', 'fbca04', 10), +(129, 'https://api.github.com/repos/npm/arborist/labels/Agenda', 'Agenda', 'F5A623', 10), +(130, 'https://api.github.com/repos/npm/arborist/labels/Backlog', 'Backlog', '000000', 10), +(131, 'https://api.github.com/repos/npm/arborist/labels/Good%20First%20Issue', 'Good First Issue', '0E8A16', 10), +(132, 'https://api.github.com/repos/npm/arborist/labels/In%20Progress', 'In Progress', '105DE0', 10), +(133, 'https://api.github.com/repos/npm/arborist/labels/Linux', 'Linux', 'fef2c0', 10), +(134, 'https://api.github.com/repos/npm/arborist/labels/Needs%20Discussion', 'Needs Discussion', 'D0021B', 10), +(135, 'https://api.github.com/repos/npm/arborist/labels/Needs%20Documentation', 'Needs Documentation', 'D0021B', 10), +(136, 'https://api.github.com/repos/npm/arborist/labels/Needs%20Review', 'Needs Review', 'D0021B', 10), +(137, 'https://api.github.com/repos/npm/arborist/labels/Needs%20Tests', 'Needs Tests', 'D0021B', 10), +(138, 'https://api.github.com/repos/npm/arborist/labels/Security', 'Security', 'D0021B', 10), +(139, 'https://api.github.com/repos/npm/arborist/labels/semver:minor', 'semver:minor', '1D76DB', 10), +(140, 'https://api.github.com/repos/npm/arborist/labels/semver:patch', 'semver:patch', '0E8A16', 10), +(141, 'https://api.github.com/repos/npm/arborist/labels/Windows', 'Windows', '1d76db', 10), +(142, 'https://api.github.com/repos/hyperoslo/BarcodeScanner/labels/help%20wanted', 'help wanted', '159818', 11), +(143, 'https://api.github.com/repos/hyperoslo/BarcodeScanner/labels/question', 'question', 'cc317c', 11), +(144, 'https://api.github.com/repos/paragonie/ciphersweet/labels/documentation', 'documentation', '94f907', 12), +(145, 'https://api.github.com/repos/paragonie/ciphersweet/labels/question', 'question', 'd876e3', 12), +(146, 'https://api.github.com/repos/paragonie/ciphersweet/labels/good%20first%20issue', 'good first issue', '7057ff', 12), +(147, 'https://api.github.com/repos/paragonie/ciphersweet/labels/help%20wanted', 'help wanted', '008672', 12), +(148, 'https://api.github.com/repos/paragonie/ciphersweet/labels/security', 'security', '390270', 12), +(149, 'https://api.github.com/repos/paragonie/ciphersweet/labels/usability', 'usability', '87fc3f', 12), +(150, 'https://api.github.com/repos/mhdhejazi/CoronaTracker/labels/help%20wanted', 'help wanted', '008672', 13), +(151, 'https://api.github.com/repos/mhdhejazi/CoronaTracker/labels/needs%20info', 'needs info', 'f9cf9a', 13), +(152, 'https://api.github.com/repos/mhdhejazi/CoronaTracker/labels/documentation', 'documentation', '0075ca', 13), +(153, 'https://api.github.com/repos/mhdhejazi/CoronaTracker/labels/good%20first%20issue', 'good first issue', '7057ff', 13), +(154, 'https://api.github.com/repos/mhdhejazi/CoronaTracker/labels/question', 'question', 'd876e3', 13), +(155, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/type:%20bug', 'type: bug', 'db4437', 14), +(156, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/released', 'released', 'ededed', 14), +(157, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/type:%20question', 'type: question', 'c5def5', 14), +(158, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/triage%20me', 'triage me', 'FF69B4', 14), +(159, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/type:%20feature%20request', 'type: feature request', 'c5def5', 14), +(160, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/type:%20process', 'type: process', 'c5def5', 14), +(161, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/semantic-release', 'semantic-release', 'ededed', 14), +(162, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/stale', 'stale', 'ffffff', 14), +(163, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/help%20wanted', 'help wanted', '3f5e3d', 14), +(164, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/needs%20more%20info', 'needs more info', 'e0ff32', 14), +(165, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/status:%20investigating', 'status: investigating', 'fef2c0', 14), +(166, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/:rotating_light:', ':rotating_light:', 'FFFFFF', 14), +(167, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/aiplatform', 'aiplatform', 'd65691', 14), +(168, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/api:%20accessapproval', 'api: accessapproval', 'aec29a', 14), +(169, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/api:%20accesscontextmanager', 'api: accesscontextmanager', '918e3c', 14), +(170, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/api:%20actions', 'api: actions', 'ebb67a', 14), +(171, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/api:%20adexperiencereport', 'api: adexperiencereport', '2cc785', 14), +(172, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/api:%20ads', 'api: ads', '2deb00', 14), +(173, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/api:%20adsdatahub', 'api: adsdatahub', '9600ca', 14), +(174, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/api:%20adsense', 'api: adsense', 'aeeb11', 14), +(175, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/api:%20adsensehost', 'api: adsensehost', '5d743d', 14), +(176, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/api:%20adwords', 'api: adwords', '3ca5b8', 14), +(177, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/api:%20aiplatform', 'api: aiplatform', 'd65691', 14), +(178, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/api:%20analyticsadmin', 'api: analyticsadmin', 'b4c02b', 14), +(179, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/api:%20analyticsdata', 'api: analyticsdata', '3fe91b', 14), +(180, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/api:%20apigateway', 'api: apigateway', 'fb0cde', 14), +(181, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/api:%20apigee', 'api: apigee', '912918', 14), +(182, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/api:%20apigeeconnect', 'api: apigeeconnect', '33bd6b', 14), +(183, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/api:%20apikeys', 'api: apikeys', '63142a', 14), +(184, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/api:%20appengine', 'api: appengine', '1f4c42', 14), +(185, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/api:%20area120tables', 'api: area120tables', 'd22b0f', 14), +(186, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/api:%20artifactregistry', 'api: artifactregistry', '32becb', 14), +(187, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/api:%20assuredworkloads', 'api: assuredworkloads', '88fd45', 14), +(188, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/api:%20automl', 'api: automl', '5bcf2f', 14), +(189, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/api:%20bigquery', 'api: bigquery', 'fa84e2', 14), +(190, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/api:%20bigqueryconnection', 'api: bigqueryconnection', 'cfcbd3', 14), +(191, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/api:%20bigquerydatatransfer', 'api: bigquerydatatransfer', '687555', 14), +(192, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/api:%20bigquerymigration', 'api: bigquerymigration', 'b11d53', 14), +(193, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/api:%20bigqueryml', 'api: bigqueryml', '5d08a2', 14), +(194, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/api:%20bigqueryreservation', 'api: bigqueryreservation', '2212d5', 14), +(195, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/api:%20bigquerystorage', 'api: bigquerystorage', '0d4eb8', 14), +(196, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/api:%20bigtable', 'api: bigtable', '352503', 14), +(197, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/api:%20bigtableadmin', 'api: bigtableadmin', '727cc7', 14), +(198, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/api:%20billingbudgets', 'api: billingbudgets', 'cecdfb', 14), +(199, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/api:%20binaryauthorization', 'api: binaryauthorization', '6258aa', 14), +(200, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/api:%20calendar', 'api: calendar', 'a0e7b2', 14), +(201, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/api:%20chat', 'api: chat', 'aa8af3', 14), +(202, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/api:%20chromeosmoblab', 'api: chromeosmoblab', '12079a', 14), +(203, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/api:%20classroom', 'api: classroom', 'c75666', 14), +(204, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/api:%20cloudasset', 'api: cloudasset', '97ad3f', 14), +(205, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/api:%20cloudbilling', 'api: cloudbilling', 'cb3157', 14), +(206, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/api:%20cloudbuild', 'api: cloudbuild', '4df4c8', 14), +(207, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/api:%20cloudchannel', 'api: cloudchannel', 'ebfd57', 14), +(208, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/api:%20clouddebugger', 'api: clouddebugger', 'a0a997', 14), +(209, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/api:%20clouddeploy', 'api: clouddeploy', '688401', 14), +(210, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/api:%20clouderrorreporting', 'api: clouderrorreporting', '3c6de3', 14), +(211, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/api:%20cloudfunctions', 'api: cloudfunctions', 'a12d41', 14), +(212, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/api:%20cloudidentity', 'api: cloudidentity', 'e87e10', 14), +(213, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/api:%20cloudiot', 'api: cloudiot', '9108fd', 14), +(214, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/api:%20cloudkms', 'api: cloudkms', '0298b7', 14), +(215, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/api:%20cloudprivatecatalog', 'api: cloudprivatecatalog', 'c4a690', 14), +(216, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/api:%20cloudprofiler', 'api: cloudprofiler', 'd83df1', 14), +(217, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/api:%20cloudresourcemanager', 'api: cloudresourcemanager', 'c1f176', 14), +(218, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/api:%20cloudscheduler', 'api: cloudscheduler', 'e8ed0b', 14), +(219, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/api:%20cloudsearch', 'api: cloudsearch', '57bf09', 14), +(220, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/api:%20cloudshell', 'api: cloudshell', '35ff71', 14), +(221, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/api:%20cloudtasks', 'api: cloudtasks', 'b316fa', 14), +(222, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/api:%20cloudtrace', 'api: cloudtrace', 'e1b8df', 14), +(223, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/api:%20composer', 'api: composer', '180b81', 14), +(224, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/api:%20compute', 'api: compute', '77e73f', 14), +(225, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/api:%20confidentialcomputing', 'api: confidentialcomputing', 'b7bfde', 14), +(226, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/api:%20connectgateway', 'api: connectgateway', 'e2a9d7', 14), +(227, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/api:%20contactcenterinsights', 'api: contactcenterinsights', '435215', 14), +(228, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/api:%20container', 'api: container', '5f0b6e', 14), +(229, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/api:%20containeranalysis', 'api: containeranalysis', 'c4e933', 14), +(230, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/api:%20datacatalog', 'api: datacatalog', 'e505b1', 14), +(231, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/api:%20datacommons', 'api: datacommons', '772b3a', 14), +(232, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/api:%20dataflow', 'api: dataflow', 'c8f180', 14), +(233, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/api:%20datafusion', 'api: datafusion', 'f015ea', 14), +(234, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/api:%20datalabeling', 'api: datalabeling', 'ac1baf', 14), +(235, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/api:%20dataproc', 'api: dataproc', '0de6e7', 14), +(236, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/api:%20datastore', 'api: datastore', '141ff7', 14), +(237, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/api:%20datastudio', 'api: datastudio', '770c93', 14), +(238, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/api:%20deploymentmanager', 'api: deploymentmanager', 'ee60c9', 14), +(239, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/api:%20dialogflow', 'api: dialogflow', '162c10', 14), +(240, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/api:%20dlp', 'api: dlp', '2ca7be', 14), +(241, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/api:%20dns', 'api: dns', 'b3bf60', 14), +(242, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/api:%20docs', 'api: docs', 'e3e2a9', 14), +(243, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/api:%20documentai', 'api: documentai', '393004', 14), +(244, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/api:%20domains', 'api: domains', 'e4e46d', 14), +(245, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/api:%20drive', 'api: drive', '4aa1e7', 14), +(246, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/api:%20driveactivity', 'api: driveactivity', 'a0823b', 14), +(247, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/api:%20earthengine', 'api: earthengine', '34e433', 14), +(248, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/api:%20endpoints', 'api: endpoints', '233b07', 14), +(249, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/api:%20eventarc', 'api: eventarc', '85c37d', 14), +(250, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/api:%20fcm', 'api: fcm', 'cbae54', 14), +(251, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/api:%20file', 'api: file', '8c7dd9', 14), +(252, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/api:%20firebasedynamiclinks', 'api: firebasedynamiclinks', '61ead1', 14), +(253, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/api:%20firebaseinappmessaging', 'api: firebaseinappmessaging', 'daa6e5', 14), +(254, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/api:%20firestore', 'api: firestore', 'd59ac3', 14), +(255, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/api:%20gameservices', 'api: gameservices', '89b44f', 14), +(256, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/api:%20gkehub', 'api: gkehub', 'd53c11', 14), +(257, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/api:%20gmail', 'api: gmail', 'de01c1', 14), +(258, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/api:%20googleads', 'api: googleads', '1bb57c', 14), +(259, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/api:%20gsuiteaddons', 'api: gsuiteaddons', '8a7cef', 14), +(260, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/api:%20healthcare', 'api: healthcare', '9ff28b', 14), +(261, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/api:%20homegraph', 'api: homegraph', '1984f7', 14), +(262, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/api:%20iam', 'api: iam', '0ebc58', 14), +(263, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/api:%20iamcredentials', 'api: iamcredentials', '9c6481', 14), +(264, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/api:%20iap', 'api: iap', 'c743f6', 14), +(265, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/api:%20identitytoolkit', 'api: identitytoolkit', 'e0e175', 14), +(266, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/api:%20ids', 'api: ids', 'bf5169', 14), +(267, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/api:%20jobs', 'api: jobs', '27a06a', 14), +(268, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/api:%20language', 'api: language', '8512ae', 14), +(269, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/api:%20lifesciences', 'api: lifesciences', '82cd85', 14), +(270, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/api:%20logging', 'api: logging', 'ad8a22', 14), +(271, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/api:%20managedidentities', 'api: managedidentities', '0d5f5a', 14), +(272, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/api:%20mediatranslation', 'api: mediatranslation', '94a856', 14), +(273, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/api:%20memcache', 'api: memcache', 'c6b214', 14), +(274, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/api:%20metastore', 'api: metastore', 'cfeeeb', 14), +(275, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/api:%20ml', 'api: ml', '9830e1', 14), +(276, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/api:%20monitoring', 'api: monitoring', '89948c', 14), +(277, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/api:%20monitoring-dashboards', 'api: monitoring-dashboards', '99f9ab', 14), +(278, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/api:%20networkconnectivity', 'api: networkconnectivity', '8cdda4', 14), +(279, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/api:%20networkmanagement', 'api: networkmanagement', '85d630', 14), +(280, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/api:%20notebooks', 'api: notebooks', 'c2365e', 14), +(281, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/api:%20orgpolicy', 'api: orgpolicy', 'dae56c', 14), +(282, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/api:%20osconfig', 'api: osconfig', '88e5f0', 14), +(283, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/api:%20oslogin', 'api: oslogin', '570cf2', 14), +(284, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/api:%20people', 'api: people', '12a032', 14), +(285, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/api:%20phishingprotection', 'api: phishingprotection', '2f5029', 14), +(286, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/api:%20playablelocations', 'api: playablelocations', 'b72ca5', 14), +(287, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/api:%20policytroubleshooter', 'api: policytroubleshooter', '052e7d', 14), +(288, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/api:%20privateca', 'api: privateca', '2a72dd', 14), +(289, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/api:%20pubsub', 'api: pubsub', '040f8e', 14), +(290, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/api:%20pubsublite', 'api: pubsublite', 'cf87d6', 14), +(291, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/api:%20recaptchaenterprise', 'api: recaptchaenterprise', 'c8cfc4', 14), +(292, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/api:%20recommendationengine', 'api: recommendationengine', 'e7d3e8', 14), +(293, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/api:%20recommender', 'api: recommender', '502dd0', 14), +(294, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/api:%20redis', 'api: redis', '86a1b9', 14), +(295, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/api:%20resourcesettings', 'api: resourcesettings', '87c3c4', 14), +(296, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/api:%20retail', 'api: retail', '3338b9', 14), +(297, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/api:%20roads', 'api: roads', 'c8e66b', 14), +(298, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/api:%20run', 'api: run', 'a53108', 14), +(299, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/api:%20runtimeconfig', 'api: runtimeconfig', 'be1164', 14), +(300, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/api:%20script', 'api: script', '3205c0', 14), +(301, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/api:%20secretmanager', 'api: secretmanager', 'f10ee7', 14), +(302, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/api:%20security-privateca', 'api: security-privateca', '2a72dd', 14), +(303, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/api:%20securitycenter', 'api: securitycenter', 'a0ce2f', 14), +(304, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/api:%20serviceconsumermanagement', 'api: serviceconsumermanagement', 'd8c34c', 14), +(305, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/api:%20servicecontrol', 'api: servicecontrol', 'fa7e40', 14), +(306, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/api:%20servicedirectory', 'api: servicedirectory', '4a667c', 14), +(307, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/api:%20servicemanagement', 'api: servicemanagement', 'e34940', 14), +(308, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/api:%20serviceusage', 'api: serviceusage', '7ab4b6', 14), +(309, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/api:%20sheets', 'api: sheets', '7183a0', 14), +(310, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/api:%20slides', 'api: slides', 'f4d5c5', 14), +(311, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/api:%20smartdevicemanagement', 'api: smartdevicemanagement', 'e60dfe', 14), +(312, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/api:%20sourcerepo', 'api: sourcerepo', '818f96', 14), +(313, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/api:%20spanner', 'api: spanner', '69f1cc', 14), +(314, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/api:%20speech', 'api: speech', '9b4a8a', 14), +(315, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/api:%20sqladmin', 'api: sqladmin', '2eb3b8', 14), +(316, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/api:%20storage', 'api: storage', 'ddeceb', 14), +(317, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/api:%20storagetransfer', 'api: storagetransfer', '3cbb3e', 14), +(318, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/api:%20tasks', 'api: tasks', '2cb1ad', 14), +(319, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/api:%20texttospeech', 'api: texttospeech', '7545f5', 14), +(320, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/api:%20tpu', 'api: tpu', '0dea84', 14), +(321, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/api:%20trafficdirector', 'api: trafficdirector', 'e67ef3', 14), +(322, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/api:%20transcoder', 'api: transcoder', 'd9b31b', 14), +(323, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/api:%20translate', 'api: translate', 'fc46e2', 14), +(324, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/api:%20vault', 'api: vault', '184aa0', 14), +(325, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/api:%20videointelligence', 'api: videointelligence', '89e5aa', 14), +(326, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/api:%20videostitcher', 'api: videostitcher', 'cf5310', 14), +(327, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/api:%20vision', 'api: vision', 'f42087', 14), +(328, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/api:%20vmwareengine', 'api: vmwareengine', '1501ba', 14), +(329, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/api:%20vpcaccess', 'api: vpcaccess', '7a1759', 14), +(330, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/api:%20walletobjects', 'api: walletobjects', 'be1fcd', 14), +(331, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/api:%20watcher', 'api: watcher', 'ed3aa7', 14), +(332, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/api:%20webrisk', 'api: webrisk', 'b31e77', 14), +(333, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/api:%20websecurityscanner', 'api: websecurityscanner', 'a6eba6', 14), +(334, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/api:%20workflowexecutions', 'api: workflowexecutions', '2653da', 14), +(335, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/api:%20workflows', 'api: workflows', 'b5eafe', 14), +(336, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/automerge', 'automerge', '00ff00', 14), +(337, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/automerge:%20exact', 'automerge: exact', '8dd517', 14), +(338, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/cla:%20no', 'cla: no', 'E402f2', 14), +(339, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/cla:%20yes', 'cla: yes', '0B7601', 14), +(340, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/do%20not%20merge', 'do not merge', 'd93f0b', 14), +(341, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/eol', 'eol', 'c9abb2', 14), +(342, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/external', 'external', '800080', 14), +(343, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/file-sync', 'file-sync', 'ededed', 14), +(344, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/flakybot:%20flaky', 'flakybot: flaky', '86d9d7', 14), +(345, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/flakybot:%20issue', 'flakybot: issue', 'a9f9f7', 14), +(346, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/flakybot:%20quiet', 'flakybot: quiet', '86d9d7', 14), +(347, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/good%20first%20issue', 'good first issue', '520b77', 14), +(348, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/kokoro:force-run', 'kokoro:force-run', 'C1FFB2', 14), +(349, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/kokoro:run', 'kokoro:run', 'C1FFB2', 14), +(350, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/lang:%20cpp', 'lang: cpp', '002fff', 14), +(351, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/lang:%20dotnet', 'lang: dotnet', 'b905fa', 14), +(352, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/lang:%20elixir', 'lang: elixir', '301934', 14), +(353, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/lang:%20go', 'lang: go', '2fe0da', 14), +(354, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/lang:%20java', 'lang: java', 'd49713', 14), +(355, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/lang:%20nodejs', 'lang: nodejs', '68A063', 14), +(356, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/lang:%20php', 'lang: php', 'c281f7', 14), +(357, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/lang:%20python', 'lang: python', '2576a8', 14), +(358, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/lang:%20ruby', 'lang: ruby', 'E0115F', 14), +(359, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/merge', 'merge', 'ededed', 14), +(360, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/needs%20work', 'needs work', '1a3b70', 14), +(361, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/next%20major:%20breaking%20change', 'next major: breaking change', 'b5e67b', 14), +(362, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/owlbot:run', 'owlbot:run', '84D2D4', 14), +(363, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/release%20blocking', 'release blocking', 'ffa03e', 14), +(364, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/samples', 'samples', '9932CC', 14), +(365, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/semver:%20major', 'semver: major', 'FF1053', 14), +(366, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/semver:%20minor', 'semver: minor', '6C6EA0', 14), +(367, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/semver:%20patch', 'semver: patch', '66C7F4', 14), +(368, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/snippet-bot:force-run', 'snippet-bot:force-run', 'd00feb', 14), +(369, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/snippet-bot:no-prefix-req', 'snippet-bot:no-prefix-req', '493b55', 14), +(370, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/status:%20blocked', 'status: blocked', 'f9d0c4', 14), +(371, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/status:%20duplicate', 'status: duplicate', 'd4c5f9', 14), +(372, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/status:%20will%20not%20fix', 'status: will not fix', 'd4c5f9', 14), +(373, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/type:%20cleanup', 'type: cleanup', 'c5def5', 14), +(374, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/type:%20docs', 'type: docs', '0000A0', 14), +(375, 'https://api.github.com/repos/googlemaps/google-maps-ios-utils/labels/type:%20sample', 'type: sample', '0000A0', 14), +(376, 'https://api.github.com/repos/danmindru/responsive-html-email-signature/labels/help%20wanted', 'help wanted', '159818', 15), +(377, 'https://api.github.com/repos/danmindru/responsive-html-email-signature/labels/question', 'question', 'cc317c', 15), +(378, 'https://api.github.com/repos/danmindru/responsive-html-email-signature/labels/email-client-issue', 'email-client-issue', 'f9d0c4', 15), +(379, 'https://api.github.com/repos/danmindru/responsive-html-email-signature/labels/beginner-friendly', 'beginner-friendly', '68eda4', 15), +(380, 'https://api.github.com/repos/danmindru/responsive-html-email-signature/labels/admin', 'admin', 'e99695', 15), +(381, 'https://api.github.com/repos/danmindru/responsive-html-email-signature/labels/should-implement', 'should-implement', 'fbca04', 15), +(382, 'https://api.github.com/repos/danmindru/responsive-html-email-signature/labels/planning', 'planning', '0fade1', 15), +(383, 'https://api.github.com/repos/danmindru/responsive-html-email-signature/labels/idea', 'idea', '0052cc', 15), +(384, 'https://api.github.com/repos/danmindru/responsive-html-email-signature/labels/dependencies', 'dependencies', '0366d6', 15), +(385, 'https://api.github.com/repos/danmindru/responsive-html-email-signature/labels/in-progress', 'in-progress', '006b75', 15); + +-- +-- Dumping data for table `commit` +-- + +INSERT INTO `commit` (`identifier`, `isRelease`, `id`) VALUES +('2a3b85f', b'0', 1), +('a55d336', b'0', 3), +('f3b81a7', b'0', 4), +('fd45c21', b'0', 6), +('c73ae8f', b'0', 8), +('489d4ca', b'0', 17), +('81cd82b', b'0', 25), +('7e45312', b'0', 29), +('0545637', b'0', 30), +('17b1c31', b'0', 31), +('8960f02', b'0', 32), +('a0025b3', b'0', 33), +('8bc1a5b', b'0', 34), +('a80fe7b', b'0', 37), +('b157bae', b'0', 42), +('5d8569a', b'0', 43), +('04525c8', b'0', 45), +('2190aaa', b'0', 47), +('a6bef77', b'0', 61), +('6f0aa19', b'0', 63), +('e0d09fe', b'0', 65), +('71009c2', b'0', 66), +('96b3e7e', b'0', 67), +('5d10640', b'0', 68), +('3cab407', b'0', 69), +('ee3e8b7', b'0', 183), +('17d257f', b'0', 184), +('3b179f6', b'0', 191), +('1d75164', b'0', 192), +('50864ac', b'0', 218), +('e0a5de9', b'0', 219), +('5eb74cd', b'0', 222), +('556ea52', b'0', 224), +('56bc430', b'0', 229), +('d52846b', b'0', 230), +('b8dc69e', b'0', 233), +('ef36230', b'0', 237), +('7227a17', b'0', 241), +('de24be8', b'0', 245), +('cf88d40', b'0', 250), +('083b4cb', b'0', 255), +('fbcb777', b'0', 259), +('c31f418', b'0', 263), +('9c2bb17', b'0', 267), +('9e0375e', b'0', 274), +('caed3c0', b'0', 276), +('4af4d58', b'0', 281), +('4ca0744', b'0', 285), +('a001c79', b'0', 298), +('61c6769', b'0', 300), +('3249a62', b'0', 302), +('db07fe0', b'0', 408), +('78b975f', b'0', 410), +('617b850', b'0', 411), +('8b75681', b'0', 412), +('c93cf85', b'0', 414), +('bce947b', b'0', 418), +('0a8d457', b'0', 423), +('ca4e6bf', b'0', 424), +('4d8f8f3', b'0', 425), +('40f08ad', b'0', 426), +('7c35644', b'0', 428), +('8ab7cbf', b'0', 429), +('42c20ae', b'0', 431), +('b7282bb', b'0', 437), +('65515cc', b'0', 459), +('da67aed', b'0', 460), +('b7c63d7', b'0', 461), +('94fce7f', b'0', 462), +('f6ccfe4', b'0', 463), +('786cbd6', b'0', 464), +('a0d2a5e', b'0', 465), +('c8d80ce', b'0', 468), +('7d3ab7a', b'0', 474), +('e992683', b'0', 475), +('4e2da13', b'0', 476), +('b8fae4a', b'0', 477), +('6297d61', b'0', 479), +('2929560', b'0', 480), +('c619e05', b'0', 481), +('2d22b61', b'0', 484), +('3ea90ef', b'0', 485), +('a4653ce', b'0', 487), +('62876c5', b'0', 488), +('cdaf3e0', b'0', 490), +('3eb44ec', b'0', 497), +('440deee', b'0', 498), +('32b3fe2', b'0', 499), +('3882f5d', b'0', 500), +('d47a05f', b'0', 501), +('cddd4e2', b'0', 503), +('df24b10', b'0', 504), +('e59aa7c', b'0', 505), +('3a28ade', b'0', 506), +('75cb34b', b'0', 508), +('44cab2e', b'0', 509), +('d070b43', b'0', 510), +('1882569', b'0', 511), +('a8141f4', b'0', 512), +('9d2ac3a', b'0', 513), +('e68ef64', b'0', 515), +('36947b8', b'0', 517), +('175d726', b'0', 518), +('7bf2e2c', b'0', 520), +('2f604f1', b'0', 522), +('1a66940', b'0', 525), +('2d082bc', b'0', 526), +('07c2d5c', b'0', 527), +('4b2434f', b'0', 528), +('ce04502', b'0', 529), +('1107fbd', b'0', 530), +('67ebe0d', b'0', 531), +('f0d8e0f', b'0', 534), +('2519fbc', b'0', 535), +('ae9dc1f', b'0', 536), +('0eeb8a2', b'0', 538), +('b349949', b'0', 539), +('25e37f5', b'0', 540), +('42a6b65', b'0', 541), +('787ab9b', b'0', 542), +('6748f59', b'0', 543), +('343af43', b'0', 545), +('c02e789', b'0', 547), +('b81f638', b'0', 548), +('e584540', b'0', 549), +('0e518e6', b'0', 550), +('e19aef4', b'0', 552), +('367a7ad', b'0', 554), +('f193cf9', b'0', 555), +('82ea920', b'0', 556), +('98f9c8e', b'0', 559), +('3f8f3bd', b'0', 563), +('1cc8ab3', b'0', 564), +('3c88057', b'0', 565), +('5257d32', b'0', 566), +('8f76d86', b'0', 567), +('56e8cf7', b'0', 569), +('7566bde', b'0', 570), +('5dea830', b'0', 571), +('4a43eac', b'0', 572), +('4399f18', b'0', 573), +('cfbee1a', b'0', 574), +('82862b2', b'0', 575), +('f851ac7', b'0', 576), +('fad8610', b'0', 577), +('4b59235', b'0', 578), +('02885d2', b'0', 579), +('9c3e0e7', b'0', 580), +('c52bbb1', b'0', 581), +('6f6a454', b'0', 582), +('ea63f5c', b'0', 586), +('3416b11', b'0', 587), +('97c2704', b'0', 589), +('ebb4dfe', b'0', 590), +('8ef808c', b'0', 591), +('75df6b2', b'0', 592), +('395eced', b'0', 593), +('1970ddf', b'0', 594), +('d67f9ec', b'0', 595), +('ffd1de7', b'0', 597), +('3384087', b'0', 598), +('42e372b', b'0', 599), +('6209fbe', b'0', 600), +('c173eff', b'0', 601), +('cc435e1', b'0', 603), +('792e434', b'0', 604), +('0006d99', b'0', 605), +('71979d6', b'0', 606), +('853adcf', b'0', 608), +('87dd9de', b'0', 609), +('7e9314e', b'0', 610), +('8025936', b'0', 611), +('1b98c67', b'0', 612), +('23509cd', b'0', 615), +('f1da904', b'0', 617), +('27d72e0', b'0', 618), +('64f7124', b'0', 619), +('d6054e9', b'0', 620), +('9341390', b'0', 622), +('8b71ca4', b'0', 623), +('db8e40b', b'0', 624), +('601eec7', b'0', 625), +('23ad4db', b'0', 626), +('06d4f04', b'0', 627), +('80b17f4', b'0', 628), +('d052c68', b'0', 630), +('f2f833c', b'0', 631), +('330fbb1', b'0', 632), +('58bf410', b'0', 635), +('48e591d', b'0', 636), +('e833df4', b'0', 637), +('a12db46', b'0', 639), +('eab9fa3', b'0', 640), +('168d1b4', b'0', 645), +('d5a16eb', b'0', 647), +('38a4f99', b'0', 648), +('56b942c', b'0', 649), +('602265a', b'0', 659), +('f115c8b', b'0', 661), +('3aa5f2d', b'0', 663), +('6b21c51', b'0', 664), +('00f3280', b'0', 668), +('6b98365', b'0', 670), +('037eb53', b'0', 671), +('dd52243', b'0', 673), +('a5b09bc', b'0', 674), +('1ea3776', b'0', 680), +('0717dec', b'0', 685), +('ee62b2c', b'0', 687), +('f618170', b'0', 690), +('4e71f70', b'0', 691), +('c1c9135', b'0', 692), +('67c4123', b'0', 694), +('6daefa8', b'0', 3093), +('795ddc9', b'0', 3094), +('78f00b8', b'0', 3095), +('b16fbf9', b'0', 3096), +('21d73fc', b'0', 3097), +('ee2b3fb', b'0', 3098), +('59513dd', b'0', 3922), +('736838d', b'0', 3924), +('7740b8c', b'0', 3927), +('77453bc', b'0', 3928), +('67f9157', b'0', 3932), +('04643bd', b'0', 3933), +('87e3e37', b'0', 3935), +('af2bfde', b'0', 3937), +('fd0641e', b'0', 3938), +('54e9f5b', b'0', 3939), +('b149956', b'0', 3940), +('a2dfd92', b'0', 3941), +('c95defa', b'0', 3943), +('f335b85', b'0', 3945), +('2370f18', b'0', 3946), +('2007cb5', b'0', 3947), +('630e675', b'0', 3948), +('4f50a73', b'0', 3949), +('8ade384', b'0', 3950), +('f411c15', b'0', 3952), +('2c88773', b'0', 3953), +('18caada', b'0', 3954), +('f7819f4', b'0', 3955), +('a5356f1', b'0', 3957), +('5c302cc', b'0', 3960), +('909c1e3', b'0', 3962), +('c98d180', b'0', 3964), +('4040945', b'0', 3965), +('8b817e4', b'0', 3966), +('7dae830', b'0', 4008), +('358a222', b'0', 4047), +('e0a53a4', b'0', 4051), +('cf30135', b'0', 4052), +('a372c9b', b'0', 4053), +('1aff7bb', b'0', 4055), +('a36ba03', b'0', 4056), +('fbb0d12', b'0', 4059), +('00ad035', b'0', 4062), +('217522c', b'0', 4063), +('f2fabf9', b'0', 4066), +('43950ee', b'0', 4068), +('74fed7b', b'0', 4070), +('6d67830', b'0', 4073), +('0248038', b'0', 4077), +('afad782', b'0', 4078), +('7a5bd6e', b'0', 4081), +('b7dac25', b'0', 4082), +('d87ebc8', b'0', 4083), +('804a55a', b'0', 4085), +('8343da8', b'0', 4088), +('7e9b305', b'0', 4089), +('d542ab8', b'0', 4094), +('2e22301', b'0', 4096), +('d2def28', b'0', 4098), +('cb7d8a4', b'0', 4105), +('d180433', b'0', 4108), +('e271e35', b'0', 4109), +('5ef5855', b'0', 4110), +('2e0e81b', b'0', 4111), +('08b0266', b'0', 4114), +('c0ac395', b'0', 4115), +('237adb6', b'0', 4119), +('fd4d88f', b'0', 4120), +('13d0b5c', b'0', 4124), +('3a3a7d0', b'0', 4128), +('db86add', b'0', 4129), +('f01a153', b'0', 4133), +('59d483f', b'0', 4134), +('a98c0ec', b'0', 4135), +('bd03aa5', b'0', 4136), +('e3c7f22', b'0', 4137), +('9ff420a', b'0', 4138), +('c826228', b'0', 4139), +('4d6d7de', b'0', 4140), +('19995ce', b'0', 4155), +('ec5ec4d', b'0', 4157), +('d4cbe09', b'0', 4158), +('8250d1c', b'0', 4180), +('0889117', b'0', 4181), +('5ad1ad7', b'0', 4185), +('d6f1951', b'0', 4186), +('8ce40cc', b'0', 4187), +('879c175', b'0', 4190), +('7549a08', b'0', 4196), +('27d65c1', b'0', 4199), +('028970f', b'0', 4201), +('1d964b9', b'0', 4208), +('219cf56', b'0', 4210), +('5022c08', b'0', 4212), +('9bebe99', b'0', 4221), +('346e9ba', b'0', 4222), +('b40af38', b'0', 4232), +('092ba8c', b'0', 4233), +('35ab10b', b'0', 4234), +('0f573db', b'0', 4236), +('3f1f6de', b'0', 4239), +('348cfce', b'0', 4240), +('22d0b32', b'0', 4241), +('32dc92e', b'0', 4243), +('19f6f5c', b'0', 4244), +('69a0ca9', b'0', 4245), +('5aeb7fe', b'0', 4246), +('a957d01', b'0', 4253), +('dc598eb', b'0', 4254), +('d6fb079', b'0', 4255), +('d34ece9', b'0', 4256), +('d1d92c2', b'0', 4427), +('02186b9', b'0', 4428), +('4fe267e', b'0', 4429), +('931acc4', b'0', 4430), +('45afa9f', b'0', 4431), +('6661ea9', b'0', 4432), +('af223c7', b'0', 4433), +('03681c6', b'0', 4434), +('5bd5baa', b'0', 4435), +('0b8f63e', b'0', 4436), +('e86d4f4', b'0', 4437), +('4e05470', b'0', 4438), +('d42d13a', b'0', 4439), +('ba1fdf2', b'0', 4440), +('0762162', b'0', 4441), +('dbb54aa', b'0', 4442), +('00b3d22', b'0', 4443), +('916f524', b'0', 4444), +('1186f50', b'0', 4446), +('455af7b', b'0', 4447), +('a3db68f', b'0', 4448), +('3064d0e', b'0', 4449), +('48f785a', b'0', 4450), +('457abe8', b'0', 4451), +('47eca7c', b'0', 4452), +('d01645a', b'0', 4453), +('4ab7f82', b'0', 4454), +('0917eae', b'0', 4455), +('d5a1486', b'0', 4456), +('faddc9d', b'0', 4457), +('3094b8b', b'0', 4458), +('0f48285', b'0', 4459), +('a17881f', b'0', 4460), +('2940440', b'0', 4461), +('f5b1731', b'0', 4462), +('47e08ca', b'0', 4463), +('4722abd', b'0', 4464), +('72b9be1', b'0', 4465), +('c2fae7c', b'0', 4466), +('f6ab281', b'0', 4467), +('918e91a', b'0', 4468), +('85caef8', b'0', 4469), +('a5af902', b'0', 4470), +('73a0fa0', b'0', 4471), +('b0838f5', b'0', 4472), +('9cd550e', b'0', 4473), +('8de9efe', b'0', 4474), +('cba6f96', b'0', 4475), +('ba4e815', b'0', 4476), +('51ce052', b'0', 4477), +('bf76f72', b'0', 4478), +('9601333', b'0', 4479), +('73ef4ef', b'0', 4480), +('e1186dc', b'0', 4481), +('7619428', b'0', 4482), +('c448aeb', b'0', 4483), +('80119ce', b'0', 4484), +('1ae1e09', b'0', 4485), +('8ed8cec', b'0', 4486), +('9d45547', b'0', 4487), +('433349c', b'0', 4488), +('deb7058', b'0', 4489), +('fdd0c6e', b'0', 4490), +('716a1d9', b'0', 4491), +('26d3ab5', b'0', 4492), +('b834be5', b'0', 4493), +('5763d2d', b'0', 4494), +('3bbec9c', b'0', 4495), +('ed45806', b'0', 4496), +('9ed5d9f', b'0', 4497), +('5502b34', b'0', 4498), +('d5d86f8', b'0', 4499), +('1f3eb4f', b'0', 4500), +('a409042', b'0', 4501), +('bd517b8', b'0', 4502), +('92565e4', b'0', 4504), +('6d6b73d', b'0', 4505), +('5da2512', b'0', 4506), +('5266811', b'0', 4507), +('873d119', b'0', 4508), +('e422847', b'0', 4509), +('b3493f7', b'0', 4510), +('414f3fe', b'0', 4511), +('3426d77', b'0', 4512), +('8971190', b'0', 4513), +('a80d228', b'0', 4514), +('1cc511d', b'0', 4515), +('8bca0c1', b'0', 4516), +('af4bd76', b'0', 4517), +('f27c72d', b'0', 4518), +('e19bc59', b'0', 4519), +('c607572', b'0', 4520), +('6e6b316', b'0', 4521), +('91f0dca', b'0', 4522), +('556ddd4', b'0', 4523), +('9e126e3', b'0', 4524), +('6b1b070', b'0', 4525), +('f8bc80f', b'0', 4526), +('3bd98a4', b'0', 4527), +('7561b8d', b'0', 4528), +('68058bf', b'0', 4529), +('b49c7d5', b'0', 4530), +('b9b4b21', b'0', 4531), +('c044ee4', b'0', 4532), +('046703c', b'0', 4533), +('5b60a5b', b'0', 4534), +('051dcb5', b'0', 4535), +('f3092c0', b'0', 4536), +('a70962c', b'0', 4537), +('61202e3', b'0', 4538), +('3d8aa18', b'0', 4539), +('65c37e8', b'0', 4540), +('4c867b7', b'0', 4541), +('997a4fe', b'0', 4542), +('6b0aa80', b'0', 4543), +('69457eb', b'0', 4544), +('cd9daff', b'0', 4545), +('5c33d5c', b'0', 4546), +('f846419', b'0', 4547), +('92a538e', b'0', 4548), +('14009f9', b'0', 4549), +('3817d6f', b'0', 4550), +('61bda4b', b'0', 4551), +('98b0614', b'0', 4552), +('d3c9122', b'0', 4553), +('787a1b4', b'0', 4554), +('edd0c51', b'0', 4555), +('ec5849b', b'0', 4556), +('5eea34f', b'0', 4557), +('09ba5b2', b'0', 4558), +('db835ac', b'0', 4559), +('d7508af', b'0', 4560), +('bda189f', b'0', 4561), +('552a1fe', b'0', 4562), +('7b03cdc', b'0', 4563), +('e2be6f3', b'0', 4564), +('e8950e7', b'0', 4565), +('0b3eb56', b'0', 4566), +('ba4eea9', b'0', 4567), +('9e18c69', b'0', 4568), +('30af40f', b'0', 4569), +('a03d294', b'0', 4570), +('3cff5ae', b'0', 4571), +('489b18a', b'0', 4572), +('18f754c', b'0', 4573), +('b93c563', b'0', 4574), +('d276ae6', b'0', 4575), +('fe61123', b'0', 4576), +('08d2683', b'0', 4577), +('33172ec', b'0', 4578), +('fb29fb1', b'0', 4579), +('51dc2fc', b'0', 4580), +('64df9f2', b'0', 4581), +('712a6ca', b'0', 4582), +('daad215', b'0', 4583), +('98ea2f8', b'0', 4584), +('a6602c4', b'0', 4585), +('f4a5644', b'0', 4586), +('1b4a411', b'0', 4587), +('d8b87a0', b'0', 4588), +('a108012', b'0', 4589), +('77404c5', b'0', 4590), +('0532d06', b'0', 4591), +('04398d3', b'0', 4592), +('0d55490', b'0', 4593), +('c5dff58', b'0', 4594), +('2a2f32c', b'0', 4595), +('3c3bc9c', b'0', 4596), +('2f31119', b'0', 4597), +('c6756c6', b'0', 4598), +('700a51d', b'0', 4599), +('4f7e7e8', b'0', 4600), +('6b6bb09', b'0', 4601), +('f19bcf0', b'0', 4602), +('90426a4', b'0', 4603), +('33cc792', b'0', 4604), +('dc10a24', b'0', 4605), +('ce6d5fb', b'0', 4606), +('9ce2a2c', b'0', 4607), +('9bb7d6e', b'0', 4608), +('0356f5a', b'0', 4609), +('1d0ce2e', b'0', 4610), +('fc56d1b', b'0', 4611), +('19bb62c', b'0', 4612), +('6fd72b9', b'0', 4613), +('15e7f9e', b'0', 4614), +('0111d95', b'0', 4615), +('b0664c7', b'0', 4616), +('9fae399', b'0', 4617), +('0859239', b'0', 4618), +('50d7eaf', b'0', 4619), +('d9df7b6', b'0', 4620), +('9b0966a', b'0', 4621), +('407673f', b'0', 4622), +('7093fc1', b'0', 4623), +('d1c461a', b'0', 4624), +('a98f44e', b'0', 4625), +('ff932ba', b'0', 4626), +('d0a10e2', b'0', 4627), +('83cf56b', b'0', 4628), +('88ee817', b'0', 4629), +('a8d86f8', b'0', 4630), +('b395d1b', b'0', 4631), +('d2d5eac', b'0', 4632), +('5c067eb', b'0', 4633), +('9ba3ab0', b'0', 4634), +('36bc658', b'0', 4635), +('1c035e0', b'0', 4636), +('bb5a2d8', b'0', 4637), +('2563518', b'0', 4638), +('50c5cae', b'0', 4639), +('26feb57', b'0', 4640), +('5c9e7c1', b'0', 4641), +('78a6bb5', b'0', 4642), +('60bada5', b'0', 4643), +('3692792', b'0', 4644), +('ef8cdd7', b'0', 4645), +('20ad62f', b'0', 4646), +('05381d8', b'0', 4647), +('4e30844', b'0', 4648), +('f25c5f1', b'0', 4649), +('66b3055', b'0', 4650), +('df5c414', b'0', 4651), +('475e14d', b'0', 4652), +('dad52d7', b'0', 4653), +('81a8b64', b'0', 4654), +('73aae82', b'0', 4655), +('f5b65d9', b'0', 4656), +('4a133d5', b'0', 4657), +('0ac9b68', b'0', 4658), +('bf37008', b'0', 4659), +('7a502b3', b'0', 4660), +('a055f33', b'0', 4661), +('64b57fa', b'0', 4662), +('d2ac590', b'0', 4663), +('0354f04', b'0', 4664), +('0e3d84a', b'0', 4665), +('1e46def', b'0', 4666), +('3099351', b'0', 4667), +('8a740ff', b'0', 4668), +('f2181c0', b'0', 4669), +('47d0b11', b'0', 4670), +('d4e6144', b'0', 4671), +('2b29dfb', b'0', 4672), +('c91081f', b'0', 4673), +('a10c7b7', b'0', 4674), +('00a234f', b'0', 4675), +('085e478', b'0', 4676), +('9a88453', b'0', 4677), +('084d2d2', b'0', 4678), +('c224436', b'0', 4679), +('865336e', b'0', 4680), +('e17aa67', b'0', 4681), +('65b3210', b'0', 4682), +('70453f8', b'0', 4683), +('e93dcfb', b'0', 4684), +('86350a5', b'0', 4685), +('88f8fe0', b'0', 4686), +('4ca53f4', b'0', 4687), +('d7cfe53', b'0', 4688), +('d6687eb', b'0', 4689), +('a840157', b'0', 4690), +('71580fe', b'0', 4691), +('be9216b', b'0', 4692), +('7807dfa', b'0', 4693), +('b20c8b4', b'0', 4694), +('7b53727', b'0', 4695), +('5c40150', b'0', 4696), +('5b05b4b', b'0', 4697), +('eb8dd3a', b'0', 4698), +('4b16b67', b'0', 4699), +('8a357c6', b'0', 4700), +('092c8d2', b'0', 4701), +('f5d0189', b'0', 4702), +('ce0e5c9', b'0', 4703), +('7f3e10f', b'0', 4704), +('ee95801', b'0', 4705), +('f11864a', b'0', 4706), +('bb1cfdc', b'0', 4707), +('8f452e2', b'0', 4708), +('4511a57', b'0', 4709), +('675722c', b'0', 4710), +('fb15f29', b'0', 4711), +('bb25e50', b'0', 4712), +('fa634b0', b'0', 4713), +('28be3f7', b'0', 4714), +('3df4674', b'0', 4715), +('0d65713', b'0', 4716), +('bc49d6a', b'0', 4717), +('8fbb337', b'0', 4718), +('81cdacc', b'0', 4719), +('24f4108', b'0', 4720), +('bf8bbb4', b'0', 4721), +('acbc9ff', b'0', 4722), +('ba05f7d', b'0', 4723), +('1e2b2c2', b'0', 4724), +('0491b1e', b'0', 4725), +('90cbb17', b'0', 4726), +('6faa457', b'0', 4727), +('1d326e7', b'0', 4728), +('b6e9469', b'0', 4729), +('3ac296a', b'0', 4731), +('05ad5e0', b'0', 4732), +('1442153', b'0', 4734), +('80ed28f', b'0', 4735), +('153ea98', b'0', 4736), +('9432fdc', b'0', 4739), +('ca16f69', b'0', 4740), +('3f529b6', b'0', 4741), +('b88baba', b'0', 4742), +('b14ebc2', b'0', 4743), +('d63e43a', b'0', 4744), +('728c79f', b'0', 4745), +('6936fdb', b'0', 4746), +('c76d6b4', b'0', 4747), +('05d746b', b'0', 4748), +('af31fe6', b'0', 4749), +('5f1fddb', b'0', 4750), +('00c980c', b'0', 4751), +('88c3e50', b'0', 4752), +('4f7c22c', b'0', 4753), +('568d5b2', b'0', 4754), +('6650b19', b'0', 4755), +('61bc5ec', b'0', 4756), +('5619410', b'0', 4757), +('e551a45', b'0', 4758), +('875bef2', b'0', 4760), +('95a95ea', b'0', 4761), +('3e8f915', b'0', 4763), +('369164d', b'0', 4764), +('200c241', b'0', 4765), +('6fef8dd', b'0', 4766), +('d73e992', b'0', 4767), +('2eac7b0', b'0', 4768), +('073b44b', b'0', 4770), +('bce9052', b'0', 5775), +('6dc4bb5', b'0', 5777), +('1a030f4', b'0', 5783), +('fc657f9', b'0', 5785), +('1865a0b', b'0', 5788), +('4cbd487', b'0', 5802), +('d0fad67', b'0', 5803), +('6b95d20', b'0', 5805), +('a12a4e9', b'0', 5806), +('bd782af', b'0', 5807), +('5bedee9', b'0', 5808), +('1a58c24', b'0', 5810), +('faed7f5', b'0', 5811), +('a0cbde1', b'0', 5812), +('c1feb33', b'0', 5813), +('ebfe634', b'0', 5814), +('9f04539', b'0', 5815), +('7495b9e', b'0', 5816), +('c46ffe2', b'0', 5817), +('9ec6ad3', b'0', 5818), +('adaf753', b'0', 5821), +('fe88b83', b'0', 5823), +('d83c570', b'0', 5824), +('a2d2386', b'0', 5842), +('f9d108b', b'0', 5843), +('e82df14', b'0', 5848), +('6636acc', b'0', 5855), +('7e85f82', b'0', 5859), +('536a33e', b'0', 5860), +('90b699e', b'0', 5863), +('67aa9c4', b'0', 5866), +('01f3ae2', b'0', 5868), +('859f5dd', b'0', 5871), +('46e1178', b'0', 5872), +('853eb56', b'0', 5873), +('2ca79f0', b'0', 5874), +('7e6f9d2', b'0', 5875), +('181fe92', b'0', 5876), +('01eea0b', b'0', 5877), +('cc3ef93', b'0', 5878), +('8bd93e2', b'0', 5880), +('00494e0', b'0', 5882), +('a11d246', b'0', 5883), +('3757619', b'0', 5885), +('4ccb6b6', b'0', 5886), +('59cbe6b', b'0', 5887), +('57ffe6f', b'0', 5890), +('76eb842', b'0', 5891), +('7c8f251', b'0', 5892), +('cc2e05e', b'0', 5893), +('deb64a5', b'0', 5894), +('74d6b99', b'0', 5896), +('6b5f795', b'0', 5897), +('503463b', b'0', 5899), +('067718e', b'0', 5900), +('9a3723c', b'0', 5901), +('fa28081', b'0', 5902), +('c645af3', b'0', 5903), +('a6f109d', b'0', 5904), +('2c98eb7', b'0', 5905), +('cc93b41', b'0', 5906), +('7779d8b', b'0', 5907), +('a1306c7', b'0', 5908), +('72188b9', b'0', 5910), +('97f0fa4', b'0', 5911), +('23feb2c', b'0', 5912), +('5fd5bca', b'0', 5913), +('317b736', b'0', 5914), +('9223bc2', b'0', 5915), +('490e0a6', b'0', 5916), +('216a8f6', b'0', 5917), +('476b773', b'0', 5921), +('d2799ca', b'0', 5922), +('767931c', b'0', 5923), +('dbbad14', b'0', 5924), +('5ed6fa0', b'0', 5925), +('f6f42f7', b'0', 5926), +('68bd351', b'0', 5927), +('6ba6315', b'0', 5928), +('dfe4598', b'0', 5929), +('5bd7958', b'0', 5930), +('689051f', b'0', 5931), +('0d20d94', b'0', 5932), +('42939d0', b'0', 5933), +('299f303', b'0', 5934), +('3edf22f', b'0', 5935), +('7de5fe4', b'0', 5936), +('3dfec56', b'0', 5937), +('6c6f941', b'0', 5947), +('3b86e15', b'0', 5948), +('7134e3b', b'0', 5949), +('7cbc1b9', b'0', 5950), +('558c8d5', b'0', 5951), +('e081ca3', b'0', 5952), +('88e2ccf', b'0', 5953), +('e3637ab', b'0', 5954), +('5d32cbe', b'0', 5955), +('807a0a1', b'0', 5956), +('08a1de7', b'0', 5957), +('1a887a3', b'0', 5958), +('4985a41', b'0', 5959), +('f4c8e61', b'0', 5960), +('f6ad0e8', b'0', 5961), +('8eff709', b'0', 5962), +('d1b059f', b'0', 5963), +('88581ac', b'0', 5964), +('18b7c80', b'0', 5965), +('5bb049a', b'0', 5966), +('0b244cd', b'0', 5967), +('da24dbb', b'0', 5968), +('b7979e8', b'0', 5969), +('d6c90b2', b'0', 5970), +('8860de8', b'0', 5971), +('d9d4877', b'0', 5972), +('599dd1c', b'0', 5973), +('d2f2529', b'0', 5974), +('6496dcf', b'0', 5975), +('78eacb9', b'0', 5976), +('7231cde', b'0', 5977), +('7ddbcff', b'0', 5978), +('2f728b9', b'0', 5979), +('93fb369', b'0', 5980), +('f5aa6b4', b'0', 5981), +('b59257e', b'0', 5982), +('6b50e2c', b'0', 5983), +('d7676f1', b'0', 5984), +('a76751d', b'0', 5986), +('f5509f3', b'0', 5987), +('79e44ca', b'0', 5988), +('02aeb03', b'0', 5989), +('05f3d38', b'0', 5990), +('526d297', b'0', 5991), +('b9bbb1d', b'0', 5992), +('aab2b12', b'0', 5993), +('a878ce1', b'0', 5994), +('405b9b1', b'0', 5995), +('a889e82', b'0', 5996), +('c8151f2', b'0', 5997), +('9780795', b'0', 5998), +('c335ea3', b'0', 5999), +('ae2ef20', b'0', 6000), +('512a4cb', b'0', 6001), +('dabc808', b'0', 6002), +('7479e47', b'0', 6003), +('d6ff5bb', b'0', 6004), +('49a56af', b'0', 6006), +('aaa63ca', b'0', 6007), +('061445c', b'0', 6008), +('1ef59cb', b'0', 6009), +('893f07e', b'0', 6010), +('aed2fdb', b'0', 6011), +('c46bb51', b'0', 6012), +('576ee7e', b'0', 6013), +('230804d', b'0', 6014), +('18dbad8', b'0', 6016), +('0771f36', b'0', 6017), +('d0e4516', b'0', 6019), +('e880b58', b'0', 6020), +('9cc55d8', b'0', 6021), +('0b49a24', b'0', 6023), +('6cbd722', b'0', 6024), +('3bcb12a', b'0', 6025), +('6e79da7', b'0', 6027), +('ba0044c', b'0', 6029), +('b2108db', b'0', 6031), +('c47f26d', b'0', 6033), +('b9c4aa8', b'0', 6034), +('1b7df50', b'0', 6035), +('f4bbdb7', b'0', 6036), +('366930a', b'0', 6038), +('484d37b', b'0', 6039), +('1c22096', b'0', 6040), +('0fbfad5', b'0', 6041), +('696f335', b'0', 6042), +('4bd9d9f', b'0', 6044), +('1d169f6', b'0', 6045), +('3098917', b'0', 6046), +('e6006c7', b'0', 6047), +('bb4c4e7', b'0', 6048), +('fd5ab42', b'0', 6049), +('89c98d1', b'0', 6050), +('f8b40fd', b'0', 6052), +('3fcf8b6', b'0', 6053), +('0e8e77b', b'0', 6054), +('6916e74', b'0', 6056), +('9c8d40a', b'0', 6057), +('e11e7ac', b'0', 6058), +('ecf648b', b'0', 6059), +('4bcef70', b'0', 6060), +('84a8db0', b'0', 6061), +('ec8ecdc', b'0', 6062), +('6b70669', b'0', 6063), +('a612ffa', b'0', 6064), +('25fbc04', b'0', 6065), +('ebc739a', b'0', 6067), +('cc897dd', b'0', 6069), +('79d7de4', b'0', 6071), +('7c56b22', b'0', 6072), +('c40c10c', b'0', 6073), +('199b5c5', b'0', 6074), +('9c7b1b6', b'0', 6076), +('dc092d3', b'0', 6078), +('159626c', b'0', 6081), +('b919891', b'0', 6083), +('4174155', b'0', 6085), +('3733384', b'0', 6087), +('7781f20', b'0', 6091), +('626703f', b'0', 6094), +('4fcd1f8', b'0', 6097), +('0d1b055', b'0', 6098), +('e4bc63c', b'0', 6108), +('3741212', b'0', 6110), +('930895b', b'0', 6111), +('e4a0471', b'0', 6112), +('d8cbbf3', b'0', 6114), +('a29966e', b'0', 6118), +('5df617e', b'0', 6119), +('7632b5f', b'0', 6124), +('97a601c', b'0', 6125), +('5c9b298', b'0', 6126), +('faa0475', b'0', 6127), +('7e06cdc', b'0', 6128), +('cd5f218', b'0', 6129), +('811b73e', b'0', 6130), +('3703f0e', b'0', 6131), +('2449027', b'0', 6826), +('d6da2d9', b'0', 6829), +('27ba3ec', b'0', 6831), +('a353614', b'0', 6841), +('13ca705', b'0', 6842), +('092d602', b'0', 6843), +('da0ab60', b'0', 6844), +('9ebc6f0', b'0', 6846), +('bb5636c', b'0', 6849), +('fe96b5c', b'0', 6853), +('5878e23', b'0', 6854), +('82a0698', b'0', 6858), +('1716860', b'0', 6859), +('53dcc7b', b'0', 6860), +('1113d10', b'0', 6862), +('1db49a9', b'0', 6863), +('cbd6adb', b'0', 6866), +('7cafefe', b'0', 6868), +('de8ed2a', b'0', 6871), +('f205348', b'0', 6875), +('b8f9ade', b'0', 6877), +('0cc85c2', b'0', 6879), +('fdb3b2f', b'0', 6880), +('88cfe07', b'0', 6884), +('b3cf6aa', b'0', 6886), +('773e77a', b'0', 6889), +('b1a901a', b'0', 6890), +('8ee87ec', b'0', 6891), +('627cf80', b'0', 6895), +('25240d3', b'0', 6897), +('8d7dbf5', b'0', 6898), +('adb283d', b'0', 7462), +('ede895f', b'0', 7465), +('50209dd', b'0', 7467), +('dfee355', b'0', 7471), +('8359cf6', b'0', 7473), +('5bbfd15', b'0', 7474), +('dc2e432', b'0', 7476), +('c93d8df', b'0', 7477), +('c9f649f', b'0', 7479), +('3c1172c', b'0', 7487), +('c8a714c', b'0', 7491), +('1e6d072', b'0', 7493), +('0609590', b'0', 7506), +('4d78af9', b'0', 7507), +('fed5af6', b'0', 7509), +('f9654b7', b'0', 7512), +('b3b230f', b'0', 7515), +('4c69d78', b'0', 7518), +('5ced03f', b'0', 7521), +('d3f15b3', b'0', 7525), +('4a1c9ae', b'0', 7526), +('02f5bbd', b'0', 7527), +('bcca91c', b'0', 7534), +('69da708', b'0', 7536), +('3d35d38', b'0', 7545), +('bb71c84', b'0', 7546), +('16c6a57', b'0', 7547), +('3e0a7b1', b'0', 7549), +('bd63441', b'0', 7551), +('d4debeb', b'0', 7552), +('4cedc63', b'0', 7554), +('204a481', b'0', 7555), +('251e62f', b'0', 7556), +('e3f8ebf', b'0', 7557), +('b613cbc', b'0', 7558), +('ec1aee4', b'0', 7559), +('6b3bc31', b'0', 7561), +('7eddfea', b'0', 7562), +('d19a849', b'0', 7563), +('ead7f64', b'0', 7565), +('abf0c77', b'0', 7567), +('1e82d71', b'0', 7573), +('789d038', b'0', 7574), +('35e1255', b'0', 7575), +('f496854', b'0', 7576), +('60bd2da', b'0', 7578), +('d3dabe7', b'0', 7579), +('6d9b088', b'0', 7581), +('6a5968d', b'0', 7582), +('bfd79e0', b'0', 7583), +('24fca77', b'0', 7584), +('1172983', b'0', 7586), +('4fd315d', b'0', 7587), +('6c053ac', b'0', 7601), +('f3d8e7d', b'0', 7609), +('efc2257', b'0', 7617), +('8f90375', b'0', 7623), +('bedb999', b'0', 7625), +('c5e7ba5', b'0', 7628), +('b9ead6a', b'0', 7630), +('16d4eb2', b'0', 7632), +('5849958', b'0', 7634), +('64f28c6', b'0', 7643), +('4b0fcb8', b'0', 7647), +('f2c7d44', b'0', 7654), +('f86130a', b'0', 7655), +('26d50cc', b'0', 7656), +('2c424c7', b'0', 7657), +('7460ae4', b'0', 7658), +('8d1c6e6', b'0', 7660), +('1995b96', b'0', 7661), +('d3ac05b', b'0', 7663), +('91e9b4d', b'0', 7664), +('aad42e4', b'0', 7665), +('7b71080', b'0', 7666), +('9508f0f', b'0', 7668), +('946058e', b'0', 7670), +('f892db5', b'0', 7672), +('4d0adf1', b'0', 7673), +('365b8ea', b'0', 7674), +('cc21ed5', b'0', 7676), +('45f389e', b'0', 7678), +('43d317f', b'0', 7679), +('587e96f', b'0', 7680), +('0256e69', b'0', 7682), +('7915010', b'0', 7683), +('7b1d754', b'0', 7684), +('94bd0a2', b'0', 7685), +('5da3920', b'0', 7688), +('99b49b8', b'0', 7690), +('4837b99', b'0', 7691), +('3ef0789', b'0', 7695), +('1ca81a8', b'0', 7697), +('bf3b4d3', b'0', 7699), +('dd89889', b'0', 7701), +('84997f6', b'0', 7704), +('8ad6314', b'0', 7708), +('02818aa', b'0', 7710), +('1e4f5c8', b'0', 7712), +('f0bf4c9', b'0', 7713), +('0ceed84', b'0', 7715), +('7be1895', b'0', 7716), +('2b790e0', b'0', 7718), +('3507cb4', b'0', 7720), +('ec20e68', b'0', 7721), +('71d2daa', b'0', 7722), +('00466dc', b'0', 7725), +('10cf0ff', b'0', 7726), +('443415f', b'0', 7727), +('e63c2d6', b'0', 7728), +('a6372cd', b'0', 7730), +('0f5fa69', b'0', 7731), +('c965c93', b'0', 7732), +('ce7807d', b'0', 7734), +('20b37e0', b'0', 7736), +('eff0e3a', b'0', 7737), +('801293f', b'0', 7738), +('24300f6', b'0', 8942), +('ded3088', b'0', 8944), +('343d66a', b'0', 8946), +('1cfcde5', b'0', 8954), +('696f090', b'0', 8961), +('f050935', b'0', 8963), +('9ef136b', b'0', 8965), +('712d78e', b'0', 8966), +('6f6156e', b'0', 8972), +('270950b', b'0', 8973), +('3b6394e', b'0', 8974), +('6cc8364', b'0', 8976), +('12a5a00', b'0', 8977), +('b448f1d', b'0', 8978), +('0e044e4', b'0', 8979), +('8b6777f', b'0', 8980), +('6bdf30f', b'0', 8981), +('908c047', b'0', 8982), +('57b8843', b'0', 8983), +('51c818a', b'0', 8984), +('5b10297', b'0', 8985), +('dcf2668', b'0', 8986), +('34add5e', b'0', 8987), +('4337a26', b'0', 8988), +('767866c', b'0', 8989), +('f81d272', b'0', 8990), +('2ec14ba', b'0', 8991), +('2307b01', b'0', 8992), +('7ba876f', b'0', 8993), +('88f1d4d', b'0', 8994), +('f0e87f7', b'0', 8995), +('34f6bb9', b'0', 8996), +('84b4549', b'0', 8997), +('c89a838', b'0', 8998), +('52268d9', b'0', 8999), +('27d4ee1', b'0', 9000), +('8004e43', b'0', 9001), +('0772aa8', b'0', 9002), +('7bfbf22', b'0', 9003), +('eea0d5e', b'0', 9004), +('de20624', b'0', 9005), +('5bed06b', b'0', 9006), +('bbbfdbb', b'0', 9007), +('da3c392', b'0', 9008), +('caa261d', b'0', 9009), +('1783ec8', b'0', 9010), +('1e8e5bc', b'0', 9011), +('b716722', b'0', 9012), +('59edbad', b'0', 9013), +('6555ad1', b'0', 9014), +('5b81416', b'0', 9015), +('d35ff36', b'0', 9016), +('ec672e3', b'0', 9017), +('ddf4122', b'0', 9018), +('2746005', b'0', 9019), +('853816c', b'0', 9020), +('d8b8c74', b'0', 9021), +('b5e132c', b'0', 9022), +('38f42bb', b'0', 9023), +('b591d02', b'0', 9024), +('ed14fe3', b'0', 9025), +('b04f33a', b'0', 9026), +('666cada', b'0', 9027), +('be24035', b'0', 9030), +('d670d87', b'0', 9031), +('3bae34e', b'0', 9032), +('1d1018d', b'0', 9033), +('579f9cd', b'0', 9034), +('d155e90', b'0', 9035), +('55098db', b'0', 9036), +('b8edf21', b'0', 9038), +('5d0f8ac', b'0', 9046), +('fd4fa4a', b'0', 9047), +('20ecec4', b'0', 9048), +('3fc08f2', b'0', 9049), +('fa91b0c', b'0', 9054), +('82a189f', b'0', 9055), +('97f89a1', b'0', 9056), +('76d9aa0', b'0', 9058), +('1f77dd6', b'0', 9059), +('68f40c6', b'0', 9060), +('1187e87', b'0', 9062), +('cecb438', b'0', 9085), +('9990127', b'0', 9087), +('04a2b5a', b'0', 9089), +('2d12904', b'0', 9094), +('0c31d12', b'0', 9097), +('c3c6747', b'0', 9098), +('70e660a', b'0', 9100), +('3b598b4', b'0', 9101), +('b0d2180', b'0', 9103), +('be63783', b'0', 9104), +('1880fd8', b'0', 9106), +('714acf1', b'0', 9107), +('32566ad', b'0', 9108), +('9387fbe', b'0', 9109), +('80e3b2c', b'0', 9111), +('91f711e', b'0', 9112), +('ead783c', b'0', 9113), +('7021760', b'0', 9115), +('30de2a9', b'0', 9116), +('b3262a4', b'0', 9117), +('c8f3051', b'0', 9119), +('c670802', b'0', 9122), +('2892649', b'0', 9124), +('c35f68b', b'0', 9126), +('2a9b409', b'0', 9130), +('ab468e2', b'0', 9131), +('38ec29b', b'0', 9133), +('342ea08', b'0', 9135), +('43697fe', b'0', 9137), +('587b1c5', b'0', 9138), +('2494ea3', b'0', 9139), +('34baf80', b'0', 9140), +('728f8c5', b'0', 9142), +('41e1575', b'0', 9143), +('489138f', b'0', 9144), +('9540d30', b'0', 9146), +('34cf65c', b'0', 9148), +('527abcc', b'0', 9149), +('627da34', b'0', 9150), +('212d344', b'0', 9151), +('a48642f', b'0', 9156), +('3da0c6f', b'0', 9161), +('9350c44', b'0', 9163), +('ab32aaa', b'0', 9165), +('b332d98', b'0', 9167), +('64bc293', b'0', 9172), +('0919408', b'0', 9175), +('896f0d9', b'0', 9176), +('03c0289', b'0', 9178), +('351696d', b'0', 9180), +('500e20a', b'0', 9182), +('c236b33', b'0', 9184), +('35ba046', b'0', 9185), +('46e957f', b'0', 9186), +('e471b61', b'0', 9187), +('61dcb4b', b'0', 9188), +('6de6ade', b'0', 9189), +('ceb1cdf', b'0', 9190), +('64d5444', b'0', 9191), +('baa0b91', b'0', 9192), +('af43940', b'0', 9193), +('f9e4817', b'0', 9194), +('140dd9a', b'0', 9195), +('24da652', b'0', 9196), +('0a8f54a', b'0', 9197), +('81af427', b'0', 9199), +('3823549', b'0', 9200), +('fc552ac', b'0', 9203), +('68b8422', b'0', 9204), +('d2071ac', b'0', 9206), +('7736e60', b'0', 9207), +('d9f642a', b'0', 9208), +('d14db51', b'0', 9210), +('0c042d0', b'0', 9211), +('9716a3e', b'0', 9213), +('e334a6c', b'0', 9214), +('f81efb9', b'0', 9216), +('0aea532', b'0', 9218), +('9e886dc', b'0', 9219), +('7e70250', b'0', 9220), +('3543e2c', b'0', 9221), +('3692d85', b'0', 9222), +('15a58d5', b'0', 9229), +('70a3df5', b'0', 9231), +('3383982', b'0', 9239), +('4b6b5f1', b'0', 9241), +('63cd0d0', b'0', 9242), +('9ed847c', b'0', 9243), +('afb0cc0', b'0', 9244), +('ea92a5e', b'0', 9246), +('bc0a7bf', b'0', 9253), +('a97f1ce', b'0', 9254), +('a7e0477', b'0', 9256), +('dd652e6', b'0', 9261), +('3c90996', b'0', 9265), +('4e00318', b'0', 9267), +('31e22cb', b'0', 9270), +('495391a', b'0', 9271), +('8f4bd39', b'0', 9273), +('528cc25', b'0', 9275), +('bca5a3a', b'0', 9277), +('33786d3', b'0', 9278), +('fb4803a', b'0', 9280), +('074b0f1', b'0', 9281), +('43cc50a', b'0', 9282), +('753d424', b'0', 9283), +('d6ca840', b'0', 9285), +('4cd05f7', b'0', 9292), +('e46614b', b'0', 9293), +('f720e47', b'0', 9294), +('1527f78', b'0', 9295), +('a60193d', b'0', 9297), +('90d3db2', b'0', 9300), +('72a438f', b'0', 9301), +('ce37814', b'0', 9302), +('498dd74', b'0', 9303), +('8feb175', b'0', 9304), +('084a597', b'0', 9306), +('61ff771', b'0', 9308), +('84bf84e', b'0', 9310), +('0a828a5', b'0', 9311), +('c883131', b'0', 9313), +('1d0806c', b'0', 9314), +('0a2832f', b'0', 9315), +('ac026d7', b'0', 9317), +('2dd5d57', b'0', 9318), +('8b840eb', b'0', 9319), +('5d59961', b'0', 9321), +('d8f6e6f', b'0', 9323), +('30ee79d', b'0', 9325), +('03ccdd6', b'0', 9326), +('d6d75a0', b'0', 9327), +('4e8c0e5', b'0', 9328), +('91c8fbf', b'0', 9329), +('dfe4321', b'0', 9330), +('92764b8', b'0', 9331), +('bc7738c', b'0', 9332), +('dfcface', b'0', 9333), +('3fc22d2', b'0', 9335), +('4cc9056', b'0', 9336), +('2cd29e6', b'0', 9337), +('3ae59f7', b'0', 9338), +('ce22f1f', b'0', 9339), +('173af8f', b'0', 9340), +('63d9aa5', b'0', 9341), +('a0ad4c6', b'0', 10584), +('84937a3', b'0', 10586), +('4d741e6', b'0', 10593), +('de94f06', b'0', 10594), +('758dc66', b'0', 10698), +('7fcbf90', b'0', 10700), +('967b6b0', b'0', 10702), +('b980047', b'0', 10830), +('f37d26f', b'0', 10868), +('79e3d7d', b'0', 10869), +('88849ad', b'0', 10872), +('e25bed1', b'0', 10873), +('a49f803', b'0', 10875), +('898ae07', b'0', 10876), +('cf2c50f', b'0', 10878), +('cc2af2c', b'0', 10879), +('2ff912e', b'0', 10880), +('da5adc1', b'0', 10881), +('0fbdfff', b'0', 10882), +('ff73b3e', b'0', 10883), +('dafbcef', b'0', 10884), +('0696634', b'0', 10885), +('5d232a9', b'0', 10886), +('74b0d2d', b'0', 10887), +('ba65285', b'0', 10889), +('4a601fe', b'0', 10891), +('9202b1b', b'0', 10892), +('5fb1031', b'0', 10893), +('aeb2979', b'0', 10894), +('4d51079', b'0', 10896), +('84f3bb3', b'0', 10898), +('916b86e', b'0', 10899), +('efc1d63', b'0', 10900), +('5ae2696', b'0', 10902), +('a6f3834', b'0', 10904), +('81ff7da', b'0', 10908), +('a6a3acb', b'0', 10909), +('07cf72b', b'0', 10910), +('c940cec', b'0', 10911), +('c670fa2', b'0', 10912), +('a555714', b'0', 10915), +('e608f49', b'0', 10916), +('a07edec', b'0', 10917), +('8ccb98b', b'0', 10918), +('bb29b21', b'0', 10919), +('d2be23a', b'0', 10920), +('98da6ab', b'0', 10921), +('7e0b699', b'0', 10925), +('33943b3', b'0', 10927), +('0736823', b'0', 10928), +('460852d', b'0', 10929), +('663c7de', b'0', 10930), +('c0411a5', b'0', 10935), +('49fd864', b'0', 10937), +('17b140f', b'0', 10938), +('e8ba39e', b'0', 10939), +('53a1899', b'0', 10940), +('4498a86', b'0', 10941), +('f950261', b'0', 10942), +('cdc987d', b'0', 10943), +('c61a2b9', b'0', 10944), +('f58484a', b'0', 10945), +('007ed9c', b'0', 10946), +('58670b8', b'0', 10947), +('a5d16f0', b'0', 10948), +('544f91e', b'0', 10949), +('cc3f39e', b'0', 10950), +('4299159', b'0', 10951), +('e77e4da', b'0', 10953), +('a051159', b'0', 10954), +('0ad0b53', b'0', 10955), +('5394917', b'0', 10956), +('d7ea8c0', b'0', 10958), +('81df4a9', b'0', 10959), +('2b5873b', b'0', 10960), +('fe28c17', b'0', 10961), +('961cd43', b'0', 10962), +('03a2d08', b'0', 10963), +('b639237', b'0', 10964), +('f11a44d', b'0', 10965), +('e3d5fc5', b'0', 10966), +('4bbee80', b'0', 10967), +('f783f25', b'0', 10970), +('3836c99', b'0', 10971), +('4bf1dab', b'0', 10972), +('e941a5a', b'0', 10973), +('e48f57d', b'0', 10975), +('b326465', b'0', 10976), +('47d370e', b'0', 10978), +('171c20d', b'0', 10980), +('13814aa', b'0', 10981), +('0239010', b'0', 10983), +('56837af', b'0', 10984), +('f707752', b'0', 10985), +('115bc96', b'0', 10986), +('f21a274', b'0', 10987), +('cf080b5', b'0', 10988), +('cf40a19', b'0', 10990), +('550556d', b'0', 10991), +('b8fb2f0', b'0', 10992), +('5c81df1', b'0', 10993), +('a282246', b'0', 10994), +('97e5b58', b'0', 10995), +('23cba12', b'0', 10996), +('53fe266', b'0', 10997), +('515eb07', b'0', 10998), +('920327e', b'0', 11002), +('0286c04', b'0', 11003), +('9744d22', b'0', 11004), +('7951e5a', b'0', 11005), +('0c12187', b'0', 11007), +('ab1bb0f', b'0', 11447), +('e8ef87a', b'0', 11449), +('e7d6bdc', b'0', 11454), +('344b1e5', b'0', 11464), +('8e9897d', b'0', 11468), +('6764d27', b'0', 11472), +('61480ba', b'0', 11473), +('41eaf44', b'0', 11474), +('74e290c', b'0', 11479), +('c66c723', b'0', 11481), +('1022273', b'0', 11489), +('ba755e4', b'0', 11491), +('da3feab', b'0', 11493), +('fd04f10', b'0', 11494), +('43bb92a', b'0', 11498), +('2157047', b'0', 11501), +('5d28dbf', b'0', 11505), +('63e3043', b'0', 11506), +('b0d8dc9', b'0', 11508), +('72f7f4f', b'0', 11509), +('086c650', b'0', 11510), +('04674f7', b'0', 11511), +('cbe06ec', b'0', 11512), +('dc0fb92', b'0', 11513), +('147db2d', b'0', 11514), +('74b3ddd', b'0', 11515), +('be94fb8', b'0', 11516), +('40a4673', b'0', 11517), +('741a6c2', b'0', 11518), +('cf8d09f', b'0', 11519), +('0979592', b'0', 11520), +('1ab7902', b'0', 11528), +('34c0b90', b'0', 11529), +('120e7c5', b'0', 11531), +('4c3f70c', b'0', 11533), +('b56b3d9', b'0', 11535), +('3fe6cf3', b'0', 11540), +('01b004b', b'0', 11541), +('e765fd9', b'0', 11543), +('8621313', b'0', 11563), +('9e5780b', b'0', 11564), +('aa8dc95', b'0', 11565), +('c9d533b', b'0', 11566), +('141f421', b'0', 11567), +('d6a69d9', b'0', 11568), +('f2e3793', b'0', 11569), +('c35f345', b'0', 11570), +('656a09a', b'0', 11571), +('06572e8', b'0', 11572), +('e419bd7', b'0', 11573), +('b3f82c1', b'0', 11575), +('fa01418', b'0', 11576), +('45c5ff4', b'0', 11577), +('c4f6e57', b'0', 11578), +('d668e88', b'0', 11580), +('2696c86', b'0', 11582), +('9247d4e', b'0', 11583), +('6141870', b'0', 11586), +('3e4f999', b'0', 11587), +('3c062db', b'0', 11589), +('1bcdcb0', b'0', 11592), +('b711d29', b'0', 11597), +('8075a85', b'0', 11599), +('c0265e9', b'0', 11600), +('f7c3704', b'0', 11602), +('927fb55', b'0', 11607), +('6c51806', b'0', 11609), +('fb354d5', b'0', 11611), +('977060b', b'0', 11614), +('31d7501', b'0', 11615), +('8baafb4', b'0', 11616), +('daab3dc', b'0', 11618), +('83496d8', b'0', 11619), +('4bb8ff6', b'0', 11620), +('1c3121f', b'0', 11621), +('48d7427', b'0', 11622), +('0551cab', b'0', 11623), +('d45e6dd', b'0', 11627), +('df8bb2d', b'0', 11629), +('aee2735', b'0', 11630), +('7a70626', b'0', 11631), +('084eca0', b'0', 11632), +('0edf15e', b'0', 11633), +('0af96ab', b'0', 11635), +('92577cf', b'0', 11636), +('2b1ca67', b'0', 11637), +('c38f4c3', b'0', 11639), +('6337b5e', b'0', 11640), +('b96eedd', b'0', 11641), +('3b397a4', b'0', 11642), +('3b97c44', b'0', 11643), +('82b213a', b'0', 11644), +('5481d35', b'0', 11645), +('8c7d683', b'0', 11646), +('61d1779', b'0', 11647), +('a0691bc', b'0', 11648), +('f55a457', b'0', 11649), +('70f69b4', b'0', 11650), +('2172597', b'0', 11653), +('3dfc8d9', b'0', 11654), +('839dd39', b'0', 11655), +('f5ea2a4', b'0', 11656), +('749ca4c', b'0', 11658), +('7929abb', b'0', 11662), +('76a0a13', b'0', 11668), +('bfa7334', b'0', 11670), +('26e128a', b'0', 11672), +('b2d3e40', b'0', 11674), +('eeaf2e2', b'0', 11676), +('8e93282', b'0', 11678), +('4202b6d', b'0', 11679), +('65603ee', b'0', 11680), +('0218d5c', b'0', 11684), +('af0a94f', b'0', 11686), +('c626554', b'0', 11688), +('693a0a6', b'0', 11690), +('79e22ca', b'0', 11692), +('fe68893', b'0', 11695), +('c9a0c0b', b'0', 11696), +('3faf6a0', b'0', 11697), +('1db002a', b'0', 11698), +('8716927', b'0', 11701), +('d7feebf', b'0', 11703), +('49b1d48', b'0', 11706), +('d24a70e', b'0', 11707), +('54610fa', b'0', 11708), +('279d0c2', b'0', 11710), +('9635619', b'0', 11712), +('c74e9df', b'0', 11717), +('b4965c0', b'0', 11720), +('2fee1bb', b'0', 11724), +('25ec2fa', b'0', 11727), +('a94c210', b'0', 11728), +('9e431e4', b'0', 11729), +('d79e27b', b'0', 11730), +('08cc247', b'0', 11731), +('bcd0894', b'0', 11733), +('b344528', b'0', 11734), +('c9ea9d1', b'0', 11736), +('4c56c41', b'0', 11737), +('b20d653', b'0', 11740), +('aa5975b', b'0', 11741), +('827ef30', b'0', 11742), +('3ce2123', b'0', 11743), +('4e70e39', b'0', 11745), +('7ee8848', b'0', 11746), +('1a71cbc', b'0', 11747), +('dcacbd2', b'0', 11748), +('8ef617c', b'0', 11749), +('31c57ef', b'0', 11750), +('f49916c', b'0', 11751), +('e649306', b'0', 11752), +('609126c', b'0', 11753), +('9f8ab8c', b'0', 11754), +('5900101', b'0', 11755), +('947493d', b'0', 11756), +('2f7ecc0', b'0', 11757), +('deebc8b', b'0', 11758), +('7c1c3ef', b'0', 11759), +('d18bfe8', b'0', 11760), +('dd70ef9', b'0', 11761), +('1a610b2', b'0', 11762), +('aed7681', b'0', 11764), +('63ea46b', b'0', 11765), +('e76ffdb', b'0', 11766), +('df15f2e', b'0', 11767), +('cb8813b', b'0', 11768), +('7b6d8d7', b'0', 11769), +('0be0969', b'0', 11770), +('a30a8a0', b'0', 11771), +('1948fea', b'0', 11772), +('a37ca88', b'0', 11773), +('8bb7ed6', b'0', 11779), +('eadc983', b'0', 11780), +('5f0e5a3', b'0', 11782), +('df6611c', b'0', 11783), +('be36deb', b'0', 11784), +('d2b8346', b'0', 11786), +('04d1fe7', b'0', 11787), +('86b3ae2', b'0', 11788), +('75508ba', b'0', 11789), +('b323292', b'0', 11790), +('6d6a0e4', b'0', 11791), +('d80a647', b'0', 11792), +('a9fb204', b'0', 12886), +('a9e9c15', b'0', 12890), +('4c84792', b'0', 12892), +('36a626d', b'0', 12894), +('1c69708', b'0', 12899), +('6b63077', b'0', 12905), +('a742355', b'0', 12907), +('f4fb743', b'0', 12912), +('fab2885', b'0', 12914), +('38350f5', b'0', 12919), +('8bdaf19', b'0', 12920), +('853bb66', b'0', 12922), +('d149244', b'0', 12923), +('31f896b', b'0', 12927), +('7000e61', b'0', 12929), +('17ad8bc', b'0', 12930), +('98a29e5', b'0', 12932), +('48e9853', b'0', 12935), +('5dd2897', b'0', 12937), +('9b6ff40', b'0', 12938), +('85a6fb4', b'0', 12939), +('d411f14', b'0', 12941), +('8766d43', b'0', 12947), +('56f8e16', b'0', 12950), +('b3c57a7', b'0', 12952), +('9baf5d8', b'0', 12953), +('50c00b4', b'0', 12955), +('7f644de', b'0', 12957), +('9714fae', b'0', 12962), +('81a76db', b'0', 12964), +('0685cdc', b'0', 12965), +('45073ef', b'0', 12967), +('85a3bff', b'0', 12970), +('0319f84', b'0', 12971), +('ae1ff62', b'0', 12973), +('e49f76e', b'0', 12982), +('58c566a', b'0', 12984), +('4492427', b'0', 12986), +('1d137fc', b'0', 12987), +('a2e84e8', b'0', 12989), +('93fff09', b'0', 12992), +('ba8b306', b'0', 13003), +('7638be7', b'0', 13016), +('33d1865', b'0', 13017), +('74a73b3', b'0', 13018), +('9037608', b'0', 13022), +('f7dc407', b'0', 13024), +('8490c92', b'0', 13026), +('6faa5ab', b'0', 13029), +('9baf6c9', b'0', 13030), +('4ce66b5', b'0', 13034), +('b66f682', b'0', 13036), +('b439853', b'0', 13037), +('2cdd3ad', b'0', 13038), +('d8a2496', b'0', 13039), +('14917d3', b'0', 13040), +('5fded91', b'0', 13042), +('bfd6825', b'0', 13043), +('0b43423', b'0', 13044), +('2868bb9', b'0', 13046), +('cfe48a9', b'0', 13047), +('62f55be', b'0', 13051), +('80b3a14', b'0', 13053), +('3a515b9', b'0', 13055), +('295437c', b'0', 13069), +('a75f70f', b'0', 13071), +('26829c2', b'0', 13073), +('417c110', b'0', 13075), +('4d92f98', b'0', 13077), +('4ca4561', b'0', 13078), +('8fc1660', b'0', 13080), +('21d4130', b'0', 13082), +('7d0abe0', b'0', 13083), +('d1e50c3', b'0', 13085), +('e23fdc0', b'0', 13087), +('16c847d', b'0', 13089), +('01a8b70', b'0', 13090), +('58fdf8f', b'0', 13092), +('a47918d', b'0', 13093), +('26342ea', b'0', 13095), +('5206a5d', b'0', 13099), +('b819bfe', b'0', 13101), +('f38b6ac', b'0', 13102), +('f09d9a1', b'0', 13107), +('d50064e', b'0', 13109), +('8db0bbf', b'0', 13111), +('5a4cdc0', b'0', 13113), +('78a2184', b'0', 13115), +('74eac55', b'0', 13117), +('001b955', b'0', 13119), +('cc39413', b'0', 13120), +('403c995', b'0', 13122), +('48131bf', b'0', 13129), +('9e9e8d6', b'0', 13130), +('efcabc4', b'0', 13131), +('d12e5d6', b'0', 13132), +('e8bf26d', b'0', 13134), +('2aa583f', b'0', 13135), +('2583057', b'0', 13137), +('50ee5dd', b'0', 13138), +('10920ea', b'0', 13140), +('621e3fc', b'0', 13143), +('bb2ed5b', b'0', 13144), +('46261c1', b'0', 96130), +('12707d0', b'0', 96134), +('d21706b', b'0', 96137), +('84cd4f0', b'0', 96139), +('de2a094', b'0', 96142), +('578a6c1', b'0', 96147), +('f498f2a', b'0', 96152), +('62b46e1', b'0', 96153), +('cb8ef33', b'0', 96155), +('38cee94', b'0', 96156), +('d310bd3', b'0', 96159), +('d9c603e', b'0', 96160), +('5fab942', b'0', 96161), +('75a0347', b'0', 96165), +('fb31f43', b'0', 96166), +('1cb7aab', b'0', 96167), +('48eb8fa', b'0', 96168), +('c7f2370', b'0', 96169), +('e840b85', b'0', 96175), +('726ceff', b'0', 96178), +('f9685ba', b'0', 96183), +('f8df529', b'0', 96194), +('852c6ca', b'0', 96195), +('00e2164', b'0', 96196), +('6bda3e3', b'0', 96197), +('bb4b906', b'0', 96203), +('50c293d', b'0', 96204), +('6baafaa', b'0', 96209), +('5b46b8b', b'0', 96210), +('cb91e3e', b'0', 96214), +('cb623a2', b'0', 96215), +('995f885', b'0', 96216), +('ddeb2d9', b'0', 96217), +('478871b', b'0', 96219), +('60d718a', b'0', 96220), +('038884c', b'0', 96221), +('3cc3a40', b'0', 96222), +('7dbc0e3', b'0', 96258), +('f432838', b'0', 96259), +('6a6b6e4', b'0', 96260), +('f27e2a6', b'0', 96266), +('64d3384', b'0', 96267), +('8f6e935', b'0', 96268), +('80f5029', b'0', 96269), +('5eb639e', b'0', 96270), +('2a4525a', b'0', 96271), +('b46cca1', b'0', 96272), +('3f4d0ab', b'0', 96273), +('f2b0cee', b'0', 96274), +('cddfe03', b'0', 96275), +('ec98d96', b'0', 96276), +('041a3c7', b'0', 96277), +('d71023d', b'0', 96278), +('32cdebb', b'0', 96279), +('77e279a', b'0', 96280), +('c5e1618', b'0', 96281), +('ddf8f28', b'0', 96282), +('b7e3d35', b'0', 96283), +('b119d9b', b'0', 96284), +('e921277', b'0', 96291), +('5a3e946', b'0', 96292), +('9c53bb3', b'0', 96293), +('1761443', b'0', 96294), +('a3a2874', b'0', 96295), +('1f5a213', b'0', 96296), +('76cfc87', b'0', 96297), +('c70b65c', b'0', 96298), +('c1ef7ad', b'0', 96299), +('35c9d7c', b'0', 96300), +('f470df8', b'0', 96301), +('86304d1', b'0', 96302), +('aa55be2', b'0', 96303), +('277b1db', b'0', 96304), +('8096dcc', b'0', 96305), +('7462f71', b'0', 96306), +('a5e3663', b'0', 96307), +('de1dba1', b'0', 96308), +('9ed7736', b'0', 96309), +('9c77814', b'0', 96310), +('b89bb74', b'0', 96311), +('48405e0', b'0', 96312), +('d8f4c61', b'0', 96313), +('0c904ff', b'0', 96314), +('b3cc0d7', b'0', 96315), +('d0f600e', b'0', 96316), +('f06445a', b'0', 96317), +('5a4c106', b'0', 96318), +('ab0d8f2', b'0', 96319), +('9c49a6f', b'0', 96320), +('5d2624f', b'0', 96321), +('42b952e', b'0', 96322), +('1c295c0', b'0', 96324), +('8b161b0', b'0', 96325), +('970c976', b'0', 96326), +('271dd5f', b'0', 96327), +('590fa18', b'0', 96328), +('ff35994', b'0', 96329), +('31e73c9', b'0', 96330), +('3558012', b'0', 96331), +('09def08', b'0', 96333), +('c9880ef', b'0', 96334), +('d53fd81', b'0', 96335), +('31fd1c9', b'0', 96336), +('05d3a14', b'0', 96337), +('2ead1e8', b'0', 96338), +('66b4db3', b'0', 96339), +('523aa56', b'0', 96341), +('114b09d', b'0', 96342), +('8c7a9b2', b'0', 96343), +('ecde0e3', b'0', 96344), +('df10bef', b'0', 96345), +('39a55c1', b'0', 96347), +('26c05d5', b'0', 96348), +('7e00f3e', b'0', 96349), +('88d7b55', b'0', 96350), +('ba761a6', b'0', 96351), +('b094c41', b'0', 96352), +('86aa402', b'0', 96353), +('d5d1f35', b'0', 96354), +('780adbd', b'0', 96355), +('71e962f', b'0', 96356), +('c7cabcf', b'0', 96357), +('a24a4a5', b'0', 96358), +('fe57602', b'0', 96359), +('571e9e4', b'0', 96360), +('736b902', b'0', 96363), +('c70b763', b'0', 96364), +('40b5d30', b'0', 96365), +('12eb9b8', b'0', 96366), +('972a8d1', b'0', 96367), +('fd8b156', b'0', 96368), +('e000b7b', b'0', 96369), +('cbcccc9', b'0', 96370), +('363db3a', b'0', 96373), +('e4a5fd2', b'0', 96374), +('1e8bb2c', b'0', 96392), +('7926369', b'0', 96393), +('85ae30b', b'0', 96394), +('4dc4db5', b'0', 96395), +('85774b1', b'0', 96396), +('ff8230a', b'0', 96397), +('2a67140', b'0', 96398), +('972d931', b'0', 96399), +('82a132d', b'0', 96400), +('e8e9691', b'0', 96401), +('73a7b00', b'0', 96402), +('7ef8ec5', b'0', 96403), +('6d3641a', b'0', 96404), +('6ecce7d', b'0', 96407), +('402bcf4', b'0', 96408), +('02fb0b7', b'0', 96409), +('f857b5d', b'0', 96410), +('f38517d', b'0', 96411), +('380e85b', b'0', 96425), +('a67124e', b'0', 96428), +('1f35051', b'0', 96431), +('6d28730', b'0', 96436), +('dc9c18e', b'0', 96439), +('44cd2ae', b'0', 96446), +('5a185fb', b'0', 96447), +('3e907ba', b'0', 96448), +('ee504e0', b'0', 96449), +('e10dd87', b'0', 96450), +('040b6c3', b'0', 96451), +('ab558c0', b'0', 96452), +('60988d1', b'0', 96453), +('e3950bf', b'0', 96454), +('26016b9', b'0', 96455), +('98a8f43', b'0', 96456), +('94c4d9c', b'0', 96457), +('a8a1e84', b'0', 96458), +('c5d1b9f', b'0', 96459), +('dc03a68', b'0', 96460), +('5718c11', b'0', 96461), +('c8234d4', b'0', 96462), +('d9e058d', b'0', 96463), +('d8eb545', b'0', 96464), +('9e32497', b'0', 96465), +('b960b77', b'0', 96466), +('22b2d13', b'0', 96467), +('5a4b58c', b'0', 96468), +('9792bb4', b'0', 96469), +('252371e', b'0', 96470), +('fa16e09', b'0', 96471), +('2657dcb', b'0', 96472), +('d5f7345', b'0', 96473), +('31516bf', b'0', 96474), +('63ec6dd', b'0', 96475), +('910f736', b'0', 96476), +('1ac05e0', b'0', 96477), +('6f99a5e', b'0', 96483), +('d51647e', b'0', 96484), +('c102725', b'0', 96485), +('ddca494', b'0', 96487), +('59946e7', b'0', 96488), +('b02a4d9', b'0', 96489), +('f25367d', b'0', 96490), +('b0997c9', b'0', 96492), +('7e8b824', b'0', 96493), +('aa99153', b'0', 96494), +('4a3322d', b'0', 96495), +('a98d6fd', b'0', 96496), +('894fbef', b'0', 96498), +('a0f590c', b'0', 96501), +('d407da7', b'0', 96502), +('7d5cb3d', b'0', 96503), +('c2666af', b'0', 96504), +('1d68907', b'0', 96505), +('828990c', b'0', 96507), +('f375873', b'0', 96508), +('30e6d7e', b'0', 96510), +('3724d2a', b'0', 96511), +('4f2c028', b'0', 96512), +('dc52834', b'0', 96513), +('9d4c87b', b'0', 96514), +('ae53a0a', b'0', 96515), +('1099081', b'0', 96516), +('3580826', b'0', 96517), +('19f1828', b'0', 96518), +('b08c58b', b'0', 96519), +('1833304', b'0', 96520), +('26702bc', b'0', 96521), +('b0efcc5', b'0', 96522), +('03d453c', b'0', 96523), +('4185bd5', b'0', 96524), +('e6a188c', b'0', 96526), +('a43d88f', b'0', 96527), +('4caa34a', b'0', 96528), +('dfb4319', b'0', 96529), +('2fc1525', b'0', 96530), +('977c9e1', b'0', 96531), +('0cbaacf', b'0', 96532), +('15e81dc', b'0', 96536), +('3b02f76', b'0', 96537), +('d94f068', b'0', 96538), +('3bf786c', b'0', 96539), +('47670a2', b'0', 96540), +('a527ffa', b'0', 96541), +('8d71ff9', b'0', 96543), +('fb66c01', b'0', 96544), +('3b8aa50', b'0', 96545), +('5dfd0a1', b'0', 96546), +('7169e03', b'0', 96547), +('f777762', b'0', 96548), +('b908907', b'0', 96549), +('9989f4f', b'0', 96550), +('b8d1e22', b'0', 96551), +('bd3b51d', b'0', 96552), +('ff0c5e8', b'0', 96553), +('f5dd8b8', b'0', 96554), +('09b2ce6', b'0', 96555), +('d6529ea', b'0', 96556), +('564dea6', b'0', 96557), +('b339783', b'0', 96558), +('9efb50f', b'0', 96559), +('606509e', b'0', 96560), +('2dfee3e', b'0', 96561), +('b1349cc', b'0', 96562), +('bfd3111', b'0', 96563), +('3cdebfa', b'0', 96564), +('90f0bc6', b'0', 96565), +('1264038', b'0', 96566), +('4a5e0ca', b'0', 96569), +('e9665c3', b'0', 96570), +('5e4a57a', b'0', 96571), +('c31ea7a', b'0', 96572), +('5d51d37', b'0', 96573), +('93826df', b'0', 96575), +('8b457c2', b'0', 96576), +('efb5d3e', b'0', 96577), +('b932896', b'0', 96578), +('e7dd47c', b'0', 96579), +('5c5e2ad', b'0', 96580), +('26879df', b'0', 96581), +('322da98', b'0', 96582), +('b2f3086', b'0', 96583), +('826cfe6', b'0', 96584), +('3fd9464', b'0', 96585), +('918ebe5', b'0', 96586), +('2d93cc3', b'0', 96587), +('04da701', b'0', 96588), +('39a4d8d', b'0', 96589), +('ba32368', b'0', 96590), +('f356dba', b'0', 96591), +('6c4b4fe', b'0', 96592), +('c0293d1', b'0', 96593), +('dfd85b7', b'0', 96602), +('56a4ba1', b'0', 96603), +('eacf887', b'0', 96604), +('368fe7d', b'0', 96605), +('cb01ac7', b'0', 96606), +('d17445b', b'0', 96607), +('057aec5', b'0', 96608), +('068afb4', b'0', 96609), +('bf04701', b'0', 96610), +('40352ad', b'0', 96611), +('e028259', b'0', 96612), +('bc05c4f', b'0', 96613), +('28bbd13', b'0', 96614), +('3fc66eb', b'0', 96615), +('9b1290c', b'0', 96616), +('fa973e5', b'0', 96617), +('941a2ec', b'0', 96618), +('2e82a2e', b'0', 96619), +('ec06de9', b'0', 96620), +('51852ec', b'0', 96621), +('fe4f86b', b'0', 96622), +('8870e93', b'0', 96624), +('e8676cd', b'0', 96625), +('a49d3fb', b'0', 96626), +('9f90fef', b'0', 96627), +('925d7e1', b'0', 96628), +('9134f02', b'0', 96631), +('22d5095', b'0', 96634), +('706ae51', b'0', 96635), +('dda95de', b'0', 96636), +('56e3443', b'0', 96637), +('6eae14b', b'0', 96638), +('12a140b', b'0', 96639), +('a3ee478', b'0', 96640), +('ab5e7e5', b'0', 96641), +('02f198d', b'0', 96642), +('db421d9', b'0', 96643), +('eceb5d9', b'0', 96644), +('ef2737e', b'0', 96645), +('05189ee', b'0', 96646), +('c2e4b09', b'0', 96647), +('1cc7251', b'0', 96654), +('2381aeb', b'0', 96655), +('053679c', b'0', 96656), +('ac5c4df', b'0', 96657), +('6a02c1e', b'0', 96658), +('87a9fa9', b'0', 96659), +('8da1864', b'0', 96660), +('7632ff3', b'0', 96661), +('8aa6a22', b'0', 96662), +('daa5cf0', b'0', 96663), +('1d6b057', b'0', 96664), +('89f2388', b'0', 96665), +('b2c445f', b'0', 96666), +('c96e5e9', b'0', 96667), +('fc1f8ea', b'0', 96668), +('6ed3089', b'0', 96669), +('ce7d7a0', b'0', 97487), +('c941305', b'0', 97488), +('94516f3', b'0', 97489), +('ac51ae8', b'0', 97490), +('25beca5', b'0', 97491), +('6f5939a', b'0', 97492), +('d78e134', b'0', 97493), +('bedb60d', b'0', 97494), +('13d76e3', b'0', 97496), +('2e2e1b1', b'0', 97497), +('d774bc3', b'0', 97498), +('c48feff', b'0', 97499), +('e76b9f4', b'0', 97500), +('ff3fe8e', b'0', 97501), +('0071a21', b'0', 97502), +('45144a7', b'0', 97503), +('f54e99c', b'0', 97504), +('d72c667', b'0', 97505), +('99adcf5', b'0', 97506), +('2abd9ea', b'0', 97507), +('36449b1', b'0', 97508), +('967a99d', b'0', 97509), +('3f30527', b'0', 97510), +('b2df550', b'0', 97511), +('66d47db', b'0', 97512), +('0a7514a', b'0', 97513), +('fbdd920', b'0', 97514), +('1496910', b'0', 97515), +('dbc6b92', b'0', 97516), +('60a796b', b'0', 97517), +('32cff51', b'0', 97518), +('731226c', b'0', 97519), +('a8f5454', b'0', 97520), +('42ac0e4', b'0', 97521), +('bc6317f', b'0', 97522), +('4b8f620', b'0', 97523), +('b1d5e36', b'0', 97524), +('c9f5323', b'0', 97525), +('d38e967', b'0', 97526), +('410bc2a', b'0', 97527), +('da93ff1', b'0', 97528), +('424cc70', b'0', 97529), +('8958196', b'0', 97532), +('3e86ff5', b'0', 97533), +('8e1291e', b'0', 97534), +('e13ba3b', b'0', 97535), +('383ccfc', b'0', 97536), +('c427fa9', b'0', 97537), +('fe0a5f6', b'0', 97538), +('0a35a36', b'0', 97539), +('3f14dac', b'0', 97540), +('65732a7', b'0', 97542), +('0edf2ed', b'0', 97543), +('789f9bc', b'0', 97544), +('ace4988', b'0', 97545), +('8dc47ac', b'0', 97546), +('47b28cc', b'0', 97549), +('9c8899b', b'0', 97550), +('013dac4', b'0', 97551), +('ba2b5dc', b'0', 97552), +('1645ab8', b'0', 97553), +('1374d55', b'0', 97554), +('db13425', b'0', 97555), +('ef36c36', b'0', 97556), +('887728f', b'0', 97558), +('354f680', b'0', 97559), +('5492920', b'0', 97560), +('58547d6', b'0', 97561), +('b1e2663', b'0', 97562), +('85ae255', b'0', 97563), +('7d1a3fd', b'0', 97564), +('0b17961', b'0', 97565), +('a20ea59', b'0', 97566), +('368dd4f', b'0', 97567), +('e034306', b'0', 97576), +('e8711ad', b'0', 97578), +('bc63759', b'0', 97579), +('7fa48a9', b'0', 97580), +('4882938', b'0', 97581), +('57dd3dc', b'0', 97582), +('b33621c', b'0', 97583), +('f523007', b'0', 97585), +('86ba8c2', b'0', 97587), +('749d5b1', b'0', 97588), +('2b89271', b'0', 97589), +('c71f2db', b'0', 97590), +('00ecfc7', b'0', 97591), +('c0b45dc', b'0', 97592), +('5b55050', b'0', 97593), +('d7cb197', b'0', 97594), +('804f2e3', b'0', 97595), +('e9dd439', b'0', 97596), +('9f08d0b', b'0', 97597), +('2e1d3f9', b'0', 97598), +('1b45ef9', b'0', 97599), +('987ad6e', b'0', 97600), +('3654cd4', b'0', 97601), +('7eb3edd', b'0', 97602), +('ef9b0ce', b'0', 97603), +('bf27f1a', b'0', 97604), +('f8112e1', b'0', 97605), +('f9dd429', b'0', 97606), +('f1cacc0', b'0', 97607), +('021e248', b'0', 97608), +('f832c2c', b'0', 97609), +('1991bfb', b'0', 97610), +('916ebb6', b'0', 97611), +('2d24fa5', b'0', 97612), +('2b7194f', b'0', 97613), +('589ba9a', b'0', 97614), +('fb6019c', b'0', 97615), +('909651d', b'0', 97616), +('cd2d3f4', b'0', 97617), +('3a47599', b'0', 97618), +('9b9daba', b'0', 97619), +('1551d1a', b'0', 97620), +('31038b3', b'0', 97621), +('69e62b7', b'0', 97622), +('73220d0', b'0', 97623), +('25799aa', b'0', 97624), +('c67fc64', b'0', 97625), +('05dca3c', b'0', 97626), +('d97228d', b'0', 97627), +('8a949be', b'0', 97628), +('8248118', b'0', 97629), +('6f7b263', b'0', 97630), +('e9da4c4', b'0', 97631), +('e2916c6', b'0', 97632), +('de66814', b'0', 97633), +('6c77194', b'0', 97634), +('83272f2', b'0', 97635), +('f09ae6d', b'0', 97636), +('ad91222', b'0', 97637), +('590cb50', b'0', 97638), +('449f970', b'0', 97639), +('25c4512', b'0', 97640), +('1c03bb5', b'0', 97641), +('7cdb6cd', b'0', 97642), +('37dc16c', b'0', 97644), +('9902c86', b'0', 97645), +('e29ee0e', b'0', 97646), +('e82f6fe', b'0', 97647); +INSERT INTO `commit` (`identifier`, `isRelease`, `id`) VALUES +('df90b5f', b'0', 97648), +('f131744', b'0', 97649), +('02bf5ff', b'0', 97650), +('017e9f5', b'0', 97651), +('522b446', b'0', 97652), +('2702ffe', b'0', 97653), +('739b8fa', b'0', 97654), +('727492c', b'0', 97655), +('d716c8c', b'0', 97656), +('d21a380', b'0', 97657), +('d0d81c9', b'0', 97658), +('dbee531', b'0', 97659), +('185f657', b'0', 97661), +('0537810', b'0', 97663), +('6c96f37', b'0', 97664), +('c1adb54', b'0', 97665), +('a8984cd', b'0', 97666), +('48e075f', b'0', 97668), +('3930799', b'0', 97670), +('573c404', b'0', 97671), +('d8dcbb3', b'0', 97672), +('250d81f', b'0', 97673), +('61acbdd', b'0', 97674), +('1c60777', b'0', 97675), +('740e845', b'0', 97676), +('b43b065', b'0', 97734), +('bab746a', b'0', 97735), +('9077c4b', b'0', 97736), +('ce51fc9', b'0', 97738), +('a11d5da', b'0', 97739), +('34cbd1a', b'0', 97740), +('b6ad06b', b'0', 97742), +('153b538', b'0', 97744), +('a115eee', b'0', 97745), +('c5c983c', b'0', 97746), +('c5de416', b'0', 97749), +('cdfe164', b'0', 97751), +('9d01b6d', b'0', 97752), +('cfede2e', b'0', 97759), +('bb4f1a8', b'0', 97760), +('2d94b28', b'0', 97761), +('9efb437', b'0', 97762), +('7e92f6c', b'0', 97763), +('d4ab8b3', b'0', 97764), +('6ea73de', b'0', 97765), +('ffe5720', b'0', 97766), +('5fac0af', b'0', 97767), +('32747a2', b'0', 97768), +('5ee0d16', b'0', 97769), +('9b97984', b'0', 97770), +('89fb80f', b'0', 97771), +('9217641', b'0', 97772), +('4f8c6c9', b'0', 97774), +('983e751', b'0', 97775), +('b28a43f', b'0', 97776), +('c6d9e46', b'0', 97777), +('3f94af2', b'0', 97778), +('bcd7e35', b'0', 97780), +('9078b7d', b'0', 97781), +('4325414', b'0', 97782), +('6f30725', b'0', 97783), +('ed5f476', b'0', 97784), +('1570bea', b'0', 97785), +('36f3da4', b'0', 97786), +('f5394a7', b'0', 97787), +('8c6ef38', b'0', 97788), +('26463fd', b'0', 97789), +('0b09179', b'0', 97791), +('4c438e0', b'0', 97792), +('f0c9f9f', b'0', 97793), +('09614f6', b'0', 97794), +('a388630', b'0', 97795), +('2f412ca', b'0', 97796), +('b8f4b9c', b'0', 97797), +('1b7d9b9', b'0', 97798), +('3821b5e', b'0', 97799), +('596f4b9', b'0', 97800), +('c8d208f', b'0', 97801), +('09cc515', b'0', 97802), +('6965aea', b'0', 97803), +('d9d99cd', b'0', 97804), +('f024962', b'0', 97805), +('d367a70', b'0', 97807), +('1537f4b', b'0', 97808), +('1233143', b'0', 97809), +('2b0acbe', b'0', 97810), +('8d7d3f8', b'0', 97811), +('e81deb0', b'0', 97812), +('29ded54', b'0', 97813), +('aef496f', b'0', 97815), +('d283c12', b'0', 97816), +('22e368c', b'0', 97817), +('14a8567', b'0', 97818), +('d68051c', b'0', 97819), +('c591e12', b'0', 97820), +('139f493', b'0', 97821), +('5ce2454', b'0', 97823), +('4c973cf', b'0', 97824), +('e409cf3', b'0', 97825), +('815a37b', b'0', 97826), +('35b412d', b'0', 97827), +('6424563', b'0', 97828), +('4bfe480', b'0', 97829), +('0bfc661', b'0', 97830), +('fa2c2b3', b'0', 97831), +('626d547', b'0', 97832), +('9877247', b'0', 97834), +('ca8c657', b'0', 97835), +('50d9b37', b'0', 97836), +('4259f96', b'0', 97837), +('b852072', b'0', 97838), +('db683d5', b'0', 97839), +('bca0501', b'0', 97840), +('0127526', b'0', 97841), +('696c2f2', b'0', 97842), +('ac5c9f4', b'0', 97844), +('4595f2c', b'0', 97845), +('d677dac', b'0', 97846), +('cd010a0', b'0', 97847), +('e13a70a', b'0', 97848), +('7107070', b'0', 97849), +('22c05c3', b'0', 97850), +('90ae849', b'0', 97851), +('ff1612d', b'0', 97852), +('21a2a53', b'0', 97853), +('2ddaf8a', b'0', 97854), +('926165c', b'0', 97855), +('ef12880', b'0', 97856), +('b2262b1', b'0', 97857), +('2f59324', b'0', 97858), +('c1631e6', b'0', 97859), +('332c64e', b'0', 97860), +('4e103f4', b'0', 97861), +('b6984de', b'0', 97863), +('b3a311e', b'0', 97864), +('af5315e', b'0', 97865), +('6405279', b'0', 97866), +('3457ac0', b'0', 97867), +('67df4e7', b'0', 97868), +('64cdfcd', b'0', 97869), +('157a4ee', b'0', 97870), +('e8a03c0', b'0', 97871), +('fb7d67a', b'0', 97872), +('fed587e', b'0', 97873), +('23dad72', b'0', 97874), +('485c682', b'0', 97875), +('bc8d799', b'0', 97876), +('a248e4e', b'0', 97877), +('34d6bb9', b'0', 97878), +('19c56c5', b'0', 97879), +('ffb9f26', b'0', 97880), +('8f2d7a0', b'0', 97881), +('bce9602', b'0', 97882), +('4883b2e', b'0', 97883), +('7825375', b'0', 97884), +('8acb411', b'0', 97885), +('9040fdf', b'0', 97886), +('698edda', b'0', 97887), +('dc1c705', b'0', 97889), +('705578d', b'0', 97890), +('5465693', b'0', 97891), +('b305e52', b'0', 97892), +('758b5cf', b'0', 97893), +('a814ec5', b'0', 97894), +('0cad0f0', b'0', 97895), +('af45b25', b'0', 97896), +('747217c', b'0', 97897), +('b6b6bd1', b'0', 97898), +('373d71f', b'0', 97899), +('f4a4e22', b'0', 97900), +('4b5a22d', b'0', 97901), +('ab55e0f', b'0', 97902), +('6aad989', b'0', 97903), +('eb03ee9', b'0', 97904), +('3072abf', b'0', 97905), +('ec3884b', b'0', 97906), +('fc1382d', b'0', 97908), +('dcd582b', b'0', 97909), +('7a650ee', b'0', 97910), +('78f95d1', b'0', 97911), +('a9d380b', b'0', 97912), +('1eb6f3e', b'0', 97913), +('d0d2bcc', b'0', 97914), +('2d6aafb', b'0', 97915), +('1e5ac30', b'0', 97916), +('11a4a13', b'0', 97917), +('0015c68', b'0', 97918), +('f19b47a', b'0', 97919), +('6befe89', b'0', 97925), +('7aa071b', b'0', 97926), +('8912a2d', b'0', 97927), +('b7ce867', b'0', 97929), +('7f00d72', b'0', 97930), +('a73d2d3', b'0', 97932), +('57d3f92', b'0', 97933), +('d976c1a', b'0', 97934), +('c3d0bf1', b'0', 97935), +('d1f510e', b'0', 97936), +('3f80539', b'0', 97937), +('c9bfbf9', b'0', 97938), +('96f481c', b'0', 97939), +('c8d2672', b'0', 97940), +('1259a0b', b'0', 97941), +('9dc0758', b'0', 97942), +('cd6f249', b'0', 97943), +('ce98077', b'0', 97944), +('1a5f744', b'0', 97945), +('6bc6c76', b'0', 97946), +('5f263ef', b'0', 97947), +('353c7ee', b'0', 97948), +('e68a9cc', b'0', 97949), +('84d56e7', b'0', 97950), +('9e40759', b'0', 97951), +('802b0bc', b'0', 97952), +('0873cd2', b'0', 97953), +('71f6ded', b'0', 97954), +('71f3ccf', b'0', 97955), +('f71571b', b'0', 97956), +('7e10a9a', b'0', 97957), +('67a9998', b'0', 97959), +('65b839e', b'0', 97960), +('491c5b0', b'0', 97961), +('3774098', b'0', 97962), +('1695935', b'0', 97963), +('03e95b1', b'0', 97965), +('20d5b9e', b'0', 97966), +('651bb48', b'0', 97967), +('0233dbb', b'0', 97968), +('38d5b57', b'0', 97969), +('c42b891', b'0', 97970), +('6df5154', b'0', 97972), +('505e32d', b'0', 97973), +('0b304d5', b'0', 97974), +('1e57ea2', b'0', 97975), +('411a264', b'0', 97976), +('db0a206', b'0', 97977), +('c5b4edb', b'0', 97978), +('0b1e4d3', b'0', 97979), +('83d5358', b'0', 97980), +('e14ffdb', b'0', 97981), +('f3adda2', b'0', 97983), +('cac3c78', b'0', 97984), +('3e400b0', b'0', 97985), +('3058531', b'0', 97986), +('0163378', b'0', 97987), +('a4cb41d', b'0', 97988), +('fef8adb', b'0', 97989), +('8a8abb9', b'0', 97992), +('8ea9499', b'0', 97993), +('99811cb', b'0', 97994), +('b0b86a9', b'0', 97995), +('56a6ba8', b'0', 97996), +('c881482', b'0', 97997), +('7b36b35', b'0', 97998), +('c585ce1', b'0', 97999), +('97cd91b', b'0', 98000), +('4c0ebba', b'0', 98001), +('de4c61d', b'0', 98002), +('eeab3a8', b'0', 98003), +('2c71154', b'0', 98004), +('e75a388', b'0', 98005), +('02b7512', b'0', 98006), +('2bb6768', b'0', 98007), +('4251044', b'0', 98008), +('7744295', b'0', 98009), +('c143da5', b'0', 98010), +('b8b8d7d', b'0', 98011), +('3993135', b'0', 98012), +('77d5c7e', b'0', 98013), +('3904519', b'0', 98015), +('1e769a6', b'0', 98016), +('963e047', b'0', 98017), +('2c74748', b'0', 98018), +('6152b8b', b'0', 98019), +('45ca2c9', b'0', 98020), +('b7845e3', b'0', 98021), +('5e356e7', b'0', 98022), +('d2c15ee', b'0', 98023), +('f0c455d', b'0', 98024), +('0cbb015', b'0', 98025), +('6345380', b'0', 98026), +('0b965bf', b'0', 98027), +('9c90725', b'0', 98028), +('8dfeafd', b'0', 98373), +('0cad4e8', b'0', 98374), +('61135ce', b'0', 98375), +('c10bfff', b'0', 98376), +('37c1df8', b'0', 98377), +('454151c', b'0', 98378), +('49fd0cf', b'0', 98379), +('055a2d4', b'0', 98380), +('ca55821', b'0', 98381), +('1873a65', b'0', 98382), +('f00c262', b'0', 98384), +('86a0583', b'0', 98385), +('459b71c', b'0', 98386), +('75c785f', b'0', 98387), +('6f58d5b', b'0', 98388), +('b1d027b', b'0', 98389), +('d0ab3c5', b'0', 98390), +('58d3e3d', b'0', 98391), +('763f1ca', b'0', 98392), +('49c24ed', b'0', 98393), +('3f15281', b'0', 98394), +('dda54fe', b'0', 98395), +('c2a5ab9', b'0', 98396), +('2dc703c', b'0', 98397), +('1da36f9', b'0', 98398), +('c5b3999', b'0', 98399), +('f3b9ac4', b'0', 98400), +('92e9dad', b'0', 98401), +('bee2adc', b'0', 98402), +('47c777f', b'0', 98403), +('12c6d3d', b'0', 98404), +('04ff0a1', b'0', 98405), +('ee514e0', b'0', 98406), +('a0f73ee', b'0', 98407), +('5cd2658', b'0', 98408), +('abb0c07', b'0', 98409), +('b8a0f67', b'0', 98410), +('dd6a700', b'0', 98411), +('42b962d', b'0', 98412), +('974c7fb', b'0', 98414), +('1cb81ef', b'0', 98417), +('97be6d8', b'0', 98418), +('c83bfbd', b'0', 98419), +('85f4463', b'0', 98420), +('a74a6b5', b'0', 98421), +('4f0aa97', b'0', 98422), +('2b2fed2', b'0', 98423), +('55e6387', b'0', 98424), +('54f0087', b'0', 98425), +('37c1a87', b'0', 98426), +('07c65a0', b'0', 98427), +('318fc7d', b'0', 98429), +('2cf8999', b'0', 98430), +('4e16884', b'0', 98431), +('eb968f5', b'0', 98432), +('da9bf4c', b'0', 98433), +('dd1a91f', b'0', 98434), +('47b4f65', b'0', 98435), +('100bf7b', b'0', 98436), +('ebc2531', b'0', 98437), +('0d8784e', b'0', 98438), +('0838841', b'0', 98439), +('7f8fade', b'0', 98440), +('8c267ca', b'0', 98441), +('c2bcf24', b'0', 98442), +('a4ad5b8', b'0', 98443), +('bd517ee', b'0', 98444), +('0587ced', b'0', 98445), +('aaa8353', b'0', 98447), +('6e9b6a3', b'0', 98451), +('bc98f5f', b'0', 98452), +('5288b21', b'0', 98453), +('67c9ef1', b'0', 98454), +('b2674fb', b'0', 98455), +('5cf92b8', b'0', 98456), +('1060946', b'0', 98457), +('8b152b2', b'0', 98458), +('217ca01', b'0', 98459), +('345f687', b'0', 98460), +('a90badb', b'0', 98462), +('91de8fd', b'0', 98463), +('4dceb46', b'0', 98464), +('2421365', b'0', 98465), +('783ec99', b'0', 98466), +('e281388', b'0', 98467), +('df08ef2', b'0', 98468), +('8b80007', b'0', 98469), +('59297da', b'0', 98470), +('b7f68b6', b'0', 98471), +('27f9d77', b'0', 98472), +('41d343a', b'0', 98473), +('a921e10', b'0', 98474), +('f787c13', b'0', 98475), +('281dd74', b'0', 98476), +('9e8dec1', b'0', 98477), +('0d1c0a9', b'0', 98478), +('3d5655b', b'0', 98479), +('918caa7', b'0', 98480), +('7ba17f2', b'0', 98481), +('7e67734', b'0', 98482), +('4b77938', b'0', 98483), +('f27893f', b'0', 98484), +('e0cd438', b'0', 98485), +('689a222', b'0', 98486), +('98e4999', b'0', 98487), +('01e907a', b'0', 98488), +('9ff6f22', b'0', 98490), +('ac1036e', b'0', 98491), +('770dd43', b'0', 98492), +('1859a9d', b'0', 98493), +('7af6823', b'0', 98494), +('64e0d49', b'0', 98495), +('4d1be1b', b'0', 98496), +('a2bd6bb', b'0', 98497), +('1dc603e', b'0', 98498), +('dd6f629', b'0', 98499), +('da3fc82', b'0', 98500), +('a884791', b'0', 98501), +('a18b1ac', b'0', 98502), +('b9a8851', b'0', 98503), +('49d2df1', b'0', 98504), +('2374249', b'0', 98505), +('6b83943', b'0', 98506), +('5c6f65d', b'0', 98507), +('bfa7d35', b'0', 98508), +('0b86bf4', b'0', 98509), +('8528a63', b'0', 98510), +('9b62268', b'0', 98511), +('f7871b1', b'0', 98512), +('844c31f', b'0', 98513), +('6223948', b'0', 98514), +('86b3497', b'0', 98515), +('1fab6fd', b'0', 98517), +('aa58840', b'0', 98518), +('7285526', b'0', 98520), +('b86cca0', b'0', 98521), +('a3600ec', b'0', 98524), +('d715667', b'0', 98526), +('64c62e6', b'0', 98527), +('3174edf', b'0', 98531), +('6acf66a', b'0', 98532), +('c995ab2', b'0', 98533), +('5534e74', b'0', 98534), +('0515c80', b'0', 98535), +('4231410', b'0', 98536), +('e9cd536', b'0', 98537), +('4eed760', b'0', 98538), +('9a290ec', b'0', 98539), +('4782b1f', b'0', 98540), +('f656af8', b'0', 98541), +('4633948', b'0', 98542), +('ee595cb', b'0', 98543), +('4b6e0a3', b'0', 98544), +('0989a5c', b'0', 98545), +('a7f0ab7', b'0', 98546), +('5245c6e', b'0', 98547), +('608b650', b'0', 98548), +('db2770c', b'0', 98549), +('099462c', b'0', 98550), +('d89fa54', b'0', 98551), +('e5e5535', b'0', 98552), +('d9e0ed7', b'0', 98553), +('130f384', b'0', 98554), +('5c19d70', b'0', 98555), +('44985bb', b'0', 98556), +('56afb7e', b'0', 98557), +('0d9f6d8', b'0', 98558), +('d1ec4df', b'0', 98559), +('98d21fa', b'0', 98560), +('5fcf957', b'0', 98561), +('a1624bc', b'0', 98562), +('c27be35', b'0', 98563), +('eb24d25', b'0', 98564), +('64b6de4', b'0', 98565), +('d9fc4f3', b'0', 98566), +('4d3a46c', b'0', 98567), +('cb31e32', b'0', 98568), +('daac9fb', b'0', 98569), +('2ed40c4', b'0', 98570), +('8aa335e', b'0', 98571), +('11f5ecd', b'0', 98572), +('8460bbc', b'0', 98573), +('fae6643', b'0', 98574), +('8c61a3b', b'0', 98575), +('9c8baac', b'0', 98576), +('b51e505', b'0', 98577), +('5952414', b'0', 98578), +('57ab023', b'0', 98579), +('f10e6f6', b'0', 98581), +('99cc6a7', b'0', 98582), +('8a0dd45', b'0', 98583), +('14162fb', b'0', 98584), +('38207e7', b'0', 98585), +('4860974', b'0', 98586), +('e3d3721', b'0', 98587), +('798ed8b', b'0', 98588), +('73ad938', b'0', 98589), +('defe8ed', b'0', 98590), +('17a81ca', b'0', 98591), +('5e91322', b'0', 98592), +('20da8f8', b'0', 98593), +('d25d5ae', b'0', 98594), +('e8806e9', b'0', 98595), +('76e80d9', b'0', 98596), +('b4531e0', b'0', 98597), +('9877fba', b'0', 98598), +('94838db', b'0', 98599), +('e542d8f', b'0', 98600), +('db70482', b'0', 98601), +('10d6f6d', b'0', 98602), +('437be4d', b'0', 98603), +('d8b7143', b'0', 98604), +('09507f9', b'0', 98605), +('125d543', b'0', 98606), +('72718d6', b'0', 98607), +('07afa9a', b'0', 98608), +('6c55983', b'0', 98609), +('a7b2e82', b'0', 98610), +('1cf6b42', b'0', 98611), +('7e9b9a9', b'0', 98613), +('6c54ba9', b'0', 98614), +('8965401', b'0', 98615), +('7cd68ea', b'0', 98616), +('a280f8b', b'0', 98617), +('7432267', b'0', 98618), +('50deb0d', b'0', 98619), +('5bb402e', b'0', 98620), +('eab6a3c', b'0', 98621), +('829627c', b'0', 98622), +('da56489', b'0', 98623), +('b0e98b6', b'0', 98624), +('3b98b42', b'0', 98625), +('04f32bb', b'0', 98626), +('a703bbd', b'0', 98629), +('b34f07f', b'0', 98632), +('3ca7dc3', b'0', 98633), +('02f295f', b'0', 98634), +('d9b7745', b'0', 98644), +('b1d636b', b'0', 98646), +('6f9078f', b'0', 98648), +('4a1f9e7', b'0', 98649), +('6ecbf2e', b'0', 98650), +('ec35b36', b'0', 98653), +('0f325a9', b'0', 98654), +('5c362a9', b'0', 98656), +('864cc17', b'0', 98657), +('1d661af', b'0', 98659), +('4546780', b'0', 98661), +('7a2a978', b'0', 98662), +('9c8f602', b'0', 98663), +('dfe17d5', b'0', 98664), +('63f6d7e', b'0', 98665), +('bb3f412', b'0', 98666), +('dedea7c', b'0', 98667), +('8c00cba', b'0', 98668), +('46de42c', b'0', 98669), +('d54afb0', b'0', 98670), +('3a6fa56', b'0', 98671), +('babac37', b'0', 98673), +('b4689eb', b'0', 98674), +('02a66ce', b'0', 98675), +('d3077cf', b'0', 98676), +('a8b0bc2', b'0', 99195), +('399b2e5', b'0', 99198), +('93f1658', b'0', 99200), +('6505bc0', b'0', 99201), +('2a9a1ce', b'0', 99202), +('2f58727', b'0', 99204), +('98c74ca', b'0', 99205), +('0ac13a8', b'0', 99207), +('ca7ce7b', b'0', 99208), +('5b85aa3', b'0', 99212), +('2b7f319', b'0', 99218), +('7ddeaf2', b'0', 99219), +('630c738', b'0', 99220), +('6ab9cb0', b'0', 99221), +('e8dc0a8', b'0', 99222), +('8bb9953', b'0', 99223), +('769e445', b'0', 99224), +('d8b3986', b'0', 99225), +('98a9e4a', b'0', 99226), +('f04083f', b'0', 99228), +('c62d014', b'0', 99229), +('5de9bd5', b'0', 99230), +('625623a', b'0', 99232), +('e315952', b'0', 99233), +('6eb4818', b'0', 99234), +('97d1804', b'0', 99235), +('0db0293', b'0', 99236), +('8ea28c8', b'0', 99237), +('b7b6b4b', b'0', 99238), +('385767f', b'0', 99239), +('26e9f30', b'0', 99240), +('05f16d5', b'0', 99241), +('4a8ae52', b'0', 99242), +('3cbe0c2', b'0', 99243), +('6eee165', b'0', 99244), +('8ad0231', b'0', 99245), +('6a93125', b'0', 99246), +('2f1a597', b'0', 99247), +('184fd3e', b'0', 99249), +('a6c8136', b'0', 99250), +('51acd30', b'0', 99251), +('2bbd61d', b'0', 99252), +('3be2fc8', b'0', 99253), +('bdc0450', b'0', 99254), +('cad9061', b'0', 99255), +('075a70c', b'0', 99256), +('71d90a7', b'0', 99257), +('e34635e', b'0', 99258), +('515d0cd', b'0', 99259), +('3aafc30', b'0', 99261), +('2ba17a7', b'0', 99262), +('752dbe6', b'0', 99263), +('6e9d4d3', b'0', 99270), +('1b4217c', b'0', 99271), +('21d706f', b'0', 99272), +('6674f8b', b'0', 99273), +('a333fcc', b'0', 99274), +('5c31b09', b'0', 99276), +('d17ab72', b'0', 99277), +('b38de8f', b'0', 99278), +('18e3900', b'0', 99279), +('2014ba0', b'0', 99280), +('56a4338', b'0', 99281), +('91bd7db', b'0', 99282), +('479a182', b'0', 99283), +('b59c0af', b'0', 99284), +('658e31f', b'0', 99285), +('35e33b7', b'0', 99286), +('bbb02f0', b'0', 99287), +('806484e', b'0', 99288), +('df1440d', b'0', 99289), +('c172bee', b'0', 99290), +('7f51fe5', b'0', 99291), +('3617d6c', b'0', 99292), +('4581038', b'0', 99293), +('7e13c70', b'0', 99294), +('05af1b0', b'0', 99295), +('b3e52ba', b'0', 99296), +('508aba9', b'0', 99297), +('57c68b1', b'0', 99298), +('570806f', b'0', 99299), +('7564207', b'0', 99300), +('3819e67', b'0', 99301), +('922a0e5', b'0', 99302), +('0b665d8', b'0', 99303), +('19f6c2c', b'0', 99304), +('ecfe4a0', b'0', 99305), +('3f2cf4f', b'0', 99306), +('c2dbf96', b'0', 99307), +('afc7174', b'0', 99308), +('5c57ffc', b'0', 99309), +('5093be2', b'0', 99310), +('8968dce', b'0', 99311), +('28c52de', b'0', 99312), +('4bdaf89', b'0', 99313), +('02b5ec9', b'0', 99318), +('f2e4fa3', b'0', 99319), +('b255880', b'0', 99320), +('ac22b8e', b'0', 99321), +('7ef7bc3', b'0', 99322), +('934c621', b'0', 99323), +('5f57656', b'0', 99324), +('8a9eb41', b'0', 99325), +('eecdb23', b'0', 99326), +('73f0d7c', b'0', 99327), +('ac63eb1', b'0', 99329), +('4f7d368', b'0', 99330), +('fa82037', b'0', 99331), +('6021f61', b'0', 99332), +('60da5f1', b'0', 99333), +('dd11244', b'0', 99334), +('b5ac173', b'0', 99335), +('884f21e', b'0', 99336), +('a1a3a3a', b'0', 99337), +('1f98d84', b'0', 99338), +('1bbd169', b'0', 99339), +('e3073a7', b'0', 99340), +('42b3701', b'0', 99341), +('3fccafa', b'0', 99342), +('14cc184', b'0', 99343), +('507b676', b'0', 99344), +('b16ec64', b'0', 99345), +('9f614a5', b'0', 99346), +('4e2d509', b'0', 99347), +('ce44521', b'0', 99348), +('b3ea01c', b'0', 99349), +('f806043', b'0', 99350), +('7101f8c', b'0', 99351), +('40e364c', b'0', 99352), +('ba29a0f', b'0', 99353), +('bc1b7c2', b'0', 99354), +('a588747', b'0', 99355), +('a39e64d', b'0', 99356), +('7ddf16f', b'0', 99357), +('8634613', b'0', 99358), +('abbc10e', b'0', 99359), +('88c6588', b'0', 99360), +('3daae02', b'0', 99361), +('736d39e', b'0', 99362), +('0e633b2', b'0', 99363), +('f65bb2b', b'0', 99364), +('033425d', b'0', 99365), +('3fe99fe', b'0', 99366), +('bd68ea5', b'0', 99367), +('73412c7', b'0', 99368), +('cc3c0e7', b'0', 99369), +('35aa6f9', b'0', 99370), +('863a62d', b'0', 99371), +('7c44950', b'0', 99372), +('53d4c16', b'0', 99373), +('0b069d1', b'0', 99374), +('1ae3d3b', b'0', 99375), +('eae007a', b'0', 99376), +('c6d71c1', b'0', 99377), +('b44bb3b', b'0', 99378), +('944b564', b'0', 99379), +('5efd2ba', b'0', 99380), +('b39ea37', b'0', 99381), +('fc78be7', b'0', 99382), +('92a7416', b'0', 99383), +('1da5108', b'0', 99384), +('ffa05ce', b'0', 99385), +('3f72f2d', b'0', 99386), +('6bfeeda', b'0', 99387), +('57368d2', b'0', 99388), +('f03351e', b'0', 99389), +('30cc929', b'0', 99390), +('36e2f41', b'0', 99391), +('378bd74', b'0', 99392), +('a3c4be7', b'0', 99393), +('99333bc', b'0', 99394), +('d9daa52', b'0', 99395), +('1b794f7', b'0', 99396), +('466ea0f', b'0', 99397), +('0501c57', b'0', 99398), +('0bfbc29', b'0', 99399), +('4e4edf1', b'0', 99400), +('2a1e1d6', b'0', 99401), +('15c216c', b'0', 99402), +('06028fc', b'0', 99403), +('e173d70', b'0', 99404), +('4ea95e7', b'0', 99405), +('8e13198', b'0', 99406), +('9ed1c25', b'0', 99407), +('a550f0b', b'0', 99408), +('9919934', b'0', 99409), +('6749341', b'0', 99410), +('37ade83', b'0', 99411), +('ff689c4', b'0', 99412), +('92557a6', b'0', 99413), +('b5a9925', b'0', 99414), +('44cd648', b'0', 99415), +('4a75c0c', b'0', 99418), +('8d4cb00', b'0', 99419), +('35cdef1', b'0', 99420), +('53a5e2b', b'0', 99421), +('0fca7b5', b'0', 99422), +('f4cb933', b'0', 99423), +('2c6d6e8', b'0', 99424), +('78a5763', b'0', 99425), +('5d046ea', b'0', 99426), +('9397aa0', b'0', 99427), +('83e3c01', b'0', 99428), +('b28da3a', b'0', 99429), +('6221e3a', b'0', 99430), +('90c7b72', b'0', 99431), +('4891002', b'0', 99432), +('125cd4f', b'0', 99433), +('8fbb613', b'0', 99434), +('b327401', b'0', 99435), +('098f51d', b'0', 99436), +('8bc02e0', b'0', 99437), +('57bb65f', b'0', 99438), +('37f9550', b'0', 99439), +('634d10d', b'0', 99440), +('6548a45', b'0', 99441), +('d8f6e7a', b'0', 99442), +('d9a075c', b'0', 99444), +('f1942ba', b'0', 99445), +('ec59bf4', b'0', 99447), +('059cd71', b'0', 99448), +('616aa6e', b'0', 99449), +('0053a59', b'0', 99450), +('04d9fd6', b'0', 99451), +('3c821fa', b'0', 99452), +('6fe5bb5', b'0', 99453), +('3f0839f', b'0', 99454), +('1f67f8e', b'0', 99455), +('05292f1', b'0', 99456), +('55cb571', b'0', 100115), +('fdfe9b8', b'0', 100117), +('75429f3', b'0', 100119), +('de782bf', b'0', 100121), +('5f900be', b'0', 100123), +('6174d3f', b'0', 100125), +('ed55ebd', b'0', 100127), +('c6ee8a9', b'0', 100129), +('7a2d50a', b'0', 100131), +('2ded1cf', b'0', 100133), +('021aa49', b'0', 100134), +('b28d595', b'0', 100135), +('5d9b8e4', b'0', 100148), +('a366dea', b'0', 100149), +('a4132e8', b'0', 100150), +('6247115', b'0', 100151), +('6cc6ab4', b'0', 100152), +('b1f704c', b'0', 100153), +('fd86c57', b'0', 100154), +('66c7a29', b'0', 100155), +('f73aaea', b'0', 100156), +('35b1479', b'0', 100157), +('e19f738', b'0', 100159), +('d9f99eb', b'0', 100160), +('1ca3cfe', b'0', 100161), +('2febd70', b'0', 100162), +('7b30fed', b'0', 100163), +('5e276ee', b'0', 100164), +('ead49c2', b'0', 100167), +('2484168', b'0', 100169), +('6af7173', b'0', 100171), +('ba4ca31', b'0', 100172), +('af29dc6', b'0', 100173), +('1b4faf5', b'0', 100175), +('50c544f', b'0', 100176), +('65bb0da', b'0', 100177), +('48d5db7', b'0', 100178), +('e1258b7', b'0', 100179), +('fc1f275', b'0', 100181), +('c7ae5e7', b'0', 100184), +('1622971', b'0', 100185), +('a9d19a0', b'0', 100186), +('2143fb9', b'0', 100187), +('97c0932', b'0', 100188), +('6dc2521', b'0', 100190), +('1cc34c1', b'0', 100191), +('530a183', b'0', 100192), +('4f2519a', b'0', 100193), +('d8fc5c8', b'0', 100194), +('006d17c', b'0', 100195), +('ff0b032', b'0', 100205), +('ab77b74', b'0', 100206), +('6420165', b'0', 100207), +('cb3da12', b'0', 100208), +('9bd9db5', b'0', 100209), +('fd3018e', b'0', 100210), +('425ad83', b'0', 100211), +('64d541a', b'0', 100212), +('9478d2c', b'0', 100213), +('f2a02be', b'0', 100214), +('0297d4a', b'0', 100215), +('c0dac0e', b'0', 100216), +('1182de2', b'0', 100217), +('9f65576', b'0', 100218), +('0c56e47', b'0', 100219), +('0f19f77', b'0', 100220), +('d3542d1', b'0', 100221), +('789f850', b'0', 100222), +('24253f5', b'0', 100223), +('7cf5e8b', b'0', 100224), +('555fdae', b'0', 100225), +('36763a0', b'0', 100226), +('d2175e3', b'0', 100227), +('f71bdf9', b'0', 100228), +('41d7d98', b'0', 100230), +('88cedc4', b'0', 100231), +('0ba3092', b'0', 100232), +('7c3270c', b'0', 100233), +('c58715d', b'0', 100234), +('4035ffc', b'0', 100235), +('9a26ba0', b'0', 100236), +('aa1c94b', b'0', 100237), +('ff3b4e5', b'0', 100238), +('d1dfb18', b'0', 100239), +('a5ba68b', b'0', 100240), +('5577662', b'0', 100241), +('7b49306', b'0', 100243), +('0b73ea7', b'0', 100244), +('6cd0a55', b'0', 100245), +('944ec3e', b'0', 100246), +('3d76f55', b'0', 100247), +('ca3fce1', b'0', 100248), +('f3e874c', b'0', 100249), +('fbe1bc8', b'0', 100250), +('921bfdb', b'0', 100251), +('3c9e54e', b'0', 100252), +('945591e', b'0', 100253), +('dbade4b', b'0', 100254), +('f4f2232', b'0', 100255), +('ea95fcc', b'0', 100256), +('19ac9fb', b'0', 100257), +('f7e3075', b'0', 100258), +('a481c4d', b'0', 100259), +('a2ebf8a', b'0', 100260), +('48364ff', b'0', 100261), +('29ab59e', b'0', 100262), +('26ac394', b'0', 100263), +('4cce1d0', b'0', 100264), +('07fb3a6', b'0', 100265), +('34ea542', b'0', 100267), +('3b34a7e', b'0', 100268), +('6489eac', b'0', 100269), +('22064d6', b'0', 100270), +('9362f96', b'0', 100271), +('dc40fa9', b'0', 100272), +('07759b6', b'0', 100273), +('bcafac0', b'0', 100274), +('009f609', b'0', 100275), +('dc4b551', b'0', 100276), +('edcff29', b'0', 100277), +('f3ffc32', b'0', 100278), +('74c6395', b'0', 100279), +('e0a20e6', b'0', 100280), +('a6f5bbf', b'0', 100281), +('a8bc38a', b'0', 100282), +('8b3c600', b'0', 100283), +('7ac4915', b'0', 100284), +('e70764b', b'0', 100285), +('7b6e3c2', b'0', 100286), +('3472702', b'0', 100287), +('6bcca23', b'0', 100288), +('41f976a', b'0', 100289), +('70eef52', b'0', 100290), +('f9d0142', b'0', 100291), +('54a107a', b'0', 100292), +('e398b63', b'0', 100293), +('dcd7ed8', b'0', 100295), +('da967be', b'0', 100296), +('37cc5e4', b'0', 100297), +('c184b8d', b'0', 100298), +('8cfa9a9', b'0', 100299), +('b0844fd', b'0', 100300), +('68ef5dd', b'0', 100301), +('14a5283', b'0', 100302), +('fe57930', b'0', 100303), +('c72b5a3', b'0', 100304), +('82f3809', b'0', 100307), +('cad5193', b'0', 100308), +('a8bd731', b'0', 100309), +('3915014', b'0', 100310), +('818404e', b'0', 100311), +('cdeca5b', b'0', 100312), +('6cfb4b8', b'0', 100313), +('0219639', b'0', 100314), +('7a7f827', b'0', 100315), +('1c99a1a', b'0', 100316), +('c0d28f0', b'0', 100317), +('9efa180', b'0', 100318), +('f7f4e61', b'0', 100319), +('96d3d3b', b'0', 100320), +('c3123a2', b'0', 100322), +('ce2c88f', b'0', 100324), +('958761d', b'0', 100325), +('933ed8d', b'0', 100327), +('75008bd', b'0', 100328), +('a8b33dc', b'0', 100329), +('ac19ab5', b'0', 100330), +('f8df52b', b'0', 100331), +('96f6300', b'0', 100332), +('9a30ecf', b'0', 100333), +('f9337d4', b'0', 100334), +('8cf8b1b', b'0', 100335), +('f8a9cfa', b'0', 100336), +('eb2eb43', b'0', 100337), +('520db11', b'0', 100338), +('ff8d680', b'0', 100340), +('79dca29', b'0', 100341), +('fe5edaa', b'0', 100342), +('e80bb01', b'0', 100343), +('f51d652', b'0', 100344), +('454f24c', b'0', 100345), +('88dbc93', b'0', 100346), +('e70d0fd', b'0', 100347), +('4c57c6b', b'0', 100349), +('bad7e47', b'0', 100350), +('488fd48', b'0', 100351), +('049b7d4', b'0', 100352), +('f693c29', b'0', 100353), +('95edcc7', b'0', 100354), +('9b73ae2', b'0', 100355), +('c09bbb8', b'0', 100356), +('8b2d016', b'0', 100357), +('e95d566', b'0', 100358), +('0cb396d', b'0', 100360), +('963cf0c', b'0', 100366), +('7853951', b'0', 100367), +('dd6e32d', b'0', 100368), +('1769f62', b'0', 100369), +('5dff9a7', b'0', 100370), +('79601c8', b'0', 100371), +('0df5d6b', b'0', 100372), +('5adc563', b'0', 100373), +('f94fa73', b'0', 100374), +('e79bf53', b'0', 100375), +('0ee2568', b'0', 100376), +('98eebdd', b'0', 100377), +('d76664c', b'0', 100378), +('ca77d7e', b'0', 100379), +('101e2b4', b'0', 100380), +('606ec3a', b'0', 100381), +('8a0c08d', b'0', 100382), +('1ab9c80', b'0', 100383), +('80e4ef1', b'0', 100384), +('e242bbf', b'0', 100385), +('b95c51f', b'0', 100386), +('b61afbd', b'0', 100387), +('449642b', b'0', 100388), +('68f881c', b'0', 100389), +('dd5e11a', b'0', 100390), +('53c88dc', b'0', 100392), +('966496e', b'0', 100393), +('263ff5b', b'0', 100394), +('07920ac', b'0', 100395), +('58e5660', b'0', 100396), +('d6b5053', b'0', 100397), +('9915ff4', b'0', 100398), +('ad116cf', b'0', 100399), +('275a80d', b'0', 100400), +('007f6b1', b'0', 100401), +('793b057', b'0', 100402), +('782ad79', b'0', 100403), +('6464da6', b'0', 100404), +('1780c37', b'0', 100405), +('2d86230', b'0', 100406), +('c00de1b', b'0', 100407), +('4f1efd2', b'0', 100408), +('2cd70e6', b'0', 100409), +('04ee642', b'0', 100410), +('e12e499', b'0', 100411), +('9fac5ad', b'0', 100412), +('c2fdd6d', b'0', 100413), +('1081da9', b'0', 100414), +('c6ee04b', b'0', 100415), +('ba46e0a', b'0', 100416), +('e3215a5', b'0', 100417), +('0fcc0cf', b'0', 100601), +('cf19f90', b'0', 100607), +('16874a4', b'0', 100609), +('776613f', b'0', 100613), +('baca7e5', b'0', 100614), +('282d8ed', b'0', 100616), +('52c0e5b', b'0', 100621), +('dd98ff0', b'0', 100625), +('77c7d52', b'0', 100629), +('9d090e3', b'0', 100630), +('33bd5f0', b'0', 100632), +('2aa89b5', b'0', 100666), +('7ddd502', b'0', 100672), +('fa4e384', b'0', 100673), +('c8cac6a', b'0', 100675), +('97bed9e', b'0', 100676), +('38a4a89', b'0', 100677), +('0de0ed1', b'0', 100678), +('1fb5585', b'0', 100679), +('f89763f', b'0', 100680), +('6b28cb2', b'0', 100681), +('6f504ba', b'0', 100682), +('852ef53', b'0', 100683), +('0b660bb', b'0', 100684), +('0b896b3', b'0', 100685), +('0ec56c5', b'0', 100686), +('4e528d2', b'0', 100687), +('79ea65d', b'0', 100692), +('f43ced3', b'0', 100693), +('ec079e1', b'0', 100695), +('cdef103', b'0', 100696), +('e52b17d', b'0', 100697), +('ab732b4', b'0', 100698), +('bf5fda7', b'0', 100700), +('266f379', b'0', 100701), +('30e950a', b'0', 100702), +('cec18ea', b'0', 100703), +('5fcabe4', b'0', 100707), +('fafb22c', b'0', 100708), +('d2929ee', b'0', 100711), +('382a9bc', b'0', 100713), +('022192a', b'0', 100714), +('c635dbd', b'0', 100716), +('536e974', b'0', 100717), +('f585c69', b'0', 100718), +('988f3a5', b'0', 100720), +('423596d', b'0', 100721), +('651550d', b'0', 100722), +('82ee95e', b'0', 100723), +('21b4e2f', b'0', 100724), +('ce2eaf8', b'0', 100725), +('513bb3e', b'0', 100733), +('a3ab146', b'0', 100734), +('758a980', b'0', 100735), +('4b8dcce', b'0', 100736), +('f0bee3b', b'0', 100737), +('8571157', b'0', 100738), +('f4d224b', b'0', 100739), +('e1a7404', b'0', 100740), +('0501f27', b'0', 100741), +('cbdda99', b'0', 100742), +('bbb9156', b'0', 100743), +('e67e049', b'0', 100744), +('1ae47c4', b'0', 100745), +('60ad911', b'0', 100746), +('51ca529', b'0', 100747), +('7cf7487', b'0', 100748), +('79e64e1', b'0', 100749), +('11e0f0d', b'0', 100750), +('841be65', b'0', 100751), +('616e3fb', b'0', 100752), +('b37b266', b'0', 100753), +('229db04', b'0', 100755), +('35a6fc0', b'0', 100756), +('f2ec1b2', b'0', 100757), +('035ca56', b'0', 100758), +('8a502e1', b'0', 100759), +('c4a1fc4', b'0', 100760), +('3069efb', b'0', 100761), +('b265275', b'0', 100762), +('9106adb', b'0', 100763), +('7143ab5', b'0', 100764), +('b0aade1', b'0', 100765), +('a7d4442', b'0', 100767), +('e13ee18', b'0', 100769), +('34a1194', b'0', 100770), +('3c25aec', b'0', 100771), +('20a63c7', b'0', 100772), +('3dcf092', b'0', 100773), +('42ac915', b'0', 100774), +('c879338', b'0', 100775), +('af42325', b'0', 100776), +('3c1fdf6', b'0', 100777), +('8d244ae', b'0', 100778), +('f3dffc9', b'0', 100779), +('bf53814', b'0', 100780), +('da4a3f7', b'0', 100781), +('3f8ea30', b'0', 100782), +('eb15a03', b'0', 100783), +('a65a14e', b'0', 100784), +('5d7ef46', b'0', 100785), +('6e6ae11', b'0', 100786), +('dbdd696', b'0', 100787), +('c09d77d', b'0', 100788), +('87d3bc6', b'0', 100789), +('2bcabe1', b'0', 100790), +('6758a55', b'0', 100791), +('767d5e2', b'0', 100792), +('1739423', b'0', 100793), +('c6fabda', b'0', 100794), +('b4b543b', b'0', 100795), +('fded780', b'0', 100796), +('bec3653', b'0', 100797), +('5b58951', b'0', 100798), +('869d8bf', b'0', 100799), +('88bff15', b'0', 100800), +('b22bd8a', b'0', 100801), +('7e40856', b'0', 100802), +('ab0326c', b'0', 100803), +('2bbd4fa', b'0', 100804), +('95b8c89', b'0', 100805), +('df172ef', b'0', 100806), +('fb912e0', b'0', 100807), +('3c839e4', b'0', 100808), +('10a119e', b'0', 100809), +('c5e80bc', b'0', 100810), +('a9d3e75', b'0', 100811), +('b6b7517', b'0', 100812), +('b09b0a7', b'0', 100813), +('9e18c83', b'0', 100814), +('96f2aad', b'0', 100815), +('e58404a', b'0', 100816), +('a7d015e', b'0', 100817), +('fbeed57', b'0', 100818), +('6207576', b'0', 100819), +('6335d56', b'0', 100820), +('e220753', b'0', 100821), +('751612c', b'0', 100822), +('5c69aef', b'0', 100823), +('99a2343', b'0', 100824), +('593f188', b'0', 100825), +('b7cf5f7', b'0', 100826), +('ced64e1', b'0', 100827), +('326aff7', b'0', 100828), +('b9790e3', b'0', 100829), +('516547f', b'0', 100830), +('e03006b', b'0', 100831), +('831cf6a', b'0', 100832), +('336af69', b'0', 100833), +('5335efb', b'0', 100834), +('989d771', b'0', 100835), +('7082749', b'0', 100836), +('583a4b4', b'0', 100837), +('6dda489', b'0', 100838), +('6a7c6b3', b'0', 100839), +('f226a04', b'0', 100840), +('0c466ee', b'0', 100841), +('7321f4f', b'0', 100842), +('d7a09e8', b'0', 100843), +('0b82ed5', b'0', 100844), +('f537c73', b'0', 100845), +('5f34b8e', b'0', 100846), +('58aec53', b'0', 100847), +('2559094', b'0', 100848), +('bd9ac97', b'0', 100849), +('6cb3682', b'0', 100851), +('78db4b0', b'0', 100852), +('c8827cf', b'0', 100859), +('c8a1e97', b'0', 100860), +('ec291dd', b'0', 100861), +('874a09c', b'0', 100862), +('a92f7d1', b'0', 100863), +('48685bc', b'0', 100864), +('1063de8', b'0', 100865), +('fec6037', b'0', 100866), +('58823e1', b'0', 100867), +('24c3787', b'0', 100868), +('07c54b3', b'0', 100869), +('31ef42b', b'0', 100870), +('b4b84ea', b'0', 100871), +('2c84c34', b'0', 100872), +('9add760', b'0', 100873), +('7d6f1a8', b'0', 100877), +('5c0ef88', b'0', 100882), +('2fff1bf', b'0', 100884), +('4ba6f51', b'0', 100888), +('3c4cb02', b'0', 100891), +('3ea6dc2', b'0', 100893), +('d2413cb', b'0', 100894), +('5e08135', b'0', 100895), +('70486b5', b'0', 100896), +('67213d9', b'0', 100897), +('33715c3', b'0', 100898), +('d84d7f2', b'0', 100899), +('6023ea5', b'0', 100900), +('9b25390', b'0', 100901), +('006c82d', b'0', 100902), +('05e6945', b'0', 100903), +('40fbf40', b'0', 100905), +('98b1c19', b'0', 100906), +('b1b2059', b'0', 100908), +('5daa6a9', b'0', 100909), +('d229981', b'0', 100910), +('41aab08', b'0', 100911), +('871ddc1', b'0', 100912), +('263c2f4', b'0', 100913), +('03162e2', b'0', 100915), +('6be8d57', b'0', 100918), +('b9ba517', b'0', 100919), +('f5d11e5', b'0', 100920), +('3fd9408', b'0', 100924), +('1418b39', b'0', 100925), +('920728f', b'0', 100926), +('dc32ca3', b'0', 100927), +('b232831', b'0', 100930), +('db49f85', b'0', 100931), +('d88af83', b'0', 100932), +('8607199', b'0', 100937), +('7b7396c', b'0', 100942), +('cd6df58', b'0', 100943), +('314e838', b'0', 100946), +('0285e64', b'0', 100947), +('e521cf5', b'0', 100948), +('6c315b0', b'0', 100949), +('73be81e', b'0', 100950), +('a2134a0', b'0', 100951), +('0dc29ad', b'0', 100953), +('afe16f4', b'0', 100954), +('dbb10a6', b'0', 100955), +('27b300a', b'0', 100956), +('eb8d070', b'0', 100959), +('d2ef4ae', b'0', 100960), +('da98f9f', b'0', 100961), +('bbb436b', b'0', 100962), +('b0f2839', b'0', 100967), +('2619a7a', b'0', 100970), +('f03ffa4', b'0', 100971), +('892c831', b'0', 100973), +('c483751', b'0', 100974), +('efe4f7a', b'0', 100978), +('183be5d', b'0', 100979), +('2d120a0', b'0', 100980), +('dfea1f4', b'0', 100981), +('42b6d44', b'0', 100983), +('c62dd29', b'0', 100984), +('ae2d863', b'0', 100985), +('cd205bf', b'0', 100986), +('feb1f6b', b'0', 100987), +('dca9598', b'0', 100988), +('533ba70', b'0', 100992), +('8ca1c29', b'0', 100993), +('3c146d2', b'0', 100994), +('43643cb', b'0', 100996), +('3191b1a', b'0', 100997), +('eb649fb', b'0', 100998), +('8c4655e', b'0', 100999), +('8322563', b'0', 101000), +('ca3fef5', b'0', 101002), +('6e54c54', b'0', 101008), +('43b90cf', b'0', 101009), +('475c56e', b'0', 101010), +('3d8b805', b'0', 101011), +('33b6ec8', b'0', 101012), +('e2c90b2', b'0', 101013), +('365567d', b'0', 101015), +('37377ae', b'0', 101016), +('6adea61', b'0', 101021), +('b8fee04', b'0', 101022), +('44bbfb2', b'0', 101023), +('001e972', b'0', 101024), +('465f304', b'0', 101025), +('02fcba8', b'0', 101026), +('ed1ee6d', b'0', 101027), +('e42831d', b'0', 101028), +('c9f2834', b'0', 101029), +('97f8601', b'0', 101031), +('8733331', b'0', 101032), +('7644c49', b'0', 101033), +('37542fb', b'0', 101034), +('99fd7e1', b'0', 101035), +('986608e', b'0', 101036), +('1494ec9', b'0', 101037), +('38eeb54', b'0', 101038), +('308f601', b'0', 101039), +('7e85688', b'0', 101040), +('e0b926d', b'0', 101041), +('bdd7a2d', b'0', 101042), +('b4995b3', b'0', 101043), +('6f5ab88', b'0', 101044), +('6d4c5ea', b'0', 101045), +('dfdfc03', b'0', 101046), +('b587681', b'0', 101047), +('049604a', b'0', 101048), +('c9e3c06', b'0', 101052), +('2951874', b'0', 101053), +('cd9d3dc', b'0', 101054), +('be089b7', b'0', 101057), +('f76ff6a', b'0', 101062), +('1b60d03', b'0', 101063), +('2c1ffa9', b'0', 101064), +('c4d5639', b'0', 101065), +('b37f708', b'0', 101066), +('ccaa1d1', b'0', 101067), +('2e9a714', b'0', 101070), +('6c55e7f', b'0', 101071), +('9b3f8a8', b'0', 101072), +('bc14358', b'0', 101074), +('8265e2d', b'0', 101075), +('dd2c42d', b'0', 101076), +('04ef49d', b'0', 101077), +('5185112', b'0', 101078), +('963c7fb', b'0', 101079), +('521a3d7', b'0', 101080), +('d462919', b'0', 101081), +('5db31d4', b'0', 101082), +('278a4dc', b'0', 101089), +('2d237c7', b'0', 101090), +('9b0ca47', b'0', 101094), +('4bedf66', b'0', 101095), +('6df0319', b'0', 101096), +('a72e5ac', b'0', 101102), +('64dbb2e', b'0', 101104), +('2401eec', b'0', 101105), +('fc52881', b'0', 101106), +('08baebf', b'0', 101107), +('41a8706', b'0', 101108), +('d8d4d86', b'0', 101109), +('034dcee', b'0', 101110), +('3a868ae', b'0', 101111), +('f05646b', b'0', 101112), +('ec1acff', b'0', 101113), +('0b0091c', b'0', 101114), +('6e69999', b'0', 101115), +('38d7303', b'0', 101116), +('6131e64', b'0', 101117), +('74bc283', b'0', 101118), +('b76a3f2', b'0', 101119), +('955d181', b'0', 101120), +('9edd54d', b'0', 101121), +('9e19b66', b'0', 101122), +('fb774cd', b'0', 101123), +('6d73690', b'0', 101124), +('b96ebc1', b'0', 101125), +('87f6cb0', b'0', 101126), +('832d58a', b'0', 101127), +('1f48bf3', b'0', 101128), +('6a59f79', b'0', 101129), +('48dae2f', b'0', 101130), +('d8f991c', b'0', 101131), +('1165e73', b'0', 101132), +('f54659a', b'0', 101134), +('1d76ad5', b'0', 101135), +('840cd04', b'0', 101136), +('df0035f', b'0', 101137), +('41afd1c', b'0', 101138), +('926a630', b'0', 101139), +('7ef0731', b'0', 101140), +('cdbca70', b'0', 101141), +('978ac71', b'0', 101142), +('49a1a16', b'0', 101143), +('1e3acd3', b'0', 101144), +('2f5cbf0', b'0', 101145), +('b2f4dac', b'0', 101146), +('cf4e226', b'0', 101147), +('e573bc6', b'0', 101148), +('4cdb09f', b'0', 101149), +('97d3a8c', b'0', 101150), +('93b8a54', b'0', 101151), +('e613b9d', b'0', 101152), +('589644c', b'0', 101153), +('d154ab0', b'0', 101154), +('ab57f44', b'0', 101156), +('9083eaa', b'0', 101157), +('b6397ad', b'0', 101158), +('5fe5087', b'0', 101159), +('e1fed08', b'0', 101161), +('3c61a8b', b'0', 101162), +('cc2f070', b'0', 101163), +('30e4a7d', b'0', 101164), +('a76dbf0', b'0', 101165), +('be661a5', b'0', 101166), +('5fdfb91', b'0', 101167), +('d35d8f7', b'0', 101168), +('4c3b177', b'0', 101169), +('18f4682', b'0', 101170), +('6c26411', b'0', 101171), +('5717a70', b'0', 101172), +('257ed1e', b'0', 101173), +('34c69fa', b'0', 101174), +('3471abf', b'0', 101175), +('c25ddbf', b'0', 101176), +('6f3d808', b'0', 101177), +('9a253e2', b'0', 101178), +('07ce63b', b'0', 101179), +('9668a9d', b'0', 101180), +('ac1ac74', b'0', 101181), +('b265b38', b'0', 101182), +('9888309', b'0', 101183), +('397ff29', b'0', 101184), +('5ec976e', b'0', 101185), +('b0438ab', b'0', 101186), +('759e1e8', b'0', 101188), +('554476f', b'0', 101189), +('11fb766', b'0', 101192), +('da786cd', b'0', 101193), +('710d196', b'0', 101194), +('22bbab0', b'0', 101195), +('dd39446', b'0', 101196), +('d53ddff', b'0', 101197), +('3d8863f', b'0', 101198), +('ade16f9', b'0', 101199), +('76844e3', b'0', 101200), +('028da73', b'0', 101201), +('35954b6', b'0', 101202), +('238b275', b'0', 101203), +('bbd519d', b'0', 101204), +('514635e', b'0', 101205), +('4cc14cf', b'0', 101206), +('2a8057f', b'0', 101677), +('3039b51', b'0', 101679), +('a753611', b'0', 101681), +('9fffbde', b'0', 101683), +('cd6a08d', b'0', 101685), +('fdcf82d', b'0', 101689), +('16d6c09', b'0', 101692), +('a9d0548', b'0', 101694), +('739e1a7', b'0', 101695), +('717bdde', b'0', 101696), +('534948f', b'0', 101697), +('af22960', b'0', 101698), +('44f6179', b'0', 101704), +('0e3a41b', b'0', 101706), +('cfda11d', b'0', 101708), +('c92d5ed', b'0', 101709), +('c0c3e35', b'0', 101710), +('55c1065', b'0', 101712), +('1077243', b'0', 101713), +('9798ff2', b'0', 101714), +('2cc172c', b'0', 101715), +('71171a2', b'0', 101716), +('6a4d0f2', b'0', 101717), +('b753fe8', b'0', 101719), +('e9dac24', b'0', 101720), +('b05b1f4', b'0', 101724), +('898ffde', b'0', 101726), +('b997096', b'0', 101728), +('5299920', b'0', 101729), +('83d7826', b'0', 101751), +('6da0cd0', b'0', 101752), +('968e5e5', b'0', 101753), +('b5e5d85', b'0', 101754), +('a33e821', b'0', 101765), +('8b579c4', b'0', 101766), +('4d9799d', b'0', 101767), +('877585c', b'0', 101769), +('fcfb872', b'0', 101770), +('2f4fd4a', b'0', 101773), +('341e508', b'0', 101774), +('c519f03', b'0', 101775), +('4a562be', b'0', 101776), +('d0ad212', b'0', 101777), +('6cc8095', b'0', 101779), +('728dd1e', b'0', 101780), +('b8152e5', b'0', 101781), +('d025d11', b'0', 101783), +('f2bc279', b'0', 101785), +('474109d', b'0', 101787), +('03afea7', b'0', 101789), +('ea7ea52', b'0', 101790), +('3cbc6ba', b'0', 101793), +('5723936', b'0', 101794), +('bd8ab5a', b'0', 101795), +('c3c96c8', b'0', 101796), +('9e79caf', b'0', 101797), +('01693c1', b'0', 101798), +('027091f', b'0', 101800), +('73ade18', b'0', 101801), +('ff07b98', b'0', 101802), +('4c50c88', b'0', 101803), +('7d1a6e8', b'0', 101804), +('bfc4313', b'0', 101805), +('e3be8f2', b'0', 101806), +('49723db', b'0', 101807), +('0f6b609', b'0', 101810), +('09dc4fc', b'0', 101811), +('75f75a5', b'0', 101818), +('d45945c', b'0', 101819), +('f8e0df4', b'0', 101820), +('c9e2762', b'0', 101821), +('32ae71c', b'0', 101822), +('d5ca417', b'0', 101823), +('0682ebb', b'0', 101824), +('1018ba9', b'0', 101825), +('00d0157', b'0', 101826), +('2582683', b'0', 101827), +('9e20f39', b'0', 101828), +('917ce2e', b'0', 101829), +('3e4ac26', b'0', 101831), +('86c9b0f', b'0', 101832), +('387b478', b'0', 101833), +('5757376', b'0', 101834), +('e6818b7', b'0', 101835), +('64fbade', b'0', 101836), +('97abfa7', b'0', 101837), +('787bf7f', b'0', 101839), +('d680bbf', b'0', 101841), +('8dfc411', b'0', 101842), +('1c8c8a8', b'0', 101843), +('201ff74', b'0', 101844), +('2b15e83', b'0', 101845), +('54704a4', b'0', 101846), +('39e0c24', b'0', 101847), +('4503760', b'0', 101848), +('f8e78f0', b'0', 101849), +('2a2ac65', b'0', 101850), +('5fdf3fa', b'0', 101851), +('1eb58e1', b'0', 101853), +('687c3b1', b'0', 101854), +('b8118cc', b'0', 101855), +('cc41da2', b'0', 101856), +('b721e95', b'0', 101857), +('d1b170f', b'0', 101858), +('7543ce2', b'0', 101860), +('596456a', b'0', 101862), +('3cc7ab7', b'0', 101863), +('dbc919d', b'0', 101864), +('0c33ed4', b'0', 101865), +('db5e4b9', b'0', 101866), +('0119dd4', b'0', 101867), +('bd2aaf8', b'0', 101869), +('30ba9b1', b'0', 101870), +('017df52', b'0', 101871), +('ab15d55', b'0', 101872), +('d3b8adf', b'0', 101873), +('4b71c4d', b'0', 101874), +('cf73938', b'0', 101875), +('d6caaf4', b'0', 101876), +('42a7d66', b'0', 101877), +('f6d91bd', b'0', 101878), +('04a5088', b'0', 101881), +('ca45ea0', b'0', 101883), +('8414c50', b'0', 101884), +('205fecb', b'0', 101885), +('5960784', b'0', 101886), +('be2df5c', b'0', 101887), +('c5975cd', b'0', 101888), +('43e020e', b'0', 101890), +('9cadedf', b'0', 101891), +('4cc2dc4', b'0', 101892), +('5ea2630', b'0', 101893), +('8211259', b'0', 101894), +('eeafe2f', b'0', 101895), +('e063ed9', b'0', 101896), +('da16550', b'0', 101897), +('9a5b138', b'0', 101898), +('a555acd', b'0', 101899), +('63a5adc', b'0', 101900), +('5e55e7f', b'0', 101902), +('cf8fedb', b'0', 101903), +('e5bcb28', b'0', 101904), +('dd5ba39', b'0', 101905), +('8bd58d8', b'0', 101906), +('a10934c', b'0', 101907), +('cdd93ca', b'0', 101908), +('397a58d', b'0', 101909), +('48cfbb3', b'0', 101910), +('94919ae', b'0', 101911), +('65a327a', b'0', 101912), +('0e831d6', b'0', 101914), +('60187ab', b'0', 101919), +('406b9c7', b'0', 101921), +('358caa2', b'0', 101922), +('2e19c0a', b'0', 101923), +('973722c', b'0', 101924), +('3b1f2fa', b'0', 101925), +('e087037', b'0', 101927), +('f826452', b'0', 101928), +('02239da', b'0', 101929), +('eb2d4a3', b'0', 101930), +('5786763', b'0', 101931), +('bb763ef', b'0', 101935), +('9e748ca', b'0', 101936), +('8cfa137', b'0', 101937), +('a22ea1f', b'0', 101940), +('ca1d4f5', b'0', 101941), +('024fbf0', b'0', 101943), +('3ad31a7', b'0', 101944), +('c39ae78', b'0', 101945), +('03cbb99', b'0', 101947), +('eb8e9ca', b'0', 101949), +('7a820a1', b'0', 101951), +('12f6d08', b'0', 101953), +('91e3666', b'0', 101955), +('2fbdebb', b'0', 101956), +('58064e4', b'0', 101958), +('33190ac', b'0', 101959), +('ff4ad3d', b'0', 101960), +('c0789a7', b'0', 101961), +('2bd4dce', b'0', 101962), +('7acf39d', b'0', 101963), +('7f6c17e', b'0', 101964), +('33f1589', b'0', 101965), +('039e641', b'0', 101967), +('c9b72a8', b'0', 101968), +('ec87189', b'0', 101969), +('41540b9', b'0', 101970), +('1796d7d', b'0', 101971), +('319588e', b'0', 101975), +('6b3bfe1', b'0', 101977), +('9e2a388', b'0', 101981), +('e7bd1c6', b'0', 101983), +('b5555f6', b'0', 101984), +('6eef2f6', b'0', 101985), +('5ed4c0e', b'0', 101986), +('e091eb8', b'0', 101988), +('e97857c', b'0', 101991), +('2b36351', b'0', 101993), +('1835c7d', b'0', 101996), +('e05ede2', b'0', 101997), +('2cf913e', b'0', 102002), +('f90ff8c', b'0', 102003), +('03d96fa', b'0', 102005), +('8ffeba2', b'0', 102006), +('4ea6029', b'0', 102007), +('8c187f8', b'0', 102009), +('7fc8374', b'0', 102010), +('f1b64b9', b'0', 102011), +('26e9455', b'0', 102012), +('f9b26f6', b'0', 102013), +('1a5863e', b'0', 102015), +('d6bd94f', b'0', 102018), +('67ca83e', b'0', 102019), +('9ee52e4', b'0', 102020), +('9be99f5', b'0', 102021), +('47c3653', b'0', 102022), +('91a3d4c', b'0', 102024), +('34ae8a6', b'0', 102025), +('0da24d4', b'0', 102026), +('8f9e9c2', b'0', 102027), +('2cc61c0', b'0', 102028), +('29f43ba', b'0', 102029), +('d06e315', b'0', 102030), +('acb42ae', b'0', 102031), +('b012755', b'0', 102032), +('a9e3b77', b'0', 102033), +('dcd1845', b'0', 102034), +('9da5c1c', b'0', 102035), +('6e28bb5', b'0', 102036), +('0cb31fe', b'0', 102037), +('4aa7c02', b'0', 102038), +('3fe021b', b'0', 102039), +('f13018f', b'0', 102040), +('ea31a38', b'0', 102041), +('a0c4fb8', b'0', 102042), +('6e8a57c', b'0', 102044), +('03d2b71', b'0', 102045), +('9299b46', b'0', 102046), +('3fbb884', b'0', 102048), +('71bca0c', b'0', 102053), +('0a80396', b'0', 102056), +('faa691e', b'0', 102057), +('37a60a1', b'0', 102058), +('af8976f', b'0', 102060), +('22c9dc2', b'0', 102061), +('55a9756', b'0', 102062), +('e6c79b3', b'0', 102063), +('c3efef6', b'0', 102065), +('268da3b', b'0', 102066), +('ced5507', b'0', 102067), +('6c5ed2e', b'0', 102068), +('a646c72', b'0', 102069), +('590da88', b'0', 102070), +('9831830', b'0', 102071), +('9cf378c', b'0', 102072), +('ad7bffa', b'0', 102073), +('acff497', b'0', 102074), +('aca46b8', b'0', 102075), +('84c235c', b'0', 102076), +('79615a8', b'0', 102077), +('9cc08e0', b'0', 102078), +('9dd6cc1', b'0', 104094), +('fb50d7b', b'0', 104100), +('e0862e6', b'0', 104102), +('3fbc24f', b'0', 104105), +('7b301f7', b'0', 104106), +('2bf2325', b'0', 104107), +('3925c4b', b'0', 104108), +('d5df4ce', b'0', 104109), +('979e306', b'0', 104113), +('fe82f7a', b'0', 104115), +('fa45c63', b'0', 104116), +('e479d03', b'0', 104117), +('108747e', b'0', 104118), +('71da58f', b'0', 104119), +('74d080c', b'0', 104120), +('f1f6b45', b'0', 104126), +('371da9b', b'0', 104131), +('e0405fc', b'0', 104133), +('5525119', b'0', 104134), +('aba228e', b'0', 104136), +('cf2f383', b'0', 104137), +('1fe90ee', b'0', 104138), +('9dcf115', b'0', 104139), +('a331402', b'0', 104141), +('2bd5f57', b'0', 104143), +('9b2d698', b'0', 104144), +('27af00d', b'0', 104145), +('12bffe8', b'0', 104146), +('5b907d3', b'0', 104149), +('03ab736', b'0', 104150), +('59804bd', b'0', 104152), +('cfbfd69', b'0', 104153), +('16f00eb', b'0', 104154), +('090b3f0', b'0', 104156), +('3348ad9', b'0', 104157), +('cbb3743', b'0', 104158), +('18606cf', b'0', 104159), +('f4d1bc6', b'0', 104161), +('b3528c9', b'0', 104162), +('64371a5', b'0', 104163), +('514ad88', b'0', 104164), +('c9a6096', b'0', 104165), +('e5cd2fd', b'0', 104166), +('1bdbed7', b'0', 104167), +('6816ef6', b'0', 104169), +('d1ccb12', b'0', 104171), +('4317d54', b'0', 104172), +('88f9459', b'0', 104173), +('8b921e9', b'0', 104175), +('68643a7', b'0', 104177), +('293ed73', b'0', 104179), +('c09a5a8', b'0', 104181), +('27d060f', b'0', 104182), +('9bd2272', b'0', 104183), +('c2bad18', b'0', 104184), +('0efa1f9', b'0', 104186), +('05c40b8', b'0', 104187), +('8ddeded', b'0', 104188), +('5563ba8', b'0', 104189), +('e88d405', b'0', 104190), +('55b41e2', b'0', 104191), +('4186ff0', b'0', 104192), +('b3aa899', b'0', 104193), +('b7ee474', b'0', 104194), +('26e4f61', b'0', 104195), +('1618ed1', b'0', 104196), +('3e1016a', b'0', 104197), +('0111aeb', b'0', 104198), +('c8e7624', b'0', 104200), +('276b9b3', b'0', 104201), +('955240a', b'0', 104202), +('331746d', b'0', 104204), +('a1d9820', b'0', 104205), +('930276d', b'0', 104206), +('57b3e95', b'0', 104207), +('5379298', b'0', 104208), +('1362676', b'0', 104209), +('ab9f68c', b'0', 104210), +('641d29e', b'0', 104211), +('fd579f6', b'0', 104212), +('32bb8cb', b'0', 104213), +('39c84d5', b'0', 104214), +('ab4f78b', b'0', 104215), +('0e8d28f', b'0', 104217), +('235ea51', b'0', 104218), +('5ffb911', b'0', 104219), +('3b353da', b'0', 104220), +('9d7c9c8', b'0', 104221), +('0ee89a8', b'0', 104222), +('4847c91', b'0', 104223), +('4fbc475', b'0', 104224), +('6621681', b'0', 104225), +('4b0638a', b'0', 104226), +('9917961', b'0', 104227), +('52a33f2', b'0', 104228), +('a0b77c4', b'0', 104229), +('959916f', b'0', 104230), +('ab8b0a4', b'0', 104231), +('ba70062', b'0', 104232), +('64344e5', b'0', 104233), +('f72d324', b'0', 104234), +('a671d88', b'0', 104235), +('c49e76e', b'0', 104236), +('aa00e76', b'0', 104237), +('dbf59ce', b'0', 104238), +('78a039b', b'0', 104239), +('1d4ec41', b'0', 104240), +('cafaf1b', b'0', 104241), +('0b69a7a', b'0', 104242), +('543fb02', b'0', 104243), +('847c2fb', b'0', 104245), +('b2c1ef8', b'0', 104246), +('613db56', b'0', 104247), +('bed21a1', b'0', 104248), +('e8d5f0a', b'0', 104249), +('11cbc7c', b'0', 104250), +('9b89bf7', b'0', 104251), +('e532652', b'0', 104252), +('1cbf700', b'0', 104253), +('72b3ba0', b'0', 104254), +('bcb30b3', b'0', 104255), +('391811c', b'0', 104256), +('66a33fd', b'0', 104257), +('ad181bd', b'0', 104258), +('0549dfb', b'0', 104259), +('89a224e', b'0', 104260), +('9310017', b'0', 104261), +('406bbdf', b'0', 104262), +('4ab2085', b'0', 104263), +('092af0b', b'0', 104264), +('01b4034', b'0', 104265), +('a768134', b'0', 104266), +('edfa7b9', b'0', 104267), +('493a0f1', b'0', 104268), +('c928d7e', b'0', 104270), +('0abae5a', b'0', 104271), +('3e060d9', b'0', 104276), +('fda8c38', b'0', 104277), +('91c567b', b'0', 104278), +('fa285fc', b'0', 104279), +('8fb1037', b'0', 104280), +('8b371bb', b'0', 104281), +('e721efe', b'0', 104282), +('96e868b', b'0', 104283), +('d7baeec', b'0', 104284), +('0c1ff6d', b'0', 104288), +('6bc6ab5', b'0', 104289), +('b9ef095', b'0', 104290), +('5f68bf3', b'0', 104291), +('5b2710d', b'0', 104292), +('deb81dd', b'0', 104293), +('f57fd62', b'0', 104294), +('1c27a30', b'0', 104295), +('83c3389', b'0', 104298), +('aeaadaa', b'0', 104300), +('51857f1', b'0', 104301), +('ba355c2', b'0', 104302), +('6da4298', b'0', 104303), +('054c186', b'0', 104304), +('6955a0b', b'0', 104306), +('a0c8b69', b'0', 104307), +('c0c64b3', b'0', 104308), +('12ea9b4', b'0', 104309), +('468418f', b'0', 104310), +('3f3e92f', b'0', 104311), +('12facfd', b'0', 104313), +('6113d1b', b'0', 104314), +('9610d24', b'0', 104315), +('f298f8b', b'0', 104318), +('b3e0c77', b'0', 104319), +('1ad1ef9', b'0', 104321), +('d55786f', b'0', 104322), +('e599bef', b'0', 104325), +('8ba0323', b'0', 104326), +('86944f3', b'0', 104327), +('e44a52c', b'0', 104332), +('8bcabaa', b'0', 104333), +('d45a069', b'0', 104334), +('ab54d1e', b'0', 104335), +('a04d8a2', b'0', 104337), +('7cd7e53', b'0', 104338), +('6ab7b8d', b'0', 104339), +('d950d1d', b'0', 104344), +('4adabe4', b'0', 104345), +('77953b7', b'0', 104346), +('f68b510', b'0', 104347), +('3c22a39', b'0', 104348), +('fedff3d', b'0', 104349), +('abecdb6', b'0', 104350), +('31f824b', b'0', 104351), +('6f05af6', b'0', 104352), +('0150856', b'0', 104353), +('1c6ff14', b'0', 104354), +('5fcbf1c', b'0', 104355), +('6ecb318', b'0', 104356), +('455999b', b'0', 104357), +('4618b49', b'0', 104358), +('d1d656d', b'0', 104359), +('be23982', b'0', 104360), +('46011d1', b'0', 104361), +('0edb498', b'0', 104362), +('51702a2', b'0', 104363), +('2a43f43', b'0', 104364), +('9e1780e', b'0', 104365), +('8ecbee5', b'0', 104366), +('54ba657', b'0', 104367), +('9c2e121', b'0', 104368), +('0b869c8', b'0', 104370), +('3f6dc14', b'0', 104371), +('c177e1f', b'0', 104372), +('265f955', b'0', 104373), +('5bac55c', b'0', 104374), +('1dece49', b'0', 104375), +('1d00da1', b'0', 104376), +('356ddd4', b'0', 104377), +('f8687ca', b'0', 104378), +('80160e8', b'0', 104379), +('b316aa6', b'0', 104380), +('558ccc2', b'0', 104381), +('2970388', b'0', 104382), +('53226ee', b'0', 104383), +('06f7ac7', b'0', 104384), +('ead9609', b'0', 104385), +('41f6dce', b'0', 104386), +('d8baffd', b'0', 104387), +('d9d966c', b'0', 104388), +('dd9f8ef', b'0', 104389), +('ad52537', b'0', 104390), +('284d97e', b'0', 104391), +('bbd274c', b'0', 104392), +('238daab', b'0', 104393), +('29354f0', b'0', 104394), +('268cbed', b'0', 104395), +('3c47d1f', b'0', 104396), +('bfb19de', b'0', 104397), +('5e10fab', b'0', 104398), +('4c10c45', b'0', 104399), +('6c30066', b'0', 104400), +('2f56f93', b'0', 104401), +('fad368e', b'0', 104402), +('b969802', b'0', 104403), +('1f24c76', b'0', 104404), +('06badf0', b'0', 104405), +('e42f190', b'0', 104406), +('07e8fb7', b'0', 104407), +('1bd69dd', b'0', 104408), +('f2e268b', b'0', 104409), +('d6300db', b'0', 104410), +('a5f0b3e', b'0', 104411), +('d567e67', b'0', 104412), +('ecaf31b', b'0', 104413), +('dbf0951', b'0', 104414), +('af88ce0', b'0', 104415), +('3699600', b'0', 104416), +('823a7be', b'0', 104417), +('bae0785', b'0', 104418), +('207737f', b'0', 104419), +('23ae549', b'0', 104420), +('bcb013e', b'0', 104421), +('f2aa0c2', b'0', 104422), +('f921b88', b'0', 104424), +('95460a4', b'0', 104425), +('160263f', b'0', 104426), +('201737e', b'0', 104427), +('e9dbb5b', b'0', 104428), +('a6c2561', b'0', 104430), +('9f22e6d', b'0', 104431); + +-- +-- Dumping data for table `committed_configuration` +-- + +INSERT INTO `committed_configuration` (`committed`, `id`) VALUES +('2019-06-25 19:16:50', 1), +('2019-06-25 19:14:12', 3), +('2019-06-19 20:56:41', 4), +('2019-06-19 20:53:31', 6), +('2019-06-19 20:28:19', 8), +('2019-06-12 22:02:44', 17), +('2019-06-12 22:02:04', 25), +('2019-06-12 21:36:30', 29), +('2019-06-12 21:53:57', 30), +('2019-06-12 21:59:18', 31), +('2019-06-11 18:39:29', 32), +('2019-06-11 18:23:00', 33), +('2019-06-11 16:36:34', 34), +('2019-06-11 16:19:42', 37), +('2019-06-11 16:35:33', 42), +('2019-06-11 16:29:51', 43), +('2019-06-11 15:36:00', 45), +('2019-06-11 15:15:13', 47), +('2019-06-11 15:33:50', 61), +('2019-06-09 01:27:39', 63), +('2019-06-09 22:41:36', 65), +('2019-06-09 22:57:20', 66), +('2019-06-09 23:27:49', 67), +('2019-06-09 23:49:48', 68), +('2019-06-09 23:57:41', 69), +('2019-06-10 00:00:22', 183), +('2019-06-10 00:02:12', 184), +('2019-06-10 01:58:03', 191), +('2019-06-10 05:03:36', 192), +('2019-06-10 14:13:21', 218), +('2019-06-10 15:14:27', 219), +('2019-06-10 15:35:16', 222), +('2019-06-10 15:59:15', 224), +('2019-06-10 16:07:04', 229), +('2019-06-10 16:15:10', 230), +('2019-06-10 16:18:54', 233), +('2019-06-10 16:39:57', 237), +('2019-06-10 16:51:25', 241), +('2019-06-10 16:51:43', 245), +('2019-06-10 17:04:21', 250), +('2019-06-10 17:04:58', 255), +('2019-06-10 17:13:32', 259), +('2019-06-10 18:26:24', 263), +('2019-06-11 11:17:28', 267), +('2019-06-11 11:57:09', 274), +('2019-06-11 11:59:54', 276), +('2019-06-07 15:44:19', 281), +('2019-06-07 16:27:08', 285), +('2019-06-07 18:47:37', 298), +('2019-06-11 12:00:20', 300), +('2019-06-08 21:32:54', 302), +('2019-06-09 00:43:10', 408), +('2019-06-09 14:19:16', 410), +('2019-06-09 14:20:20', 411), +('2019-06-11 15:30:04', 412), +('2019-06-11 15:24:34', 414), +('2019-06-11 12:07:40', 418), +('2019-06-10 18:26:32', 423), +('2019-06-10 16:51:58', 424), +('2019-06-09 23:58:06', 425), +('2019-06-09 22:42:18', 426), +('2019-06-09 22:04:36', 428), +('2019-06-09 21:57:18', 429), +('2019-06-09 21:07:13', 431), +('2019-06-09 21:57:00', 437), +('2019-06-09 15:24:31', 459), +('2019-06-09 15:20:23', 460), +('2019-06-09 14:40:54', 461), +('2019-06-09 14:32:25', 462), +('2019-06-09 14:22:43', 463), +('2019-06-09 13:13:56', 464), +('2019-06-09 13:02:06', 465), +('2019-06-07 21:51:49', 468), +('2019-06-07 21:51:49', 474), +('2019-06-07 21:52:00', 475), +('2019-06-07 21:52:00', 476), +('2019-06-07 22:53:42', 477), +('2019-06-07 22:55:00', 479), +('2019-06-08 15:11:09', 480), +('2019-06-08 15:31:40', 481), +('2019-05-23 17:07:51', 484), +('2019-05-23 23:05:37', 485), +('2019-05-23 23:31:07', 487), +('2019-05-24 00:21:25', 488), +('2019-05-25 18:42:06', 490), +('2019-05-25 19:11:57', 497), +('2019-05-25 22:30:58', 498), +('2019-05-25 23:45:55', 499), +('2019-05-28 23:35:43', 500), +('2019-06-09 01:27:32', 501), +('2019-06-08 21:57:16', 503), +('2019-06-08 23:57:32', 504), +('2019-06-08 18:33:50', 505), +('2019-06-08 15:12:57', 506), +('2019-06-07 17:39:49', 508), +('2019-06-07 19:12:02', 509), +('2019-06-07 19:47:06', 510), +('2019-06-07 23:43:47', 511), +('2019-06-07 23:55:09', 512), +('2019-06-07 23:09:45', 513), +('2019-06-07 23:07:34', 515), +('2019-06-07 21:37:44', 517), +('2019-06-05 16:38:38', 518), +('2019-06-05 16:33:33', 520), +('2019-06-05 16:22:27', 522), +('2019-06-01 20:26:43', 525), +('2019-06-02 12:26:10', 526), +('2019-06-02 16:17:59', 527), +('2019-06-02 17:03:07', 528), +('2019-06-03 16:50:50', 529), +('2019-06-04 15:48:25', 530), +('2019-06-04 16:34:06', 531), +('2019-06-04 15:44:03', 534), +('2019-06-05 16:07:54', 535), +('2019-06-05 16:15:26', 536), +('2019-06-01 16:44:57', 538), +('2019-06-01 15:26:40', 539), +('2019-05-25 18:49:45', 540), +('2019-05-24 00:24:18', 541), +('2019-05-24 00:23:05', 542), +('2019-05-23 15:58:03', 543), +('2019-05-22 17:32:45', 545), +('2019-05-23 15:18:34', 547), +('2019-05-23 15:54:22', 548), +('2019-05-23 15:54:22', 549), +('2019-05-23 15:58:03', 550), +('2019-05-22 17:46:14', 552), +('2019-05-23 15:17:17', 554), +('2019-05-23 14:35:28', 555), +('2019-04-27 21:39:30', 556), +('2019-04-27 21:22:02', 559), +('2019-04-27 14:48:54', 563), +('2019-04-27 14:48:54', 564), +('2019-04-27 14:51:30', 565), +('2019-04-27 21:16:15', 566), +('2019-04-27 14:43:53', 567), +('2019-04-27 14:27:06', 569), +('2019-04-27 14:27:07', 570), +('2019-04-27 14:27:19', 571), +('2019-04-27 14:27:19', 572), +('2019-04-27 14:27:19', 573), +('2019-04-27 14:27:19', 574), +('2019-04-27 14:27:19', 575), +('2019-04-27 14:27:19', 576), +('2019-04-27 14:27:20', 577), +('2019-04-27 14:27:20', 578), +('2019-04-27 14:27:20', 579), +('2019-04-27 14:27:20', 580), +('2019-04-27 14:27:20', 581), +('2019-04-27 14:42:17', 582), +('2019-04-19 17:52:08', 586), +('2019-04-19 18:10:10', 587), +('2019-04-19 21:23:01', 589), +('2019-04-19 21:57:29', 590), +('2019-04-20 00:17:37', 591), +('2019-04-20 10:45:55', 592), +('2019-04-20 13:19:34', 593), +('2019-04-20 13:31:42', 594), +('2019-04-27 14:26:18', 595), +('2019-04-24 23:35:17', 597), +('2019-04-24 23:10:59', 598), +('2019-04-24 22:59:29', 599), +('2019-04-24 22:32:49', 600), +('2019-04-24 18:28:30', 601), +('2019-04-24 17:06:46', 603), +('2019-04-24 14:31:19', 604), +('2019-04-23 19:38:57', 605), +('2019-04-23 19:38:08', 606), +('2019-04-23 19:26:38', 608), +('2019-04-23 17:35:19', 609), +('2019-04-23 17:32:06', 610), +('2019-04-23 10:58:59', 611), +('2019-04-23 10:58:10', 612), +('2019-04-23 10:57:27', 615), +('2019-04-22 22:33:30', 617), +('2019-04-23 10:57:04', 618), +('2019-04-23 10:56:08', 619), +('2019-04-22 23:07:06', 620), +('2019-04-22 21:14:41', 622), +('2019-04-22 21:15:40', 623), +('2019-04-22 21:15:41', 624), +('2019-04-22 21:26:27', 625), +('2019-04-22 21:42:43', 626), +('2019-04-22 23:03:45', 627), +('2019-04-22 22:32:44', 628), +('2019-04-22 22:00:48', 630), +('2019-04-22 21:10:40', 631), +('2019-04-22 21:05:04', 632), +('2019-04-19 20:10:22', 635), +('2019-04-19 20:13:28', 636), +('2019-04-20 11:19:42', 637), +('2019-04-19 20:43:24', 639), +('2019-04-19 16:58:20', 640), +('2019-04-19 17:19:46', 645), +('2019-04-18 18:21:53', 647), +('2019-04-18 18:27:33', 648), +('2019-04-17 22:48:27', 649), +('2019-04-17 21:46:20', 659), +('2019-04-17 16:40:40', 661), +('2019-04-17 16:15:58', 663), +('2019-04-11 17:08:02', 664), +('2019-04-11 16:35:29', 668), +('2019-04-11 15:19:49', 670), +('2019-03-31 16:14:35', 671), +('2019-03-30 16:42:01', 673), +('2019-03-25 22:44:38', 674), +('2019-03-25 22:40:43', 680), +('2019-03-24 17:46:39', 685), +('2019-03-24 16:32:50', 687), +('2019-03-24 16:35:58', 690), +('2019-03-24 16:42:30', 691), +('2019-03-20 19:09:42', 692), +('2019-03-20 18:41:13', 694), +('2019-03-12 18:30:40', 3093), +('2019-03-05 13:26:40', 3094), +('2019-07-01 23:38:22', 3095), +('2019-07-01 23:34:39', 3096), +('2019-06-27 16:17:53', 3097), +('2019-03-12 18:32:18', 3098), +('2019-06-12 22:01:32', 3100), +('2019-06-12 20:11:23', 3101), +('2019-06-13 17:07:20', 3124), +('2019-06-13 17:06:33', 3125), +('2019-06-13 17:06:10', 3126), +('2019-06-13 17:05:42', 3127), +('2019-06-11 15:29:19', 3131), +('2019-06-11 15:25:05', 3132), +('2019-06-11 20:06:37', 3137), +('2019-06-11 19:17:59', 3138), +('2019-06-11 19:17:15', 3139), +('2019-06-11 19:08:36', 3140), +('2019-06-11 16:36:00', 3144), +('2019-06-11 16:24:38', 3145), +('2019-06-11 16:43:51', 3150), +('2019-06-11 15:15:33', 3151), +('2019-06-11 16:24:54', 3157), +('2019-06-11 15:38:56', 3158), +('2019-06-11 15:38:55', 3159), +('2019-06-09 14:11:23', 3165), +('2019-06-08 23:59:09', 3166), +('2019-06-08 21:59:17', 3167), +('2019-06-07 23:08:09', 3174), +('2019-06-07 21:38:39', 3175), +('2019-06-08 01:19:02', 3181), +('2019-06-07 23:56:11', 3182), +('2019-06-07 19:38:41', 3183), +('2019-06-07 17:41:23', 3184), +('2019-06-09 14:19:34', 3192), +('2019-06-09 00:41:57', 3193), +('2019-06-08 21:31:09', 3194), +('2019-06-11 12:05:43', 3201), +('2019-06-11 11:20:14', 3202), +('2019-06-11 12:09:30', 3203), +('2019-06-10 17:15:38', 3204), +('2019-06-10 17:05:25', 3205), +('2019-06-10 17:04:46', 3206), +('2019-06-10 16:03:52', 3207), +('2019-06-10 13:25:44', 3208), +('2019-06-09 11:11:34', 3209), +('2019-06-11 12:06:16', 3216), +('2019-06-07 18:46:43', 3223), +('2019-06-07 15:45:43', 3224), +('2019-06-09 21:50:41', 3231), +('2019-06-09 21:10:44', 3232), +('2019-06-08 21:21:56', 3233), +('2019-06-07 21:40:21', 3238), +('2019-06-07 18:39:53', 3239), +('2019-06-07 17:54:16', 3240), +('2019-06-07 17:50:13', 3241), +('2019-06-05 22:58:35', 3245), +('2019-06-05 22:58:23', 3246), +('2019-06-05 22:57:33', 3247), +('2019-06-05 21:15:02', 3248), +('2019-06-09 21:53:20', 3253), +('2019-06-08 21:21:36', 3254), +('2019-06-04 16:28:14', 3260), +('2019-06-04 15:44:56', 3261), +('2019-06-05 16:32:25', 3266), +('2019-06-05 16:25:38', 3267), +('2019-06-05 14:25:25', 3268), +('2019-06-04 15:49:21', 3269), +('2019-05-23 15:17:44', 3283), +('2019-05-23 14:36:22', 3284), +('2019-05-22 18:08:05', 3285), +('2019-05-22 17:35:08', 3286), +('2019-06-09 13:02:58', 3293), +('2019-06-08 15:12:05', 3294), +('2019-06-07 22:54:05', 3295), +('2019-06-07 21:29:10', 3296), +('2019-06-04 16:12:32', 3297), +('2019-06-04 15:44:11', 3298), +('2019-06-04 15:53:05', 3311), +('2019-06-04 15:46:35', 3312), +('2019-06-01 12:23:20', 3317), +('2019-05-28 23:37:11', 3318), +('2019-05-25 23:46:57', 3319), +('2019-05-25 22:34:57', 3320), +('2019-05-25 18:45:02', 3321), +('2019-05-24 00:19:28', 3329), +('2019-05-23 23:32:28', 3330), +('2019-05-23 14:43:54', 3336), +('2019-05-22 17:47:54', 3337), +('2019-05-22 10:19:35', 3345), +('2019-05-22 15:42:58', 3346), +('2019-05-20 23:32:33', 3347), +('2019-05-20 23:14:34', 3348), +('2019-05-02 00:19:00', 3355), +('2019-05-02 00:14:02', 3356), +('2019-05-02 01:24:22', 3369), +('2019-05-01 16:02:57', 3370), +('2019-05-01 13:51:18', 3377), +('2019-06-09 15:54:19', 3386), +('2019-06-09 15:30:45', 3387), +('2019-04-26 09:24:35', 3393), +('2019-04-24 23:36:02', 3394), +('2019-04-20 11:10:01', 3399), +('2019-04-19 18:44:11', 3400), +('2019-05-02 01:26:10', 3405), +('2019-05-01 23:52:37', 3406), +('2019-05-01 23:52:34', 3407), +('2019-04-27 21:48:20', 3414), +('2019-04-27 14:11:31', 3415), +('2019-04-24 23:16:00', 3416), +('2019-04-23 02:04:05', 3423), +('2019-04-22 22:35:09', 3424), +('2019-04-22 21:02:26', 3431), +('2019-04-19 18:14:30', 3432), +('2019-04-23 01:39:32', 3439), +('2019-04-22 23:05:38', 3440), +('2019-04-22 21:50:42', 3441), +('2019-04-22 21:27:56', 3442), +('2019-04-20 13:05:49', 3443), +('2019-04-23 01:49:33', 3453), +('2019-04-22 23:02:33', 3454), +('2019-04-23 19:38:52', 3460), +('2019-04-23 19:27:59', 3461), +('2019-04-27 21:31:13', 3467), +('2019-04-27 21:21:52', 3468), +('2019-04-27 13:40:48', 3469), +('2019-04-26 09:18:40', 3470), +('2019-04-24 18:32:22', 3471), +('2019-04-23 20:15:53', 3472), +('2019-04-17 22:39:07', 3485), +('2019-04-17 21:46:49', 3486), +('2019-04-17 18:12:39', 3487), +('2019-04-17 16:43:50', 3488), +('2019-04-24 18:27:48', 3495), +('2019-04-24 17:10:40', 3496), +('2019-04-19 16:26:29', 3503), +('2019-04-19 15:22:29', 3504), +('2019-04-18 23:14:00', 3505), +('2019-04-18 16:28:20', 3506), +('2019-04-17 17:59:44', 3514), +('2019-04-17 16:16:22', 3515), +('2019-04-27 14:32:43', 3523), +('2019-04-27 14:10:13', 3524), +('2019-04-26 22:35:50', 3525), +('2019-04-26 21:59:07', 3526), +('2019-04-24 23:33:29', 3527), +('2019-04-24 20:59:39', 3528), +('2019-04-24 19:39:52', 3529), +('2019-04-24 17:22:59', 3530), +('2019-04-23 19:33:04', 3531), +('2019-04-23 18:41:58', 3532), +('2019-04-20 13:30:14', 3539), +('2019-04-20 13:20:23', 3540), +('2019-04-20 11:44:18', 3541), +('2019-04-20 00:11:02', 3542), +('2019-04-19 21:24:17', 3543), +('2019-04-19 17:38:51', 3544), +('2019-04-18 21:35:55', 3545), +('2019-04-18 19:47:52', 3546), +('2019-04-17 11:32:50', 3547), +('2019-04-15 22:33:40', 3558), +('2019-04-15 21:58:29', 3559), +('2019-04-14 17:12:33', 3573), +('2019-04-11 14:09:44', 3574), +('2019-04-11 13:44:18', 3579), +('2019-04-11 13:29:14', 3583), +('2019-04-15 21:58:47', 3587), +('2019-04-15 13:00:50', 3588), +('2019-04-15 10:41:03', 3589), +('2019-04-15 10:38:10', 3590), +('2019-04-19 15:50:25', 3597), +('2019-04-17 10:19:12', 3598), +('2019-04-17 09:27:07', 3599), +('2019-04-16 20:45:29', 3600), +('2019-04-19 16:12:34', 3605), +('2019-04-19 15:51:49', 3606), +('2019-04-19 15:51:07', 3607), +('2019-04-18 23:26:19', 3608), +('2019-04-16 10:32:11', 3612), +('2019-04-16 10:27:15', 3613), +('2019-04-15 22:42:33', 3614), +('2019-04-15 18:14:59', 3615), +('2019-04-05 17:00:10', 3620), +('2019-03-31 16:39:04', 3621), +('2019-03-31 16:04:32', 3628), +('2019-03-30 16:43:28', 3629), +('2019-04-11 17:04:22', 3635), +('2019-04-11 16:32:03', 3636), +('2019-03-26 21:09:51', 3655), +('2019-04-14 16:48:52', 3661), +('2019-04-14 17:53:12', 3667), +('2019-04-10 11:46:19', 3668), +('2019-04-10 16:37:38', 3675), +('2019-04-10 17:27:47', 3682), +('2019-04-11 14:59:26', 3690), +('2019-03-31 17:20:34', 3694), +('2019-04-13 15:21:54', 3703), +('2019-04-11 17:50:04', 3704), +('2019-04-14 16:41:24', 3713), +('2019-04-10 11:13:04', 3714), +('2019-04-06 15:47:46', 3715), +('2019-03-24 16:45:22', 3729), +('2019-03-25 21:53:59', 3733), +('2019-03-25 21:23:40', 3734), +('2019-03-25 19:36:21', 3735), +('2019-03-25 19:02:01', 3736), +('2019-03-26 20:45:45', 3741), +('2019-03-25 23:59:24', 3742), +('2019-03-31 16:19:45', 3748), +('2019-03-31 13:23:05', 3749), +('2019-03-29 20:39:00', 3750), +('2019-03-20 18:44:41', 3757), +('2019-03-24 13:58:49', 3761), +('2019-03-25 19:36:02', 3766), +('2019-03-24 14:33:52', 3767), +('2019-03-20 16:27:03', 3775), +('2019-03-20 14:39:20', 3776), +('2019-03-20 14:39:01', 3777), +('2019-04-15 13:00:18', 3782), +('2019-04-11 13:22:08', 3783), +('2019-03-19 19:18:54', 3784), +('2019-03-18 20:58:28', 3794), +('2019-03-20 16:27:50', 3801), +('2019-03-20 14:38:21', 3802), +('2019-03-20 14:30:21', 3803), +('2019-03-20 14:28:43', 3804), +('2019-06-11 15:40:39', 3809), +('2019-06-05 17:41:56', 3810), +('2019-06-05 17:42:13', 3811), +('2019-03-25 21:35:38', 3812), +('2019-03-16 11:44:53', 3821), +('2019-03-24 14:49:21', 3828), +('2019-03-14 16:38:43', 3833), +('2019-03-14 14:56:56', 3834), +('2019-03-18 21:10:23', 3847), +('2019-03-25 18:13:54', 3855), +('2019-03-24 19:11:03', 3856), +('2019-03-25 21:26:33', 3868), +('2019-03-25 21:26:07', 3869), +('2019-03-14 15:56:21', 3874), +('2019-03-14 13:56:50', 3875), +('2019-03-14 13:53:06', 3876), +('2019-03-14 13:45:26', 3877), +('2019-03-14 15:29:46', 3882), +('2019-03-13 20:15:14', 3883), +('2019-03-20 16:24:12', 3887), +('2019-03-20 14:38:28', 3888), +('2019-03-20 14:37:47', 3889), +('2019-03-18 15:04:29', 3890), +('2019-03-13 18:30:24', 3896), +('2019-03-13 14:30:08', 3897), +('2019-03-13 08:27:23', 3898), +('2019-03-13 01:32:31', 3899), +('2019-06-05 22:56:51', 3903), +('2019-06-01 16:43:40', 3904), +('2019-04-03 21:53:26', 3922), +('2019-04-03 21:46:56', 3924), +('2019-04-03 21:29:29', 3927), +('2019-04-03 13:00:49', 3928), +('2019-04-03 12:57:59', 3932), +('2019-04-03 12:57:12', 3933), +('2019-04-02 21:09:18', 3935), +('2019-04-02 21:08:44', 3937), +('2019-04-02 20:27:00', 3938), +('2019-04-02 20:13:34', 3939), +('2019-04-02 19:49:21', 3940), +('2019-04-02 16:45:48', 3941), +('2019-04-01 17:38:07', 3943), +('2019-04-01 17:34:14', 3945), +('2019-03-31 18:47:28', 3946), +('2019-03-31 17:31:44', 3947), +('2019-03-31 17:31:44', 3948), +('2019-03-31 17:31:44', 3949), +('2019-03-31 17:25:12', 3950), +('2019-03-31 16:09:58', 3952), +('2019-03-31 14:54:06', 3953), +('2019-03-31 14:05:21', 3954), +('2019-03-27 18:52:07', 3955), +('2019-03-27 17:36:05', 3957), +('2019-03-17 16:22:52', 3960), +('2019-03-16 21:34:59', 3962), +('2019-03-16 23:01:51', 3964), +('2019-03-17 12:07:09', 3965), +('2019-03-17 15:11:57', 3966), +('2019-03-31 22:25:45', 4008), +('2019-05-16 18:44:15', 4047), +('2019-05-16 20:14:39', 4051), +('2019-05-16 22:48:37', 4052), +('2019-05-16 23:42:15', 4053), +('2019-05-17 23:42:32', 4055), +('2019-05-19 22:42:52', 4056), +('2019-05-13 18:02:25', 4059), +('2019-05-14 15:41:29', 4062), +('2019-05-14 18:08:43', 4063), +('2019-05-14 18:14:17', 4066), +('2019-05-12 14:41:55', 4068), +('2019-05-12 14:45:46', 4070), +('2019-05-16 20:34:45', 4073), +('2019-05-10 15:36:42', 4077), +('2019-05-10 15:52:36', 4078), +('2019-05-31 09:07:41', 4081), +('2019-05-31 09:15:05', 4082), +('2019-05-31 10:40:45', 4083), +('2019-05-30 16:52:29', 4085), +('2019-05-21 20:17:19', 4088), +('2019-05-26 19:48:40', 4089), +('2019-05-26 19:57:32', 4094), +('2019-05-26 20:17:44', 4096), +('2019-05-29 13:44:52', 4098), +('2019-06-05 14:45:47', 4105), +('2019-06-09 21:48:48', 4108), +('2019-06-09 21:54:54', 4109), +('2019-06-10 10:02:31', 4110), +('2019-06-10 11:06:28', 4111), +('2019-06-10 11:51:24', 4114), +('2019-06-10 12:28:10', 4115), +('2019-06-09 08:02:38', 4119), +('2019-06-09 09:47:24', 4120), +('2019-06-07 06:21:49', 4124), +('2019-06-10 10:27:03', 4128), +('2019-06-10 18:46:34', 4129), +('2019-06-05 15:52:58', 4133), +('2019-06-05 17:05:21', 4134), +('2019-06-05 17:10:44', 4135), +('2019-06-05 19:54:56', 4136), +('2019-06-06 22:55:12', 4137), +('2019-06-09 19:43:52', 4138), +('2019-06-09 19:52:50', 4139), +('2019-06-09 21:44:04', 4140), +('2019-03-15 18:05:12', 4155), +('2019-03-15 17:25:08', 4157), +('2019-02-12 09:24:01', 4158), +('2019-02-12 08:42:37', 4180), +('2019-02-11 21:56:11', 4181), +('2019-02-11 21:56:11', 4185), +('2019-02-11 21:56:10', 4186), +('2019-02-11 21:56:10', 4187), +('2019-02-11 21:56:10', 4190), +('2019-02-11 21:56:10', 4196), +('2019-02-11 21:56:10', 4199), +('2019-02-11 21:56:10', 4201), +('2019-02-11 21:56:10', 4208), +('2019-02-11 21:55:59', 4210), +('2019-02-11 21:52:47', 4212), +('2019-02-11 20:52:32', 4221), +('2019-02-11 17:44:25', 4222), +('2019-02-11 10:18:24', 4232), +('2019-02-11 09:37:05', 4233), +('2019-02-09 17:41:10', 4234), +('2019-02-09 17:41:10', 4236), +('2019-02-09 17:41:10', 4239), +('2019-02-09 15:04:01', 4240), +('2019-02-09 12:09:41', 4241), +('2019-02-09 12:06:53', 4243), +('2019-02-08 22:44:01', 4244), +('2019-02-08 21:00:35', 4245), +('2019-02-08 20:54:42', 4246), +('2019-02-08 20:46:28', 4253), +('2019-02-08 20:19:48', 4254), +('2019-02-08 19:45:37', 4255), +('2019-02-08 19:44:49', 4256), +('2019-02-08 18:47:49', 4427), +('2019-02-08 18:37:39', 4428), +('2019-02-08 18:37:39', 4429), +('2019-02-08 18:37:39', 4430), +('2019-02-08 18:29:00', 4431), +('2019-02-05 10:46:36', 4432), +('2019-02-05 10:40:52', 4433), +('2019-01-26 12:54:41', 4434), +('2019-01-26 12:53:30', 4435), +('2019-01-26 10:38:17', 4436), +('2019-01-26 10:25:29', 4437), +('2019-01-26 10:25:03', 4438), +('2019-01-26 09:51:15', 4439), +('2019-01-26 09:49:06', 4440), +('2019-01-26 09:07:06', 4441), +('2019-01-26 08:57:59', 4442), +('2019-01-25 17:53:28', 4443), +('2019-01-24 15:20:33', 4444), +('2019-01-23 21:02:16', 4446), +('2019-01-22 17:01:13', 4447), +('2018-12-19 09:02:23', 4448), +('2018-12-19 08:11:01', 4449), +('2018-12-19 08:06:58', 4450), +('2018-12-19 08:06:20', 4451), +('2018-12-19 08:04:16', 4452), +('2018-12-03 03:26:21', 4453), +('2018-11-30 09:12:45', 4454), +('2018-11-29 21:36:02', 4455), +('2018-11-29 21:35:21', 4456), +('2018-11-29 18:26:15', 4457), +('2018-11-29 18:08:21', 4458), +('2018-11-29 18:06:55', 4459), +('2018-11-29 16:53:05', 4460), +('2018-11-29 16:52:35', 4461), +('2018-11-29 16:36:42', 4462), +('2018-11-29 16:36:23', 4463), +('2018-11-29 15:44:32', 4464), +('2018-11-29 12:53:59', 4465), +('2018-11-23 12:53:40', 4466), +('2018-11-23 12:52:58', 4467), +('2018-11-23 12:51:54', 4468), +('2018-11-14 23:00:03', 4469), +('2018-11-14 23:00:03', 4470), +('2018-11-14 22:59:59', 4471), +('2018-11-14 22:59:38', 4472), +('2018-11-13 20:18:01', 4473), +('2018-11-11 17:14:07', 4474), +('2018-11-11 17:14:06', 4475), +('2018-11-11 17:14:06', 4476), +('2018-11-11 17:14:06', 4477), +('2018-11-11 17:14:06', 4478), +('2018-11-11 17:14:05', 4479), +('2018-11-11 17:14:05', 4480), +('2018-11-10 16:44:09', 4481), +('2018-11-10 14:11:13', 4482), +('2018-11-10 14:08:02', 4483), +('2018-11-10 14:08:02', 4484), +('2018-11-10 14:08:01', 4485), +('2018-11-10 14:08:01', 4486), +('2018-11-10 14:08:01', 4487), +('2018-11-10 14:08:01', 4488), +('2018-11-10 14:08:01', 4489), +('2018-11-10 14:08:01', 4490), +('2018-11-10 14:08:00', 4491), +('2018-11-10 14:08:00', 4492), +('2018-11-10 14:07:31', 4493), +('2018-11-10 14:07:31', 4494), +('2018-11-10 14:07:30', 4495), +('2018-11-10 14:07:30', 4496), +('2018-11-10 14:07:29', 4497), +('2018-11-10 14:07:29', 4498), +('2018-11-10 14:07:29', 4499), +('2018-11-10 14:07:29', 4500), +('2018-11-10 14:07:28', 4501), +('2018-11-10 14:07:28', 4502), +('2018-11-10 14:07:28', 4504), +('2018-11-10 14:07:27', 4505), +('2018-11-10 14:07:27', 4506), +('2018-11-10 14:07:26', 4507), +('2018-11-10 14:07:26', 4508), +('2018-11-10 14:07:26', 4509), +('2018-11-07 12:07:38', 4510), +('2018-11-07 08:14:21', 4511), +('2018-11-07 08:13:15', 4512), +('2018-11-05 10:04:16', 4513), +('2018-11-05 10:03:13', 4514), +('2018-11-04 18:14:25', 4515), +('2018-11-01 14:39:12', 4516), +('2018-11-01 14:35:19', 4517), +('2018-11-01 13:16:15', 4518), +('2018-11-01 13:15:21', 4519), +('2018-10-26 13:44:30', 4520), +('2018-10-26 13:44:16', 4521), +('2018-10-26 13:43:21', 4522), +('2018-10-26 13:35:41', 4523), +('2018-10-26 13:34:48', 4524), +('2018-10-26 13:34:23', 4525), +('2018-10-26 10:40:12', 4526), +('2018-10-26 10:21:50', 4527), +('2018-10-26 10:20:51', 4528), +('2018-10-26 10:19:52', 4529), +('2018-10-26 10:19:05', 4530), +('2018-10-26 10:16:50', 4531), +('2018-10-26 10:16:29', 4532), +('2018-10-26 10:11:09', 4533), +('2018-10-25 14:37:11', 4534), +('2018-10-25 13:42:54', 4535), +('2018-10-25 12:40:40', 4536), +('2018-10-25 12:28:59', 4537), +('2018-10-25 09:24:57', 4538), +('2018-10-25 07:47:10', 4539), +('2018-10-24 21:09:17', 4540), +('2018-10-24 21:08:00', 4541), +('2018-10-23 21:37:58', 4542), +('2018-10-23 21:36:55', 4543), +('2018-10-23 21:10:39', 4544), +('2018-10-23 21:07:57', 4545), +('2018-10-23 21:07:10', 4546), +('2018-10-23 21:06:06', 4547), +('2018-10-23 21:02:02', 4548), +('2018-10-23 12:40:18', 4549), +('2018-10-23 00:09:27', 4550), +('2018-10-23 00:06:28', 4551), +('2018-10-22 23:54:41', 4552), +('2018-10-22 23:51:46', 4553), +('2018-10-22 23:51:46', 4554), +('2018-10-22 23:51:46', 4555), +('2018-10-22 23:51:13', 4556), +('2018-10-22 23:51:13', 4557), +('2018-10-22 23:51:12', 4558), +('2018-10-22 23:51:12', 4559), +('2018-10-22 23:51:12', 4560), +('2018-10-22 23:51:12', 4561), +('2018-10-22 23:51:12', 4562), +('2018-10-22 23:51:11', 4563), +('2018-10-22 23:50:51', 4564), +('2018-10-22 22:54:35', 4565), +('2018-10-20 21:44:39', 4566), +('2018-10-20 21:15:18', 4567), +('2018-10-20 18:35:12', 4568), +('2018-10-20 18:34:55', 4569), +('2018-10-20 18:34:03', 4570), +('2018-10-20 18:32:34', 4571), +('2018-10-20 18:32:03', 4572), +('2018-10-20 18:30:19', 4573), +('2018-10-15 21:25:36', 4574), +('2018-10-15 21:19:39', 4575), +('2018-10-15 21:14:15', 4576), +('2018-10-15 21:11:04', 4577), +('2018-10-13 15:18:33', 4578), +('2018-10-13 14:53:59', 4579), +('2018-10-12 15:47:45', 4580), +('2018-10-12 00:24:08', 4581), +('2018-10-11 17:23:19', 4582), +('2018-10-11 17:21:37', 4583), +('2018-10-11 17:14:35', 4584), +('2018-10-11 17:01:50', 4585), +('2018-10-11 16:56:41', 4586), +('2018-10-11 16:55:43', 4587), +('2018-10-11 16:55:03', 4588), +('2018-10-11 16:54:02', 4589), +('2018-10-09 22:37:37', 4590), +('2018-10-09 22:36:46', 4591), +('2018-10-09 22:36:13', 4592), +('2018-10-09 22:35:13', 4593), +('2018-10-09 22:25:42', 4594), +('2018-10-09 22:24:48', 4595), +('2018-10-09 22:21:52', 4596), +('2018-10-09 22:20:15', 4597), +('2018-10-09 22:19:55', 4598), +('2018-10-08 08:27:19', 4599), +('2018-10-08 08:27:00', 4600), +('2018-10-08 08:18:10', 4601), +('2018-09-27 13:19:25', 4602), +('2018-09-20 14:09:08', 4603), +('2018-09-20 14:03:31', 4604), +('2018-09-20 14:02:47', 4605), +('2018-09-19 15:17:38', 4606), +('2018-09-19 08:16:29', 4607), +('2018-09-07 18:06:43', 4608), +('2018-09-07 12:02:30', 4609), +('2018-09-06 21:22:10', 4610), +('2018-09-06 21:19:11', 4611), +('2018-09-06 20:53:21', 4612), +('2018-09-06 15:49:10', 4613), +('2018-09-05 15:02:06', 4614), +('2018-09-05 14:34:44', 4615), +('2018-09-05 14:16:25', 4616), +('2018-09-05 10:07:08', 4617), +('2018-08-31 11:14:23', 4618), +('2018-08-31 08:43:16', 4619), +('2018-08-31 08:42:15', 4620), +('2018-08-30 19:16:49', 4621), +('2018-08-30 19:07:01', 4622), +('2018-08-30 18:45:07', 4623), +('2018-08-30 17:50:00', 4624), +('2018-08-30 17:24:53', 4625), +('2018-08-29 14:44:47', 4626), +('2018-08-29 14:17:28', 4627), +('2018-08-29 13:44:56', 4628), +('2018-08-29 13:41:47', 4629), +('2018-08-29 13:36:10', 4630), +('2018-08-29 13:07:37', 4631), +('2018-08-29 13:05:46', 4632), +('2018-08-29 13:04:11', 4633), +('2018-08-29 11:35:07', 4634), +('2018-08-29 11:34:19', 4635), +('2018-08-29 10:15:06', 4636), +('2018-08-29 09:57:21', 4637), +('2018-08-29 09:19:43', 4638), +('2018-08-29 09:06:45', 4639), +('2018-08-28 12:50:38', 4640), +('2018-08-28 12:49:25', 4641), +('2018-08-28 12:48:37', 4642), +('2018-08-28 12:46:26', 4643), +('2018-08-28 12:43:50', 4644), +('2018-08-28 12:42:50', 4645), +('2018-08-28 12:40:08', 4646), +('2018-08-27 22:25:50', 4647), +('2018-08-27 22:24:44', 4648), +('2018-08-27 22:17:17', 4649), +('2018-08-27 20:33:31', 4650), +('2018-08-27 20:29:46', 4651), +('2018-08-27 20:10:07', 4652), +('2018-08-27 20:05:01', 4653), +('2018-08-27 20:02:25', 4654), +('2018-08-27 20:02:08', 4655), +('2018-08-27 20:00:22', 4656), +('2018-08-27 19:59:21', 4657), +('2018-08-27 19:50:06', 4658), +('2018-08-27 19:35:25', 4659), +('2018-08-27 19:22:26', 4660), +('2018-08-27 19:18:27', 4661), +('2018-08-27 14:12:18', 4662), +('2018-08-27 14:12:18', 4663), +('2018-08-27 13:43:55', 4664), +('2018-08-27 12:30:31', 4665), +('2018-08-27 11:52:50', 4666), +('2018-08-27 11:32:49', 4667), +('2018-08-27 11:01:13', 4668), +('2018-08-27 10:35:55', 4669), +('2018-08-24 15:24:44', 4670), +('2018-08-24 15:23:46', 4671), +('2018-08-24 11:24:31', 4672), +('2018-08-22 13:58:12', 4673), +('2018-08-22 11:17:48', 4674), +('2018-08-22 11:17:38', 4675), +('2018-08-22 10:48:47', 4676), +('2018-08-22 08:54:07', 4677), +('2018-08-21 13:37:28', 4678), +('2018-08-21 13:30:43', 4679), +('2018-08-21 13:30:42', 4680), +('2018-08-21 13:30:42', 4681), +('2018-08-21 13:30:42', 4682), +('2018-08-21 12:45:43', 4683), +('2018-08-21 11:37:05', 4684), +('2018-08-21 10:36:49', 4685), +('2018-08-21 10:31:11', 4686), +('2018-08-21 10:28:32', 4687), +('2018-08-21 10:26:41', 4688), +('2018-08-20 18:33:34', 4689), +('2018-08-20 18:06:25', 4690), +('2018-08-20 18:06:24', 4691), +('2018-08-20 18:06:24', 4692), +('2018-08-20 18:06:24', 4693), +('2018-08-20 18:06:24', 4694), +('2018-08-20 18:06:24', 4695), +('2018-08-20 18:06:23', 4696), +('2018-08-20 18:06:23', 4697), +('2018-08-20 18:06:23', 4698), +('2018-08-20 18:06:23', 4699), +('2018-08-20 18:06:23', 4700), +('2018-08-20 18:06:22', 4701), +('2018-08-20 18:06:22', 4702), +('2018-08-20 18:06:22', 4703), +('2018-08-20 18:06:22', 4704), +('2018-08-20 18:06:21', 4705), +('2018-08-20 18:06:21', 4706), +('2018-08-20 18:06:21', 4707), +('2018-08-20 18:05:25', 4708), +('2018-08-20 18:05:24', 4709), +('2018-08-20 18:04:45', 4710), +('2018-08-20 18:04:44', 4711), +('2018-08-20 18:02:41', 4712), +('2018-08-20 18:01:49', 4713), +('2018-08-20 17:58:24', 4714), +('2018-08-20 17:58:24', 4715), +('2018-08-20 17:58:19', 4716), +('2018-08-20 17:58:19', 4717), +('2018-08-20 17:58:19', 4718), +('2018-08-20 17:58:19', 4719), +('2018-08-20 17:58:17', 4720), +('2018-08-20 13:18:43', 4721), +('2018-08-20 11:17:58', 4722), +('2018-08-08 15:45:05', 4723), +('2018-08-08 15:26:12', 4724), +('2018-08-01 12:46:22', 4725), +('2019-05-12 14:38:26', 4726), +('2019-05-10 15:49:33', 4727), +('2019-05-09 20:43:14', 4728), +('2019-05-04 14:50:41', 4729), +('2019-04-27 11:10:34', 4731), +('2019-04-21 15:36:10', 4732), +('2019-04-21 11:31:52', 4734), +('2019-04-20 14:24:26', 4735), +('2019-04-16 19:10:55', 4736), +('2019-04-16 18:16:57', 4739), +('2019-04-14 20:06:18', 4740), +('2019-04-13 22:55:29', 4741), +('2019-04-13 22:49:24', 4742), +('2019-04-13 22:45:42', 4743), +('2019-04-04 10:17:54', 4744), +('2019-04-03 22:10:49', 4745), +('2019-04-03 21:58:25', 4746), +('2019-03-31 17:05:17', 4747), +('2019-03-31 16:32:26', 4748), +('2019-06-11 08:17:59', 4749), +('2019-06-11 08:17:39', 4750), +('2019-06-10 23:24:12', 4751), +('2019-06-10 23:09:03', 4752), +('2019-06-10 22:52:42', 4753), +('2019-06-10 21:45:46', 4754), +('2019-06-10 20:04:43', 4755), +('2019-06-10 19:32:20', 4756), +('2019-06-10 10:29:18', 4757), +('2019-06-10 10:03:23', 4758), +('2019-06-09 21:44:08', 4760), +('2019-06-09 13:01:08', 4761), +('2019-06-07 07:21:41', 4763), +('2019-06-05 19:55:10', 4764), +('2019-06-05 15:53:14', 4765), +('2019-06-05 14:58:31', 4766), +('2019-06-02 16:37:46', 4767), +('2019-05-30 16:44:08', 4768), +('2019-05-09 08:54:32', 4770), +('2019-06-13 09:05:35', 4773), +('2019-06-13 09:02:38', 4774), +('2019-06-13 09:35:55', 4775), +('2019-06-13 09:05:05', 4779), +('2019-06-13 09:34:58', 4780), +('2019-06-13 09:01:44', 4781), +('2019-06-10 21:46:58', 4784), +('2019-06-10 18:47:17', 4785), +('2019-06-10 10:55:18', 4786), +('2019-06-09 14:45:40', 4789), +('2019-06-09 13:09:40', 4790), +('2019-06-09 12:57:10', 4791), +('2019-06-09 12:55:27', 4794), +('2019-06-07 06:22:40', 4797), +('2019-06-02 16:44:06', 4801), +('2019-06-05 16:11:46', 4805), +('2019-06-10 11:52:51', 4810), +('2019-06-10 10:21:59', 4811), +('2019-06-09 16:33:09', 4812), +('2019-06-09 14:30:28', 4813), +('2019-06-09 14:28:23', 4814), +('2019-06-09 14:27:28', 4815), +('2019-06-10 11:52:03', 4820), +('2019-06-10 11:09:08', 4821), +('2019-06-09 21:49:51', 4822), +('2019-06-09 19:59:12', 4823), +('2019-06-05 15:07:28', 4824), +('2019-06-09 12:52:42', 4830), +('2019-06-09 12:53:07', 4831), +('2019-06-05 14:46:32', 4834), +('2019-06-06 09:49:20', 4840), +('2019-06-05 17:16:30', 4841), +('2019-06-05 16:12:11', 4842), +('2019-06-02 16:08:56', 4847), +('2019-06-02 15:30:22', 4848), +('2019-06-02 15:27:45', 4849), +('2019-06-02 15:13:27', 4850), +('2019-06-02 16:09:07', 4854), +('2019-06-02 15:27:55', 4855), +('2019-06-02 15:31:23', 4856), +('2019-05-31 14:07:56', 4857), +('2019-06-02 15:25:35', 4861), +('2019-06-12 08:17:41', 4865), +('2019-06-12 08:17:16', 4866), +('2019-06-11 19:02:22', 4867), +('2019-06-10 23:26:13', 4868), +('2019-06-10 21:17:40', 4869), +('2019-06-10 21:17:11', 4876), +('2019-06-09 21:23:19', 4877), +('2019-06-09 13:06:03', 4878), +('2019-05-29 21:37:46', 4884), +('2019-05-26 20:24:09', 4889), +('2019-05-22 17:03:32', 4890), +('2019-05-30 16:56:27', 4897), +('2019-05-28 13:44:22', 4898), +('2019-05-31 09:02:10', 4902), +('2019-05-29 21:18:50', 4903), +('2019-05-29 21:18:25', 4904), +('2019-05-30 16:55:41', 4908), +('2019-05-28 13:44:04', 4909), +('2019-05-21 08:02:46', 4915), +('2019-05-21 10:48:12', 4916), +('2019-05-19 12:48:16', 4922), +('2019-05-18 15:31:35', 4923), +('2019-05-20 09:38:45', 4927), +('2019-05-20 09:38:36', 4928), +('2019-05-22 10:12:46', 4932), +('2019-05-21 08:02:24', 4936), +('2019-05-21 10:47:30', 4937), +('2019-05-21 07:58:26', 4938), +('2019-05-22 10:26:13', 4943), +('2019-05-21 08:02:36', 4944), +('2019-05-21 10:47:55', 4945), +('2019-05-21 07:59:09', 4946), +('2019-05-30 16:59:16', 4951), +('2019-05-22 17:21:31', 4952), +('2019-05-16 22:21:25', 4956), +('2019-05-16 21:31:10', 4963), +('2019-05-16 20:37:40', 4964), +('2019-05-12 14:47:52', 4965), +('2019-05-10 16:12:36', 4972), +('2019-05-09 20:48:03', 4973), +('2019-05-14 18:15:44', 4982), +('2019-05-13 18:02:44', 4983), +('2019-05-13 11:59:45', 4984), +('2019-05-19 22:44:09', 4991), +('2019-05-17 23:44:26', 4992), +('2019-05-16 23:43:50', 4993), +('2019-05-16 22:49:24', 4994), +('2019-05-16 18:46:20', 4995), +('2019-05-13 12:19:24', 4996), +('2019-05-04 14:59:29', 5006), +('2019-04-25 21:34:52', 5012), +('2019-04-25 21:18:55', 5013), +('2019-04-26 00:09:18', 5020), +('2019-04-25 23:24:43', 5021), +('2019-05-05 16:14:43', 5036), +('2019-05-04 18:31:24', 5037), +('2019-05-05 20:08:08', 5047), +('2019-05-04 18:12:06', 5048), +('2019-05-05 19:46:37', 5061), +('2019-05-05 15:46:07', 5062), +('2019-05-05 12:54:49', 5063), +('2019-05-05 10:42:42', 5064), +('2019-05-04 15:00:43', 5075), +('2019-05-07 22:53:31', 5083), +('2019-05-22 10:11:52', 5090), +('2019-05-20 09:39:36', 5091), +('2019-05-09 20:52:59', 5092), +('2019-04-25 21:18:44', 5106), +('2019-05-07 11:44:07', 5121), +('2019-05-06 18:51:55', 5122), +('2019-05-06 15:43:27', 5123), +('2019-05-06 12:17:27', 5124), +('2019-05-08 13:57:40', 5129), +('2019-05-07 11:44:30', 5130), +('2019-05-06 18:52:14', 5131), +('2019-05-06 12:14:57', 5132), +('2019-05-13 09:51:52', 5139), +('2019-05-07 11:44:49', 5146), +('2019-05-06 18:52:42', 5147), +('2019-05-06 15:44:28', 5148), +('2019-05-07 11:44:40', 5154), +('2019-05-06 18:52:31', 5155), +('2019-05-06 15:44:14', 5156), +('2019-05-06 12:16:41', 5157), +('2019-04-22 22:25:37', 5167), +('2019-04-22 22:19:00', 5171), +('2019-04-22 22:18:44', 5172), +('2019-04-15 11:45:21', 5173), +('2019-04-09 19:20:38', 5176), +('2019-05-04 13:42:54', 5180), +('2019-04-27 11:33:27', 5181), +('2019-04-08 19:09:31', 5199), +('2019-04-08 19:02:05', 5200), +('2019-04-08 18:28:36', 5201), +('2019-04-08 18:20:58', 5202), +('2019-04-08 19:09:46', 5206), +('2019-04-08 19:02:17', 5207), +('2019-04-08 18:28:12', 5208), +('2019-04-08 18:18:30', 5209), +('2019-04-20 14:27:12', 5212), +('2019-04-20 14:25:56', 5213), +('2019-04-21 15:38:55', 5221), +('2019-04-15 08:26:15', 5222), +('2019-04-16 19:14:11', 5232), +('2019-04-16 18:24:18', 5233), +('2019-04-14 20:10:42', 5234), +('2019-04-13 22:57:11', 5235), +('2019-04-22 21:12:36', 5242), +('2019-04-21 10:54:43', 5243), +('2019-04-20 14:28:43', 5244), +('2019-04-09 19:05:29', 5253), +('2019-04-22 22:54:26', 5258), +('2019-04-23 07:43:35', 5265), +('2019-04-22 19:33:41', 5266), +('2019-04-16 18:20:30', 5267), +('2019-04-15 16:03:30', 5268), +('2019-04-25 20:54:26', 5273), +('2019-04-25 20:38:21', 5274), +('2019-04-24 10:34:29', 5275), +('2019-04-24 10:24:47', 5276), +('2019-04-25 20:53:44', 5285), +('2019-04-25 20:37:07', 5286), +('2019-04-24 10:35:42', 5287), +('2019-04-24 10:34:46', 5288), +('2019-04-25 20:54:09', 5298), +('2019-04-25 20:38:04', 5299), +('2019-04-24 10:33:56', 5300), +('2019-04-24 10:26:40', 5301), +('2019-04-08 09:31:38', 5315), +('2019-04-04 18:06:08', 5318), +('2019-04-03 19:17:53', 5319), +('2019-03-26 19:12:38', 5323), +('2019-03-31 22:56:03', 5331), +('2019-04-08 14:42:10', 5344), +('2019-04-07 23:40:18', 5345), +('2019-04-05 11:24:54', 5346), +('2019-04-04 18:02:53', 5347), +('2019-04-08 14:41:55', 5352), +('2019-04-07 23:40:48', 5353), +('2019-04-05 11:20:55', 5354), +('2019-04-04 18:03:14', 5355), +('2019-04-03 17:44:28', 5360), +('2019-04-22 19:31:35', 5368), +('2019-04-19 20:58:16', 5369), +('2019-04-19 20:57:11', 5370), +('2019-04-19 20:55:41', 5371), +('2019-04-16 17:03:22', 5372), +('2019-04-15 11:40:47', 5385), +('2019-04-03 17:41:12', 5395), +('2019-03-31 22:31:36', 5412), +('2019-03-31 19:48:08', 5413), +('2019-04-03 13:02:52', 5421), +('2019-04-02 21:30:05', 5422), +('2019-04-02 16:48:53', 5423), +('2019-04-02 16:48:22', 5424), +('2019-04-01 20:12:23', 5425), +('2019-03-31 18:49:52', 5426), +('2019-04-01 20:12:49', 5437), +('2019-03-28 09:07:08', 5438), +('2019-03-28 06:56:31', 5439), +('2019-03-28 06:55:16', 5440), +('2019-04-03 21:38:32', 5452), +('2019-04-03 13:05:08', 5453), +('2019-04-02 19:50:46', 5454), +('2019-04-01 20:13:11', 5455), +('2019-03-25 13:59:32', 5470), +('2019-03-22 16:47:27', 5471), +('2019-03-22 15:29:46', 5472), +('2019-03-25 13:59:08', 5479), +('2019-03-25 11:31:18', 5480), +('2019-03-25 15:07:42', 5481), +('2019-03-22 15:29:23', 5482), +('2019-03-17 16:30:13', 5488), +('2019-03-17 15:32:46', 5489), +('2019-03-17 12:36:22', 5490), +('2019-03-17 12:36:09', 5491), +('2019-03-28 06:31:14', 5497), +('2019-03-26 18:48:40', 5498), +('2019-03-25 22:17:25', 5499), +('2019-03-13 19:19:37', 5510), +('2019-03-13 19:16:58', 5515), +('2019-03-15 17:11:12', 5519), +('2019-03-22 14:56:52', 5527), +('2019-03-20 17:29:20', 5528), +('2019-03-17 16:29:54', 5529), +('2019-03-17 12:28:08', 5530), +('2019-03-13 21:24:48', 5531), +('2019-03-13 20:32:38', 5532), +('2019-03-13 20:16:10', 5533), +('2019-03-13 20:19:39', 5543), +('2019-03-13 19:43:09', 5555), +('2019-03-22 15:09:17', 5561), +('2020-07-22 12:29:51', 5775), +('2020-07-22 12:20:47', 5777), +('2020-07-22 12:11:59', 5783), +('2020-07-22 12:08:39', 5785), +('2020-07-22 12:08:37', 5788), +('2020-07-22 12:08:31', 5802), +('2020-07-22 12:03:16', 5803), +('2020-07-22 12:03:14', 5805), +('2020-07-22 12:03:11', 5806), +('2020-07-22 12:03:08', 5807), +('2020-07-22 12:03:06', 5808), +('2020-07-22 12:03:03', 5810), +('2020-07-22 12:03:01', 5811), +('2020-07-22 12:02:58', 5812), +('2020-07-22 12:02:56', 5813), +('2020-07-22 12:02:53', 5814), +('2020-07-22 12:02:51', 5815), +('2020-07-22 12:02:48', 5816), +('2020-07-22 12:02:39', 5817), +('2020-07-13 14:05:10', 5818), +('2020-07-13 10:16:07', 5821), +('2020-07-09 09:09:02', 5823), +('2020-07-02 08:31:20', 5824), +('2020-07-02 08:31:20', 5842), +('2020-07-02 08:31:20', 5843), +('2020-07-02 08:31:20', 5848), +('2020-07-02 08:31:20', 5855), +('2020-07-02 08:31:20', 5859), +('2020-07-02 08:31:20', 5860), +('2020-07-02 08:31:19', 5863), +('2020-07-02 08:31:19', 5866), +('2020-07-02 08:31:19', 5868), +('2020-06-01 15:57:19', 5871), +('2020-06-01 15:22:40', 5872), +('2020-06-01 15:17:12', 5873), +('2020-06-01 14:47:50', 5874), +('2020-06-01 14:30:46', 5875), +('2020-06-01 14:13:44', 5876), +('2020-06-01 14:03:44', 5877), +('2020-01-02 16:07:20', 5878), +('2020-01-02 16:02:26', 5880), +('2020-01-02 15:43:44', 5882), +('2020-01-02 15:20:54', 5883), +('2020-01-02 15:19:10', 5885), +('2020-01-02 14:05:34', 5886), +('2020-01-02 14:05:34', 5887), +('2019-10-29 07:40:25', 5890), +('2019-10-16 22:24:20', 5891), +('2019-10-16 22:23:55', 5892), +('2019-10-16 22:23:22', 5893), +('2019-10-15 15:27:42', 5894), +('2019-10-15 15:20:30', 5896), +('2019-10-14 15:49:36', 5897), +('2019-10-14 14:46:33', 5899), +('2019-10-14 12:29:53', 5900), +('2019-10-14 12:29:05', 5901), +('2019-10-14 12:25:05', 5902), +('2019-10-14 12:24:10', 5903), +('2019-10-14 12:23:40', 5904), +('2019-10-14 12:23:14', 5905), +('2019-10-12 14:11:04', 5906), +('2019-10-11 17:04:53', 5907), +('2019-10-11 17:04:53', 5908), +('2019-10-11 17:04:50', 5910), +('2019-10-11 10:48:57', 5911), +('2019-10-11 10:43:31', 5912), +('2019-10-11 10:42:31', 5913), +('2019-10-11 10:25:25', 5914), +('2019-10-11 10:15:50', 5915), +('2019-10-11 10:14:22', 5916), +('2019-10-10 15:58:59', 5917), +('2019-10-10 15:43:32', 5921), +('2019-10-10 15:43:05', 5922), +('2019-10-10 15:42:25', 5923), +('2019-10-10 11:29:01', 5924), +('2019-10-10 11:29:01', 5925), +('2019-10-10 11:29:01', 5926), +('2019-10-10 11:29:01', 5927), +('2019-10-10 11:25:13', 5928), +('2019-10-10 11:23:05', 5929), +('2019-10-10 11:21:42', 5930), +('2019-10-10 11:21:10', 5931), +('2019-10-10 11:20:39', 5932), +('2019-10-08 13:31:03', 5933), +('2019-10-08 12:44:35', 5934), +('2019-10-08 12:44:14', 5935), +('2019-10-08 12:42:33', 5936), +('2019-10-07 17:30:18', 5937), +('2019-07-14 19:47:50', 5947), +('2019-07-12 21:44:06', 5948), +('2019-07-12 21:43:20', 5949), +('2019-06-11 12:16:31', 5950), +('2019-06-10 16:42:49', 5951), +('2019-06-07 18:40:12', 5952), +('2019-06-06 19:15:36', 5953), +('2019-06-06 18:52:17', 5954), +('2019-06-06 16:42:44', 5955), +('2019-06-06 13:50:10', 5956), +('2019-06-06 13:49:27', 5957), +('2019-06-06 13:42:19', 5958), +('2019-06-06 13:39:11', 5959), +('2019-06-06 13:11:39', 5960), +('2019-06-06 12:04:42', 5961), +('2019-06-06 11:57:02', 5962), +('2019-06-06 03:54:08', 5963), +('2019-06-06 03:53:47', 5964), +('2019-06-06 03:53:17', 5965), +('2019-06-06 03:51:56', 5966), +('2019-06-06 00:12:12', 5967), +('2019-06-05 21:04:56', 5968), +('2019-06-05 20:58:48', 5969), +('2019-06-05 20:56:05', 5970), +('2019-06-05 15:25:50', 5971), +('2019-06-05 15:22:55', 5972), +('2019-06-05 15:14:15', 5973), +('2019-06-05 15:05:06', 5974), +('2019-06-05 13:53:54', 5975), +('2019-06-05 13:14:12', 5976), +('2019-06-05 12:50:47', 5977), +('2019-06-05 12:36:22', 5978), +('2019-06-05 12:26:11', 5979), +('2019-06-05 11:59:03', 5980), +('2019-06-04 17:27:35', 5981), +('2019-06-04 17:12:05', 5982), +('2019-06-04 15:20:53', 5983), +('2019-06-02 17:40:30', 5984), +('2019-06-02 01:24:58', 5986), +('2019-06-02 01:21:04', 5987), +('2019-06-02 01:07:32', 5988), +('2019-06-01 19:51:30', 5989), +('2019-05-31 23:41:47', 5990), +('2019-05-31 23:39:32', 5991), +('2019-05-31 23:35:55', 5992), +('2019-05-31 23:24:06', 5993), +('2019-05-31 22:59:12', 5994), +('2019-05-31 22:37:29', 5995), +('2019-05-31 22:35:10', 5996), +('2019-05-31 22:23:37', 5997), +('2019-05-31 22:18:47', 5998), +('2019-05-31 16:56:59', 5999), +('2019-05-31 14:02:29', 6000), +('2019-05-31 13:44:53', 6001), +('2019-05-31 13:44:44', 6002), +('2019-05-31 13:24:09', 6003), +('2019-05-31 05:00:58', 6004), +('2019-05-30 21:09:19', 6006), +('2019-05-30 21:23:55', 6007), +('2019-05-30 22:02:46', 6008), +('2019-05-30 22:25:16', 6009), +('2019-05-31 00:08:59', 6010), +('2019-05-31 00:44:13', 6011), +('2019-05-31 00:53:48', 6012), +('2019-05-31 01:11:00', 6013), +('2019-05-31 01:15:52', 6014), +('2019-05-23 17:38:18', 6016), +('2019-05-30 23:26:53', 6017), +('2019-05-30 22:08:11', 6019), +('2019-05-30 22:03:00', 6020), +('2019-05-30 21:31:53', 6021), +('2019-05-30 20:56:44', 6023), +('2019-05-30 20:56:24', 6024), +('2019-05-30 19:40:44', 6025), +('2019-05-30 19:21:58', 6027), +('2019-05-30 19:21:42', 6029), +('2019-05-29 22:20:36', 6031), +('2019-05-29 12:14:01', 6033), +('2019-05-29 12:13:48', 6034), +('2019-05-29 12:10:32', 6035), +('2019-05-28 19:26:20', 6036), +('2019-05-27 13:10:15', 6038), +('2019-05-28 18:47:14', 6039), +('2019-05-28 18:38:51', 6040), +('2019-05-28 17:19:46', 6041), +('2019-05-28 16:44:07', 6042), +('2019-05-28 00:18:29', 6044), +('2019-05-27 18:25:27', 6045), +('2019-05-27 18:04:01', 6046), +('2019-05-27 12:41:36', 6047), +('2019-05-27 12:41:22', 6048), +('2019-05-26 23:43:01', 6049), +('2019-05-26 23:11:53', 6050), +('2019-05-26 22:41:17', 6052), +('2019-05-26 14:06:04', 6053), +('2019-05-26 11:21:27', 6054), +('2019-05-25 21:40:55', 6056), +('2019-05-25 21:28:13', 6057), +('2019-05-25 21:27:49', 6058), +('2019-05-25 21:26:09', 6059), +('2019-05-25 20:45:19', 6060), +('2019-05-25 20:45:19', 6061), +('2019-05-25 20:45:19', 6062), +('2019-05-25 20:38:57', 6063), +('2019-05-24 21:39:27', 6064), +('2019-05-15 12:51:49', 6065), +('2019-05-14 12:35:46', 6067), +('2019-05-13 14:23:36', 6069), +('2019-05-11 17:26:50', 6071), +('2019-05-11 17:26:50', 6072), +('2019-05-11 17:26:50', 6073), +('2019-05-10 08:43:22', 6074), +('2019-05-10 02:34:12', 6076), +('2019-05-10 00:31:36', 6078), +('2019-05-09 18:50:29', 6081), +('2019-05-09 17:44:12', 6083), +('2019-05-09 17:11:09', 6085), +('2019-05-08 16:45:31', 6087), +('2019-05-08 14:54:45', 6091), +('2019-05-07 00:44:41', 6094), +('2019-05-07 00:16:24', 6097), +('2019-05-07 00:10:06', 6098), +('2019-05-03 15:38:01', 6108), +('2019-04-23 15:06:05', 6110), +('2019-04-23 15:06:05', 6111), +('2019-04-23 15:06:05', 6112), +('2019-05-03 15:05:14', 6114), +('2019-04-23 15:06:05', 6118), +('2019-03-23 13:19:49', 6119), +('2019-03-08 12:57:32', 6124), +('2020-06-01 16:52:44', 6125), +('2020-06-01 16:46:37', 6126), +('2020-06-01 16:52:53', 6127), +('2020-06-01 16:52:53', 6128), +('2020-07-21 01:17:54', 6129), +('2020-07-07 23:29:11', 6130), +('2020-06-08 11:14:55', 6131), +('2019-06-12 12:26:50', 6134), +('2019-06-12 12:26:26', 6135), +('2019-06-12 12:14:03', 6136), +('2019-06-12 12:47:24', 6141), +('2019-06-12 12:47:07', 6142), +('2019-06-12 12:46:26', 6143), +('2019-06-11 15:18:11', 6149), +('2019-06-10 18:27:28', 6153), +('2019-06-06 19:23:31', 6156), +('2019-06-06 13:46:00', 6160), +('2019-06-06 13:45:36', 6164), +('2019-06-06 13:39:35', 6167), +('2019-06-06 13:12:05', 6171), +('2019-06-06 16:43:11', 6175), +('2019-06-06 12:48:02', 6180), +('2019-06-06 19:21:34', 6187), +('2019-06-06 08:58:57', 6188), +('2019-06-05 11:08:08', 6189), +('2019-06-10 18:25:29', 6194), +('2019-06-12 14:54:41', 6198), +('2019-06-09 17:16:36', 6199), +('2019-06-09 17:15:31', 6204), +('2019-06-06 19:24:47', 6205), +('2019-06-02 01:01:38', 6212), +('2019-06-02 00:50:08', 6217), +('2019-05-31 17:02:01', 6222), +('2019-05-31 23:56:07', 6226), +('2019-05-31 13:44:20', 6227), +('2019-05-31 13:42:57', 6231), +('2019-05-31 12:36:10', 6232), +('2019-06-02 00:39:38', 6234), +('2019-05-31 12:17:16', 6235), +('2019-05-31 12:16:49', 6236), +('2019-06-02 00:54:16', 6242), +('2019-05-31 13:42:18', 6243), +('2019-05-31 12:33:41', 6244), +('2019-06-02 00:52:27', 6257), +('2019-05-30 21:33:30', 6262), +('2019-06-12 09:52:45', 6275), +('2019-06-12 12:28:53', 6281), +('2019-06-12 12:27:29', 6282), +('2019-06-04 15:13:38', 6287), +('2019-06-02 00:55:07', 6295), +('2019-05-30 09:40:29', 6296), +('2019-05-29 18:56:02', 6297), +('2019-05-29 18:33:06', 6298), +('2019-05-30 21:45:06', 6301), +('2019-05-30 19:51:09', 6310), +('2019-05-28 18:32:48', 6314), +('2019-05-28 18:01:53', 6315), +('2019-05-29 22:21:14', 6321), +('2019-05-28 19:23:31', 6322), +('2019-05-28 15:44:55', 6328), +('2019-05-28 00:35:31', 6331), +('2019-05-27 16:52:02', 6335), +('2019-06-02 00:41:31', 6339), +('2019-05-31 12:14:00', 6340), +('2019-05-31 12:13:26', 6341), +('2019-05-27 02:24:34', 6342), +('2019-05-25 21:44:51', 6355), +('2019-05-25 15:31:04', 6356), +('2019-05-25 00:40:36', 6357), +('2019-05-25 15:54:37', 6364), +('2019-05-20 15:19:50', 6365), +('2019-05-25 15:53:30', 6368), +('2019-05-28 21:12:02', 6371), +('2019-05-27 00:10:35', 6377), +('2019-05-28 16:49:06', 6380), +('2019-05-26 22:58:14', 6381), +('2019-05-25 21:43:46', 6387), +('2019-05-25 15:31:22', 6388), +('2019-05-25 00:08:41', 6389), +('2019-05-24 21:13:55', 6390), +('2019-05-15 12:53:21', 6395), +('2019-05-14 12:46:14', 6399), +('2019-05-13 23:33:14', 6400), +('2019-05-14 19:38:28', 6407), +('2019-05-13 14:24:57', 6408), +('2019-05-29 17:45:10', 6411), +('2019-05-29 11:32:47', 6412), +('2019-05-15 15:32:18', 6413), +('2019-05-10 11:29:22', 6421), +('2019-05-09 18:00:58', 6423), +('2019-05-09 01:08:48', 6424), +('2019-05-09 15:00:43', 6428), +('2019-05-08 21:13:03', 6429), +('2019-05-11 00:18:44', 6432), +('2019-05-10 01:49:58', 6433), +('2019-05-07 09:49:50', 6439), +('2019-05-08 11:54:11', 6440), +('2019-05-07 10:09:46', 6441), +('2019-05-12 12:19:16', 6444), +('2019-05-11 00:16:49', 6449), +('2019-05-08 15:00:06', 6455), +('2019-05-08 16:54:56', 6458), +('2019-05-06 22:35:10', 6463), +('2019-05-06 22:36:34', 6466), +('2019-05-06 22:37:09', 6470), +('2019-05-06 22:37:50', 6474), +('2019-05-06 22:38:21', 6477), +('2019-05-06 22:38:43', 6480), +('2019-05-06 23:20:54', 6483), +('2019-05-06 23:21:40', 6484), +('2019-05-06 23:16:15', 6488), +('2019-05-11 13:46:10', 6492), +('2019-05-07 22:58:17', 6493), +('2019-05-03 15:44:03', 6499), +('2019-04-30 10:12:53', 6503), +('2019-04-30 12:40:56', 6509), +('2019-05-01 13:13:17', 6510), +('2019-04-29 15:18:55', 6511), +('2019-04-29 14:29:42', 6512), +('2019-05-05 20:39:27', 6515), +('2019-05-03 15:42:48', 6516), +('2019-04-30 14:38:23', 6531), +('2019-05-03 15:42:19', 6536), +('2019-05-09 14:59:53', 6541), +('2019-05-04 21:07:29', 6542), +('2019-04-30 12:40:31', 6551), +('2019-05-01 13:15:31', 6552), +('2019-04-29 15:19:31', 6553), +('2019-04-29 14:15:59', 6554), +('2019-05-08 21:11:43', 6559), +('2019-05-09 15:01:46', 6560), +('2019-05-08 15:12:44', 6561), +('2019-05-06 23:17:44', 6567), +('2019-05-07 10:09:03', 6568), +('2019-05-06 16:24:45', 6569), +('2019-04-25 20:32:38', 6575), +('2019-04-24 16:21:54', 6576), +('2019-04-23 15:23:33', 6577), +('2019-04-23 14:08:50', 6578), +('2019-05-01 13:16:48', 6591), +('2019-04-15 10:22:43', 6592), +('2019-04-15 10:08:52', 6593), +('2019-04-11 13:32:55', 6594), +('2019-04-11 15:11:59', 6598), +('2019-04-23 19:28:22', 6604), +('2019-04-23 18:45:30', 6605), +('2019-04-16 23:18:36', 6617), +('2019-04-15 18:52:47', 6618), +('2019-04-11 13:29:57', 6623), +('2019-04-04 14:20:36', 6628), +('2019-04-03 23:10:51', 6633), +('2019-04-09 11:11:14', 6639), +('2019-04-05 11:23:28', 6640), +('2019-04-02 11:39:58', 6644), +('2019-04-01 19:34:02', 6645), +('2019-04-01 13:46:24', 6646), +('2019-04-02 11:40:34', 6650), +('2019-04-01 11:13:28', 6651), +('2019-03-29 16:32:48', 6652), +('2019-03-27 20:31:23', 6653), +('2019-03-29 16:33:08', 6657), +('2019-04-02 11:41:33', 6658), +('2019-04-01 11:16:01', 6659), +('2019-03-25 12:56:47', 6660), +('2019-04-22 17:25:29', 6664), +('2019-03-31 13:56:18', 6673), +('2019-04-15 17:48:13', 6688), +('2019-04-14 19:46:13', 6689), +('2019-04-25 15:01:07', 6698), +('2019-04-14 16:56:00', 6703), +('2019-04-09 11:12:26', 6704), +('2019-04-03 21:44:08', 6712), +('2019-03-27 20:33:09', 6720), +('2019-03-28 18:28:16', 6729), +('2019-03-19 22:16:43', 6740), +('2019-03-29 16:33:26', 6745), +('2019-04-14 12:53:05', 6746), +('2019-04-01 13:56:54', 6747), +('2019-03-22 17:22:16', 6748), +('2019-03-27 20:34:31', 6751), +('2019-03-27 20:34:58', 6756), +('2019-04-14 16:59:00', 6773), +('2019-04-14 12:43:47', 6774), +('2019-04-01 13:58:27', 6775), +('2019-03-27 20:36:08', 6776), +('2019-03-18 13:11:31', 6782), +('2019-04-14 16:58:12', 6790), +('2019-04-14 12:51:14', 6791), +('2019-04-14 12:39:57', 6792), +('2019-03-18 16:14:16', 6793), +('2019-06-06 13:55:44', 6826), +('2019-06-04 21:20:30', 6829), +('2019-06-04 19:04:44', 6831), +('2019-06-04 19:45:56', 6841), +('2019-06-04 21:05:19', 6842), +('2019-06-04 19:05:12', 6843), +('2019-05-30 11:22:44', 6844), +('2019-05-29 12:03:36', 6846), +('2019-05-24 22:31:19', 6849), +('2019-05-23 22:42:34', 6853), +('2019-05-21 12:01:15', 6854), +('2019-05-14 02:03:43', 6858), +('2019-05-20 23:40:34', 6859), +('2019-05-10 13:14:09', 6860), +('2019-05-07 14:35:59', 6862), +('2019-05-09 18:31:27', 6863), +('2019-05-04 00:46:12', 6866), +('2019-05-10 02:05:01', 6868), +('2019-05-09 10:56:47', 6871), +('2019-05-09 09:21:27', 6875), +('2019-05-09 09:20:39', 6877), +('2019-05-06 17:44:09', 6879), +('2019-04-26 11:13:27', 6880), +('2019-04-18 11:59:56', 6884), +('2019-04-18 12:55:36', 6886), +('2019-04-19 12:11:09', 6889), +('2019-04-22 10:54:17', 6890), +('2019-04-11 22:40:39', 6891), +('2019-04-11 13:52:16', 6895), +('2019-04-04 11:08:35', 6897), +('2019-03-05 13:27:34', 6898), +('2019-06-12 17:33:43', 6901), +('2019-06-12 17:09:28', 6902), +('2019-06-12 11:39:49', 6908), +('2019-06-12 11:25:08', 6909), +('2019-06-10 10:05:39', 6916), +('2019-06-10 10:12:23', 6920), +('2019-06-10 09:59:00', 6921), +('2019-06-10 10:13:40', 6927), +('2019-06-06 14:50:06', 6933), +('2019-06-06 15:30:59', 6937), +('2019-06-06 15:02:13', 6938), +('2019-06-06 15:00:22', 6939), +('2019-06-06 13:53:47', 6944), +('2019-06-04 19:19:43', 6948), +('2019-05-29 12:09:12', 6956), +('2019-05-24 19:33:41', 6961), +('2019-05-24 17:59:36', 6966), +('2019-05-23 23:46:57', 6971), +('2019-05-21 12:01:31', 6976), +('2019-05-24 19:27:14', 6980), +('2019-05-24 22:32:54', 6984), +('2019-05-24 21:11:45', 6991), +('2019-05-24 09:41:52', 6992), +('2019-05-24 09:19:32', 6993), +('2019-05-21 14:40:09', 6994), +('2019-05-18 09:47:39', 7002), +('2019-05-18 09:28:05', 7003), +('2019-05-17 23:15:52', 7004), +('2019-05-14 14:14:19', 7005), +('2019-05-20 23:58:20', 7011), +('2019-05-14 01:59:44', 7012), +('2019-05-09 21:54:32', 7022), +('2019-05-06 17:47:42', 7025), +('2019-05-09 09:18:38', 7028), +('2019-05-06 17:51:04', 7033), +('2019-05-06 17:39:11', 7034), +('2019-05-09 09:21:55', 7038), +('2019-05-09 10:57:19', 7043), +('2019-05-08 20:00:42', 7049), +('2019-05-10 02:29:32', 7052), +('2019-05-04 00:49:04', 7058), +('2019-05-10 13:42:44', 7066), +('2019-05-09 10:10:17', 7070), +('2019-05-08 23:40:26', 7071), +('2019-05-08 19:26:13', 7072), +('2019-05-07 14:45:33', 7073), +('2019-04-30 21:17:56', 7081), +('2019-04-30 20:43:49', 7082), +('2019-04-30 20:35:42', 7083), +('2019-04-30 14:39:00', 7084), +('2019-05-05 20:16:17', 7092), +('2019-05-05 20:07:54', 7093), +('2019-04-25 14:36:39', 7098), +('2019-04-25 14:55:48', 7102), +('2019-04-25 14:52:03', 7107), +('2019-04-25 14:39:05', 7108), +('2019-04-23 22:16:52', 7115), +('2019-04-23 20:24:06', 7116), +('2019-04-23 16:26:22', 7117), +('2019-04-25 15:04:33', 7124), +('2019-04-25 15:12:34', 7128), +('2019-04-23 08:10:23', 7129), +('2019-05-10 13:14:41', 7135), +('2019-05-09 18:32:09', 7136), +('2019-05-07 14:36:26', 7137), +('2019-04-22 11:13:04', 7146), +('2019-04-19 12:12:21', 7147), +('2019-04-26 11:16:59', 7151), +('2019-04-22 23:22:49', 7162), +('2019-04-22 22:28:47', 7168), +('2019-04-21 20:37:52', 7169), +('2019-04-18 12:05:42', 7173), +('2019-04-17 17:52:05', 7174), +('2019-04-16 19:18:02', 7184), +('2019-04-16 19:03:23', 7185), +('2019-04-16 18:55:59', 7186), +('2019-04-16 18:32:01', 7187), +('2019-04-15 14:08:22', 7196), +('2019-04-15 13:06:54', 7197), +('2019-04-13 20:08:32', 7205), +('2019-04-13 19:58:16', 7206), +('2019-04-12 09:58:31', 7211), +('2019-04-11 15:22:44', 7220), +('2019-04-11 18:56:52', 7224), +('2019-04-09 20:54:41', 7231), +('2019-04-09 17:48:01', 7232), +('2019-04-09 14:31:26', 7233), +('2019-04-09 14:28:40', 7234), +('2019-04-04 12:25:22', 7240), +('2019-04-11 22:44:25', 7246), +('2019-04-11 13:55:22', 7250), +('2019-04-08 19:36:31', 7255), +('2019-04-08 21:54:29', 7261), +('2019-04-08 19:34:58', 7270), +('2019-04-02 14:26:37', 7271), +('2019-04-02 18:04:22', 7277), +('2019-04-02 17:50:45', 7278), +('2019-04-02 17:41:20', 7279), +('2019-04-02 16:05:36', 7280), +('2019-04-10 22:10:07', 7290), +('2019-04-10 22:29:11', 7295), +('2019-04-10 10:13:09', 7298), +('2019-04-02 19:36:33', 7301), +('2019-04-06 11:25:48', 7305), +('2019-04-02 17:50:57', 7306), +('2019-04-06 11:27:19', 7312), +('2019-04-02 13:28:04', 7322), +('2019-04-01 13:19:44', 7323), +('2019-03-31 19:40:16', 7329), +('2019-03-31 19:43:32', 7334), +('2019-03-31 19:32:05', 7335), +('2019-03-28 21:07:00', 7340), +('2019-04-08 21:56:41', 7344), +('2019-03-26 23:03:12', 7352), +('2019-03-25 17:12:14', 7353), +('2019-03-26 12:09:20', 7358), +('2019-03-25 18:57:55', 7364), +('2019-03-25 18:57:55', 7369), +('2019-03-20 12:21:00', 7374), +('2019-03-26 23:06:01', 7378), +('2019-03-20 12:11:23', 7383), +('2019-03-19 10:53:40', 7387), +('2020-05-18 13:00:27', 7462), +('2020-05-18 12:17:48', 7465), +('2020-05-18 12:14:02', 7467), +('2020-05-18 12:12:09', 7471), +('2020-05-18 12:03:53', 7473), +('2020-05-18 10:14:30', 7474), +('2020-05-17 16:45:56', 7476), +('2020-05-17 11:01:06', 7477), +('2020-05-16 00:56:22', 7479), +('2020-05-13 20:45:09', 7487), +('2020-05-13 19:49:16', 7491), +('2020-05-13 16:59:00', 7493), +('2020-05-13 19:47:44', 7506), +('2020-05-12 18:32:22', 7507), +('2020-05-12 18:17:25', 7509), +('2020-05-11 21:38:05', 7512), +('2020-05-07 00:08:03', 7515), +('2020-05-06 23:38:24', 7518), +('2020-05-05 22:30:33', 7521), +('2020-05-05 21:52:01', 7525), +('2020-05-04 14:08:42', 7526), +('2020-05-04 00:10:00', 7527), +('2020-05-04 00:09:50', 7534), +('2020-04-23 23:13:45', 7536), +('2020-04-23 23:22:32', 7545), +('2020-04-30 11:51:03', 7546); +INSERT INTO `committed_configuration` (`committed`, `id`) VALUES +('2020-05-03 01:02:27', 7547), +('2020-05-01 13:54:55', 7549), +('2020-04-22 16:36:30', 7551), +('2020-05-01 11:30:01', 7552), +('2020-04-29 17:26:58', 7554), +('2020-04-29 18:00:37', 7555), +('2020-04-29 20:27:41', 7556), +('2020-04-29 20:28:15', 7557), +('2020-04-29 19:54:31', 7558), +('2020-04-28 20:49:08', 7559), +('2020-04-28 12:22:11', 7561), +('2020-04-28 18:08:27', 7562), +('2020-04-28 18:11:31', 7563), +('2020-04-28 13:34:59', 7565), +('2020-04-22 16:02:35', 7567), +('2020-04-22 16:19:34', 7573), +('2020-04-23 11:35:28', 7574), +('2020-04-23 13:29:07', 7575), +('2020-04-24 12:02:55', 7576), +('2020-04-23 23:14:31', 7578), +('2020-04-23 19:00:47', 7579), +('2020-04-23 12:11:46', 7581), +('2020-04-23 13:26:07', 7582), +('2020-04-23 18:57:17', 7583), +('2020-04-22 17:12:08', 7584), +('2020-04-20 11:43:28', 7586), +('2020-04-18 17:10:26', 7587), +('2020-03-22 22:28:01', 7601), +('2020-03-18 11:17:05', 7609), +('2020-03-19 22:05:06', 7617), +('2020-04-10 21:11:56', 7623), +('2020-04-12 15:41:17', 7625), +('2020-04-15 17:32:08', 7628), +('2020-04-15 18:11:13', 7630), +('2020-04-16 23:35:27', 7632), +('2020-04-12 17:20:58', 7634), +('2020-03-11 13:21:21', 7643), +('2020-03-17 21:26:12', 7647), +('2020-03-15 09:47:03', 7654), +('2020-03-18 12:04:55', 7655), +('2020-03-18 16:11:43', 7656), +('2020-03-19 22:35:34', 7657), +('2020-03-23 13:47:55', 7658), +('2020-04-18 12:07:51', 7660), +('2020-04-18 12:06:22', 7661), +('2020-04-18 10:17:39', 7663), +('2020-04-18 10:51:21', 7664), +('2020-04-18 11:09:45', 7665), +('2020-04-16 23:13:43', 7666), +('2020-04-14 22:49:20', 7668), +('2020-04-16 22:11:28', 7670), +('2020-04-12 10:10:03', 7672), +('2020-04-14 18:49:22', 7673), +('2020-04-16 10:34:13', 7674), +('2020-04-15 18:14:20', 7676), +('2020-04-15 18:25:11', 7678), +('2020-04-15 18:15:25', 7679), +('2020-04-14 17:06:59', 7680), +('2020-04-12 22:48:02', 7682), +('2020-04-12 23:19:35', 7683), +('2020-04-12 23:45:29', 7684), +('2020-04-14 14:46:22', 7685), +('2020-04-12 21:56:19', 7688), +('2020-04-12 06:47:44', 7690), +('2020-04-12 16:22:17', 7691), +('2020-04-11 00:00:58', 7695), +('2020-04-08 19:08:41', 7697), +('2020-04-10 20:17:40', 7699), +('2020-04-09 21:46:36', 7701), +('2020-04-09 14:04:15', 7704), +('2020-04-08 13:51:00', 7708), +('2020-04-07 18:44:25', 7710), +('2020-04-06 15:52:32', 7712), +('2020-04-06 09:39:53', 7713), +('2020-04-06 01:02:23', 7715), +('2020-04-05 22:56:24', 7716), +('2020-04-04 00:11:02', 7718), +('2020-04-02 15:00:41', 7720), +('2020-04-02 20:10:38', 7721), +('2020-04-03 14:18:12', 7722), +('2020-04-03 23:34:56', 7725), +('2020-04-03 20:00:12', 7726), +('2020-04-03 08:34:31', 7727), +('2020-04-01 00:09:49', 7728), +('2020-03-31 23:32:51', 7730), +('2020-03-31 23:37:38', 7731), +('2020-03-30 17:46:38', 7732), +('2020-03-24 19:15:59', 7734), +('2020-03-23 13:49:45', 7736), +('2020-02-28 08:42:52', 7737), +('2020-05-18 14:22:45', 7738), +('2020-05-18 15:56:20', 7741), +('2020-05-18 15:56:13', 7742), +('2020-05-18 15:56:01', 7743), +('2020-05-18 15:50:03', 7744), +('2020-05-18 17:22:01', 7750), +('2020-05-18 17:21:56', 7751), +('2020-05-18 17:21:52', 7752), +('2020-05-18 17:21:52', 7753), +('2020-05-11 20:34:06', 7758), +('2020-05-11 20:33:31', 7759), +('2020-05-11 20:32:54', 7760), +('2020-05-11 20:32:37', 7761), +('2020-05-18 15:07:55', 7765), +('2020-05-18 15:06:45', 7766), +('2020-05-18 15:06:42', 7767), +('2020-05-18 15:06:41', 7768), +('2020-05-06 17:54:02', 7773), +('2020-05-06 17:20:28', 7779), +('2020-05-06 23:34:42', 7783), +('2020-05-13 17:22:56', 7788), +('2020-05-07 00:08:44', 7792), +('2020-05-13 21:25:50', 7797), +('2020-05-13 17:59:24', 7800), +('2020-05-13 17:24:28', 7801), +('2020-05-11 21:39:25', 7806), +('2020-05-12 18:19:06', 7810), +('2020-05-12 18:18:47', 7811), +('2020-05-12 18:37:51', 7816), +('2020-05-17 10:59:01', 7821), +('2020-05-16 00:55:10', 7822), +('2020-04-24 12:01:59', 7827), +('2020-04-24 11:11:52', 7828), +('2020-04-28 19:20:27', 7831), +('2020-04-28 19:19:44', 7835), +('2020-04-28 13:35:42', 7836), +('2020-04-27 20:18:34', 7837), +('2020-04-26 01:13:52', 7838), +('2020-05-03 20:34:05', 7844), +('2020-04-20 18:58:16', 7848), +('2020-04-20 18:58:11', 7849), +('2020-04-20 18:58:11', 7850), +('2020-04-20 18:57:54', 7851), +('2020-04-23 21:43:26', 7855), +('2020-04-23 13:29:54', 7859), +('2020-04-22 16:03:30', 7860), +('2020-04-22 13:23:27', 7861), +('2020-05-04 16:02:48', 7868), +('2020-05-04 16:02:26', 7869), +('2020-05-04 16:02:19', 7870), +('2020-05-04 15:55:42', 7871), +('2020-05-01 10:43:29', 7874), +('2020-05-04 16:00:00', 7879), +('2020-04-27 15:39:08', 7885), +('2020-04-27 15:38:38', 7886), +('2020-04-27 15:38:36', 7887), +('2020-04-27 15:38:18', 7888), +('2020-04-30 14:11:47', 7893), +('2020-05-04 16:02:09', 7900), +('2020-04-22 16:20:30', 7905), +('2020-04-22 16:36:58', 7910), +('2020-04-30 11:52:14', 7915), +('2020-04-23 23:24:59', 7916), +('2020-04-23 23:11:52', 7917), +('2020-05-06 15:53:09', 7923), +('2020-05-06 15:53:08', 7924), +('2020-05-06 15:52:56', 7925), +('2020-05-06 15:52:22', 7926), +('2020-05-04 16:30:27', 7932), +('2020-05-04 16:30:22', 7933), +('2020-05-04 16:30:17', 7934), +('2020-05-04 16:25:29', 7935), +('2020-04-14 14:45:02', 7938), +('2020-04-14 14:44:43', 7939), +('2020-04-12 10:05:59', 7941), +('2020-04-16 23:14:23', 7944), +('2020-04-14 22:12:10', 7945), +('2020-04-07 18:45:08', 7951), +('2020-04-09 14:05:24', 7954), +('2020-04-12 15:48:34', 7957), +('2020-04-12 17:15:48', 7960), +('2020-04-18 17:14:51', 7964), +('2020-04-10 21:13:56', 7969), +('2020-04-18 17:17:10', 7973), +('2020-04-06 22:25:57', 7978), +('2020-04-06 21:51:33', 7979), +('2020-04-14 18:36:13', 7982), +('2020-04-14 18:35:01', 7983), +('2020-04-14 18:34:43', 7984), +('2020-04-14 18:34:23', 7985), +('2020-04-20 15:49:34', 7992), +('2020-04-20 15:48:54', 7993), +('2020-04-20 15:48:00', 7994), +('2020-04-20 15:47:54', 7995), +('2020-04-20 17:23:52', 7999), +('2020-04-20 17:13:26', 8000), +('2020-04-20 17:01:28', 8001), +('2020-04-20 17:00:26', 8002), +('2020-04-20 15:48:17', 8007), +('2020-04-20 15:47:40', 8008), +('2020-04-20 15:47:39', 8009), +('2020-04-20 15:47:00', 8010), +('2020-04-15 18:29:13', 8017), +('2020-04-14 13:29:04', 8018), +('2020-04-06 21:09:13', 8024), +('2020-04-06 21:09:00', 8025), +('2020-04-13 20:29:17', 8028), +('2020-04-08 19:11:27', 8029), +('2020-04-08 13:58:59', 8033), +('2020-04-14 17:08:07', 8039), +('2020-04-12 23:44:51', 8040), +('2020-04-10 20:14:14', 8041), +('2020-04-09 23:39:31', 8042), +('2020-04-12 22:59:50', 8047), +('2020-04-12 20:18:03', 8048), +('2020-04-12 19:54:57', 8049), +('2020-04-09 21:45:35', 8050), +('2020-03-23 18:16:34', 8057), +('2020-03-23 18:16:05', 8058), +('2020-03-23 18:15:55', 8059), +('2020-04-06 09:46:53', 8063), +('2020-03-30 17:47:33', 8066), +('2020-03-29 23:21:21', 8067), +('2020-04-05 21:56:58', 8074), +('2020-03-24 10:51:53', 8078), +('2020-03-24 10:51:33', 8079), +('2020-03-24 10:50:14', 8080), +('2020-03-24 12:04:46', 8087), +('2020-03-24 10:51:43', 8088), +('2020-03-24 10:51:17', 8089), +('2020-03-24 10:50:38', 8090), +('2020-04-05 21:54:10', 8095), +('2020-04-05 22:59:02', 8104), +('2020-03-24 14:27:49', 8108), +('2020-04-04 00:11:58', 8113), +('2020-04-03 23:33:07', 8114), +('2020-04-02 15:07:25', 8115), +('2020-03-31 14:52:04', 8128), +('2020-03-28 13:01:29', 8129), +('2020-04-03 19:57:56', 8139), +('2020-04-03 08:33:04', 8140), +('2020-03-31 23:33:53', 8141), +('2020-04-06 15:59:24', 8149), +('2020-04-06 15:57:03', 8150), +('2020-04-06 15:56:40', 8151), +('2020-04-06 15:56:38', 8152), +('2020-03-31 14:40:39', 8157), +('2020-03-31 14:39:10', 8158), +('2020-04-06 17:08:03', 8164), +('2020-04-06 17:07:55', 8165), +('2020-04-06 17:07:49', 8166), +('2020-04-06 17:05:48', 8167), +('2020-03-30 18:49:44', 8172), +('2020-03-30 18:49:44', 8173), +('2020-03-30 18:49:39', 8174), +('2020-03-30 18:49:36', 8175), +('2020-04-06 15:59:10', 8180), +('2020-04-06 15:57:15', 8181), +('2020-04-06 15:56:54', 8182), +('2020-04-06 15:56:53', 8183), +('2020-03-22 22:34:32', 8192), +('2020-03-19 21:56:49', 8198), +('2020-03-18 11:17:31', 8207), +('2020-03-18 01:42:29', 8208), +('2020-03-17 21:30:19', 8213), +('2020-03-10 08:32:04', 8219), +('2020-03-09 18:43:53', 8220), +('2020-03-09 18:43:35', 8221), +('2020-03-09 18:43:33', 8222), +('2020-03-22 22:34:05', 8233), +('2020-03-11 13:23:44', 8236), +('2020-03-14 14:22:05', 8240), +('2020-03-16 18:56:59', 8245), +('2020-03-16 18:56:50', 8246), +('2020-03-16 18:56:44', 8247), +('2020-03-16 18:55:28', 8248), +('2020-03-23 17:07:17', 8255), +('2020-03-23 17:07:03', 8256), +('2020-03-23 17:06:43', 8257), +('2020-03-23 13:53:58', 8260), +('2020-03-19 22:36:11', 8261), +('2020-03-18 16:12:11', 8262), +('2020-03-18 12:07:09', 8263), +('2020-03-15 09:48:02', 8264), +('2020-03-23 16:06:58', 8272), +('2020-03-23 16:06:57', 8273), +('2020-03-23 16:06:53', 8274), +('2020-03-10 08:32:39', 8278), +('2020-03-09 18:49:03', 8279), +('2020-03-09 18:48:10', 8280), +('2020-03-09 18:48:01', 8281), +('2020-03-18 18:17:21', 8288), +('2020-03-20 21:53:58', 8292), +('2020-03-20 13:54:50', 8296), +('2020-03-17 23:50:48', 8297), +('2020-03-16 18:47:42', 8298), +('2020-03-17 15:15:07', 8303), +('2020-03-23 16:07:17', 8306), +('2020-03-23 16:07:12', 8307), +('2020-03-23 16:07:06', 8308), +('2020-03-15 18:37:32', 8311), +('2020-03-15 16:45:07', 8320), +('2020-03-09 17:23:22', 8326), +('2020-03-09 17:18:09', 8327), +('2020-03-09 17:18:08', 8328), +('2020-03-09 17:18:07', 8329), +('2020-03-09 17:23:06', 8335), +('2020-03-09 17:18:38', 8336), +('2020-03-09 17:17:55', 8337), +('2020-03-09 17:17:54', 8338), +('2020-03-09 17:22:39', 8342), +('2020-03-09 17:19:01', 8343), +('2020-03-09 17:17:35', 8344), +('2020-03-09 17:17:34', 8345), +('2020-03-08 21:17:48', 8349), +('2020-03-08 21:27:47', 8350), +('2020-03-05 18:24:54', 8355), +('2020-03-05 18:24:13', 8356), +('2020-03-08 21:09:00', 8362), +('2020-03-08 21:27:14', 8363), +('2020-03-03 16:29:09', 8371), +('2020-03-03 20:56:03', 8372), +('2020-03-03 20:55:15', 8373), +('2020-03-03 18:30:52', 8374), +('2020-04-08 14:47:44', 8942), +('2020-04-08 14:39:34', 8944), +('2020-04-08 14:30:04', 8946), +('2020-04-08 12:58:46', 8954), +('2020-04-06 20:46:38', 8961), +('2020-04-06 19:33:43', 8963), +('2020-04-06 17:16:47', 8965), +('2020-04-06 15:27:23', 8966), +('2020-04-06 15:27:23', 8972), +('2020-04-04 22:52:18', 8973), +('2020-04-04 22:52:18', 8974), +('2020-04-03 15:57:55', 8976), +('2020-04-03 15:57:12', 8977), +('2020-04-03 15:32:09', 8978), +('2020-04-03 15:27:13', 8979), +('2020-04-03 15:23:57', 8980), +('2020-04-03 15:17:53', 8981), +('2020-04-03 15:14:15', 8982), +('2020-04-03 15:12:06', 8983), +('2020-04-03 15:09:02', 8984), +('2020-04-03 15:08:15', 8985), +('2020-04-03 15:02:28', 8986), +('2020-04-03 14:59:12', 8987), +('2020-04-03 14:45:46', 8988), +('2020-04-03 14:43:32', 8989), +('2020-04-03 14:41:10', 8990), +('2020-04-03 14:37:25', 8991), +('2020-04-03 14:36:35', 8992), +('2020-04-03 14:33:57', 8993), +('2020-04-03 14:15:36', 8994), +('2020-04-03 14:13:10', 8995), +('2020-04-03 14:10:37', 8996), +('2020-04-03 12:53:02', 8997), +('2020-04-03 12:51:19', 8998), +('2020-04-03 12:18:16', 8999), +('2020-04-02 23:15:29', 9000), +('2020-04-02 22:32:17', 9001), +('2020-04-02 21:31:55', 9002), +('2020-04-02 21:19:26', 9003), +('2020-04-02 21:10:59', 9004), +('2020-04-02 21:08:48', 9005), +('2020-04-02 21:02:13', 9006), +('2020-04-02 20:46:08', 9007), +('2020-04-02 20:43:55', 9008), +('2020-04-02 20:39:46', 9009), +('2020-04-02 20:35:45', 9010), +('2020-04-02 20:28:20', 9011), +('2020-04-02 18:53:10', 9012), +('2020-04-02 18:50:11', 9013), +('2020-04-02 18:29:47', 9014), +('2020-04-02 18:28:31', 9015), +('2020-04-02 18:25:49', 9016), +('2020-04-02 17:05:14', 9017), +('2020-04-02 17:00:23', 9018), +('2020-04-02 16:31:20', 9019), +('2020-04-02 15:20:54', 9020), +('2020-04-01 23:12:18', 9021), +('2020-03-31 19:37:57', 9022), +('2020-03-31 19:36:39', 9023), +('2020-03-30 21:40:02', 9024), +('2020-03-30 21:39:29', 9025), +('2020-03-30 21:03:50', 9026), +('2020-03-29 23:27:36', 9027), +('2020-03-29 17:37:04', 9030), +('2020-03-29 17:24:23', 9031), +('2020-03-29 17:20:30', 9032), +('2020-03-27 00:17:29', 9033), +('2020-03-27 00:11:40', 9034), +('2020-02-28 08:40:47', 9035), +('2020-04-20 21:46:48', 9036), +('2020-04-16 16:47:12', 9038), +('2020-04-16 21:16:47', 9046), +('2020-04-18 12:31:48', 9047), +('2020-04-18 15:36:56', 9048), +('2020-04-20 22:19:21', 9049), +('2020-04-18 15:53:00', 9054), +('2020-04-16 21:33:05', 9055), +('2020-04-13 18:37:17', 9056), +('2020-04-11 21:17:38', 9058), +('2020-04-11 21:17:37', 9059), +('2020-05-02 19:51:47', 9060), +('2020-05-07 13:12:19', 9062), +('2020-04-30 21:22:38', 9085), +('2020-04-29 01:59:02', 9087), +('2020-05-07 13:12:18', 9089), +('2020-05-07 13:12:26', 9094), +('2020-04-28 11:17:32', 9097), +('2020-04-27 09:18:31', 9098), +('2020-05-07 13:12:17', 9100), +('2020-04-27 07:33:28', 9101), +('2020-05-07 13:12:16', 9103), +('2020-04-26 20:00:49', 9104), +('2020-04-26 19:58:43', 9106), +('2020-05-07 13:12:15', 9107), +('2020-05-07 13:12:16', 9108), +('2020-04-26 13:00:18', 9109), +('2020-05-07 13:12:15', 9111), +('2020-04-26 09:14:15', 9112), +('2020-04-26 09:10:11', 9113), +('2020-05-07 13:12:14', 9115), +('2020-04-23 17:30:33', 9116), +('2020-04-23 15:25:29', 9117), +('2020-05-07 13:12:14', 9119), +('2020-04-21 21:41:08', 9122), +('2020-04-20 17:37:35', 9124), +('2020-05-07 15:36:05', 9126), +('2020-05-07 15:20:06', 9130), +('2020-05-07 15:16:09', 9131), +('2020-05-07 14:33:37', 9133), +('2020-05-07 13:12:26', 9135), +('2020-05-07 13:12:25', 9137), +('2020-05-07 13:12:25', 9138), +('2020-05-07 13:12:25', 9139), +('2020-05-07 13:12:24', 9140), +('2020-05-07 13:12:23', 9142), +('2020-05-07 13:12:22', 9143), +('2020-05-07 13:12:22', 9144), +('2020-05-07 13:12:21', 9146), +('2020-05-07 13:12:18', 9148), +('2020-05-07 13:12:17', 9149), +('2020-05-07 13:12:15', 9150), +('2020-05-05 22:10:55', 9151), +('2020-05-04 18:59:25', 9156), +('2020-05-04 14:33:02', 9161), +('2020-05-01 18:32:20', 9163), +('2020-05-01 18:27:42', 9165), +('2020-04-30 23:09:58', 9167), +('2020-04-30 22:53:59', 9172), +('2020-04-30 21:57:30', 9175), +('2020-04-30 21:31:51', 9176), +('2020-04-30 18:17:12', 9178), +('2020-04-29 16:14:20', 9180), +('2020-04-28 15:56:47', 9182), +('2020-04-29 01:19:59', 9184), +('2020-04-23 18:47:04', 9185), +('2020-04-30 22:59:26', 9186), +('2020-04-30 22:59:26', 9187), +('2020-04-30 22:59:26', 9188), +('2020-04-30 22:59:26', 9189), +('2020-04-30 22:59:26', 9190), +('2020-04-30 22:59:26', 9191), +('2020-04-30 22:59:26', 9192), +('2020-04-30 22:59:26', 9193), +('2020-04-30 22:59:26', 9194), +('2020-04-30 22:59:26', 9195), +('2020-04-30 22:59:26', 9196), +('2020-05-29 21:19:54', 9197), +('2020-05-29 21:12:39', 9199), +('2020-05-29 21:11:01', 9200), +('2020-05-29 20:55:24', 9203), +('2020-05-29 12:58:06', 9204), +('2020-05-29 12:09:33', 9206), +('2020-05-28 11:18:20', 9207), +('2020-05-28 10:03:03', 9208), +('2020-05-28 08:50:55', 9210), +('2020-05-28 08:37:28', 9211), +('2020-05-28 08:31:43', 9213), +('2020-05-28 01:40:11', 9214), +('2020-05-28 00:19:19', 9216), +('2020-05-28 00:04:03', 9218), +('2020-05-27 23:57:12', 9219), +('2020-05-27 23:45:59', 9220), +('2020-05-27 21:11:00', 9221), +('2020-05-27 18:47:11', 9222), +('2020-05-27 15:58:20', 9229), +('2020-05-27 14:03:44', 9231), +('2020-05-27 12:34:20', 9239), +('2020-05-27 12:34:08', 9241), +('2020-05-26 22:25:08', 9242), +('2020-05-26 21:41:45', 9243), +('2020-05-26 21:27:22', 9244), +('2020-05-26 16:08:09', 9246), +('2020-05-26 15:52:59', 9253), +('2020-05-26 15:22:29', 9254), +('2020-05-16 23:04:53', 9256), +('2020-05-23 15:41:44', 9261), +('2020-05-23 18:08:50', 9265), +('2020-05-26 01:43:28', 9267), +('2020-05-26 14:48:59', 9270), +('2020-05-26 15:14:42', 9271), +('2020-05-26 13:33:10', 9273), +('2020-05-26 12:30:31', 9275), +('2020-05-26 10:00:40', 9277), +('2020-05-24 11:44:36', 9278), +('2020-05-24 11:34:33', 9280), +('2020-05-24 11:27:10', 9281), +('2020-05-24 11:10:44', 9282), +('2020-05-24 10:49:07', 9283), +('2020-05-24 00:55:52', 9285), +('2020-05-23 22:35:44', 9292), +('2020-05-23 21:39:02', 9293), +('2020-05-23 21:31:51', 9294), +('2020-05-23 20:42:46', 9295), +('2020-05-23 19:34:48', 9297), +('2020-05-20 21:11:26', 9300), +('2020-05-20 15:57:52', 9301), +('2020-05-19 21:02:24', 9302), +('2020-05-17 22:36:05', 9303), +('2020-05-17 22:21:02', 9304), +('2020-05-17 12:22:03', 9306), +('2020-05-16 14:21:47', 9308), +('2020-05-16 21:09:13', 9310), +('2020-05-16 17:30:23', 9311), +('2020-05-16 00:25:55', 9313), +('2020-05-16 14:56:00', 9314), +('2020-05-16 11:43:33', 9315), +('2020-05-14 15:41:44', 9317), +('2020-05-14 15:40:44', 9318), +('2020-05-14 15:18:16', 9319), +('2020-05-14 14:46:23', 9321), +('2020-05-12 20:34:07', 9323), +('2020-05-11 21:45:49', 9325), +('2020-05-11 21:43:05', 9326), +('2020-05-11 18:37:48', 9327), +('2020-05-11 14:24:19', 9328), +('2020-05-11 11:12:36', 9329), +('2020-05-11 10:57:41', 9330), +('2020-05-11 01:30:57', 9331), +('2020-05-10 22:56:06', 9332), +('2020-05-10 21:54:29', 9333), +('2020-05-10 20:07:36', 9335), +('2020-05-10 17:14:54', 9336), +('2020-05-09 23:55:05', 9337), +('2020-05-09 23:53:52', 9338), +('2020-05-08 22:54:41', 9339), +('2020-05-08 21:57:05', 9340), +('2020-05-07 21:24:42', 9341), +('2020-05-26 10:33:19', 9343), +('2020-05-13 12:53:52', 9348), +('2020-05-27 18:49:33', 9354), +('2020-05-12 20:36:42', 9360), +('2020-05-28 10:18:07', 9366), +('2020-05-17 12:12:33', 9371), +('2020-05-16 14:26:29', 9372), +('2020-05-13 12:36:55', 9379), +('2020-05-15 19:05:28', 9384), +('2020-05-13 12:42:59', 9385), +('2020-05-13 12:37:43', 9392), +('2020-05-20 20:26:50', 9397), +('2020-05-12 14:58:49', 9403), +('2020-05-27 13:45:39', 9409), +('2020-05-27 13:28:05', 9410), +('2020-05-16 14:25:25', 9416), +('2020-05-12 14:53:09', 9422), +('2020-05-14 15:14:28', 9428), +('2020-05-26 20:58:15', 9439), +('2020-05-25 21:13:26', 9440), +('2020-05-14 14:48:49', 9447), +('2020-05-26 01:44:52', 9452), +('2020-05-23 15:42:52', 9453), +('2020-05-17 09:28:06', 9454), +('2020-05-28 22:57:29', 9463), +('2020-05-16 18:42:24', 9464), +('2020-05-12 16:20:53', 9465), +('2020-05-16 17:36:57', 9477), +('2020-05-16 00:35:10', 9478), +('2020-06-04 15:50:45', 9488), +('2020-06-04 15:50:07', 9489), +('2020-06-04 15:49:57', 9490), +('2020-06-04 15:49:45', 9491), +('2020-05-28 16:36:30', 9498), +('2020-05-28 16:19:51', 9499), +('2020-05-28 14:45:09', 9500), +('2020-05-26 12:31:09', 9505), +('2020-05-26 12:20:05', 9506), +('2020-05-26 12:15:09', 9507), +('2020-05-26 12:06:39', 9508), +('2020-05-28 19:03:54', 9513), +('2020-05-28 16:37:31', 9514), +('2020-05-28 16:20:31', 9515), +('2020-05-28 16:18:55', 9516), +('2020-05-19 20:58:50', 9522), +('2020-05-19 20:57:24', 9523), +('2020-05-19 20:57:21', 9524), +('2020-05-19 20:57:18', 9525), +('2020-05-07 21:51:57', 9531), +('2020-05-07 21:48:58', 9532), +('2020-05-07 21:48:07', 9533), +('2020-05-07 21:47:28', 9534), +('2020-05-05 22:17:52', 9539), +('2020-04-30 23:03:39', 9543), +('2020-04-30 00:02:07', 9544), +('2020-05-02 19:55:23', 9551), +('2020-05-04 22:17:17', 9555), +('2020-05-10 22:10:29', 9559), +('2020-04-29 23:57:04', 9560), +('2020-05-12 16:13:28', 9569), +('2020-05-12 15:38:38', 9570), +('2020-05-12 15:36:38', 9571), +('2020-05-12 15:34:40', 9572), +('2020-05-10 17:50:41', 9578), +('2020-05-04 18:19:28', 9579), +('2020-04-29 02:06:35', 9585), +('2020-04-30 21:38:17', 9591), +('2020-04-30 21:37:44', 9592), +('2020-04-30 21:27:01', 9593), +('2020-04-30 21:25:48', 9594), +('2020-05-06 12:19:26', 9598), +('2020-05-05 15:22:10', 9599), +('2020-04-30 16:33:08', 9605), +('2020-05-12 14:16:16', 9610), +('2020-05-12 14:15:48', 9611), +('2020-05-12 14:15:28', 9612), +('2020-05-05 12:16:13', 9619), +('2020-05-10 17:53:10', 9623), +('2020-05-04 14:07:33', 9624), +('2020-04-29 13:14:59', 9625), +('2020-04-26 13:04:25', 9633), +('2020-04-27 07:39:21', 9639), +('2020-04-26 09:18:37', 9644), +('2020-04-26 20:03:42', 9649), +('2020-04-27 09:31:33', 9656), +('2020-04-29 16:18:55', 9662), +('2020-04-29 00:57:59', 9663), +('2020-04-27 15:03:46', 9664), +('2020-05-05 19:30:22', 9672), +('2020-04-22 20:49:32', 9680), +('2020-05-03 00:04:50', 9686), +('2020-05-03 00:01:42', 9687), +('2020-05-02 13:39:08', 9688), +('2020-05-01 22:19:22', 9689), +('2020-04-18 20:52:03', 9703), +('2020-04-13 18:48:20', 9709), +('2020-04-24 14:54:50', 9714), +('2020-04-23 00:32:52', 9715), +('2020-04-21 15:50:27', 9716), +('2020-04-13 21:51:00', 9717), +('2020-04-22 22:29:31', 9727), +('2020-04-22 22:16:17', 9728), +('2020-04-22 22:15:43', 9729), +('2020-04-22 22:15:15', 9730), +('2020-04-24 13:59:37', 9738), +('2020-04-24 13:55:18', 9739), +('2020-04-24 13:54:07', 9740), +('2020-04-24 13:53:55', 9741), +('2020-04-23 18:59:46', 9748), +('2020-04-23 18:48:00', 9749), +('2020-04-23 18:18:32', 9750), +('2020-04-23 18:15:09', 9751), +('2020-04-17 21:16:09', 9756), +('2020-04-17 21:15:15', 9757), +('2020-04-17 21:15:03', 9758), +('2020-04-17 21:14:31', 9759), +('2020-04-22 18:03:50', 9766), +('2020-04-20 22:58:42', 9770), +('2020-04-20 20:32:10', 9771), +('2020-04-18 15:48:08', 9772), +('2020-04-16 21:28:27', 9773), +('2020-04-21 21:26:19', 9781), +('2020-04-21 17:00:12', 9782), +('2020-04-21 00:46:01', 9783), +('2020-04-16 14:22:23', 9795), +('2020-04-19 22:00:50', 9802), +('2020-04-19 18:30:34', 9803), +('2020-04-19 00:39:28', 9804), +('2020-04-13 17:17:47', 9805), +('2020-04-13 19:16:12', 9815), +('2020-04-09 21:26:05', 9823), +('2020-04-09 21:17:06', 9824), +('2020-04-09 21:16:50', 9825), +('2020-04-09 21:16:37', 9826), +('2020-04-07 22:32:10', 9834), +('2020-04-07 21:55:59', 9835), +('2020-04-07 21:55:36', 9836), +('2020-04-07 21:54:28', 9837), +('2020-04-17 21:18:51', 9843), +('2020-04-17 20:57:20', 9844), +('2020-03-28 21:11:26', 9853), +('2020-03-28 21:09:33', 9854), +('2020-03-28 21:09:07', 9855), +('2020-03-28 21:08:28', 9856), +('2020-04-08 16:35:13', 9861), +('2020-04-08 14:17:31', 9862), +('2020-04-06 20:18:38', 9863), +('2020-04-04 21:06:37', 9864), +('2020-03-27 00:27:40', 9865), +('2020-03-26 10:57:33', 9874), +('2020-03-26 10:57:18', 9875), +('2020-03-26 10:56:59', 9876), +('2020-03-26 10:56:46', 9877), +('2020-03-26 15:14:48', 9883), +('2020-04-07 21:50:12', 9889), +('2020-04-01 20:01:00', 9890), +('2020-04-07 01:07:25', 9898), +('2020-04-05 18:42:09', 9899), +('2020-04-03 14:52:36', 9900), +('2020-04-02 23:06:59', 9901), +('2020-04-02 23:05:47', 9911), +('2020-03-28 21:22:47', 9912), +('2020-03-31 22:33:13', 9919), +('2020-03-27 21:12:19', 9920), +('2020-04-08 16:14:18', 9929), +('2020-04-08 16:01:56', 9930), +('2020-04-08 16:00:38', 9931), +('2020-04-08 15:59:20', 9932), +('2020-04-04 22:22:37', 9938), +('2020-04-03 16:13:06', 9939), +('2020-04-02 23:07:50', 9940), +('2020-03-31 22:35:45', 9941), +('2020-03-31 21:52:57', 9942), +('2020-03-31 18:58:41', 9943), +('2020-04-07 21:51:49', 9955), +('2020-04-03 21:11:30', 9956), +('2020-04-03 21:12:04', 9966), +('2020-04-03 21:11:34', 9967), +('2020-04-03 21:09:09', 9968), +('2020-04-03 21:08:54', 9969), +('2020-05-24 13:51:51', 9975), +('2020-05-23 22:50:14', 9976), +('2020-05-23 10:36:04', 9977), +('2020-04-15 21:21:53', 9991), +('2020-04-06 23:29:04', 9992), +('2020-04-06 12:37:27', 9998), +('2020-04-05 00:10:58', 9999), +('2020-04-01 23:05:51', 10000), +('2020-03-29 23:35:19', 10001), +('2020-03-27 11:00:20', 10002), +('2020-03-26 09:59:21', 10014), +('2020-03-26 09:49:42', 10015), +('2020-03-26 08:59:13', 10016), +('2020-03-26 01:13:28', 10017), +('2020-03-23 22:01:02', 10024), +('2020-03-19 00:03:46', 10025), +('2020-03-18 21:16:28', 10026), +('2020-03-26 10:57:19', 10033), +('2020-03-26 10:56:50', 10034), +('2020-03-26 10:55:45', 10035), +('2020-03-26 10:55:01', 10036), +('2020-03-22 00:29:12', 10042), +('2020-03-21 21:12:54', 10043), +('2020-03-21 21:12:48', 10044), +('2020-03-21 21:10:34', 10045), +('2020-03-26 08:58:34', 10051), +('2020-03-23 21:50:01', 10052), +('2020-03-23 21:39:15', 10053), +('2020-03-23 17:26:46', 10054), +('2020-03-20 21:49:04', 10055), +('2020-03-18 18:17:17', 10064), +('2020-03-12 19:51:49', 10065), +('2020-03-23 21:48:22', 10071), +('2020-03-20 14:16:36', 10072), +('2020-03-19 21:59:43', 10073), +('2020-03-16 20:23:29', 10074), +('2020-03-11 22:15:34', 10081), +('2020-03-11 22:15:28', 10082), +('2020-03-11 22:15:07', 10083), +('2020-03-11 22:14:45', 10084), +('2020-03-22 19:22:19', 10089), +('2020-03-22 00:30:17', 10090), +('2020-03-23 21:58:15', 10091), +('2020-03-15 19:10:04', 10092), +('2020-03-13 20:13:13', 10093), +('2020-03-19 15:36:03', 10099), +('2020-03-19 00:05:43', 10100), +('2020-03-18 21:18:59', 10101), +('2020-03-11 10:10:10', 10107), +('2020-03-10 17:24:43', 10108), +('2020-03-10 16:02:18', 10109), +('2020-03-10 16:01:52', 10110), +('2020-03-11 21:32:13', 10116), +('2020-03-11 10:09:42', 10117), +('2020-03-09 18:29:49', 10118), +('2020-03-09 18:27:51', 10119), +('2020-03-10 08:59:26', 10124), +('2020-03-10 17:28:45', 10125), +('2020-03-05 12:59:55', 10126), +('2020-03-05 12:59:06', 10127), +('2020-03-05 12:46:22', 10128), +('2020-03-08 21:02:55', 10135), +('2020-03-05 12:56:51', 10136), +('2020-03-05 12:38:09', 10137), +('2020-03-05 12:35:16', 10138), +('2020-05-10 17:46:31', 10584), +('2020-05-04 22:09:31', 10586), +('2020-05-05 19:42:28', 10593), +('2020-05-06 17:37:25', 10594), +('2020-05-06 18:22:13', 10698), +('2020-05-07 00:03:02', 10700), +('2020-05-07 16:48:56', 10702), +('2020-05-07 23:01:10', 10830), +('2020-05-08 01:00:40', 10868), +('2020-05-08 06:54:19', 10869), +('2020-05-08 07:30:41', 10872), +('2020-05-08 20:35:29', 10873), +('2020-05-08 20:29:38', 10875), +('2020-05-08 10:01:42', 10876), +('2020-05-08 07:43:51', 10878), +('2020-05-08 01:04:50', 10879), +('2020-05-08 01:01:00', 10880), +('2020-05-07 23:12:17', 10881), +('2020-05-07 23:12:01', 10882), +('2020-05-07 23:11:34', 10883), +('2020-05-07 16:49:23', 10884), +('2020-05-06 18:00:02', 10885), +('2020-05-04 20:49:00', 10886), +('2020-04-30 06:02:36', 10887), +('2020-04-27 07:31:46', 10889), +('2020-04-30 05:06:28', 10891), +('2020-04-30 05:46:20', 10892), +('2020-04-30 05:50:55', 10893), +('2020-04-30 05:50:46', 10894), +('2020-04-29 23:43:17', 10896), +('2020-04-21 21:13:13', 10898), +('2020-04-22 19:57:57', 10899), +('2020-04-22 22:33:43', 10900), +('2020-04-26 04:42:16', 10902), +('2020-04-22 22:56:15', 10904), +('2020-04-22 23:14:55', 10908), +('2020-04-22 23:21:04', 10909), +('2020-04-26 22:41:39', 10910), +('2020-04-29 15:20:10', 10911), +('2020-04-29 22:45:53', 10912), +('2020-04-29 16:12:25', 10915), +('2020-04-29 18:16:29', 10916), +('2020-04-29 21:53:20', 10917), +('2020-04-29 21:52:53', 10918), +('2020-04-29 15:21:45', 10919), +('2020-04-26 18:02:36', 10920), +('2020-04-26 09:22:52', 10921), +('2020-04-26 05:01:40', 10925), +('2020-04-23 01:07:20', 10927), +('2020-04-23 01:05:40', 10928), +('2020-04-23 01:01:30', 10929), +('2020-04-22 20:01:57', 10930), +('2020-04-17 14:57:20', 10935), +('2020-04-16 23:24:30', 10937), +('2020-04-17 02:10:15', 10938), +('2020-04-17 02:48:36', 10939), +('2020-04-17 02:48:36', 10940), +('2020-04-17 02:48:36', 10941), +('2020-04-17 02:48:36', 10942), +('2020-04-17 02:48:36', 10943), +('2020-04-17 02:48:36', 10944), +('2020-04-17 02:48:36', 10945), +('2020-04-17 02:48:36', 10946), +('2020-04-17 02:48:36', 10947), +('2020-04-17 14:26:05', 10948), +('2020-04-17 14:54:07', 10949), +('2020-04-17 06:20:36', 10950), +('2020-04-17 02:48:10', 10951), +('2020-04-14 16:54:59', 10953), +('2020-04-15 17:50:27', 10954), +('2020-04-15 17:59:50', 10955), +('2020-04-15 19:31:17', 10956), +('2020-04-05 01:23:20', 10958), +('2020-04-05 01:23:28', 10959), +('2020-04-05 01:40:13', 10960), +('2020-04-05 02:16:27', 10961), +('2020-04-06 00:43:49', 10962), +('2020-04-06 03:24:32', 10963), +('2020-04-06 16:01:19', 10964), +('2020-04-06 16:04:13', 10965), +('2020-04-06 16:54:14', 10966), +('2020-04-07 16:19:45', 10967), +('2020-04-14 16:30:15', 10970), +('2020-04-14 16:48:03', 10971), +('2020-04-17 02:10:46', 10972), +('2020-04-17 02:10:47', 10973), +('2020-04-16 17:58:39', 10975), +('2020-04-16 20:05:42', 10976), +('2020-04-08 22:05:52', 10978), +('2020-04-08 22:36:01', 10980), +('2020-04-14 16:12:18', 10981), +('2020-04-16 21:43:20', 10983), +('2020-04-16 22:47:23', 10984), +('2020-04-16 22:48:57', 10985), +('2020-04-08 22:39:59', 10986), +('2020-04-08 22:30:45', 10987), +('2020-04-05 00:14:19', 10988), +('2020-04-04 15:16:05', 10990), +('2020-04-04 18:09:28', 10991), +('2020-04-04 19:33:43', 10992), +('2020-04-04 20:38:11', 10993), +('2020-04-04 22:33:13', 10994), +('2020-04-04 22:58:08', 10995), +('2020-04-04 23:19:57', 10996), +('2020-04-04 23:41:13', 10997), +('2020-04-04 23:41:46', 10998), +('2020-03-31 09:48:38', 11002), +('2020-04-02 02:55:08', 11003), +('2020-04-03 23:38:04', 11004), +('2020-04-04 19:29:29', 11005), +('2020-03-12 12:33:11', 11007), +('2020-05-11 18:52:04', 11014), +('2020-05-11 18:33:41', 11015), +('2020-05-10 14:53:38', 11022), +('2020-05-09 19:23:15', 11023), +('2020-05-09 13:52:43', 11024), +('2020-05-09 19:22:22', 11025), +('2020-05-08 11:15:44', 11026), +('2020-05-08 01:07:14', 11027), +('2020-05-07 00:09:08', 11028), +('2020-05-06 20:59:08', 11029), +('2020-04-29 18:18:00', 11038), +('2020-04-29 16:13:43', 11039), +('2020-04-29 22:45:10', 11044), +('2020-04-30 06:23:03', 11048), +('2020-04-30 06:00:09', 11049), +('2020-04-30 05:11:44', 11050), +('2020-04-27 07:53:31', 11051), +('2020-04-27 07:56:11', 11063), +('2020-04-26 05:15:28', 11064), +('2020-04-18 08:23:35', 11065), +('2020-04-18 07:29:21', 11066), +('2020-04-27 06:20:41', 11072), +('2020-04-26 18:08:26', 11073), +('2020-04-26 05:13:48', 11074), +('2020-04-22 23:22:28', 11075), +('2020-05-05 17:23:48', 11081), +('2020-05-04 20:42:52', 11082), +('2020-05-04 13:29:13', 11088), +('2020-04-27 05:55:46', 11089), +('2020-04-22 23:25:00', 11090), +('2020-04-26 09:21:32', 11095), +('2020-04-26 05:05:59', 11100), +('2020-05-07 17:02:52', 11105), +('2020-05-06 18:24:55', 11106), +('2020-05-05 19:43:20', 11107), +('2020-05-04 22:12:43', 11108), +('2020-04-26 05:08:41', 11116), +('2020-04-29 23:43:19', 11122), +('2020-04-29 22:53:56', 11123), +('2020-04-29 22:51:01', 11124), +('2020-04-29 22:50:34', 11125), +('2020-04-22 23:27:32', 11126), +('2020-04-22 23:26:19', 11127), +('2020-04-26 04:49:11', 11134), +('2020-04-22 23:28:38', 11135), +('2020-04-26 04:47:42', 11136), +('2020-04-26 04:45:57', 11137), +('2020-04-17 15:49:37', 11144), +('2020-04-17 14:29:25', 11145), +('2020-04-15 22:41:23', 11151), +('2020-04-16 22:43:27', 11156), +('2020-04-17 14:40:41', 11161), +('2020-04-10 12:29:20', 11162), +('2020-04-08 22:02:36', 11166), +('2020-04-08 22:03:17', 11170), +('2020-04-17 15:48:07', 11174), +('2020-04-16 20:08:41', 11175), +('2020-04-15 19:32:12', 11182), +('2020-04-14 16:49:51', 11190), +('2020-04-15 22:34:48', 11201), +('2020-04-15 19:24:15', 11202), +('2020-04-15 22:33:57', 11203), +('2020-04-14 18:26:16', 11204), +('2020-04-07 21:39:02', 11205), +('2020-04-07 21:14:30', 11206), +('2020-04-15 22:35:53', 11210), +('2020-04-09 23:59:39', 11211), +('2020-04-20 11:50:55', 11218), +('2020-04-18 06:37:21', 11219), +('2020-04-09 18:31:35', 11224), +('2020-04-09 00:14:12', 11225), +('2020-04-09 07:59:17', 11234), +('2020-04-08 04:44:36', 11235), +('2020-04-07 20:04:04', 11243), +('2020-04-07 22:51:35', 11249), +('2020-04-07 21:19:26', 11250), +('2020-04-07 20:57:03', 11251), +('2020-04-06 17:02:14', 11258), +('2020-04-06 17:01:14', 11259), +('2020-04-06 16:57:06', 11260), +('2020-04-06 03:25:37', 11261), +('2020-04-05 02:19:39', 11262), +('2020-04-05 01:26:44', 11263), +('2020-04-07 18:50:10', 11271), +('2020-04-06 19:28:35', 11272), +('2020-04-03 10:51:03', 11279), +('2020-04-03 08:00:32', 11280), +('2020-04-02 23:29:22', 11281), +('2020-04-03 23:50:39', 11291), +('2020-04-03 09:46:03', 11292), +('2020-04-03 09:44:18', 11293), +('2020-04-03 09:41:49', 11301), +('2020-04-04 23:49:47', 11308), +('2020-04-02 20:28:37', 11309), +('2020-04-03 23:41:18', 11320), +('2020-04-02 02:56:42', 11321), +('2020-03-31 09:46:52', 11322), +('2020-04-01 20:49:11', 11333), +('2020-04-01 19:08:59', 11334), +('2020-04-01 19:08:31', 11335), +('2020-04-01 15:50:41', 11336), +('2020-03-30 22:00:36', 11337), +('2020-03-12 16:28:23', 11350), +('2020-03-12 16:27:57', 11351), +('2020-03-30 21:34:06', 11358), +('2020-03-30 21:20:02', 11359), +('2020-03-27 21:38:05', 11447), +('2020-03-27 20:59:25', 11449), +('2020-04-08 11:07:29', 11454), +('2020-03-20 14:09:26', 11464), +('2020-03-21 00:41:38', 11468), +('2020-03-21 13:35:03', 11472), +('2020-03-21 13:46:59', 11473), +('2020-03-22 19:31:54', 11474), +('2020-04-05 21:56:47', 11479), +('2020-04-07 17:45:17', 11481), +('2020-04-07 20:06:14', 11489), +('2020-03-14 16:57:54', 11491), +('2020-03-14 17:07:49', 11493), +('2020-03-14 17:29:10', 11494), +('2020-04-06 14:30:56', 11498), +('2020-04-08 13:28:27', 11501), +('2020-03-14 14:15:14', 11505), +('2020-03-14 14:13:02', 11506), +('2020-02-28 08:41:45', 11508), +('2020-03-27 21:41:53', 11509), +('2020-04-06 14:31:20', 11510), +('2020-04-05 21:58:23', 11511), +('2020-04-03 15:49:47', 11512), +('2020-03-27 11:41:53', 11513), +('2020-03-27 11:27:36', 11514), +('2020-04-08 13:32:35', 11515), +('2020-04-08 10:22:52', 11516), +('2020-04-08 10:16:04', 11517), +('2020-04-07 20:10:37', 11518), +('2020-04-07 20:07:44', 11519), +('2020-04-17 15:31:11', 11520), +('2020-04-17 13:41:14', 11528), +('2020-04-15 12:40:44', 11529), +('2020-04-15 12:29:11', 11531), +('2020-04-23 22:25:14', 11533), +('2020-04-27 13:03:20', 11535), +('2020-04-10 11:24:27', 11540), +('2020-04-10 11:23:23', 11541), +('2020-04-29 15:23:02', 11543), +('2020-04-08 14:01:30', 11563), +('2020-04-08 13:55:26', 11564), +('2020-04-08 13:34:19', 11565), +('2020-04-08 12:31:06', 11566), +('2020-04-08 12:28:02', 11567), +('2020-04-07 17:42:59', 11568), +('2020-04-06 20:47:19', 11569), +('2020-04-06 19:53:00', 11570), +('2020-04-06 19:42:42', 11571), +('2020-04-06 19:31:07', 11572), +('2020-04-06 19:27:15', 11573), +('2020-04-06 18:30:24', 11575), +('2020-04-06 18:24:33', 11576), +('2020-04-06 18:22:15', 11577), +('2020-04-17 18:50:48', 11578), +('2020-04-24 10:50:07', 11580), +('2020-04-24 12:35:26', 11582), +('2020-04-24 13:07:35', 11583), +('2020-04-17 15:32:08', 11586), +('2020-05-01 20:17:44', 11587), +('2020-04-30 22:31:16', 11589), +('2020-05-08 21:40:11', 11592), +('2020-04-29 19:23:03', 11597), +('2020-04-29 11:43:34', 11599), +('2020-04-30 16:19:01', 11600), +('2020-05-02 12:33:42', 11602), +('2020-05-08 16:11:35', 11607), +('2020-04-29 16:39:47', 11609), +('2020-05-01 14:12:08', 11611), +('2020-04-29 16:29:47', 11614), +('2020-04-29 16:20:51', 11615), +('2020-04-28 22:12:57', 11616), +('2020-04-27 21:49:30', 11618), +('2020-04-28 17:37:21', 11619), +('2020-04-28 18:12:42', 11620), +('2020-04-28 19:07:33', 11621), +('2020-04-27 14:36:40', 11622), +('2020-04-27 13:33:20', 11623), +('2020-04-17 17:21:59', 11627), +('2020-04-17 18:30:51', 11629), +('2020-04-27 11:51:05', 11630), +('2020-04-27 13:13:30', 11631), +('2020-04-27 11:16:22', 11632), +('2020-04-26 15:53:34', 11633), +('2020-04-26 11:26:43', 11635), +('2020-04-26 15:48:01', 11636), +('2020-04-24 15:57:26', 11637), +('2020-04-24 14:11:32', 11639), +('2020-04-24 12:13:09', 11640), +('2020-04-24 11:55:18', 11641), +('2020-04-20 11:22:55', 11642), +('2020-04-20 10:48:05', 11643), +('2020-04-17 23:17:37', 11644), +('2020-04-17 23:10:53', 11645), +('2020-04-17 18:51:39', 11646), +('2020-04-17 17:55:08', 11647), +('2020-04-15 13:17:28', 11648), +('2020-04-15 12:35:06', 11649), +('2020-05-01 21:51:59', 11650), +('2020-05-01 20:24:01', 11653), +('2020-05-01 20:23:40', 11654), +('2020-05-01 20:20:05', 11655), +('2020-05-08 23:29:25', 11656), +('2020-05-08 19:46:39', 11658), +('2020-05-08 12:29:39', 11662), +('2020-05-03 22:42:17', 11668), +('2020-05-04 23:24:06', 11670), +('2020-05-04 21:43:58', 11672), +('2020-05-04 18:53:16', 11674), +('2020-05-03 21:08:26', 11676), +('2020-05-02 09:48:54', 11678), +('2020-05-01 21:53:22', 11679), +('2020-05-16 14:28:13', 11680), +('2020-05-16 14:16:28', 11684), +('2020-05-16 14:18:15', 11686), +('2020-05-16 09:45:19', 11688), +('2020-05-15 18:33:20', 11690), +('2020-05-14 20:38:19', 11692), +('2020-05-14 20:52:15', 11695), +('2020-05-15 17:57:18', 11696), +('2020-05-15 18:03:51', 11697), +('2020-05-15 18:10:17', 11698), +('2020-05-15 09:25:09', 11701), +('2020-05-14 21:47:34', 11703), +('2020-05-14 22:58:04', 11706), +('2020-05-14 21:48:47', 11707), +('2020-05-14 18:58:07', 11708), +('2020-05-11 13:39:23', 11710), +('2020-05-17 13:31:34', 11712), +('2020-05-11 10:38:53', 11717), +('2020-05-11 10:28:52', 11720), +('2020-05-10 09:59:45', 11724), +('2020-05-08 23:45:40', 11727), +('2020-05-08 23:30:34', 11728), +('2020-05-08 23:30:10', 11729), +('2020-05-08 22:06:43', 11730), +('2020-04-29 17:46:09', 11731), +('2020-04-29 17:35:16', 11733), +('2020-05-27 16:41:35', 11734), +('2020-05-27 16:41:06', 11736), +('2020-05-27 16:40:54', 11737), +('2020-05-27 16:35:37', 11740), +('2020-05-27 16:30:57', 11741), +('2020-05-27 16:10:40', 11742), +('2020-05-27 16:10:08', 11743), +('2020-05-27 16:07:33', 11745), +('2020-05-27 15:22:17', 11746), +('2020-05-27 15:22:05', 11747), +('2020-05-27 15:20:01', 11748), +('2020-05-27 15:11:54', 11749), +('2020-05-27 15:04:55', 11750), +('2020-05-27 15:03:05', 11751), +('2020-05-27 15:03:02', 11752), +('2020-05-27 14:55:16', 11753), +('2020-05-27 14:33:54', 11754), +('2020-05-27 14:28:07', 11755), +('2020-05-27 14:27:13', 11756), +('2020-05-27 14:13:07', 11757), +('2020-05-27 13:20:34', 11758), +('2020-05-27 12:59:30', 11759), +('2020-05-27 12:20:11', 11760), +('2020-05-27 12:19:25', 11761), +('2020-05-27 11:40:44', 11762), +('2020-05-27 11:40:00', 11764), +('2020-05-27 10:55:28', 11765), +('2020-05-27 10:55:10', 11766), +('2020-05-27 10:39:51', 11767), +('2020-05-27 10:22:32', 11768), +('2020-05-27 10:17:01', 11769), +('2020-05-27 09:47:43', 11770), +('2020-05-27 08:18:11', 11771), +('2020-05-27 08:17:29', 11772), +('2020-05-24 23:02:20', 11773), +('2020-05-21 17:22:49', 11779), +('2020-05-17 16:51:27', 11780), +('2020-05-16 14:33:23', 11782), +('2020-05-16 14:22:08', 11783), +('2020-06-03 22:15:05', 11784), +('2020-05-28 10:45:57', 11786), +('2020-05-27 17:04:07', 11787), +('2020-06-04 08:02:30', 11788), +('2020-06-04 07:08:41', 11789), +('2020-05-02 22:18:46', 11790), +('2020-04-29 15:23:06', 11791), +('2020-04-29 16:32:25', 11792), +('2020-06-09 20:49:46', 11795), +('2020-06-09 15:56:14', 11796), +('2020-06-08 11:04:31', 11800), +('2020-06-08 10:18:03', 11801), +('2020-06-03 13:08:39', 11805), +('2020-06-02 18:48:00', 11806), +('2020-06-02 17:29:41', 11807), +('2020-06-02 17:28:47', 11808), +('2020-06-03 22:17:08', 11811), +('2020-06-01 08:57:42', 11817), +('2020-05-29 08:27:23', 11818), +('2020-06-02 16:25:37', 11825), +('2020-06-01 11:59:29', 11826), +('2020-06-02 15:48:00', 11827), +('2020-06-01 11:50:09', 11828), +('2020-05-18 16:20:17', 11848), +('2020-06-07 21:06:36', 11879), +('2020-05-27 16:44:03', 11887), +('2020-05-27 16:41:38', 11888), +('2020-05-27 16:41:08', 11889), +('2020-05-27 16:41:00', 11890), +('2020-05-26 12:26:44', 11895), +('2020-05-25 12:15:12', 11896), +('2020-05-25 11:12:26', 11897), +('2020-05-25 11:09:37', 11898), +('2020-05-25 11:08:05', 11899), +('2020-05-18 16:58:42', 11910), +('2020-05-15 18:13:22', 11916), +('2020-05-16 14:43:28', 11917), +('2020-05-11 15:33:12', 11918), +('2020-05-11 15:23:46', 11919), +('2020-05-11 12:42:43', 11923), +('2020-05-10 15:20:54', 11924), +('2020-05-10 15:19:57', 11925), +('2020-05-16 09:45:45', 11931), +('2020-05-16 14:24:24', 11937), +('2020-05-16 09:45:44', 11942), +('2020-05-16 09:45:44', 11947), +('2020-05-16 09:45:45', 11951), +('2020-05-08 23:51:03', 11957), +('2020-05-16 14:31:16', 11960), +('2020-05-16 09:45:45', 11970), +('2020-05-16 09:45:45', 11971), +('2020-05-16 09:45:45', 11972), +('2020-05-16 09:45:44', 11973), +('2020-06-03 22:15:49', 11981), +('2020-06-03 22:15:49', 11986), +('2020-05-08 23:31:57', 11992), +('2020-05-10 23:17:20', 12001), +('2020-05-10 18:13:17', 12008), +('2020-05-04 09:49:28', 12016), +('2020-05-04 09:33:31', 12017), +('2020-05-04 09:32:49', 12018), +('2020-05-04 09:32:25', 12019), +('2020-05-04 18:53:50', 12024), +('2020-05-04 18:53:53', 12030), +('2020-06-03 22:15:49', 12035), +('2020-05-16 09:45:44', 12036), +('2020-05-08 19:48:15', 12045), +('2020-05-04 21:44:29', 12053), +('2020-05-16 09:45:44', 12059), +('2020-05-04 23:24:58', 12068), +('2020-05-08 19:47:18', 12075), +('2020-05-08 19:47:18', 12083), +('2020-05-04 18:53:50', 12084), +('2020-04-30 15:24:43', 12093), +('2020-04-30 14:42:03', 12094), +('2020-04-30 12:14:04', 12095), +('2020-04-30 11:57:40', 12096), +('2020-04-30 11:52:42', 12097), +('2020-05-03 16:20:21', 12101), +('2020-05-03 16:19:56', 12102), +('2020-05-03 16:14:42', 12103), +('2020-05-18 08:51:17', 12112), +('2020-05-21 15:43:48', 12113), +('2020-05-16 14:46:08', 12114), +('2020-05-15 18:16:47', 12115), +('2020-05-10 23:20:52', 12116), +('2020-05-10 15:29:11', 12117), +('2020-05-03 16:21:35', 12118), +('2020-05-02 09:22:52', 12119), +('2020-04-29 15:37:31', 12120), +('2020-04-27 12:33:57', 12121), +('2020-04-27 11:34:00', 12122), +('2020-05-16 09:45:45', 12126), +('2020-05-16 09:45:45', 12127), +('2020-05-16 09:45:45', 12128), +('2020-05-01 20:25:20', 12140), +('2020-04-29 17:42:18', 12141), +('2020-05-01 21:56:32', 12146), +('2020-05-08 21:40:37', 12151), +('2020-05-01 20:25:21', 12157), +('2020-04-30 22:31:54', 12158), +('2020-05-04 18:53:49', 12165), +('2020-04-30 22:31:31', 12166), +('2020-04-30 11:10:13', 12167), +('2020-04-30 11:10:12', 12168), +('2020-04-30 11:10:12', 12175), +('2020-04-30 11:10:12', 12176), +('2020-04-30 11:01:18', 12177), +('2020-04-30 11:01:18', 12178), +('2020-04-30 11:01:18', 12179), +('2020-04-27 12:32:19', 12186), +('2020-04-27 12:31:15', 12187), +('2020-04-27 11:32:23', 12188), +('2020-04-27 10:09:52', 12189), +('2020-04-27 10:09:16', 12190), +('2020-04-27 10:08:16', 12191), +('2020-04-26 16:26:03', 12195), +('2020-04-26 16:24:31', 12201), +('2020-04-27 10:54:38', 12210), +('2020-04-26 16:26:21', 12215), +('2020-04-26 16:26:21', 12216), +('2020-04-27 12:43:27', 12223), +('2020-04-27 10:58:41', 12224), +('2020-04-27 10:57:39', 12225), +('2020-04-27 10:45:37', 12226), +('2020-04-27 10:32:45', 12227), +('2020-04-24 15:06:32', 12228), +('2020-04-23 22:33:29', 12229), +('2020-04-27 12:42:36', 12230), +('2020-04-27 09:32:45', 12231), +('2020-04-22 21:05:06', 12232), +('2020-04-20 09:02:21', 12233), +('2020-04-22 21:03:26', 12234), +('2020-04-15 12:50:29', 12235), +('2020-04-15 12:45:09', 12236), +('2020-04-15 12:41:47', 12246), +('2020-04-30 11:01:18', 12251), +('2020-04-27 13:09:25', 12252), +('2020-04-17 18:51:48', 12253), +('2020-04-17 17:24:33', 12254), +('2020-04-26 16:26:21', 12264), +('2020-04-24 12:35:44', 12265), +('2020-04-24 10:53:04', 12266), +('2020-04-17 18:51:50', 12267), +('2020-04-30 11:10:12', 12273), +('2020-04-15 12:41:47', 12274), +('2020-04-17 15:32:45', 12280), +('2020-04-27 13:09:25', 12287), +('2020-04-24 10:40:00', 12288), +('2020-04-15 12:41:47', 12289), +('2020-04-13 19:59:56', 12290), +('2020-04-09 18:22:43', 12298), +('2020-04-09 15:53:24', 12299), +('2020-04-09 12:16:17', 12300), +('2020-04-09 11:58:37', 12301), +('2020-04-09 11:44:46', 12302), +('2020-04-09 11:43:21', 12303), +('2020-04-08 12:59:04', 12310), +('2020-04-08 11:44:14', 12311), +('2020-04-08 13:34:42', 12316), +('2020-04-07 11:12:43', 12324), +('2020-04-02 08:18:36', 12336), +('2020-04-01 23:09:08', 12337), +('2020-04-01 23:08:45', 12338), +('2020-04-01 11:37:24', 12339), +('2020-03-31 17:24:59', 12340), +('2020-04-01 23:03:44', 12350), +('2020-03-31 17:17:59', 12351), +('2020-04-02 19:40:48', 12359), +('2020-03-27 12:55:17', 12367), +('2020-03-27 14:00:59', 12374), +('2020-03-27 11:40:56', 12375), +('2020-03-27 11:31:48', 12376), +('2020-03-27 11:30:58', 12377), +('2020-03-27 11:28:42', 12378), +('2020-03-20 15:39:40', 12385), +('2020-03-20 15:28:47', 12386), +('2020-03-20 12:39:26', 12391), +('2020-03-20 12:35:09', 12392), +('2020-04-07 11:44:07', 12405), +('2020-04-08 14:27:04', 12413), +('2020-04-08 14:18:43', 12414), +('2020-04-08 15:01:07', 12415), +('2020-04-07 18:35:50', 12416), +('2020-04-07 11:10:18', 12417), +('2020-04-07 10:27:27', 12418), +('2020-04-06 02:02:40', 12419), +('2020-03-30 11:10:23', 12420), +('2020-03-27 14:51:55', 12421), +('2020-03-27 14:36:07', 12422), +('2020-03-27 14:15:33', 12423), +('2020-03-27 11:26:01', 12424), +('2020-03-27 11:24:51', 12425), +('2020-03-27 11:23:52', 12426), +('2020-03-27 11:23:48', 12427), +('2020-03-27 11:20:43', 12428), +('2020-03-20 21:10:17', 12429), +('2020-03-19 14:23:30', 12437), +('2020-03-19 11:36:50', 12438), +('2020-03-19 11:14:10', 12439), +('2020-03-19 11:07:13', 12440), +('2020-03-19 11:05:50', 12441), +('2020-03-19 11:05:11', 12442), +('2020-03-19 08:59:36', 12451), +('2020-03-18 18:27:49', 12452), +('2020-03-18 13:27:56', 12453), +('2020-03-18 12:32:58', 12454), +('2020-03-18 12:27:10', 12455), +('2020-03-18 12:26:49', 12456), +('2020-04-29 17:59:40', 12460), +('2020-04-29 17:11:32', 12461), +('2020-04-06 19:47:17', 12462), +('2020-03-14 18:02:00', 12472), +('2020-03-14 17:41:53', 12480), +('2020-04-07 17:59:49', 12487), +('2020-04-07 20:12:20', 12494), +('2020-04-05 21:59:57', 12502), +('2020-04-05 22:02:41', 12510), +('2020-04-05 22:02:41', 12511), +('2020-03-27 21:44:45', 12512), +('2020-03-27 21:27:59', 12513), +('2020-04-07 18:01:18', 12520), +('2020-04-06 14:34:21', 12521), +('2020-04-02 22:27:38', 12522), +('2020-03-22 19:40:53', 12530), +('2020-03-22 18:15:54', 12531), +('2020-03-21 11:11:56', 12532), +('2020-03-21 11:11:56', 12533), +('2020-03-14 10:06:39', 12543), +('2020-04-08 11:08:15', 12549), +('2020-04-02 09:10:36', 12550), +('2020-03-30 18:55:06', 12560), +('2020-03-30 18:53:55', 12561), +('2020-03-30 16:35:58', 12562), +('2020-03-27 13:31:31', 12563), +('2020-03-19 11:38:00', 12575), +('2020-03-19 08:24:48', 12576), +('2020-03-14 14:20:47', 12582), +('2020-03-17 10:12:23', 12590), +('2020-03-14 18:23:46', 12591), +('2020-03-14 17:55:55', 12592), +('2020-03-14 09:14:12', 12593), +('2020-03-19 11:37:49', 12598), +('2020-03-19 11:21:09', 12599), +('2020-03-19 11:17:05', 12600), +('2020-03-19 11:17:01', 12601), +('2020-03-19 08:25:38', 12602), +('2020-03-17 13:56:20', 12603), +('2020-03-18 13:28:54', 12604), +('2020-03-14 18:17:07', 12605), +('2020-03-14 17:56:53', 12606), +('2020-03-14 15:34:43', 12607), +('2020-03-14 14:34:16', 12608), +('2020-03-14 09:10:11', 12609), +('2020-03-19 11:39:20', 12615), +('2020-03-19 11:20:24', 12616), +('2020-03-18 23:15:33', 12617), +('2020-03-14 18:00:18', 12618), +('2020-03-14 09:15:37', 12619), +('2020-03-13 17:06:54', 12627), +('2020-03-13 16:03:59', 12628), +('2020-03-13 14:44:46', 12629), +('2020-03-13 12:57:13', 12630), +('2020-03-13 12:55:48', 12631), +('2020-03-20 19:35:48', 12636), +('2020-03-20 18:26:09', 12637), +('2020-03-11 23:05:47', 12638), +('2020-03-14 09:19:50', 12649), +('2020-03-05 07:31:37', 12650), +('2020-03-05 08:58:19', 12658), +('2020-03-04 22:07:41', 12659), +('2020-03-04 22:06:54', 12660), +('2020-03-04 16:12:18', 12661), +('2020-03-04 22:06:22', 12666), +('2020-03-05 15:23:48', 12667), +('2020-03-05 08:57:06', 12668), +('2020-03-04 16:15:54', 12669), +('2020-05-11 22:34:07', 12886), +('2020-05-11 21:55:45', 12890), +('2020-05-11 13:12:10', 12892), +('2020-05-07 21:29:14', 12894), +('2020-05-07 15:42:19', 12899), +('2020-05-06 13:39:11', 12905), +('2020-05-06 13:17:29', 12907), +('2020-05-04 17:52:04', 12912), +('2020-05-04 17:38:37', 12914), +('2020-05-04 17:46:37', 12919), +('2020-05-04 16:14:33', 12920), +('2020-05-04 16:12:16', 12922), +('2020-05-04 14:09:40', 12923), +('2020-05-04 14:09:40', 12927), +('2020-05-04 13:43:07', 12929), +('2020-05-04 14:09:39', 12930), +('2020-05-04 13:38:25', 12932), +('2020-05-04 14:09:39', 12935), +('2020-05-04 13:27:15', 12937), +('2020-05-04 14:09:05', 12938), +('2020-05-04 13:44:18', 12939), +('2020-05-04 13:17:04', 12941), +('2020-05-04 12:03:56', 12947), +('2020-05-04 11:14:05', 12950), +('2020-05-04 11:13:04', 12952), +('2020-05-03 17:41:44', 12953), +('2020-05-02 22:38:39', 12955), +('2020-05-02 22:51:26', 12957), +('2020-05-03 17:18:03', 12962), +('2020-05-03 17:29:08', 12964), +('2020-05-02 20:50:43', 12965), +('2020-05-02 19:31:48', 12967), +('2020-05-02 20:43:51', 12970), +('2020-05-02 18:58:45', 12971), +('2020-05-02 18:57:14', 12973), +('2020-04-29 14:06:53', 12982), +('2020-04-28 12:50:38', 12984), +('2020-04-28 10:46:44', 12986), +('2020-04-28 10:46:46', 12987), +('2020-04-20 22:23:57', 12989), +('2020-04-23 18:06:22', 12992), +('2020-04-24 00:53:04', 13003), +('2020-04-24 17:17:27', 13016), +('2020-04-28 10:45:11', 13017), +('2020-04-27 19:53:13', 13018), +('2020-04-26 17:27:55', 13022), +('2020-04-26 17:06:09', 13024), +('2020-04-24 17:53:32', 13026), +('2020-04-24 17:43:44', 13029), +('2020-04-24 17:43:19', 13030), +('2020-04-24 15:43:37', 13034), +('2020-04-20 22:32:31', 13036), +('2020-04-24 13:02:05', 13037), +('2020-04-24 15:42:19', 13038), +('2020-04-24 13:07:29', 13039), +('2020-04-23 10:41:54', 13040), +('2020-04-20 13:50:11', 13042), +('2020-04-17 15:00:24', 13043), +('2020-04-17 09:58:33', 13044), +('2020-04-16 16:28:45', 13046), +('2020-04-16 22:45:05', 13047), +('2020-04-16 19:36:49', 13051), +('2020-04-16 19:34:03', 13053), +('2020-04-16 19:34:03', 13055), +('2020-04-16 19:33:56', 13069), +('2020-04-16 16:30:00', 13071), +('2020-04-14 01:10:05', 13073), +('2020-04-14 01:10:04', 13075), +('2020-04-14 01:04:57', 13077), +('2020-04-14 01:06:03', 13078), +('2020-04-11 21:15:53', 13080), +('2020-04-11 21:05:34', 13082), +('2020-04-07 22:20:24', 13083), +('2020-04-07 22:16:20', 13085), +('2020-04-07 20:39:47', 13087), +('2020-04-07 20:26:23', 13089), +('2020-04-07 16:02:23', 13090), +('2020-04-07 16:00:10', 13092), +('2020-03-25 16:09:53', 13093), +('2020-03-25 16:09:27', 13095), +('2020-03-24 22:10:55', 13099), +('2020-02-28 08:43:35', 13101), +('2020-05-20 21:06:14', 13102), +('2020-05-20 16:38:10', 13107), +('2020-05-20 16:18:38', 13109), +('2020-05-20 06:03:12', 13111), +('2020-05-20 05:55:57', 13113), +('2020-05-21 08:20:21', 13115), +('2020-05-26 17:49:39', 13117), +('2020-05-28 18:38:12', 13119), +('2020-05-28 18:37:19', 13120), +('2020-05-21 15:59:59', 13122), +('2020-05-23 14:55:42', 13129), +('2020-05-28 18:29:41', 13130), +('2020-05-28 18:35:54', 13131), +('2020-05-28 18:35:54', 13132), +('2020-05-23 15:03:07', 13134), +('2020-05-27 09:30:24', 13135), +('2020-05-26 20:25:07', 13137), +('2020-05-27 09:24:34', 13138), +('2020-06-26 17:41:12', 13140), +('2020-06-20 17:04:21', 13143), +('2020-05-28 23:17:00', 13144), +('2020-06-04 19:58:50', 13191), +('2020-06-05 15:13:25', 13197), +('2020-06-02 21:27:09', 13234), +('2020-06-05 15:06:01', 13242), +('2020-05-29 11:53:35', 13255), +('2020-05-29 11:38:35', 13256), +('2020-05-29 11:37:12', 13257), +('2020-05-29 11:36:59', 13258), +('2020-05-29 11:53:51', 13265), +('2020-05-29 11:42:27', 13266), +('2020-05-29 11:23:17', 13267), +('2020-05-29 11:22:10', 13268), +('2020-05-29 11:54:04', 13274), +('2020-05-29 11:38:51', 13275), +('2020-05-29 11:23:09', 13276), +('2020-05-29 11:22:57', 13277), +('2020-05-29 11:54:22', 13283), +('2020-05-29 11:42:44', 13284), +('2020-05-29 11:23:00', 13285), +('2020-05-29 11:22:38', 13286), +('2020-05-29 11:00:07', 13293), +('2020-05-29 11:53:26', 13298), +('2020-05-29 11:42:03', 13299), +('2020-05-29 10:59:47', 13300), +('2020-05-29 10:57:22', 13301), +('2020-05-26 17:50:29', 13312), +('2020-05-27 09:39:58', 13318), +('2020-05-27 13:51:41', 13329), +('2020-05-26 12:28:21', 13330), +('2020-05-21 08:30:30', 13336), +('2020-05-21 08:08:15', 13337), +('2020-05-21 08:07:52', 13338), +('2020-05-20 06:03:31', 13343), +('2020-05-20 17:46:31', 13348), +('2020-05-20 16:39:05', 13362), +('2020-05-20 16:40:01', 13368), +('2020-05-21 08:31:41', 13376), +('2020-05-21 08:31:05', 13382), +('2020-05-21 08:30:41', 13383), +('2020-05-21 08:07:40', 13384), +('2020-05-14 08:50:27', 13385), +('2020-05-14 08:07:13', 13389), +('2020-05-11 13:39:47', 13390), +('2020-05-11 13:35:39', 13391), +('2020-05-11 13:35:34', 13392), +('2020-05-11 13:39:39', 13397), +('2020-05-11 13:39:31', 13398), +('2020-05-11 13:35:26', 13399), +('2020-05-11 13:35:20', 13400), +('2020-05-20 05:56:58', 13403), +('2020-05-07 21:30:14', 13410), +('2020-05-07 16:11:30', 13415), +('2020-05-20 21:07:42', 13419), +('2020-05-06 13:26:36', 13425), +('2020-05-06 13:17:53', 13426), +('2020-05-06 13:16:17', 13427), +('2020-05-06 13:15:56', 13428), +('2020-05-04 13:38:55', 13432), +('2020-05-04 13:17:55', 13439), +('2020-05-29 12:22:23', 13445), +('2020-05-11 22:35:27', 13453), +('2020-05-11 22:35:07', 13459), +('2020-05-02 19:32:13', 13465), +('2020-05-02 19:00:31', 13471), +('2020-05-29 12:22:53', 13477), +('2020-05-02 20:35:45', 13478), +('2020-05-10 12:12:28', 13489), +('2020-05-06 13:02:26', 13490), +('2020-06-08 14:10:38', 13498), +('2020-05-06 13:17:48', 13504), +('2020-04-29 20:01:03', 13511), +('2020-05-03 17:51:39', 13516), +('2020-05-02 19:41:08', 13526), +('2020-05-04 17:55:08', 13532), +('2020-05-02 19:01:13', 13538), +('2020-04-29 19:58:04', 13544), +('2020-05-04 12:04:36', 13549), +('2020-05-03 17:54:28', 13554), +('2020-05-04 16:22:53', 13559), +('2020-05-04 14:10:49', 13565), +('2020-05-04 13:43:21', 13570), +('2020-05-04 11:14:54', 13575), +('2020-05-04 13:39:15', 13580), +('2020-04-29 20:09:46', 13586), +('2020-04-29 19:03:26', 13587), +('2020-04-29 19:02:15', 13588), +('2020-04-29 19:02:12', 13589), +('2020-04-29 19:01:07', 13594), +('2020-04-23 10:43:55', 13598), +('2020-04-22 19:31:33', 13605), +('2020-04-22 19:03:44', 13606), +('2020-04-22 19:03:22', 13607), +('2020-04-22 19:03:21', 13608), +('2020-04-20 14:55:32', 13612), +('2020-04-20 14:54:50', 13613), +('2020-04-20 14:54:44', 13614), +('2020-04-20 14:54:41', 13615), +('2020-04-20 10:34:24', 13620), +('2020-04-20 10:28:41', 13626), +('2020-04-20 22:25:47', 13630), +('2020-04-27 19:55:55', 13636), +('2020-04-24 17:29:07', 13642), +('2020-04-24 00:59:48', 13643), +('2020-04-23 18:13:43', 13644), +('2020-04-20 22:34:56', 13645), +('2020-05-28 18:52:09', 13654), +('2020-04-26 17:29:24', 13665), +('2020-04-23 12:17:43', 13666), +('2020-04-29 14:08:36', 13674), +('2020-04-28 12:51:56', 13680), +('2020-04-28 10:49:47', 13681), +('2020-04-26 22:42:57', 13682), +('2020-04-24 15:44:47', 13690), +('2020-04-24 13:20:41', 13691), +('2020-04-20 22:34:39', 13692), +('2020-04-19 19:59:39', 13701), +('2020-04-17 14:33:02', 13708), +('2020-04-17 14:32:51', 13709), +('2020-04-17 14:32:47', 13710), +('2020-04-17 14:32:45', 13711), +('2020-04-17 14:31:11', 13715), +('2020-04-17 14:27:01', 13716), +('2020-04-17 14:26:40', 13717), +('2020-04-17 14:26:26', 13718), +('2020-04-15 21:41:49', 13724), +('2020-04-16 16:33:14', 13737), +('2020-04-16 10:39:05', 13743), +('2020-04-15 19:34:07', 13744), +('2020-04-15 19:32:57', 13745); +INSERT INTO `committed_configuration` (`committed`, `id`) VALUES +('2020-04-15 19:02:09', 13746), +('2020-04-19 21:59:03', 13750), +('2020-04-17 11:21:28', 13755), +('2020-04-17 11:20:48', 13756), +('2020-04-11 21:17:47', 13761), +('2020-04-10 22:11:37', 13762), +('2020-04-09 22:18:24', 13763), +('2020-04-14 13:15:35', 13771), +('2020-04-14 13:13:41', 13772), +('2020-04-14 13:12:34', 13773), +('2020-04-14 13:02:01', 13774), +('2020-04-08 20:05:30', 13780), +('2020-04-08 20:04:54', 13781), +('2020-04-08 19:43:23', 13782), +('2020-04-08 19:17:40', 13783), +('2020-04-02 16:38:17', 13792), +('2020-04-02 16:37:50', 13796), +('2020-04-15 19:00:45', 13802), +('2020-04-07 22:30:00', 13809), +('2020-04-07 20:44:39', 13815), +('2020-04-14 01:13:44', 13822), +('2020-04-14 01:17:54', 13827), +('2020-04-07 16:03:52', 13834), +('2020-04-08 13:55:01', 13843), +('2020-04-06 20:28:38', 13844), +('2020-04-08 16:42:45', 13850), +('2020-04-07 16:43:07', 13851), +('2020-04-15 14:44:36', 13857), +('2020-04-08 22:02:27', 13862), +('2020-04-08 12:57:51', 13867), +('2020-04-03 18:08:14', 13873), +('2020-04-02 17:04:06', 13874), +('2020-04-02 17:08:59', 13880), +('2020-04-02 17:07:47', 13881), +('2020-04-01 20:11:58', 13882), +('2020-04-01 19:52:46', 13883), +('2020-03-29 16:17:47', 13892), +('2020-03-27 17:51:11', 13899), +('2020-03-26 17:30:00', 13906), +('2020-03-29 13:16:18', 13912), +('2020-03-29 13:15:53', 13913), +('2020-03-25 19:59:43', 13919), +('2020-03-25 19:59:17', 13920), +('2020-03-25 19:58:15', 13921), +('2020-03-25 19:58:08', 13922), +('2020-03-20 16:33:25', 13927), +('2020-03-25 19:58:31', 13934), +('2020-03-25 19:46:45', 13935), +('2020-03-25 19:29:26', 13943), +('2020-03-19 17:24:05', 13953), +('2020-03-17 13:07:30', 13954), +('2020-03-18 19:08:36', 13974), +('2020-03-17 16:36:53', 13975), +('2020-03-17 16:32:38', 13976), +('2020-03-19 12:47:50', 13985), +('2020-03-25 18:27:01', 13998), +('2020-03-18 20:05:56', 13999), +('2020-03-26 16:29:12', 14010), +('2020-03-18 19:57:44', 14011), +('2020-03-19 12:37:52', 14020), +('2020-03-18 11:03:07', 14031), +('2020-03-18 22:02:32', 14039), +('2021-11-09 23:18:46', 96130), +('2021-11-09 10:31:16', 96134), +('2021-11-09 01:46:41', 96137), +('2021-11-03 23:27:41', 96139), +('2021-11-03 21:45:10', 96142), +('2021-11-03 21:42:22', 96147), +('2021-10-28 08:04:33', 96152), +('2021-10-27 18:40:50', 96153), +('2021-10-27 18:10:58', 96155), +('2021-10-27 18:10:41', 96156), +('2021-10-25 18:34:17', 96159), +('2021-10-21 00:52:22', 96160), +('2021-10-15 02:16:21', 96161), +('2021-10-14 21:03:27', 96165), +('2021-10-14 19:05:43', 96166), +('2021-10-14 19:04:48', 96167), +('2021-10-12 18:12:22', 96168), +('2021-10-12 18:09:56', 96169), +('2021-10-12 16:57:37', 96175), +('2021-10-12 16:57:16', 96178), +('2021-10-12 16:54:56', 96183), +('2021-10-05 22:38:20', 96194), +('2021-10-05 22:36:52', 96195), +('2021-09-30 21:34:17', 96196), +('2021-09-30 21:31:46', 96197), +('2021-09-28 18:34:03', 96203), +('2021-09-28 18:31:03', 96204), +('2021-09-28 18:03:50', 96209), +('2021-09-28 18:01:46', 96210), +('2021-09-28 17:24:41', 96214), +('2021-09-28 17:19:06', 96215), +('2021-09-28 00:49:02', 96216), +('2021-09-20 22:03:33', 96217), +('2021-09-02 17:30:47', 96219), +('2021-09-02 17:28:01', 96220), +('2021-08-26 20:57:42', 96221), +('2021-08-26 20:03:50', 96222), +('2021-08-26 19:19:05', 96258), +('2021-08-19 20:58:01', 96259), +('2021-08-19 17:46:27', 96260), +('2021-08-19 17:43:10', 96266), +('2021-08-19 17:40:57', 96267), +('2021-08-19 17:27:38', 96268), +('2021-08-19 04:42:19', 96269), +('2021-08-19 04:39:27', 96270), +('2021-08-19 04:04:42', 96271), +('2021-08-19 03:56:28', 96272), +('2021-08-19 03:40:51', 96273), +('2021-08-19 00:21:27', 96274), +('2021-08-19 00:16:52', 96275), +('2021-08-19 00:04:31', 96276), +('2021-08-19 00:01:32', 96277), +('2021-08-12 20:55:51', 96278), +('2021-08-12 20:53:59', 96279), +('2021-08-12 20:53:46', 96280), +('2021-07-29 23:44:05', 96281), +('2021-07-29 20:30:16', 96282), +('2021-07-27 19:11:45', 96283), +('2021-07-27 19:07:32', 96284), +('2021-07-27 19:00:05', 96291), +('2021-07-27 18:57:35', 96292), +('2021-07-27 18:53:42', 96293), +('2021-07-27 18:51:14', 96294), +('2021-07-22 06:54:22', 96295), +('2021-07-22 06:54:21', 96296), +('2021-07-22 06:54:18', 96297), +('2021-07-22 06:37:28', 96298), +('2021-07-22 06:37:27', 96299), +('2021-07-22 06:37:26', 96300), +('2021-07-22 06:37:25', 96301), +('2021-07-22 06:37:24', 96302), +('2021-07-22 06:37:22', 96303), +('2021-07-22 06:37:21', 96304), +('2021-07-22 06:37:20', 96305), +('2021-07-22 06:37:19', 96306), +('2021-07-22 06:37:18', 96307), +('2021-07-22 06:37:17', 96308), +('2021-07-22 06:37:15', 96309), +('2021-07-22 06:37:14', 96310), +('2021-07-22 06:37:09', 96311), +('2021-07-22 04:19:01', 96312), +('2021-07-15 20:15:25', 96313), +('2021-07-15 20:13:13', 96314), +('2021-06-29 20:24:44', 96315), +('2021-06-29 20:21:02', 96316), +('2021-06-29 19:57:03', 96317), +('2021-06-29 19:54:44', 96318), +('2021-06-25 23:23:33', 96319), +('2021-06-24 23:04:17', 96320), +('2021-06-24 20:56:21', 96321), +('2021-06-24 20:49:10', 96322), +('2021-06-19 00:35:02', 96324), +('2021-06-18 23:33:54', 96325), +('2021-06-16 18:35:29', 96326), +('2021-06-16 18:33:23', 96327), +('2021-06-16 18:32:49', 96328), +('2021-06-07 18:32:36', 96329), +('2021-06-03 20:17:35', 96330), +('2021-06-03 02:29:15', 96331), +('2021-06-02 19:30:46', 96333), +('2021-06-02 19:27:20', 96334), +('2021-06-02 19:21:01', 96335), +('2021-05-28 20:39:20', 96336), +('2021-05-28 20:37:09', 96337), +('2021-05-24 22:44:02', 96338), +('2021-05-24 20:16:20', 96339), +('2021-05-19 23:01:53', 96341), +('2021-05-19 22:57:59', 96342), +('2021-05-19 22:57:59', 96343), +('2021-05-19 22:57:59', 96344), +('2021-05-19 22:57:59', 96345), +('2021-05-19 22:57:59', 96347), +('2021-05-19 22:57:59', 96348), +('2021-05-19 22:57:58', 96349), +('2021-05-19 22:57:58', 96350), +('2021-05-19 22:57:58', 96351), +('2021-05-19 22:57:58', 96352), +('2021-05-19 22:56:13', 96353), +('2021-05-18 00:29:46', 96354), +('2021-05-13 17:57:31', 96355), +('2021-05-13 17:50:59', 96356), +('2021-05-10 19:02:52', 96357), +('2021-05-10 18:49:24', 96358), +('2021-05-10 18:33:14', 96359), +('2021-05-10 18:27:55', 96360), +('2021-05-10 18:27:55', 96363), +('2021-05-10 18:27:55', 96364), +('2021-05-10 18:27:55', 96365), +('2021-05-10 17:55:33', 96366), +('2021-05-06 19:08:45', 96367), +('2021-05-06 19:06:31', 96368), +('2021-05-06 19:05:35', 96369), +('2021-05-06 19:01:13', 96370), +('2021-04-29 21:33:19', 96373), +('2021-04-29 18:22:17', 96374), +('2021-04-28 19:24:14', 96392), +('2021-04-28 18:45:06', 96393), +('2021-04-28 00:52:24', 96394), +('2021-04-28 00:50:02', 96395), +('2021-04-22 20:42:12', 96396), +('2021-04-22 20:10:12', 96397), +('2021-04-22 20:02:05', 96398), +('2021-04-22 20:02:05', 96399), +('2021-04-22 19:37:53', 96400), +('2021-04-22 00:45:44', 96401), +('2021-04-21 20:24:34', 96402), +('2021-04-21 20:14:41', 96403), +('2021-04-21 20:14:41', 96404), +('2021-04-21 20:14:41', 96407), +('2021-04-21 20:08:15', 96408), +('2021-04-21 19:43:59', 96409), +('2021-04-21 19:43:58', 96410), +('2021-04-21 19:43:58', 96411), +('2021-04-21 19:43:58', 96425), +('2021-04-21 19:43:58', 96428), +('2021-04-21 19:43:58', 96431), +('2021-04-21 19:43:58', 96436), +('2021-04-21 19:43:58', 96439), +('2021-04-21 19:37:58', 96446), +('2021-04-01 20:26:08', 96447), +('2021-04-01 20:23:50', 96448), +('2021-04-01 20:23:50', 96449), +('2021-04-01 20:23:50', 96450), +('2021-04-01 20:23:39', 96451), +('2021-04-01 20:23:38', 96452), +('2021-04-01 20:23:38', 96453), +('2021-04-01 20:23:38', 96454), +('2021-04-01 20:23:38', 96455), +('2021-04-01 20:23:38', 96456), +('2021-04-01 20:23:24', 96457), +('2021-03-26 17:33:47', 96458), +('2021-03-26 17:33:47', 96459), +('2021-03-26 17:33:47', 96460), +('2021-03-26 17:33:47', 96461), +('2021-03-26 17:33:47', 96462), +('2021-03-26 17:33:47', 96463), +('2021-03-26 17:33:47', 96464), +('2021-03-26 17:32:56', 96465), +('2021-03-23 17:09:40', 96466), +('2021-03-23 17:08:05', 96467), +('2021-03-23 17:06:30', 96468), +('2021-03-23 17:06:15', 96469), +('2021-03-11 21:10:08', 96470), +('2021-03-11 21:06:22', 96471), +('2021-03-09 19:11:43', 96472), +('2021-03-09 19:10:03', 96473), +('2021-03-02 00:59:05', 96474), +('2021-03-02 00:57:21', 96475), +('2021-02-25 18:15:25', 96476), +('2021-02-25 18:00:42', 96477), +('2021-02-22 21:25:54', 96483), +('2021-02-22 21:21:13', 96484), +('2021-02-22 21:21:13', 96485), +('2021-02-22 19:55:35', 96487), +('2021-02-22 19:27:16', 96488), +('2021-02-19 00:08:23', 96489), +('2021-02-19 00:06:29', 96490), +('2021-02-19 00:05:56', 96492), +('2021-02-19 00:05:56', 96493), +('2021-02-19 00:05:56', 96494), +('2021-02-18 23:26:21', 96495), +('2021-02-18 23:26:20', 96496), +('2021-02-18 23:26:20', 96498), +('2021-02-18 23:14:35', 96501), +('2021-02-18 23:13:18', 96502), +('2021-02-12 17:57:23', 96503), +('2021-02-12 17:52:47', 96504), +('2021-02-12 17:49:38', 96505), +('2021-02-12 17:47:28', 96507), +('2021-02-12 17:38:03', 96508), +('2021-02-12 17:37:23', 96510), +('2021-02-12 17:35:59', 96511), +('2021-02-05 18:06:04', 96512), +('2021-02-05 18:03:44', 96513), +('2021-02-05 17:14:22', 96514), +('2021-02-05 17:13:56', 96515), +('2021-02-05 17:13:32', 96516), +('2021-02-05 17:13:03', 96517), +('2021-02-05 17:12:38', 96518), +('2021-02-05 00:12:32', 96519), +('2021-02-05 00:02:13', 96520), +('2021-02-04 23:59:15', 96521), +('2021-02-04 23:58:21', 96522), +('2021-02-04 23:23:01', 96523), +('2021-02-04 23:22:14', 96524), +('2021-02-04 01:30:13', 96526), +('2021-02-01 20:42:40', 96527), +('2021-02-01 20:40:02', 96528), +('2021-02-01 20:11:04', 96529), +('2021-02-01 19:36:46', 96530), +('2021-02-01 19:24:23', 96531), +('2021-02-01 19:24:23', 96532), +('2021-02-01 19:22:59', 96536), +('2021-01-30 00:32:25', 96537), +('2021-01-30 00:31:56', 96538), +('2021-01-28 22:18:50', 96539), +('2021-01-28 22:15:57', 96540), +('2021-01-28 19:58:39', 96541), +('2021-01-28 19:18:21', 96543), +('2021-01-28 00:09:36', 96544), +('2021-01-27 23:33:40', 96545), +('2021-01-27 23:31:29', 96546), +('2021-01-26 23:46:32', 96547), +('2021-01-26 00:59:22', 96548), +('2021-01-21 02:01:51', 96549), +('2021-01-21 01:59:25', 96550), +('2021-01-21 00:14:35', 96551), +('2021-01-14 22:34:55', 96552), +('2021-01-14 22:32:14', 96553), +('2021-01-14 20:53:04', 96554), +('2021-01-14 20:50:50', 96555), +('2021-01-14 20:50:22', 96556), +('2021-01-14 20:42:45', 96557), +('2021-01-14 01:33:42', 96558), +('2021-01-14 01:32:25', 96559), +('2021-01-14 01:30:33', 96560), +('2021-01-14 01:29:58', 96561), +('2021-01-14 01:29:14', 96562), +('2021-01-14 01:22:31', 96563), +('2021-01-07 21:02:22', 96564), +('2021-01-07 20:54:19', 96565), +('2021-01-07 20:52:57', 96566), +('2021-01-07 20:52:50', 96569), +('2021-01-07 20:51:46', 96570), +('2021-01-04 19:31:41', 96571), +('2020-12-15 20:11:27', 96572), +('2020-12-15 20:09:36', 96573), +('2020-12-11 20:46:01', 96575), +('2020-12-11 20:44:06', 96576), +('2020-12-09 00:16:13', 96577), +('2020-12-09 00:14:20', 96578), +('2020-12-09 00:10:11', 96579), +('2020-12-08 19:37:55', 96580), +('2020-12-08 19:32:59', 96581), +('2020-12-08 19:21:21', 96582), +('2020-12-08 00:41:19', 96583), +('2020-12-08 00:30:05', 96584), +('2020-12-08 00:28:02', 96585), +('2020-12-08 00:25:33', 96586), +('2020-12-08 00:25:31', 96587), +('2020-12-08 00:23:32', 96588), +('2020-12-08 00:22:20', 96589), +('2020-12-08 00:19:45', 96590), +('2020-12-08 00:19:45', 96591), +('2020-12-08 00:19:45', 96592), +('2020-12-08 00:19:45', 96593), +('2020-12-07 23:31:28', 96602), +('2020-12-07 23:27:13', 96603), +('2020-12-07 23:25:46', 96604), +('2020-12-07 23:25:23', 96605), +('2020-12-07 23:25:12', 96606), +('2020-12-07 23:24:18', 96607), +('2020-12-07 23:21:25', 96608), +('2020-12-01 23:25:21', 96609), +('2020-12-01 23:06:14', 96610), +('2020-12-01 21:19:26', 96611), +('2020-11-27 16:52:31', 96612), +('2020-11-27 16:50:58', 96613), +('2020-11-20 19:27:16', 96614), +('2020-11-20 19:25:27', 96615), +('2020-11-20 19:25:23', 96616), +('2020-11-20 19:25:23', 96617), +('2020-11-20 19:25:22', 96618), +('2020-11-20 19:25:22', 96619), +('2020-11-20 19:25:22', 96620), +('2020-11-20 19:25:22', 96621), +('2020-11-18 19:13:46', 96622), +('2020-11-16 16:44:33', 96624), +('2020-11-13 20:03:56', 96625), +('2020-11-13 20:00:37', 96626), +('2020-11-13 19:20:58', 96627), +('2020-11-13 19:19:55', 96628), +('2020-11-13 19:19:51', 96631), +('2020-11-10 20:12:56', 96634), +('2020-11-10 20:11:08', 96635), +('2020-11-10 20:10:53', 96636), +('2020-11-10 07:11:52', 96637), +('2020-11-10 01:21:56', 96638), +('2020-11-06 19:46:13', 96639), +('2020-11-06 19:41:08', 96640), +('2020-11-06 19:40:24', 96641), +('2020-11-06 19:32:27', 96642), +('2020-11-03 22:34:36', 96643), +('2020-11-03 22:32:40', 96644), +('2020-11-03 20:56:02', 96645), +('2020-11-03 20:54:34', 96646), +('2020-11-03 20:54:31', 96647), +('2020-11-03 20:54:31', 96654), +('2020-10-30 18:11:36', 96655), +('2020-10-30 18:10:45', 96656), +('2020-10-27 19:36:00', 96657), +('2020-10-26 19:22:08', 96658), +('2020-10-24 00:51:33', 96659), +('2020-10-23 20:29:24', 96660), +('2020-10-23 19:47:41', 96661), +('2020-10-23 19:46:13', 96662), +('2020-10-23 19:45:15', 96663), +('2020-10-23 19:44:13', 96664), +('2020-10-23 19:44:10', 96665), +('2020-10-23 19:43:09', 96666), +('2020-10-16 21:21:50', 96667), +('2020-10-16 21:20:27', 96668), +('2020-10-16 21:14:42', 96669), +('2020-10-16 07:07:09', 97487), +('2020-10-16 00:43:39', 97488), +('2020-10-16 00:38:24', 97489), +('2020-10-16 00:14:09', 97490), +('2020-10-15 00:26:16', 97491), +('2020-10-14 18:03:03', 97492), +('2020-10-13 07:50:10', 97493), +('2020-10-13 07:20:46', 97494), +('2020-10-13 02:46:46', 97496), +('2020-10-13 02:45:05', 97497), +('2020-10-13 00:04:43', 97498), +('2020-10-12 23:09:49', 97499), +('2020-10-12 22:53:06', 97500), +('2020-10-12 22:52:53', 97501), +('2020-10-12 22:51:39', 97502), +('2020-10-12 21:56:19', 97503), +('2020-10-09 19:39:01', 97504), +('2020-10-09 19:36:53', 97505), +('2020-10-06 20:41:07', 97506), +('2020-10-06 20:37:42', 97507), +('2020-10-02 20:18:14', 97508), +('2020-10-02 20:16:58', 97509), +('2020-10-02 19:59:25', 97510), +('2020-10-01 01:57:38', 97511), +('2020-10-01 01:56:20', 97512), +('2020-10-01 01:54:55', 97513), +('2020-10-01 01:51:49', 97514), +('2020-10-01 01:48:21', 97515), +('2020-09-30 23:29:29', 97516), +('2020-09-30 23:28:51', 97517), +('2020-09-30 23:25:29', 97518), +('2020-09-30 23:25:26', 97519), +('2020-09-30 17:48:28', 97520), +('2020-09-29 19:24:50', 97521), +('2020-09-29 19:23:41', 97522), +('2020-09-29 19:23:31', 97523), +('2020-09-29 19:22:49', 97524), +('2020-09-29 19:21:45', 97525), +('2020-09-29 19:15:22', 97526), +('2020-09-28 23:18:47', 97527), +('2020-09-25 21:46:51', 97528), +('2020-09-25 00:37:05', 97529), +('2020-09-24 23:44:48', 97532), +('2020-09-22 18:15:46', 97533), +('2020-09-22 18:13:52', 97534), +('2020-09-19 00:25:57', 97535), +('2020-09-19 00:16:34', 97536), +('2020-09-18 00:17:46', 97537), +('2020-09-18 00:16:22', 97538), +('2020-09-17 20:18:27', 97539), +('2020-09-17 01:53:18', 97540), +('2020-09-17 01:49:14', 97542), +('2020-09-17 00:08:30', 97543), +('2020-09-16 23:52:45', 97544), +('2020-09-16 16:40:12', 97545), +('2020-09-16 16:37:37', 97546), +('2020-09-16 02:51:44', 97549), +('2020-09-16 02:51:10', 97550), +('2020-09-16 02:48:52', 97551), +('2020-09-16 02:45:57', 97552), +('2020-09-15 22:41:36', 97553), +('2020-09-15 22:41:00', 97554), +('2020-09-10 23:38:47', 97555), +('2020-09-10 23:32:24', 97556), +('2020-09-10 22:49:56', 97558), +('2020-09-10 22:47:55', 97559), +('2020-09-08 20:24:46', 97560), +('2020-09-04 20:31:21', 97561), +('2020-09-04 20:30:14', 97562), +('2020-09-04 20:30:13', 97563), +('2020-09-04 20:30:07', 97564), +('2020-09-04 01:42:01', 97565), +('2020-09-04 01:40:36', 97566), +('2020-09-04 01:26:32', 97567), +('2020-09-03 22:06:47', 97576), +('2020-09-03 00:29:26', 97578), +('2020-09-02 23:47:25', 97579), +('2020-09-02 23:47:25', 97580), +('2020-09-02 02:44:57', 97581), +('2020-09-02 02:44:57', 97582), +('2020-09-02 02:44:57', 97583), +('2020-09-02 02:44:57', 97585), +('2020-09-02 02:44:57', 97587), +('2020-09-02 02:44:57', 97588), +('2020-09-02 02:44:57', 97589), +('2020-09-02 02:44:55', 97590), +('2020-09-02 02:43:25', 97591), +('2020-09-02 02:43:25', 97592), +('2020-09-01 20:24:40', 97593), +('2020-09-01 20:22:46', 97594), +('2020-09-01 17:14:01', 97595), +('2020-08-31 23:43:43', 97596), +('2020-08-22 00:25:52', 97597), +('2020-08-21 00:34:49', 97598), +('2020-08-21 00:24:04', 97599), +('2020-08-21 00:24:04', 97600), +('2020-08-21 00:24:04', 97601), +('2020-08-21 00:24:04', 97602), +('2020-08-21 00:24:04', 97603), +('2020-08-21 00:00:59', 97604), +('2020-08-21 00:00:33', 97605), +('2020-08-20 07:44:10', 97606), +('2020-08-20 03:23:06', 97607), +('2020-08-20 03:08:10', 97608), +('2020-08-20 02:55:20', 97609), +('2020-08-20 02:41:50', 97610), +('2020-08-10 23:34:02', 97611), +('2020-08-10 23:32:43', 97612), +('2020-08-10 23:32:43', 97613), +('2020-08-10 23:31:14', 97614), +('2020-08-10 03:02:37', 97615), +('2020-08-10 03:01:34', 97616), +('2020-08-10 02:06:36', 97617), +('2020-08-05 20:27:20', 97618), +('2020-08-05 20:24:23', 97619), +('2020-08-04 20:14:48', 97620), +('2020-08-04 20:13:29', 97621), +('2020-08-04 02:58:33', 97622), +('2020-08-04 02:54:06', 97623), +('2020-08-02 22:31:45', 97624), +('2020-08-02 22:28:32', 97625), +('2020-07-29 19:44:04', 97626), +('2020-07-29 19:42:04', 97627), +('2020-07-29 19:33:52', 97628), +('2020-07-27 23:03:24', 97629), +('2020-07-27 22:59:50', 97630), +('2020-07-27 18:56:30', 97631), +('2020-07-27 18:55:24', 97632), +('2020-07-25 22:04:43', 97633), +('2020-07-25 22:03:36', 97634), +('2020-07-25 02:53:29', 97635), +('2020-07-25 02:52:30', 97636), +('2020-07-24 21:22:26', 97637), +('2020-07-24 21:18:56', 97638), +('2020-07-24 20:18:40', 97639), +('2020-07-24 20:17:16', 97640), +('2020-07-24 20:17:16', 97641), +('2020-07-23 17:41:08', 97642), +('2020-07-17 20:18:42', 97644), +('2020-07-17 20:17:24', 97645), +('2020-07-16 20:40:58', 97646), +('2020-07-16 20:39:55', 97647), +('2020-07-15 00:50:52', 97648), +('2020-07-15 00:49:42', 97649), +('2020-07-15 00:40:52', 97650), +('2020-07-15 00:32:10', 97651), +('2020-07-15 00:23:08', 97652), +('2020-07-11 02:41:49', 97653), +('2020-07-11 02:18:25', 97654), +('2020-07-08 03:05:58', 97655), +('2020-07-08 02:59:24', 97656), +('2020-06-06 01:08:44', 97657), +('2020-06-05 19:53:06', 97658), +('2020-06-04 03:48:44', 97659), +('2020-06-04 03:40:13', 97661), +('2020-06-03 17:57:13', 97663), +('2020-06-03 07:11:39', 97664), +('2020-06-03 00:10:28', 97665), +('2020-06-02 23:54:54', 97666), +('2020-06-02 19:16:44', 97668), +('2020-06-02 19:16:43', 97670), +('2020-06-02 19:16:43', 97671), +('2020-06-02 03:44:14', 97672), +('2020-05-30 00:15:25', 97673), +('2020-05-30 00:15:25', 97674), +('2020-05-30 00:15:25', 97675), +('2020-05-30 00:15:17', 97676), +('2020-05-30 00:14:13', 97734), +('2020-05-29 21:05:36', 97735), +('2020-05-29 03:35:10', 97736), +('2020-05-22 20:31:41', 97738), +('2020-05-29 03:32:56', 97739), +('2020-05-29 03:32:55', 97740), +('2020-05-29 03:25:29', 97742), +('2020-05-29 03:25:28', 97744), +('2020-05-29 03:25:27', 97745), +('2020-05-29 03:09:14', 97746), +('2020-05-29 02:22:54', 97749), +('2020-05-27 23:27:36', 97751), +('2020-05-27 02:00:13', 97752), +('2020-05-25 20:51:45', 97759), +('2020-05-25 16:57:01', 97760), +('2020-05-22 22:47:39', 97761), +('2020-05-22 22:42:51', 97762), +('2020-05-22 20:57:26', 97763), +('2020-05-22 20:41:23', 97764), +('2020-05-22 20:41:23', 97765), +('2020-05-22 20:21:52', 97766), +('2020-05-22 02:58:31', 97767), +('2020-05-22 02:58:31', 97768), +('2020-05-22 02:58:31', 97769), +('2020-05-22 02:58:31', 97770), +('2020-05-22 02:58:31', 97771), +('2020-05-22 02:58:31', 97772), +('2020-05-22 02:58:31', 97774), +('2020-05-15 07:59:51', 97775), +('2020-05-14 21:39:06', 97776), +('2020-05-14 04:01:03', 97777), +('2020-05-14 04:01:01', 97778), +('2020-05-14 04:01:01', 97780), +('2020-05-14 04:01:01', 97781), +('2020-05-14 04:01:01', 97782), +('2020-05-14 04:01:00', 97783), +('2020-05-14 00:17:26', 97784), +('2020-05-13 03:35:04', 97785), +('2020-05-09 08:43:02', 97786), +('2020-05-09 03:28:21', 97787), +('2020-05-05 08:36:47', 97788), +('2020-05-05 08:35:25', 97789), +('2020-05-05 07:18:32', 97791), +('2020-05-05 06:28:47', 97792), +('2020-05-05 00:35:32', 97793), +('2020-05-05 00:33:48', 97794), +('2020-05-05 00:29:19', 97795), +('2020-05-05 00:29:06', 97796), +('2020-05-05 00:27:31', 97797), +('2020-05-04 20:32:46', 97798), +('2020-05-04 09:22:19', 97799), +('2020-05-02 01:14:44', 97800), +('2020-05-02 01:13:41', 97801), +('2020-05-02 01:12:18', 97802), +('2020-05-01 17:00:03', 97803), +('2020-05-01 09:28:24', 97804), +('2020-05-01 06:45:10', 97805), +('2020-04-29 20:15:34', 97807), +('2020-04-29 20:14:44', 97808), +('2020-04-29 02:31:29', 97809), +('2020-04-29 02:29:37', 97810), +('2020-04-28 02:36:53', 97811), +('2020-04-28 02:35:59', 97812), +('2020-04-28 02:32:23', 97813), +('2020-04-23 20:34:28', 97815), +('2020-04-23 20:29:45', 97816), +('2020-04-23 20:28:31', 97817), +('2020-04-23 20:23:07', 97818), +('2020-04-23 19:55:14', 97819), +('2020-04-23 04:05:16', 97820), +('2020-04-23 01:34:38', 97821), +('2020-04-23 01:34:38', 97823), +('2020-04-23 01:34:38', 97824), +('2020-04-23 01:34:38', 97825), +('2020-04-23 01:34:38', 97826), +('2020-04-23 01:34:38', 97827), +('2020-04-23 01:34:38', 97828), +('2020-04-23 01:34:38', 97829), +('2020-04-23 00:32:48', 97830), +('2020-04-23 00:32:48', 97831), +('2020-04-18 03:14:36', 97832), +('2020-04-17 02:47:29', 97834), +('2020-04-17 02:35:39', 97835), +('2020-04-17 02:28:05', 97836), +('2020-04-17 02:24:02', 97837), +('2020-04-17 02:21:58', 97838), +('2020-04-17 02:21:23', 97839), +('2020-04-17 02:21:03', 97840), +('2020-04-17 01:42:26', 97841), +('2020-04-13 22:27:34', 97842), +('2020-03-31 08:51:32', 97844), +('2020-03-31 08:39:34', 97845), +('2020-03-30 20:57:52', 97846), +('2020-03-30 20:06:53', 97847), +('2020-03-30 19:55:15', 97848), +('2020-03-30 02:15:50', 97849), +('2020-03-30 01:44:49', 97850), +('2020-03-30 01:22:03', 97851), +('2020-03-30 01:05:14', 97852), +('2020-03-20 04:58:06', 97853), +('2020-03-20 02:08:50', 97854), +('2020-03-18 02:18:29', 97855), +('2020-03-18 02:14:12', 97856), +('2020-03-18 02:14:12', 97857), +('2020-03-18 02:14:12', 97858), +('2020-03-18 02:14:12', 97859), +('2020-03-08 22:44:41', 97860), +('2020-03-03 22:23:22', 97861), +('2020-02-26 06:17:34', 97863), +('2020-02-26 06:14:36', 97864), +('2020-02-24 02:51:48', 97865), +('2020-02-24 02:51:31', 97866), +('2020-02-24 02:18:46', 97867), +('2020-02-23 05:53:52', 97868), +('2020-02-23 00:21:47', 97869), +('2020-02-23 00:20:49', 97870), +('2020-02-23 00:19:53', 97871), +('2020-02-23 00:12:09', 97872), +('2020-02-21 06:20:59', 97873), +('2020-02-20 01:43:15', 97874), +('2020-02-20 01:10:14', 97875), +('2020-02-19 01:11:25', 97876), +('2020-02-19 01:08:53', 97877), +('2020-02-18 05:30:36', 97878), +('2020-02-18 03:22:22', 97879), +('2020-02-18 03:21:24', 97880), +('2020-02-11 00:49:02', 97881), +('2020-02-11 00:17:43', 97882), +('2020-02-08 02:43:21', 97883), +('2020-02-08 02:42:44', 97884), +('2020-02-08 02:41:23', 97885), +('2020-02-08 00:57:10', 97886), +('2020-02-07 23:44:42', 97887), +('2020-02-07 23:44:16', 97889), +('2020-02-07 21:10:53', 97890), +('2020-02-07 21:00:18', 97891), +('2020-02-07 04:55:36', 97892), +('2020-02-07 04:54:42', 97893), +('2020-02-07 04:52:29', 97894), +('2020-02-07 04:51:24', 97895), +('2020-02-07 04:50:02', 97896), +('2020-02-07 04:49:46', 97897), +('2020-02-07 04:47:40', 97898), +('2020-02-07 04:46:36', 97899), +('2020-02-07 04:45:45', 97900), +('2020-02-07 03:41:32', 97901), +('2020-02-07 03:41:07', 97902), +('2020-02-07 02:26:28', 97903), +('2020-02-05 04:01:55', 97904), +('2020-02-05 03:32:06', 97905), +('2020-02-05 03:12:14', 97906), +('2020-02-05 03:10:22', 97908), +('2020-02-04 01:28:46', 97909), +('2020-02-04 00:53:55', 97910), +('2020-02-04 00:35:33', 97911), +('2020-02-03 23:57:00', 97912), +('2020-02-03 23:49:11', 97913), +('2020-01-31 01:00:10', 97914), +('2020-01-31 00:56:32', 97915), +('2020-01-31 00:54:30', 97916), +('2020-01-31 00:47:22', 97917), +('2020-01-31 00:47:22', 97918), +('2020-01-31 00:46:25', 97919), +('2020-01-31 00:46:25', 97925), +('2020-01-31 00:46:25', 97926), +('2020-01-31 00:45:22', 97927), +('2020-01-31 00:45:22', 97929), +('2020-01-31 00:45:22', 97930), +('2020-01-31 00:44:23', 97932), +('2020-01-31 00:44:23', 97933), +('2020-01-31 00:21:13', 97934), +('2020-01-31 00:21:13', 97935), +('2020-01-31 00:21:13', 97936), +('2020-01-31 00:21:13', 97937), +('2020-01-31 00:21:13', 97938), +('2020-01-31 00:21:13', 97939), +('2020-01-31 00:08:28', 97940), +('2020-01-27 21:23:12', 97941), +('2020-01-24 00:48:35', 97942), +('2020-01-24 00:32:15', 97943), +('2020-01-24 00:32:15', 97944), +('2020-01-16 04:21:49', 97945), +('2020-01-06 07:48:13', 97946), +('2020-01-06 07:47:28', 97947), +('2020-01-06 07:46:36', 97948), +('2020-01-06 07:45:03', 97949), +('2020-01-06 07:43:56', 97950), +('2020-01-05 06:42:01', 97951), +('2020-01-05 00:25:34', 97952), +('2020-01-04 18:07:42', 97953), +('2020-01-04 18:03:37', 97954), +('2020-01-03 02:17:40', 97955), +('2020-01-03 02:11:25', 97956), +('2020-01-02 19:30:24', 97957), +('2020-01-02 19:29:11', 97959), +('2020-01-02 09:32:42', 97960), +('2020-01-02 09:01:04', 97961), +('2020-01-02 08:59:54', 97962), +('2020-01-02 08:54:12', 97963), +('2020-01-02 01:44:45', 97965), +('2020-01-01 03:28:13', 97966), +('2020-01-01 03:27:46', 97967), +('2020-01-01 03:24:46', 97968), +('2020-01-01 03:21:32', 97969), +('2020-01-01 00:44:58', 97970), +('2019-12-31 23:27:36', 97972), +('2019-12-31 22:17:59', 97973), +('2019-12-31 21:57:22', 97974), +('2019-12-31 21:48:59', 97975), +('2019-12-31 21:47:11', 97976), +('2019-12-31 21:46:08', 97977), +('2019-12-31 21:39:23', 97978), +('2019-12-31 21:28:56', 97979), +('2019-12-31 21:27:47', 97980), +('2019-12-31 21:23:55', 97981), +('2019-12-30 07:47:14', 97983), +('2019-12-30 05:08:11', 97984), +('2019-12-29 19:54:14', 97985), +('2019-12-29 17:33:23', 97986), +('2019-12-29 07:29:54', 97987), +('2019-12-29 07:24:41', 97988), +('2019-12-29 07:23:33', 97989), +('2019-12-29 06:50:42', 97992), +('2019-12-29 06:49:15', 97993), +('2019-12-28 02:56:21', 97994), +('2019-12-28 02:56:04', 97995), +('2019-12-28 02:43:42', 97996), +('2019-12-28 02:25:29', 97997), +('2019-12-28 02:25:29', 97998), +('2019-12-27 21:55:37', 97999), +('2019-12-27 21:55:37', 98000), +('2019-12-27 21:53:36', 98001), +('2019-12-26 20:24:03', 98002), +('2019-12-26 04:30:25', 98003), +('2019-12-22 09:30:08', 98004), +('2019-12-21 08:29:25', 98005), +('2019-12-21 07:49:27', 98006), +('2019-12-21 07:48:58', 98007), +('2019-12-21 01:35:13', 98008), +('2019-12-18 21:03:07', 98009), +('2019-12-18 20:58:33', 98010), +('2019-12-18 20:53:08', 98011), +('2019-12-18 20:43:16', 98012), +('2019-12-18 20:42:57', 98013), +('2019-12-18 01:47:58', 98015), +('2019-12-16 18:19:20', 98016), +('2019-12-14 20:13:00', 98017), +('2019-12-14 19:42:38', 98018), +('2019-12-14 19:39:10', 98019), +('2019-12-14 02:07:45', 98020), +('2019-12-12 22:33:41', 98021), +('2019-12-06 08:19:27', 98022), +('2019-12-06 08:13:21', 98023), +('2019-12-06 08:09:12', 98024), +('2019-12-06 08:08:31', 98025), +('2019-12-06 08:07:35', 98026), +('2019-12-06 07:46:54', 98027), +('2019-12-06 07:45:39', 98028), +('2019-12-06 02:19:07', 98373), +('2019-12-06 02:10:22', 98374), +('2019-12-06 02:00:50', 98375), +('2019-12-05 08:42:50', 98376), +('2019-12-05 07:19:02', 98377), +('2019-12-05 07:13:42', 98378), +('2019-12-04 07:39:26', 98379), +('2019-12-03 06:01:05', 98380), +('2019-12-02 23:51:39', 98381), +('2019-12-02 23:31:22', 98382), +('2019-12-02 22:09:10', 98384), +('2019-12-02 18:35:03', 98385), +('2019-12-02 08:15:21', 98386), +('2019-12-02 08:13:27', 98387), +('2019-12-02 07:41:02', 98388), +('2019-12-02 07:39:22', 98389), +('2019-12-02 07:36:52', 98390), +('2019-12-02 00:34:04', 98391), +('2019-12-02 00:32:35', 98392), +('2019-12-02 00:25:43', 98393), +('2019-12-02 00:25:30', 98394), +('2019-11-24 08:16:00', 98395), +('2019-11-24 08:16:00', 98396), +('2019-11-23 02:06:15', 98397), +('2019-11-23 00:01:57', 98398), +('2019-11-22 22:28:31', 98399), +('2019-11-21 23:52:34', 98400), +('2019-11-21 23:41:05', 98401), +('2019-11-21 23:36:33', 98402), +('2019-11-21 23:36:22', 98403), +('2019-11-20 20:14:41', 98404), +('2019-11-20 20:09:32', 98405), +('2019-11-20 19:44:54', 98406), +('2019-11-20 19:30:07', 98407), +('2019-11-20 18:59:32', 98408), +('2019-11-20 08:09:37', 98409), +('2019-11-19 07:22:15', 98410), +('2019-11-19 07:21:11', 98411), +('2019-11-19 07:20:34', 98412), +('2019-11-18 22:16:37', 98414), +('2019-11-18 06:32:10', 98417), +('2019-11-18 06:29:52', 98418), +('2019-11-18 00:47:32', 98419), +('2019-11-18 00:38:11', 98420), +('2019-11-18 00:33:31', 98421), +('2019-11-18 00:29:57', 98422), +('2019-11-17 21:27:32', 98423), +('2019-11-17 21:01:05', 98424), +('2019-11-17 21:01:05', 98425), +('2019-11-17 21:01:05', 98426), +('2019-11-17 03:43:46', 98427), +('2019-11-15 01:35:48', 98429), +('2019-11-15 00:59:20', 98430), +('2019-11-14 23:54:06', 98431), +('2019-11-14 23:21:53', 98432), +('2019-11-14 21:16:44', 98433), +('2019-11-14 02:45:30', 98434), +('2019-11-09 21:22:51', 98435), +('2019-11-08 00:17:24', 98436), +('2019-11-07 23:23:53', 98437), +('2019-11-07 02:49:28', 98438), +('2019-11-07 02:49:28', 98439), +('2019-11-07 02:49:28', 98440), +('2019-11-07 02:49:28', 98441), +('2019-11-05 01:10:54', 98442), +('2019-11-05 01:06:14', 98443), +('2019-11-04 18:25:51', 98444), +('2019-10-26 07:33:39', 98445), +('2019-10-26 01:37:55', 98447), +('2019-10-25 23:13:21', 98451), +('2019-10-25 08:31:44', 98452), +('2019-08-08 00:44:57', 98453), +('2019-08-08 00:28:02', 98454), +('2019-08-07 18:12:18', 98455), +('2019-08-07 02:52:49', 98456), +('2019-08-07 00:35:10', 98457), +('2019-08-06 06:58:12', 98458), +('2019-08-06 06:47:04', 98459), +('2019-08-06 04:27:49', 98460), +('2019-08-06 02:31:29', 98462), +('2019-08-06 02:31:29', 98463), +('2019-08-06 02:31:29', 98464), +('2019-08-06 02:31:29', 98465), +('2019-08-06 02:31:29', 98466), +('2019-08-06 02:31:29', 98467), +('2019-08-06 02:31:29', 98468), +('2019-08-05 08:02:20', 98469), +('2019-08-04 01:33:11', 98470), +('2019-08-04 01:32:48', 98471), +('2019-08-02 22:50:04', 98472), +('2019-08-01 00:26:04', 98473), +('2019-07-30 00:00:01', 98474), +('2019-07-29 22:50:56', 98475), +('2019-07-29 21:22:10', 98476), +('2019-07-29 19:27:47', 98477), +('2019-07-29 19:26:04', 98478), +('2019-07-29 10:04:19', 98479), +('2019-07-29 09:53:47', 98480), +('2019-07-29 09:38:01', 98481), +('2019-07-29 09:38:01', 98482), +('2019-07-29 09:38:01', 98483), +('2019-07-29 09:38:01', 98484), +('2019-07-29 09:38:01', 98485), +('2019-07-29 01:44:47', 98486), +('2019-07-28 22:17:19', 98487), +('2019-07-27 00:42:53', 98488), +('2019-07-10 06:45:56', 98490), +('2019-07-10 01:35:26', 98491), +('2019-07-10 01:32:14', 98492), +('2019-07-10 01:32:05', 98493), +('2019-07-10 01:24:39', 98494), +('2019-07-09 23:49:55', 98495), +('2019-07-09 23:48:40', 98496), +('2019-07-08 23:12:57', 98497), +('2019-07-08 21:31:03', 98498), +('2019-07-08 20:52:43', 98499), +('2019-07-08 20:16:14', 98500), +('2019-07-08 19:56:01', 98501), +('2019-07-08 19:55:51', 98502), +('2019-07-08 19:55:09', 98503), +('2019-07-06 07:08:39', 98504), +('2019-07-06 00:29:24', 98505), +('2019-07-06 00:14:05', 98506), +('2019-07-05 23:50:14', 98507), +('2019-07-05 23:50:14', 98508), +('2019-07-05 23:50:14', 98509), +('2019-07-05 23:50:14', 98510), +('2019-07-05 23:50:14', 98511), +('2019-07-02 07:43:49', 98512), +('2019-07-02 07:43:49', 98513), +('2019-07-02 07:42:57', 98514), +('2019-07-02 07:42:57', 98515), +('2019-07-02 07:42:42', 98517), +('2019-07-02 07:42:42', 98518), +('2019-07-02 07:42:02', 98520), +('2019-07-02 07:41:48', 98521), +('2019-07-02 07:40:37', 98524), +('2019-07-02 07:39:00', 98526), +('2019-07-02 07:39:00', 98527), +('2019-06-29 23:04:22', 98531), +('2019-06-29 23:04:13', 98532), +('2019-06-26 21:35:37', 98533), +('2019-06-26 19:44:45', 98534), +('2019-06-26 19:40:39', 98535), +('2019-06-26 19:35:22', 98536), +('2019-06-11 08:55:37', 98537), +('2019-06-07 06:01:15', 98538), +('2019-06-07 05:58:03', 98539), +('2019-06-07 02:58:30', 98540), +('2019-06-05 08:04:38', 98541), +('2019-06-05 08:03:24', 98542), +('2019-02-13 00:13:55', 98543), +('2019-02-13 00:13:32', 98544), +('2019-02-13 00:13:32', 98545), +('2019-02-11 22:34:45', 98546), +('2018-04-11 03:46:46', 98547), +('2018-04-11 03:46:11', 98548), +('2018-04-10 22:50:50', 98549), +('2018-04-10 22:48:50', 98550), +('2018-04-10 22:47:15', 98551), +('2018-04-10 22:47:04', 98552), +('2017-06-02 03:15:16', 98553), +('2017-04-22 03:08:21', 98554), +('2017-04-22 03:08:21', 98555), +('2017-04-22 01:43:34', 98556), +('2017-04-22 01:40:55', 98557), +('2016-08-11 02:16:33', 98558), +('2016-08-11 01:57:25', 98559), +('2016-06-24 01:46:44', 98560), +('2016-06-24 01:43:42', 98561), +('2016-06-24 01:29:31', 98562), +('2016-06-24 01:28:49', 98563), +('2016-05-19 20:31:31', 98564), +('2016-05-19 20:30:39', 98565), +('2016-05-17 03:04:14', 98566), +('2016-05-12 11:32:11', 98567), +('2016-05-12 11:29:27', 98568), +('2016-05-12 10:56:47', 98569), +('2015-09-25 00:43:16', 98570), +('2015-09-25 00:43:12', 98571), +('2015-09-24 02:14:09', 98572), +('2015-09-24 02:09:09', 98573), +('2015-09-23 23:50:49', 98574), +('2015-09-23 23:50:09', 98575), +('2015-07-17 05:15:08', 98576), +('2015-07-16 18:05:53', 98577), +('2015-07-16 18:05:22', 98578), +('2015-07-01 02:43:20', 98579), +('2015-07-01 02:42:37', 98581), +('2015-07-01 01:35:07', 98582), +('2015-06-01 05:12:53', 98583), +('2015-04-25 19:25:38', 98584), +('2015-04-25 19:22:35', 98585), +('2015-04-23 02:24:51', 98586), +('2015-04-23 02:22:10', 98587), +('2015-04-07 21:10:56', 98588), +('2015-04-07 21:10:56', 98589), +('2015-04-07 05:59:47', 98590), +('2015-04-07 05:58:09', 98591), +('2015-03-10 07:15:01', 98592), +('2015-02-18 10:49:04', 98593), +('2015-02-18 10:48:52', 98594), +('2015-02-04 11:02:58', 98595), +('2015-02-04 11:02:42', 98596), +('2015-02-01 23:55:49', 98597), +('2015-02-01 23:55:44', 98598), +('2014-09-03 02:06:47', 98599), +('2014-09-03 02:06:22', 98600), +('2014-08-13 02:56:48', 98601), +('2014-08-13 01:00:49', 98602), +('2014-08-13 01:00:44', 98603), +('2014-08-13 00:59:37', 98604), +('2014-08-13 00:59:20', 98605), +('2014-08-13 00:48:26', 98606), +('2014-08-13 00:48:21', 98607), +('2014-08-13 00:48:15', 98608), +('2021-09-28 00:52:00', 98609), +('2021-06-19 01:37:45', 98610), +('2021-07-27 19:14:13', 98611), +('2021-07-27 19:14:11', 98613), +('2021-08-12 06:56:10', 98614), +('2021-08-26 20:57:52', 98615), +('2021-04-28 19:22:50', 98616), +('2021-04-28 21:25:59', 98617), +('2021-05-13 17:45:12', 98618), +('2021-10-12 17:52:24', 98619), +('2021-05-28 19:41:21', 98620), +('2021-05-28 17:28:54', 98621), +('2021-05-25 00:52:07', 98622), +('2021-05-24 22:44:18', 98623), +('2021-06-28 19:03:03', 98624), +('2021-07-31 21:07:18', 98625), +('2021-12-14 23:12:40', 98626), +('2021-12-08 22:23:43', 98629), +('2021-12-08 22:21:22', 98632), +('2021-12-02 23:42:14', 98633), +('2021-12-02 23:37:41', 98634), +('2021-11-29 20:12:08', 98644), +('2021-11-29 17:51:05', 98646), +('2021-11-18 19:37:09', 98648), +('2021-11-18 19:36:02', 98649), +('2021-11-18 19:27:32', 98650), +('2021-11-18 19:27:07', 98653), +('2021-11-16 20:20:10', 98654), +('2021-11-11 00:39:49', 98656), +('2021-11-11 00:38:58', 98657), +('2021-11-11 00:27:27', 98659), +('2021-11-11 00:23:46', 98661), +('2021-11-11 00:23:38', 98662), +('2021-11-11 00:23:13', 98663), +('2021-11-11 00:22:59', 98664), +('2021-11-10 03:31:37', 98665), +('2022-01-20 12:11:05', 98666), +('2021-08-12 20:43:19', 98667), +('2021-06-18 19:07:20', 98668), +('2021-06-28 21:45:43', 98669), +('2021-06-25 21:28:19', 98670), +('2021-07-16 22:41:33', 98671), +('2021-07-15 18:04:16', 98673), +('2021-07-14 23:37:27', 98674), +('2021-07-03 05:52:43', 98675), +('2021-06-29 20:22:38', 98676), +('2020-10-08 23:17:25', 99195), +('2020-10-08 23:16:39', 99198), +('2020-10-08 23:16:25', 99200), +('2020-10-08 23:14:46', 99201), +('2020-10-08 23:11:23', 99202), +('2020-10-04 09:01:37', 99204), +('2020-10-04 09:01:19', 99205), +('2020-10-04 08:58:55', 99207), +('2020-10-04 08:58:31', 99208), +('2020-10-04 08:54:30', 99212), +('2020-04-30 18:54:48', 99218), +('2019-08-03 21:05:53', 99219), +('2019-07-18 23:19:43', 99220), +('2018-12-07 19:53:07', 99221), +('2018-09-19 13:21:38', 99222), +('2018-09-19 13:18:34', 99223), +('2018-09-10 12:51:27', 99224), +('2018-08-02 09:24:38', 99225), +('2018-08-01 15:43:11', 99226), +('2018-07-31 10:35:06', 99228), +('2018-07-30 17:48:16', 99229), +('2018-06-18 16:09:53', 99230), +('2018-06-18 15:11:41', 99232), +('2018-04-24 09:24:20', 99233), +('2018-04-24 08:32:45', 99234), +('2018-03-04 16:45:29', 99235), +('2018-03-03 16:42:54', 99236), +('2018-03-03 13:24:30', 99237), +('2018-02-05 22:43:06', 99238), +('2018-02-05 22:23:24', 99239), +('2018-02-05 22:22:28', 99240), +('2018-02-01 12:22:07', 99241), +('2018-02-01 11:38:32', 99242), +('2018-02-01 11:38:04', 99243), +('2018-02-01 11:36:52', 99244), +('2018-02-01 11:06:18', 99245), +('2018-02-01 10:56:13', 99246), +('2018-01-31 23:56:44', 99247), +('2018-01-31 21:19:34', 99249), +('2018-01-31 21:15:50', 99250), +('2018-01-30 22:25:23', 99251), +('2018-01-30 21:17:40', 99252), +('2018-01-30 21:15:54', 99253), +('2018-01-29 12:28:53', 99254), +('2018-01-29 10:05:08', 99255), +('2018-01-29 10:01:48', 99256), +('2018-01-29 09:59:27', 99257), +('2018-01-29 09:43:42', 99258), +('2018-01-26 12:14:39', 99259), +('2018-01-26 00:12:00', 99261), +('2018-01-25 23:55:18', 99262), +('2018-01-25 23:54:29', 99263), +('2018-01-25 22:37:04', 99270), +('2018-01-25 21:55:03', 99271), +('2018-01-25 21:28:15', 99272), +('2018-01-25 20:59:36', 99273), +('2018-01-25 10:07:19', 99274), +('2018-01-25 00:04:10', 99276), +('2018-01-25 00:01:59', 99277), +('2018-01-24 23:24:20', 99278), +('2018-01-24 23:23:31', 99279), +('2018-01-24 09:41:15', 99280), +('2018-01-24 00:24:11', 99281), +('2018-01-24 00:23:26', 99282), +('2018-01-23 23:56:34', 99283), +('2018-01-23 20:23:05', 99284), +('2018-01-23 20:16:46', 99285), +('2018-01-23 20:16:02', 99286), +('2018-01-23 09:46:37', 99287), +('2018-01-23 00:46:49', 99288), +('2018-01-23 00:46:39', 99289), +('2018-01-22 21:33:06', 99290), +('2018-01-22 21:27:06', 99291), +('2018-01-11 11:49:00', 99292), +('2018-01-11 11:41:53', 99293), +('2018-01-11 11:24:17', 99294), +('2018-01-11 10:31:42', 99295), +('2018-01-10 14:05:17', 99296), +('2018-01-10 12:53:53', 99297), +('2018-01-10 12:37:00', 99298), +('2018-01-10 12:36:47', 99299), +('2017-12-07 10:36:04', 99300), +('2017-12-06 20:43:26', 99301), +('2017-12-06 20:43:12', 99302), +('2017-12-06 20:41:10', 99303), +('2017-12-06 19:10:50', 99304), +('2017-12-06 11:32:30', 99305), +('2017-12-06 09:25:52', 99306), +('2017-12-06 08:49:36', 99307), +('2017-12-01 09:43:40', 99308), +('2017-11-30 16:24:06', 99309), +('2017-10-04 09:10:56', 99310), +('2017-10-03 20:18:01', 99311), +('2017-09-26 16:27:10', 99312), +('2017-09-26 16:25:57', 99313), +('2017-09-25 19:07:06', 99318), +('2017-09-21 00:55:11', 99319), +('2017-08-30 09:27:05', 99320), +('2017-08-30 09:15:54', 99321), +('2017-08-04 09:33:42', 99322), +('2017-07-28 23:41:44', 99323), +('2017-07-28 14:45:20', 99324), +('2017-07-15 12:33:41', 99325), +('2017-07-15 12:32:58', 99326), +('2017-07-14 17:58:39', 99327), +('2017-07-13 23:16:43', 99329), +('2017-07-13 21:13:00', 99330), +('2017-07-13 20:44:48', 99331), +('2017-07-13 19:48:30', 99332), +('2017-07-13 18:35:32', 99333), +('2017-07-13 02:39:48', 99334), +('2017-07-12 22:58:24', 99335), +('2017-07-12 22:50:38', 99336), +('2017-07-12 22:04:24', 99337), +('2017-07-12 21:08:25', 99338), +('2017-07-12 20:31:21', 99339), +('2017-07-12 20:15:09', 99340), +('2017-07-12 19:41:42', 99341), +('2017-07-12 19:38:01', 99342), +('2017-07-11 15:02:00', 99343), +('2017-07-10 20:44:09', 99344), +('2017-07-05 10:34:37', 99345), +('2017-06-23 15:19:05', 99346), +('2017-05-31 12:23:44', 99347), +('2017-05-31 11:48:54', 99348), +('2017-05-31 11:28:08', 99349), +('2017-05-02 21:35:39', 99350), +('2017-05-02 21:23:22', 99351), +('2017-04-12 15:29:22', 99352), +('2017-04-12 15:28:15', 99353), +('2017-04-12 14:47:49', 99354), +('2017-04-12 14:47:17', 99355), +('2017-04-12 14:43:17', 99356), +('2017-04-12 14:10:39', 99357), +('2016-11-12 11:19:05', 99358), +('2016-11-11 23:31:27', 99359), +('2016-10-13 21:12:02', 99360), +('2016-10-13 21:10:36', 99361), +('2016-10-13 21:09:35', 99362), +('2016-10-13 21:04:34', 99363), +('2016-10-13 20:57:45', 99364), +('2016-10-13 20:54:14', 99365), +('2016-10-13 20:35:11', 99366), +('2016-10-07 16:19:59', 99367), +('2016-10-07 16:16:23', 99368), +('2016-10-07 15:41:42', 99369), +('2016-10-06 15:34:37', 99370), +('2016-09-29 11:58:25', 99371), +('2016-09-29 11:56:40', 99372), +('2016-09-29 11:43:16', 99373), +('2016-09-20 10:20:15', 99374), +('2016-09-13 16:44:20', 99375), +('2016-09-13 16:13:02', 99376), +('2016-08-06 14:12:20', 99377), +('2016-08-04 14:12:16', 99378), +('2016-08-04 14:10:09', 99379), +('2016-08-04 14:09:57', 99380), +('2016-08-04 14:09:31', 99381), +('2016-08-04 14:06:33', 99382), +('2016-07-13 12:05:22', 99383), +('2016-07-12 15:15:48', 99384), +('2016-07-05 15:38:31', 99385), +('2016-07-05 15:36:35', 99386), +('2016-07-05 15:36:08', 99387), +('2016-07-03 17:54:51', 99388), +('2016-07-01 16:18:37', 99389), +('2016-07-01 11:22:27', 99390), +('2016-07-01 11:22:20', 99391), +('2016-07-01 11:18:31', 99392), +('2016-07-01 11:17:07', 99393), +('2016-07-01 11:16:13', 99394), +('2016-07-01 11:06:33', 99395), +('2016-07-01 11:06:04', 99396), +('2016-07-01 10:36:26', 99397), +('2016-07-01 10:25:21', 99398), +('2016-07-01 10:21:46', 99399), +('2016-06-30 23:49:20', 99400), +('2016-06-30 23:16:48', 99401), +('2016-06-30 23:11:29', 99402), +('2016-06-30 15:23:59', 99403), +('2016-06-30 14:32:33', 99404), +('2016-06-30 12:50:29', 99405), +('2016-06-30 12:42:19', 99406), +('2016-06-30 12:41:45', 99407), +('2016-06-30 12:26:32', 99408), +('2016-06-24 16:17:40', 99409), +('2016-06-24 16:12:13', 99410), +('2016-06-24 16:11:50', 99411), +('2016-06-24 16:11:30', 99412), +('2016-06-24 13:37:54', 99413), +('2016-06-24 13:37:08', 99414), +('2016-03-22 10:40:52', 99415), +('2016-03-22 10:37:36', 99418), +('2016-03-22 10:26:28', 99419), +('2016-03-22 00:53:40', 99420), +('2016-03-22 00:50:51', 99421), +('2016-03-22 00:43:02', 99422), +('2016-03-21 22:05:57', 99423), +('2016-03-21 21:21:28', 99424), +('2016-03-21 21:14:40', 99425), +('2016-03-21 21:08:54', 99426), +('2016-03-21 20:35:41', 99427), +('2016-03-21 11:39:27', 99428), +('2016-03-18 19:41:41', 99429), +('2016-03-18 19:40:49', 99430), +('2016-03-18 19:17:59', 99431), +('2016-03-18 16:53:35', 99432), +('2016-03-18 16:52:10', 99433), +('2016-03-18 16:15:49', 99434), +('2016-03-18 15:43:47', 99435), +('2016-03-18 15:33:11', 99436), +('2016-03-18 14:59:08', 99437), +('2016-03-18 14:45:43', 99438), +('2016-03-18 14:29:54', 99439), +('2016-03-18 14:24:56', 99440), +('2016-03-18 13:32:29', 99441), +('2022-03-20 18:26:11', 99442), +('2022-03-11 20:48:27', 99444), +('2022-02-04 10:26:07', 99445), +('2021-12-20 13:26:37', 99447), +('2021-03-19 10:17:18', 99448), +('2020-10-09 13:32:21', 99449), +('2020-10-08 23:36:25', 99450), +('2020-10-08 23:33:01', 99451), +('2020-10-08 23:28:14', 99452), +('2020-10-08 23:24:46', 99453), +('2020-10-08 23:23:57', 99454), +('2020-10-08 23:12:06', 99455), +('2020-10-08 21:45:47', 99456), +('2021-07-07 17:09:42', 100115), +('2021-07-07 17:03:28', 100117), +('2021-06-20 19:35:45', 100119), +('2021-06-20 18:16:39', 100121), +('2021-04-19 04:48:35', 100123), +('2021-04-17 10:49:11', 100125), +('2021-04-17 09:47:46', 100127), +('2021-04-17 09:28:57', 100129), +('2021-04-17 09:22:19', 100131), +('2021-04-17 09:16:04', 100133), +('2021-04-17 09:10:30', 100134), +('2021-04-17 09:09:45', 100135), +('2021-04-17 09:05:10', 100148), +('2021-04-17 07:57:23', 100149), +('2021-04-17 07:50:33', 100150), +('2021-04-17 07:21:41', 100151), +('2021-04-15 00:41:10', 100152), +('2021-04-15 00:33:30', 100153), +('2021-04-14 08:43:42', 100154), +('2021-04-11 23:33:04', 100155), +('2020-12-03 17:48:28', 100156), +('2020-12-03 16:04:36', 100157), +('2020-12-03 16:04:21', 100159), +('2020-11-13 18:04:30', 100160), +('2020-11-08 19:42:20', 100161), +('2020-10-16 12:56:21', 100162), +('2020-10-16 12:52:52', 100163), +('2020-10-16 12:50:12', 100164), +('2020-10-16 12:47:58', 100167), +('2020-10-16 12:47:12', 100169), +('2020-10-16 12:39:00', 100171), +('2020-06-15 10:20:57', 100172), +('2020-05-25 15:30:01', 100173), +('2019-09-12 13:36:26', 100175), +('2019-09-12 13:33:02', 100176), +('2019-05-17 02:27:59', 100177), +('2019-05-17 02:20:11', 100178), +('2019-05-12 23:46:02', 100179), +('2019-05-08 19:34:28', 100181), +('2019-04-24 08:32:14', 100184), +('2019-04-23 16:55:11', 100185), +('2019-04-22 16:18:38', 100186), +('2019-04-22 16:17:24', 100187), +('2019-04-22 16:08:02', 100188), +('2019-04-22 16:04:26', 100190), +('2019-04-22 00:33:49', 100191), +('2019-04-21 23:50:56', 100192), +('2019-04-21 23:43:18', 100193), +('2019-04-21 23:31:49', 100194), +('2019-04-21 23:22:57', 100195), +('2019-04-21 19:46:42', 100205), +('2019-04-21 00:29:18', 100206), +('2019-04-21 00:29:09', 100207), +('2019-04-20 23:56:35', 100208), +('2019-04-20 23:53:45', 100209), +('2019-04-20 23:40:26', 100210), +('2019-04-20 23:40:04', 100211), +('2019-04-20 23:38:32', 100212), +('2019-04-20 23:37:13', 100213), +('2019-04-20 23:37:13', 100214), +('2019-04-20 23:37:13', 100215), +('2019-04-20 23:37:13', 100216), +('2019-04-18 22:16:42', 100217), +('2019-04-18 21:36:38', 100218), +('2019-04-18 21:28:40', 100219), +('2019-04-18 20:28:41', 100220), +('2019-04-18 20:22:49', 100221), +('2019-02-14 21:15:16', 100222), +('2019-02-14 21:06:23', 100223), +('2019-02-14 20:59:54', 100224), +('2019-02-14 20:56:28', 100225), +('2019-02-14 20:55:43', 100226), +('2019-02-14 20:45:27', 100227), +('2019-02-14 05:51:15', 100228), +('2019-02-14 05:43:35', 100230), +('2019-02-14 05:32:12', 100231), +('2019-02-14 04:41:43', 100232), +('2019-02-11 16:20:15', 100233), +('2019-02-10 18:46:47', 100234), +('2019-02-10 18:35:44', 100235), +('2019-02-10 18:31:03', 100236), +('2019-02-10 18:27:22', 100237), +('2019-02-01 03:14:31', 100238), +('2019-01-31 18:07:54', 100239), +('2019-01-31 17:57:12', 100240), +('2019-01-31 17:52:36', 100241), +('2019-01-29 02:29:36', 100243), +('2019-01-29 01:48:58', 100244), +('2019-01-22 23:06:42', 100245), +('2019-01-22 22:28:44', 100246), +('2019-01-22 22:22:11', 100247), +('2019-01-22 22:13:38', 100248), +('2019-01-21 06:09:14', 100249), +('2019-01-04 16:41:40', 100250), +('2019-01-04 16:27:14', 100251), +('2019-01-03 21:22:47', 100252), +('2018-12-16 21:22:01', 100253), +('2018-12-13 20:09:02', 100254), +('2018-12-13 08:05:25', 100255), +('2018-11-30 06:17:38', 100256), +('2018-11-30 06:10:39', 100257), +('2018-11-30 03:52:32', 100258), +('2018-11-30 03:47:35', 100259), +('2018-11-30 03:47:20', 100260), +('2018-11-30 03:28:05', 100261), +('2018-11-30 03:20:27', 100262), +('2018-11-29 23:12:54', 100263), +('2018-11-29 23:07:15', 100264), +('2018-11-29 23:05:28', 100265), +('2018-11-18 01:38:06', 100267), +('2018-11-18 01:23:04', 100268), +('2018-11-18 01:22:14', 100269), +('2018-11-18 00:52:48', 100270), +('2018-11-18 00:52:23', 100271), +('2018-11-18 00:22:30', 100272), +('2018-11-17 05:40:15', 100273), +('2018-11-17 05:33:30', 100274), +('2018-11-17 05:32:34', 100275), +('2018-11-16 02:42:24', 100276), +('2018-11-15 22:43:57', 100277), +('2018-11-15 22:40:49', 100278), +('2018-11-15 21:12:04', 100279), +('2018-11-15 21:09:16', 100280), +('2018-11-15 21:08:15', 100281), +('2018-11-15 21:06:01', 100282), +('2018-11-15 21:04:32', 100283), +('2018-11-15 20:55:14', 100284), +('2018-11-15 20:53:38', 100285), +('2018-11-15 19:08:43', 100286), +('2018-11-14 20:08:13', 100287), +('2018-11-14 02:34:28', 100288), +('2018-11-13 07:55:11', 100289), +('2018-11-12 03:53:01', 100290), +('2018-10-17 20:09:31', 100291), +('2018-10-17 19:40:57', 100292), +('2018-10-15 22:26:16', 100293), +('2018-10-15 16:20:19', 100295), +('2018-10-13 20:37:52', 100296), +('2018-10-13 20:33:26', 100297), +('2018-10-13 09:11:24', 100298), +('2018-10-13 09:06:35', 100299), +('2018-10-13 09:03:16', 100300), +('2018-10-13 09:01:28', 100301), +('2018-10-13 08:52:51', 100302), +('2018-10-13 08:52:13', 100303), +('2018-10-13 08:41:42', 100304), +('2018-10-13 08:41:27', 100307), +('2018-10-13 08:40:27', 100308), +('2018-10-13 08:27:52', 100309), +('2018-10-13 08:27:07', 100310), +('2018-10-13 08:13:20', 100311), +('2018-10-13 07:30:36', 100312), +('2018-10-13 07:26:31', 100313), +('2018-10-13 07:24:01', 100314), +('2018-10-10 20:26:46', 100315), +('2018-10-10 20:24:37', 100316), +('2018-10-10 18:32:08', 100317), +('2018-10-10 17:48:25', 100318), +('2018-10-10 17:45:59', 100319), +('2018-10-10 17:33:57', 100320), +('2018-10-05 20:30:17', 100322), +('2018-09-16 06:08:36', 100324), +('2018-06-22 21:51:30', 100325), +('2018-06-22 21:46:56', 100327), +('2018-06-22 21:46:40', 100328), +('2018-06-22 20:59:14', 100329), +('2018-06-22 20:59:01', 100330), +('2018-06-22 06:12:23', 100331), +('2018-06-21 20:35:16', 100332), +('2018-06-21 20:30:36', 100333), +('2018-06-21 20:23:58', 100334), +('2018-06-21 16:38:33', 100335), +('2018-06-21 16:36:32', 100336), +('2018-06-20 02:02:59', 100337), +('2018-06-20 01:15:57', 100338), +('2018-06-19 22:24:20', 100340), +('2018-06-19 22:23:16', 100341), +('2018-06-19 21:40:25', 100342), +('2018-06-19 18:14:28', 100343), +('2018-06-14 17:51:40', 100344), +('2018-06-14 17:23:57', 100345), +('2018-05-14 17:43:50', 100346), +('2018-05-14 17:41:27', 100347), +('2018-05-14 17:26:04', 100349), +('2018-05-14 17:20:20', 100350), +('2018-05-13 18:35:31', 100351), +('2018-05-13 18:17:39', 100352), +('2018-05-13 18:14:17', 100353), +('2018-05-13 18:13:48', 100354), +('2018-05-13 17:32:06', 100355), +('2018-05-12 17:09:50', 100356), +('2018-05-12 17:02:52', 100357), +('2018-05-12 15:57:22', 100358), +('2018-04-24 00:29:28', 100360), +('2018-05-11 01:24:48', 100366), +('2018-05-11 01:24:31', 100367), +('2018-05-11 01:05:06', 100368), +('2018-05-11 01:03:28', 100369), +('2018-05-10 20:59:07', 100370), +('2018-05-10 14:25:37', 100371), +('2018-05-10 04:29:14', 100372), +('2018-05-10 02:14:16', 100373), +('2018-05-09 22:08:42', 100374), +('2018-05-09 21:58:35', 100375), +('2018-05-09 19:58:36', 100376), +('2018-05-02 04:04:48', 100377), +('2018-05-02 04:04:07', 100378), +('2018-05-02 04:03:33', 100379), +('2018-05-02 03:40:25', 100380), +('2018-05-02 02:03:36', 100381), +('2018-05-02 02:00:51', 100382), +('2018-05-01 23:19:50', 100383), +('2018-05-01 23:17:03', 100384), +('2018-05-01 20:39:11', 100385), +('2018-05-01 20:36:11', 100386), +('2018-05-01 20:30:24', 100387), +('2018-05-01 20:20:55', 100388), +('2018-05-01 20:17:17', 100389), +('2018-05-01 19:57:08', 100390), +('2018-05-01 19:56:51', 100392), +('2018-05-01 19:54:40', 100393), +('2018-05-01 19:33:52', 100394), +('2018-05-01 19:25:03', 100395), +('2018-05-01 19:23:30', 100396), +('2018-05-01 18:46:04', 100397), +('2018-05-01 18:39:08', 100398), +('2018-05-01 18:37:16', 100399), +('2018-05-01 18:28:10', 100400), +('2018-05-01 06:56:12', 100401), +('2018-05-01 00:03:57', 100402), +('2018-04-30 21:41:31', 100403), +('2018-04-30 21:40:54', 100404), +('2018-04-30 20:59:11', 100405), +('2018-04-29 19:51:22', 100406), +('2018-04-29 19:48:40', 100407), +('2018-04-29 19:42:06', 100408), +('2018-04-29 19:37:01', 100409), +('2018-04-29 19:31:35', 100410), +('2018-04-29 19:29:48', 100411), +('2018-04-29 19:23:37', 100412), +('2018-04-29 19:21:58', 100413), +('2018-04-24 00:33:32', 100414), +('2018-04-24 00:32:25', 100415), +('2018-04-23 05:09:20', 100416), +('2018-12-13 05:31:41', 100417), +('2020-03-24 17:32:43', 100601), +('2020-03-24 09:42:05', 100607), +('2020-03-24 09:40:36', 100609), +('2020-03-24 09:28:45', 100613), +('2020-03-24 09:01:57', 100614), +('2020-03-24 07:37:54', 100616), +('2020-03-23 22:34:36', 100621), +('2020-03-23 21:40:32', 100625), +('2020-03-23 17:48:28', 100629), +('2020-03-23 16:57:54', 100630), +('2020-03-23 13:35:32', 100632), +('2020-03-23 09:16:11', 100666), +('2020-03-23 07:37:42', 100672), +('2020-03-23 03:56:07', 100673), +('2020-03-23 03:54:32', 100675), +('2020-03-23 02:13:21', 100676), +('2020-03-23 01:09:35', 100677), +('2020-03-23 01:06:28', 100678), +('2020-03-23 01:03:40', 100679), +('2020-03-23 01:01:44', 100680), +('2020-03-22 22:40:10', 100681), +('2020-03-22 22:05:08', 100682), +('2020-03-22 22:04:05', 100683), +('2020-03-22 21:56:21', 100684), +('2020-03-22 21:06:20', 100685), +('2020-03-22 20:35:32', 100686), +('2020-03-22 20:33:35', 100687), +('2020-03-22 18:48:34', 100692), +('2020-03-22 17:25:57', 100693), +('2020-03-22 16:34:12', 100695), +('2020-03-22 15:34:27', 100696), +('2020-03-22 14:51:00', 100697), +('2020-03-22 11:17:47', 100698), +('2020-03-21 23:59:19', 100700), +('2020-03-21 22:54:05', 100701), +('2020-03-21 22:51:01', 100702), +('2020-03-21 13:14:51', 100703), +('2020-03-20 14:19:34', 100707), +('2020-03-20 12:49:05', 100708), +('2020-03-20 11:56:53', 100711), +('2020-03-19 17:33:51', 100713), +('2020-03-18 17:37:24', 100714), +('2020-03-18 17:32:39', 100716), +('2020-03-18 16:00:44', 100717), +('2020-03-18 00:33:40', 100718), +('2020-03-18 00:10:52', 100720), +('2020-03-17 21:45:03', 100721), +('2020-03-17 21:36:51', 100722), +('2020-03-17 21:31:00', 100723), +('2020-03-17 20:50:56', 100724), +('2020-03-17 20:48:20', 100725), +('2020-03-17 19:13:07', 100733), +('2020-03-17 13:50:42', 100734), +('2020-03-17 10:34:41', 100735), +('2020-03-17 10:30:09', 100736), +('2020-03-17 10:15:06', 100737), +('2020-03-16 21:29:06', 100738), +('2020-03-16 20:10:11', 100739), +('2020-03-16 15:22:37', 100740), +('2020-03-16 15:21:54', 100741), +('2020-03-16 14:29:39', 100742), +('2020-03-16 14:18:20', 100743), +('2020-03-16 13:55:16', 100744), +('2020-03-16 13:26:40', 100745), +('2020-03-16 11:15:19', 100746), +('2020-03-16 10:39:07', 100747), +('2020-03-16 10:00:48', 100748), +('2020-03-16 09:53:59', 100749), +('2020-03-16 09:47:40', 100750), +('2020-03-16 09:32:33', 100751), +('2020-03-16 09:03:54', 100752), +('2020-03-16 05:26:27', 100753), +('2020-03-15 21:58:16', 100755), +('2020-03-15 20:47:14', 100756), +('2020-03-15 17:34:05', 100757), +('2020-03-15 17:21:30', 100758), +('2020-03-15 17:08:01', 100759), +('2020-03-15 17:01:37', 100760), +('2020-03-15 15:47:58', 100761), +('2020-03-15 15:25:02', 100762), +('2020-03-15 07:34:08', 100763), +('2020-03-15 07:16:26', 100764), +('2020-03-15 07:06:22', 100765), +('2020-03-15 06:41:07', 100767), +('2020-03-14 23:25:41', 100769), +('2020-03-14 23:23:29', 100770), +('2020-03-14 23:11:46', 100771); +INSERT INTO `committed_configuration` (`committed`, `id`) VALUES +('2020-03-13 13:20:36', 100772), +('2020-03-13 13:16:20', 100773), +('2020-03-13 08:31:57', 100774), +('2020-03-12 22:32:28', 100775), +('2020-03-12 20:24:20', 100776), +('2020-03-12 20:19:24', 100777), +('2020-03-12 20:16:33', 100778), +('2020-03-12 20:10:31', 100779), +('2020-03-12 18:42:58', 100780), +('2020-03-12 14:51:44', 100781), +('2020-03-12 11:02:08', 100782), +('2020-03-12 10:13:05', 100783), +('2020-03-12 08:45:03', 100784), +('2020-03-11 18:09:21', 100785), +('2020-03-11 14:58:19', 100786), +('2020-03-11 13:47:56', 100787), +('2020-03-11 13:45:02', 100788), +('2020-03-11 12:13:22', 100789), +('2020-03-11 11:46:06', 100790), +('2020-03-11 11:25:39', 100791), +('2020-03-11 09:29:42', 100792), +('2020-03-11 08:31:16', 100793), +('2020-03-11 00:17:24', 100794), +('2020-03-10 21:37:21', 100795), +('2020-03-10 19:54:10', 100796), +('2020-03-10 19:44:21', 100797), +('2020-03-10 17:56:14', 100798), +('2020-03-10 17:20:24', 100799), +('2020-03-10 09:02:47', 100800), +('2020-03-09 17:26:40', 100801), +('2020-03-09 17:13:53', 100802), +('2020-03-09 14:11:04', 100803), +('2020-03-09 13:55:09', 100804), +('2020-03-09 13:52:33', 100805), +('2020-03-09 13:29:05', 100806), +('2020-03-09 12:08:53', 100807), +('2020-03-09 11:49:20', 100808), +('2020-03-09 11:34:13', 100809), +('2020-03-09 10:57:27', 100810), +('2020-03-09 10:17:08', 100811), +('2020-03-09 07:08:14', 100812), +('2020-03-09 07:01:55', 100813), +('2020-03-09 06:48:52', 100814), +('2020-03-09 06:47:08', 100815), +('2020-03-08 20:13:34', 100816), +('2020-03-08 19:06:27', 100817), +('2020-03-08 19:06:08', 100818), +('2020-03-08 17:25:54', 100819), +('2020-03-08 13:20:08', 100820), +('2020-03-08 11:18:19', 100821), +('2020-03-08 11:02:22', 100822), +('2020-03-08 00:49:41', 100823), +('2020-03-08 00:42:18', 100824), +('2020-03-08 00:31:29', 100825), +('2020-03-07 23:30:26', 100826), +('2020-03-06 20:47:18', 100827), +('2020-03-06 19:55:05', 100828), +('2020-03-06 14:59:58', 100829), +('2020-03-06 14:57:06', 100830), +('2020-03-06 14:53:38', 100831), +('2020-03-06 14:41:51', 100832), +('2020-03-06 14:35:08', 100833), +('2020-03-06 14:34:45', 100834), +('2020-03-06 14:11:21', 100835), +('2020-03-06 00:24:24', 100836), +('2020-03-06 00:01:54', 100837), +('2020-03-05 23:53:57', 100838), +('2020-03-05 23:45:27', 100839), +('2020-03-05 19:02:08', 100840), +('2020-03-05 18:00:43', 100841), +('2020-03-05 17:30:22', 100842), +('2020-03-05 16:50:09', 100843), +('2020-03-05 16:49:54', 100844), +('2020-03-05 14:35:38', 100845), +('2020-03-05 13:23:47', 100846), +('2020-03-05 11:19:38', 100847), +('2020-03-04 23:33:57', 100848), +('2020-03-04 19:32:19', 100849), +('2020-03-02 10:14:36', 100851), +('2020-03-21 16:04:43', 100852), +('2020-03-21 13:38:16', 100859), +('2020-03-21 13:37:45', 100860), +('2020-03-20 22:49:45', 100861), +('2020-03-20 22:47:57', 100862), +('2020-03-20 22:41:31', 100863), +('2020-03-20 22:32:38', 100864), +('2020-03-20 22:22:57', 100865), +('2020-03-20 21:48:57', 100866), +('2020-03-18 17:52:01', 100867), +('2020-03-18 00:49:02', 100868), +('2020-03-18 00:38:17', 100869), +('2020-03-18 00:33:56', 100870), +('2020-03-18 00:14:34', 100871), +('2020-03-17 23:35:23', 100872), +('2020-10-25 15:37:27', 100873), +('2020-10-25 14:17:18', 100877), +('2020-10-21 20:29:53', 100882), +('2020-10-21 20:07:41', 100884), +('2020-10-21 20:07:34', 100888), +('2020-10-21 20:06:59', 100891), +('2020-10-21 19:56:28', 100893), +('2020-10-21 19:52:29', 100894), +('2020-10-21 19:51:12', 100895), +('2020-10-20 23:15:55', 100896), +('2020-10-20 22:54:57', 100897), +('2020-10-20 22:34:24', 100898), +('2020-10-19 17:00:15', 100899), +('2020-08-26 21:28:08', 100900), +('2020-08-26 02:41:12', 100901), +('2020-08-07 19:32:35', 100902), +('2020-07-24 17:43:32', 100903), +('2020-07-24 17:42:11', 100905), +('2020-07-24 17:24:29', 100906), +('2020-07-12 11:37:20', 100908), +('2020-07-10 15:38:09', 100909), +('2020-07-10 15:26:17', 100910), +('2020-07-07 20:38:28', 100911), +('2020-06-25 22:06:43', 100912), +('2020-06-25 22:04:47', 100913), +('2020-05-26 10:38:18', 100915), +('2020-05-21 23:24:17', 100918), +('2020-05-21 22:02:22', 100919), +('2020-05-21 21:55:23', 100920), +('2020-05-18 12:10:10', 100924), +('2020-05-18 12:08:46', 100925), +('2020-05-17 22:27:17', 100926), +('2020-05-15 15:10:55', 100927), +('2020-05-11 14:07:45', 100930), +('2020-05-11 14:06:07', 100931), +('2020-05-11 14:04:54', 100932), +('2020-05-07 11:14:29', 100937), +('2020-05-05 11:48:05', 100942), +('2020-05-05 11:13:58', 100943), +('2020-05-04 21:03:01', 100946), +('2020-05-04 20:50:45', 100947), +('2020-05-04 12:46:39', 100948), +('2020-05-03 19:55:55', 100949), +('2020-05-01 22:09:09', 100950), +('2020-05-01 22:09:01', 100951), +('2020-04-30 03:32:21', 100953), +('2020-04-30 03:30:39', 100954), +('2020-04-29 18:28:32', 100955), +('2020-04-29 18:28:23', 100956), +('2020-04-29 18:27:46', 100959), +('2020-04-29 18:19:51', 100960), +('2020-04-29 13:55:51', 100961), +('2020-04-29 13:41:49', 100962), +('2020-04-28 18:40:47', 100967), +('2020-04-28 17:44:36', 100970), +('2020-04-27 22:06:29', 100971), +('2020-04-27 22:05:59', 100973), +('2020-04-27 20:46:56', 100974), +('2020-04-27 20:01:41', 100978), +('2020-04-26 09:49:12', 100979), +('2020-04-26 09:42:47', 100980), +('2020-04-25 10:38:33', 100981), +('2020-04-24 02:21:02', 100983), +('2020-04-23 17:11:52', 100984), +('2020-04-21 20:03:51', 100985), +('2020-04-21 11:23:23', 100986), +('2020-04-21 11:07:01', 100987), +('2020-04-21 10:27:12', 100988), +('2020-04-20 22:42:52', 100992), +('2020-04-20 22:19:26', 100993), +('2020-04-20 18:29:10', 100994), +('2020-04-20 17:35:13', 100996), +('2020-04-20 13:15:01', 100997), +('2020-04-20 12:46:22', 100998), +('2020-04-20 12:46:15', 100999), +('2020-04-20 12:45:30', 101000), +('2020-04-20 12:12:41', 101002), +('2020-04-19 22:03:39', 101008), +('2020-04-19 21:52:46', 101009), +('2020-04-19 21:50:08', 101010), +('2020-04-19 21:50:01', 101011), +('2020-04-19 21:43:50', 101012), +('2020-04-19 21:39:18', 101013), +('2020-04-19 21:35:38', 101015), +('2020-04-19 21:30:02', 101016), +('2020-04-19 21:15:08', 101021), +('2020-04-19 18:00:39', 101022), +('2020-04-19 18:00:19', 101023), +('2020-04-19 17:58:07', 101024), +('2020-04-19 00:15:58', 101025), +('2020-04-19 00:14:39', 101026), +('2020-04-19 00:13:48', 101027), +('2020-04-19 00:06:50', 101028), +('2020-04-19 00:06:00', 101029), +('2020-04-18 14:19:41', 101031), +('2020-04-18 01:50:48', 101032), +('2020-04-17 14:37:30', 101033), +('2020-04-16 22:52:41', 101034), +('2020-04-15 04:33:01', 101035), +('2020-04-15 00:04:45', 101036), +('2020-04-14 23:53:26', 101037), +('2020-04-14 23:52:32', 101038), +('2020-04-14 14:10:24', 101039), +('2020-04-14 10:02:06', 101040), +('2020-04-14 00:28:04', 101041), +('2020-04-13 09:41:19', 101042), +('2020-04-12 12:24:52', 101043), +('2020-04-12 11:21:23', 101044), +('2020-04-12 11:19:43', 101045), +('2020-04-12 10:05:19', 101046), +('2020-04-11 23:34:44', 101047), +('2020-04-11 12:27:21', 101048), +('2020-04-10 14:29:49', 101052), +('2020-04-10 13:20:07', 101053), +('2020-04-10 13:05:26', 101054), +('2020-04-10 12:59:55', 101057), +('2020-04-10 12:49:56', 101062), +('2020-04-10 11:26:32', 101063), +('2020-04-10 06:51:51', 101064), +('2020-04-10 05:25:15', 101065), +('2020-04-09 22:38:08', 101066), +('2020-04-09 22:06:09', 101067), +('2020-04-09 21:40:26', 101070), +('2020-04-09 19:20:11', 101071), +('2020-04-09 19:01:17', 101072), +('2020-04-09 18:30:50', 101074), +('2020-04-09 18:28:43', 101075), +('2020-04-09 09:09:11', 101076), +('2020-04-09 04:28:56', 101077), +('2020-04-09 00:14:44', 101078), +('2020-04-08 22:51:39', 101079), +('2020-04-08 22:32:25', 101080), +('2020-04-08 22:15:59', 101081), +('2020-04-08 21:30:11', 101082), +('2020-04-08 20:10:40', 101089), +('2020-04-08 20:10:28', 101090), +('2020-04-08 19:30:55', 101094), +('2020-04-08 19:22:31', 101095), +('2020-04-08 16:17:53', 101096), +('2020-04-08 14:57:51', 101102), +('2020-04-08 12:15:02', 101104), +('2020-04-08 11:15:20', 101105), +('2020-04-08 10:08:54', 101106), +('2020-04-08 00:34:40', 101107), +('2020-04-07 22:14:46', 101108), +('2020-04-07 17:53:53', 101109), +('2020-04-07 17:44:36', 101110), +('2020-04-07 17:29:00', 101111), +('2020-04-07 15:10:11', 101112), +('2020-04-07 15:05:15', 101113), +('2020-04-07 14:59:28', 101114), +('2020-04-07 14:58:06', 101115), +('2020-04-07 00:04:56', 101116), +('2020-04-06 21:46:02', 101117), +('2020-04-06 15:13:12', 101118), +('2020-04-06 14:22:11', 101119), +('2020-04-06 14:04:38', 101120), +('2020-04-06 13:42:32', 101121), +('2020-04-06 13:01:06', 101122), +('2020-04-06 12:51:25', 101123), +('2020-04-06 04:15:57', 101124), +('2020-04-05 22:03:07', 101125), +('2020-04-04 16:28:44', 101126), +('2020-04-04 16:05:38', 101127), +('2020-04-04 14:43:19', 101128), +('2020-04-04 14:40:50', 101129), +('2020-04-04 12:58:45', 101130), +('2020-04-04 11:48:40', 101131), +('2020-04-03 11:13:22', 101132), +('2020-04-02 22:48:41', 101134), +('2020-04-02 22:27:16', 101135), +('2020-04-02 22:04:40', 101136), +('2020-04-02 21:29:30', 101137), +('2020-04-02 17:40:32', 101138), +('2020-04-02 14:57:33', 101139), +('2020-04-02 14:47:21', 101140), +('2020-04-01 14:15:36', 101141), +('2020-04-01 13:49:31', 101142), +('2020-04-01 13:14:02', 101143), +('2020-04-01 12:59:10', 101144), +('2020-04-01 09:09:39', 101145), +('2020-03-31 19:32:41', 101146), +('2020-03-31 14:54:17', 101147), +('2020-03-31 13:12:46', 101148), +('2020-03-31 11:52:00', 101149), +('2020-03-31 11:14:15', 101150), +('2020-03-30 23:15:05', 101151), +('2020-03-30 23:04:27', 101152), +('2020-03-30 20:39:13', 101153), +('2020-03-30 20:38:13', 101154), +('2020-03-30 18:55:57', 101156), +('2020-03-30 09:55:11', 101157), +('2020-03-30 09:53:04', 101158), +('2020-03-30 01:27:40', 101159), +('2020-03-29 22:47:38', 101161), +('2020-03-29 16:54:34', 101162), +('2020-03-29 12:23:43', 101163), +('2020-03-29 12:14:28', 101164), +('2020-03-29 12:06:41', 101165), +('2020-03-29 11:25:50', 101166), +('2020-03-29 11:17:12', 101167), +('2020-03-28 20:23:07', 101168), +('2020-03-27 22:32:03', 101169), +('2020-03-27 22:31:51', 101170), +('2020-03-27 18:17:32', 101171), +('2020-03-27 11:51:39', 101172), +('2020-03-27 11:22:44', 101173), +('2020-03-27 11:08:46', 101174), +('2020-03-27 10:39:37', 101175), +('2020-03-27 10:38:39', 101176), +('2020-03-26 23:24:42', 101177), +('2020-03-26 21:42:03', 101178), +('2020-03-26 20:23:57', 101179), +('2020-03-26 17:19:59', 101180), +('2020-03-26 14:24:16', 101181), +('2020-03-26 14:15:03', 101182), +('2020-03-26 12:50:10', 101183), +('2020-03-26 09:36:16', 101184), +('2020-03-26 09:16:31', 101185), +('2020-03-26 08:15:36', 101186), +('2020-03-26 07:15:55', 101188), +('2020-03-25 23:34:26', 101189), +('2020-03-25 22:38:02', 101192), +('2020-03-25 22:37:27', 101193), +('2020-03-25 18:52:28', 101194), +('2020-03-25 18:38:19', 101195), +('2020-03-25 18:18:29', 101196), +('2020-03-25 13:14:13', 101197), +('2020-03-25 12:53:44', 101198), +('2020-03-25 12:36:43', 101199), +('2020-03-25 12:06:01', 101200), +('2020-03-25 11:11:10', 101201), +('2020-03-25 11:07:39', 101202), +('2020-03-25 10:46:32', 101203), +('2020-03-24 18:01:32', 101204), +('2020-03-24 17:58:19', 101205), +('2020-03-24 17:51:48', 101206), +('2020-04-09 18:18:05', 101677), +('2020-04-08 19:26:27', 101679), +('2020-04-08 19:23:31', 101681), +('2020-04-08 19:19:28', 101683), +('2020-04-08 19:04:01', 101685), +('2020-04-08 18:59:15', 101689), +('2020-04-08 18:51:30', 101692), +('2020-04-08 18:48:41', 101694), +('2020-04-08 18:46:51', 101695), +('2020-04-08 18:43:07', 101696), +('2020-03-31 20:13:09', 101697), +('2020-03-25 17:50:10', 101698), +('2020-03-16 23:58:00', 101704), +('2020-03-16 23:49:50', 101706), +('2020-03-14 00:00:09', 101708), +('2020-03-07 00:31:51', 101709), +('2020-03-05 22:58:30', 101710), +('2020-03-05 20:59:18', 101712), +('2020-03-02 21:39:36', 101713), +('2020-03-02 21:38:32', 101714), +('2020-02-27 18:15:32', 101715), +('2020-02-27 18:12:28', 101716), +('2020-02-26 22:32:37', 101717), +('2020-02-26 19:41:14', 101719), +('2020-02-26 18:40:37', 101720), +('2020-02-14 03:41:25', 101724), +('2020-02-13 05:16:38', 101726), +('2020-02-13 05:13:40', 101728), +('2020-02-07 20:52:00', 101729), +('2020-01-30 23:26:00', 101751), +('2020-01-29 17:37:18', 101752), +('2020-01-28 20:28:49', 101753), +('2020-01-28 18:42:08', 101754), +('2020-01-25 00:49:41', 101765), +('2020-01-24 23:05:24', 101766), +('2020-01-23 23:26:02', 101767), +('2020-01-22 03:22:40', 101769), +('2020-01-22 03:16:32', 101770), +('2020-01-15 23:17:50', 101773), +('2020-01-14 22:55:40', 101774), +('2020-01-14 02:16:27', 101775), +('2020-01-14 01:05:54', 101776), +('2020-01-13 23:58:07', 101777), +('2020-01-13 22:15:56', 101779), +('2020-01-13 21:40:44', 101780), +('2020-01-08 23:10:20', 101781), +('2019-12-24 02:00:53', 101783), +('2019-12-21 01:14:20', 101785), +('2019-12-20 22:08:44', 101787), +('2019-10-14 19:22:02', 101789), +('2019-10-03 09:05:17', 101790), +('2019-10-03 08:34:49', 101793), +('2019-10-03 08:17:48', 101794), +('2019-10-03 08:01:19', 101795), +('2019-09-06 19:52:44', 101796), +('2019-08-06 23:20:40', 101797), +('2019-03-13 21:19:59', 101798), +('2019-03-13 14:29:59', 101800), +('2019-02-18 01:40:45', 101801), +('2019-02-17 18:39:02', 101802), +('2019-02-17 18:23:57', 101803), +('2019-02-17 18:06:40', 101804), +('2018-09-21 23:16:12', 101805), +('2018-09-14 02:26:55', 101806), +('2018-09-09 22:54:29', 101807), +('2018-09-09 22:32:28', 101810), +('2018-07-31 06:55:33', 101811), +('2018-07-31 06:19:04', 101818), +('2018-05-14 08:34:19', 101819), +('2018-05-14 08:04:20', 101820), +('2018-05-13 22:13:27', 101821), +('2018-04-14 00:34:02', 101822), +('2018-04-13 13:08:57', 101823), +('2018-03-22 07:13:57', 101824), +('2018-03-22 06:59:15', 101825), +('2018-03-22 05:37:24', 101826), +('2018-02-15 08:01:59', 101827), +('2018-02-15 08:01:05', 101828), +('2018-02-14 20:14:06', 101829), +('2018-02-14 19:02:43', 101831), +('2018-02-14 05:00:02', 101832), +('2018-02-14 04:13:03', 101833), +('2018-02-14 04:10:07', 101834), +('2018-02-12 23:27:27', 101835), +('2018-02-12 20:36:07', 101836), +('2018-01-18 02:16:24', 101837), +('2017-11-13 02:07:40', 101839), +('2017-11-07 09:06:47', 101841), +('2017-09-26 01:58:49', 101842), +('2017-09-22 07:43:02', 101843), +('2017-09-22 07:41:51', 101844), +('2017-09-22 03:22:05', 101845), +('2017-09-22 03:18:32', 101846), +('2017-09-22 03:17:15', 101847), +('2017-09-21 07:59:01', 101848), +('2017-08-30 00:08:23', 101849), +('2017-08-22 06:29:51', 101850), +('2017-08-22 03:16:25', 101851), +('2017-08-22 02:54:42', 101853), +('2017-08-01 02:14:00', 101854), +('2017-07-31 23:53:29', 101855), +('2017-07-18 02:36:08', 101856), +('2017-05-31 06:28:38', 101857), +('2017-05-31 05:42:55', 101858), +('2017-05-26 20:48:59', 101860), +('2017-05-26 01:59:54', 101862), +('2017-05-26 01:59:32', 101863), +('2017-05-25 22:58:49', 101864), +('2017-05-16 10:21:54', 101865), +('2017-05-12 08:04:10', 101866), +('2017-05-08 09:01:14', 101867), +('2017-05-08 03:21:46', 101869), +('2017-05-05 02:50:44', 101870), +('2017-04-28 00:17:21', 101871), +('2017-02-24 01:38:27', 101872), +('2017-02-23 23:59:32', 101873), +('2017-02-22 05:01:11', 101874), +('2017-01-16 00:45:29', 101875), +('2017-01-13 00:53:39', 101876), +('2017-01-12 23:03:01', 101877), +('2016-10-05 03:17:32', 101878), +('2016-10-04 02:00:58', 101881), +('2016-10-04 01:51:41', 101883), +('2016-10-04 01:42:24', 101884), +('2016-10-04 01:05:10', 101885), +('2016-09-30 04:53:42', 101886), +('2016-09-30 01:23:50', 101887), +('2016-09-23 06:50:10', 101888), +('2016-09-16 03:28:52', 101890), +('2016-09-16 03:24:41', 101891), +('2016-08-30 03:28:41', 101892), +('2016-08-30 03:17:59', 101893), +('2016-08-29 07:57:02', 101894), +('2016-08-26 08:50:18', 101895), +('2016-08-24 09:29:35', 101896), +('2016-07-27 06:12:22', 101897), +('2016-07-27 06:10:23', 101898), +('2016-07-19 02:21:36', 101899), +('2016-07-18 04:03:57', 101900), +('2016-07-15 08:00:55', 101902), +('2016-02-05 03:34:53', 101903), +('2013-09-27 09:52:01', 101904), +('2013-09-27 05:19:39', 101905), +('2013-09-27 05:07:31', 101906), +('2013-09-27 04:50:45', 101907), +('2013-09-02 09:03:46', 101908), +('2013-09-02 09:00:58', 101909), +('2013-09-02 08:53:37', 101910), +('2013-08-30 09:03:23', 101911), +('2020-08-12 20:26:01', 101912), +('2020-08-10 23:05:48', 101914), +('2020-08-10 22:56:46', 101919), +('2020-08-10 22:54:00', 101921), +('2020-08-10 22:31:53', 101922), +('2020-08-10 22:18:54', 101923), +('2020-07-30 06:13:45', 101924), +('2020-07-30 06:09:56', 101925), +('2020-07-30 02:27:22', 101927), +('2020-07-30 02:17:55', 101928), +('2020-07-30 02:11:23', 101929), +('2020-07-30 02:04:00', 101930), +('2020-07-29 06:55:28', 101931), +('2020-07-24 19:11:52', 101935), +('2020-07-22 18:25:22', 101936), +('2020-07-21 00:48:01', 101937), +('2020-07-16 19:33:18', 101940), +('2020-07-13 20:19:49', 101941), +('2020-07-10 19:19:37', 101943), +('2020-07-09 22:40:41', 101944), +('2020-05-27 04:09:46', 101945), +('2020-05-15 18:39:42', 101947), +('2020-05-13 19:57:30', 101949), +('2020-05-13 19:56:33', 101951), +('2020-05-13 03:41:28', 101953), +('2020-05-13 03:42:29', 101955), +('2020-05-13 18:42:44', 101956), +('2020-05-13 02:25:03', 101958), +('2020-05-12 22:57:24', 101959), +('2020-05-12 22:56:01', 101960), +('2020-05-12 17:51:19', 101961), +('2020-04-29 18:53:47', 101962), +('2020-04-16 23:49:12', 101963), +('2020-04-16 23:48:03', 101964), +('2020-04-16 23:46:01', 101965), +('2020-04-16 23:45:04', 101967), +('2020-04-16 23:35:54', 101968), +('2020-04-09 18:56:57', 101969), +('2020-04-09 18:55:28', 101970), +('2021-04-02 23:50:09', 101971), +('2021-04-02 21:57:30', 101975), +('2021-04-02 20:25:42', 101977), +('2021-03-31 01:58:15', 101981), +('2021-03-09 23:20:47', 101983), +('2021-03-09 23:02:04', 101984), +('2021-03-09 22:32:31', 101985), +('2021-03-09 19:39:56', 101986), +('2021-02-19 19:14:16', 101988), +('2021-02-19 19:11:43', 101991), +('2021-02-19 19:09:43', 101993), +('2021-02-18 21:40:06', 101996), +('2021-02-18 21:37:36', 101997), +('2021-01-29 22:44:47', 102002), +('2021-01-29 22:42:07', 102003), +('2021-01-28 23:16:54', 102005), +('2021-01-28 23:16:42', 102006), +('2021-01-28 22:54:56', 102007), +('2021-01-28 22:54:56', 102009), +('2020-12-08 21:24:43', 102010), +('2020-11-24 19:06:35', 102011), +('2020-11-24 19:00:26', 102012), +('2020-11-24 00:41:14', 102013), +('2020-11-24 00:39:31', 102015), +('2020-10-28 02:20:00', 102018), +('2020-10-19 19:46:51', 102019), +('2020-10-19 19:44:19', 102020), +('2020-10-19 19:28:05', 102021), +('2020-10-16 18:09:27', 102022), +('2020-10-14 02:42:58', 102024), +('2020-10-13 22:13:54', 102025), +('2020-10-13 22:09:59', 102026), +('2020-10-01 22:42:14', 102027), +('2020-09-25 19:37:08', 102028), +('2020-09-25 19:34:38', 102029), +('2020-08-28 20:57:01', 102030), +('2020-08-28 20:51:36', 102031), +('2020-08-28 20:23:46', 102032), +('2020-08-28 20:20:21', 102033), +('2020-08-28 20:18:46', 102034), +('2020-08-28 19:40:44', 102035), +('2020-08-25 18:24:16', 102036), +('2020-08-21 23:03:19', 102037), +('2020-08-21 18:58:11', 102038), +('2020-08-20 22:24:24', 102039), +('2020-08-20 19:03:01', 102040), +('2020-05-08 22:46:54', 102041), +('2020-04-23 02:40:43', 102042), +('2020-04-23 02:35:00', 102044), +('2022-04-01 19:13:55', 102045), +('2022-03-22 21:35:10', 102046), +('2022-01-05 00:37:03', 102048), +('2022-01-05 00:30:44', 102053), +('2021-10-08 20:19:57', 102056), +('2021-10-08 20:14:14', 102057), +('2021-10-08 19:08:30', 102058), +('2021-10-06 18:48:08', 102060), +('2021-07-30 18:12:56', 102061), +('2021-07-30 01:50:24', 102062), +('2021-07-30 01:43:19', 102063), +('2021-07-30 01:35:44', 102065), +('2021-07-30 01:12:30', 102066), +('2021-07-30 01:05:47', 102067), +('2021-07-30 00:57:19', 102068), +('2021-07-22 19:48:51', 102069), +('2021-07-20 18:01:07', 102070), +('2021-07-20 17:55:54', 102071), +('2021-07-16 20:17:42', 102072), +('2021-07-16 19:59:21', 102073), +('2021-07-16 19:53:19', 102074), +('2021-04-02 22:05:30', 102075), +('2020-01-18 00:05:00', 102076), +('2020-01-18 00:04:49', 102077), +('2020-01-18 00:04:49', 102078), +('2017-10-08 15:41:16', 104094), +('2017-10-08 15:39:58', 104100), +('2017-10-08 15:28:22', 104102), +('2017-10-08 15:26:06', 104105), +('2017-10-05 15:44:04', 104106), +('2017-10-05 15:34:07', 104107), +('2017-10-05 15:14:19', 104108), +('2017-07-12 18:08:49', 104109), +('2017-07-12 18:08:35', 104113), +('2017-07-12 12:40:15', 104115), +('2017-07-12 12:38:32', 104116), +('2017-05-18 12:28:48', 104117), +('2017-05-17 14:57:20', 104118), +('2017-05-11 10:07:37', 104119), +('2017-05-11 10:07:04', 104120), +('2017-05-11 10:05:28', 104126), +('2017-05-11 09:55:28', 104131), +('2017-05-11 09:51:39', 104133), +('2017-05-11 09:51:25', 104134), +('2017-04-18 11:35:09', 104136), +('2017-04-16 22:01:25', 104137), +('2017-03-23 20:07:16', 104138), +('2017-03-14 22:22:20', 104139), +('2017-03-11 15:20:11', 104141), +('2017-03-09 16:59:50', 104143), +('2017-03-06 15:08:32', 104144), +('2017-02-08 18:19:28', 104145), +('2017-02-08 16:26:05', 104146), +('2017-02-08 00:45:07', 104149), +('2017-02-08 00:41:10', 104150), +('2017-02-07 23:50:46', 104152), +('2017-02-07 23:45:19', 104153), +('2017-02-07 23:45:12', 104154), +('2017-02-07 23:45:02', 104156), +('2017-02-07 23:44:47', 104157), +('2017-02-07 23:44:25', 104158), +('2017-02-07 23:44:17', 104159), +('2017-01-03 10:57:50', 104161), +('2017-01-03 10:56:56', 104162), +('2017-01-03 10:56:37', 104163), +('2016-11-11 17:53:24', 104164), +('2016-10-25 21:14:27', 104165), +('2016-08-19 22:47:53', 104166), +('2016-08-19 21:04:02', 104167), +('2016-08-19 19:46:15', 104169), +('2016-05-12 19:01:07', 104171), +('2016-08-19 18:32:33', 104172), +('2016-05-25 20:33:28', 104173), +('2016-05-25 19:19:55', 104175), +('2016-05-25 22:30:33', 104177), +('2016-05-24 22:03:03', 104179), +('2016-05-12 21:25:21', 104181), +('2016-05-12 19:46:27', 104182), +('2016-05-12 21:25:40', 104183), +('2016-08-19 19:42:23', 104184), +('2016-08-19 18:20:10', 104186), +('2016-08-19 19:39:02', 104187), +('2016-06-22 21:46:14', 104188), +('2016-05-25 22:49:06', 104189), +('2016-05-25 22:40:10', 104190), +('2016-05-25 22:37:41', 104191), +('2016-05-25 20:45:08', 104192), +('2016-05-19 15:29:06', 104193), +('2016-05-19 14:35:38', 104194), +('2016-05-19 14:21:37', 104195), +('2016-05-19 14:17:51', 104196), +('2016-05-19 14:15:10', 104197), +('2016-05-19 14:00:51', 104198), +('2016-05-19 02:20:24', 104200), +('2016-05-18 12:56:53', 104201), +('2016-05-15 15:29:06', 104202), +('2016-05-15 14:50:27', 104204), +('2016-05-12 19:38:47', 104205), +('2016-05-12 19:07:07', 104206), +('2016-05-12 19:02:27', 104207), +('2016-05-12 18:24:32', 104208), +('2016-05-11 11:04:34', 104209), +('2016-04-19 14:33:27', 104210), +('2016-04-19 14:31:08', 104211), +('2016-04-19 14:28:24', 104212), +('2016-04-19 14:23:43', 104213), +('2016-04-17 16:23:57', 104214), +('2016-04-17 16:17:39', 104215), +('2016-04-17 12:12:20', 104217), +('2016-04-14 06:56:11', 104218), +('2016-04-13 11:30:16', 104219), +('2016-04-12 05:33:04', 104220), +('2016-03-30 12:28:32', 104221), +('2016-03-30 12:27:33', 104222), +('2016-01-08 14:23:16', 104223), +('2015-10-21 01:32:30', 104224), +('2015-10-20 21:58:59', 104225), +('2015-10-20 15:53:36', 104226), +('2015-10-20 14:06:52', 104227), +('2015-10-20 14:01:58', 104228), +('2015-10-19 23:50:40', 104229), +('2015-10-19 23:29:31', 104230), +('2015-10-19 23:17:41', 104231), +('2015-10-19 18:24:11', 104232), +('2015-10-19 18:20:25', 104233), +('2015-10-19 18:16:24', 104234), +('2015-10-19 18:12:37', 104235), +('2015-10-19 18:10:54', 104236), +('2015-10-19 17:28:21', 104237), +('2015-10-19 03:48:29', 104238), +('2015-10-19 03:25:38', 104239), +('2015-10-19 02:41:14', 104240), +('2015-10-19 02:21:16', 104241), +('2015-10-19 02:15:26', 104242), +('2015-10-19 01:40:49', 104243), +('2015-10-18 22:29:36', 104245), +('2015-10-18 13:58:11', 104246), +('2015-09-04 14:12:33', 104247), +('2015-09-04 14:04:44', 104248), +('2015-07-01 01:01:13', 104249), +('2015-03-15 15:10:43', 104250), +('2015-03-06 12:16:46', 104251), +('2015-01-14 10:23:59', 104252), +('2015-01-14 10:22:18', 104253), +('2015-01-14 10:21:22', 104254), +('2015-01-14 10:17:41', 104255), +('2015-01-13 19:55:47', 104256), +('2015-01-12 19:37:43', 104257), +('2015-01-12 18:14:18', 104258), +('2015-01-12 18:04:06', 104259), +('2015-01-12 17:49:13', 104260), +('2015-01-12 17:40:22', 104261), +('2015-01-12 17:18:44', 104262), +('2015-01-12 16:49:18', 104263), +('2015-01-12 12:58:30', 104264), +('2019-09-08 21:52:59', 104265), +('2017-02-08 00:41:10', 104266), +('2017-02-07 23:44:25', 104267), +('2022-04-01 14:38:52', 104268), +('2022-04-01 14:14:25', 104270), +('2022-03-29 13:51:06', 104271), +('2022-03-29 12:11:51', 104276), +('2022-03-29 12:07:43', 104277), +('2022-03-29 12:07:29', 104278), +('2022-02-23 11:36:19', 104279), +('2022-02-11 10:10:29', 104280), +('2022-02-11 10:10:00', 104281), +('2022-02-10 08:39:21', 104282), +('2021-09-04 09:39:10', 104283), +('2021-09-04 09:36:47', 104284), +('2021-09-01 21:18:08', 104288), +('2021-06-16 14:39:12', 104289), +('2021-06-10 12:51:54', 104290), +('2021-05-25 16:31:55', 104291), +('2021-05-07 09:14:24', 104292), +('2021-03-30 13:12:37', 104293), +('2020-12-18 15:00:51', 104294), +('2020-10-30 08:33:35', 104295), +('2020-09-21 22:38:21', 104298), +('2020-09-21 22:37:49', 104300), +('2020-09-21 22:35:10', 104301), +('2020-06-10 11:33:50', 104302), +('2020-03-16 11:31:49', 104303), +('2020-02-23 23:04:52', 104304), +('2020-02-23 23:02:27', 104306), +('2020-02-23 23:02:27', 104307), +('2020-02-23 23:02:27', 104308), +('2020-02-23 23:02:27', 104309), +('2020-02-23 23:02:27', 104310), +('2020-02-23 23:02:27', 104311), +('2020-02-23 23:02:27', 104313), +('2020-02-23 23:02:27', 104314), +('2020-02-23 23:02:27', 104315), +('2020-02-23 23:02:27', 104318), +('2020-02-23 23:02:27', 104319), +('2020-02-23 23:02:27', 104321), +('2020-02-23 23:02:27', 104322), +('2020-02-23 23:02:27', 104325), +('2020-02-23 23:02:27', 104326), +('2020-02-23 23:02:27', 104327), +('2020-02-23 23:02:27', 104332), +('2020-02-23 23:02:27', 104333), +('2020-02-23 23:02:27', 104334), +('2020-02-23 23:02:27', 104335), +('2020-02-23 23:02:27', 104337), +('2020-02-23 23:02:27', 104338), +('2020-02-23 23:02:27', 104339), +('2020-02-23 23:02:27', 104344), +('2020-02-23 22:28:18', 104345), +('2020-02-23 22:22:51', 104346), +('2020-02-23 22:17:52', 104347), +('2020-02-23 22:13:08', 104348), +('2020-02-23 22:11:09', 104349), +('2020-02-23 22:09:06', 104350), +('2020-02-23 22:08:24', 104351), +('2020-02-23 21:59:11', 104352), +('2020-02-23 21:55:15', 104353), +('2020-02-23 21:50:02', 104354), +('2020-02-23 21:47:10', 104355), +('2020-02-23 21:41:03', 104356), +('2020-02-23 21:37:33', 104357), +('2020-02-23 21:32:50', 104358), +('2020-02-23 21:25:37', 104359), +('2020-02-23 21:19:03', 104360), +('2020-02-23 21:18:44', 104361), +('2020-02-23 21:18:34', 104362), +('2020-02-23 21:11:02', 104363), +('2020-02-23 21:09:56', 104364), +('2020-02-23 21:03:37', 104365), +('2019-09-08 21:50:04', 104366), +('2019-09-03 21:20:18', 104367), +('2019-09-03 13:33:23', 104368), +('2019-09-03 12:48:25', 104370), +('2019-09-03 12:48:11', 104371), +('2019-09-03 11:47:54', 104372), +('2019-09-03 11:37:05', 104373), +('2019-09-03 11:36:49', 104374), +('2019-09-03 11:23:41', 104375), +('2019-09-03 11:21:23', 104376), +('2019-09-03 11:16:06', 104377), +('2019-09-03 11:13:33', 104378), +('2019-09-03 11:00:55', 104379), +('2019-09-03 10:49:22', 104380), +('2019-09-03 10:46:53', 104381), +('2019-09-03 10:44:06', 104382), +('2019-09-03 10:43:42', 104383), +('2019-09-03 10:43:33', 104384), +('2019-09-03 10:43:11', 104385), +('2019-09-03 10:42:46', 104386), +('2019-09-02 17:05:31', 104387), +('2019-09-02 17:02:22', 104388), +('2019-09-02 17:01:36', 104389), +('2019-08-31 17:42:55', 104390), +('2019-08-31 17:30:04', 104391), +('2019-08-31 17:29:39', 104392), +('2019-08-31 16:55:15', 104393), +('2019-08-31 16:55:01', 104394), +('2019-08-31 16:54:51', 104395), +('2019-08-31 16:54:40', 104396), +('2019-08-31 16:54:26', 104397), +('2019-08-31 16:54:12', 104398), +('2019-08-31 16:54:02', 104399), +('2019-08-31 16:53:34', 104400), +('2019-08-31 16:53:26', 104401), +('2019-08-31 16:53:12', 104402), +('2019-08-31 16:53:01', 104403), +('2019-08-31 16:52:41', 104404), +('2019-08-29 13:37:51', 104405), +('2019-07-11 11:47:07', 104406), +('2019-07-11 11:45:54', 104407), +('2019-06-05 23:54:49', 104408), +('2019-06-05 23:54:25', 104409), +('2019-06-05 23:54:01', 104410), +('2019-04-24 22:03:21', 104411), +('2018-11-16 22:16:07', 104412), +('2018-11-03 18:36:10', 104413), +('2018-11-03 18:34:11', 104414), +('2018-09-25 11:07:57', 104415), +('2018-09-24 21:27:31', 104416), +('2018-09-03 22:12:00', 104417), +('2018-09-03 21:56:50', 104418), +('2017-11-24 15:07:03', 104419), +('2017-11-24 15:06:18', 104420), +('2017-11-23 10:52:38', 104421), +('2017-10-06 11:27:02', 104422), +('2017-09-19 12:23:20', 104424), +('2017-09-19 01:32:59', 104425), +('2017-07-14 15:15:27', 104426), +('2017-07-14 15:04:48', 104427), +('2017-07-14 15:04:29', 104428), +('2017-07-14 14:11:31', 104430), +('2017-07-14 14:08:02', 104431); + +-- +-- Dumping data for table `configuration` +-- + +INSERT INTO `configuration` (`id`, `projectId`) VALUES +(1, 1), +(3, 1), +(4, 1), +(6, 1), +(8, 1), +(17, 1), +(25, 1), +(29, 1), +(30, 1), +(31, 1), +(32, 1), +(33, 1), +(34, 1), +(37, 1), +(42, 1), +(43, 1), +(45, 1), +(47, 1), +(61, 1), +(63, 1), +(65, 1), +(66, 1), +(67, 1), +(68, 1), +(69, 1), +(183, 1), +(184, 1), +(191, 1), +(192, 1), +(218, 1), +(219, 1), +(222, 1), +(224, 1), +(229, 1), +(230, 1), +(233, 1), +(237, 1), +(241, 1), +(245, 1), +(250, 1), +(255, 1), +(259, 1), +(263, 1), +(267, 1), +(274, 1), +(276, 1), +(281, 1), +(285, 1), +(298, 1), +(300, 1), +(302, 1), +(408, 1), +(410, 1), +(411, 1), +(412, 1), +(414, 1), +(418, 1), +(423, 1), +(424, 1), +(425, 1), +(426, 1), +(428, 1), +(429, 1), +(431, 1), +(437, 1), +(459, 1), +(460, 1), +(461, 1), +(462, 1), +(463, 1), +(464, 1), +(465, 1), +(468, 1), +(474, 1), +(475, 1), +(476, 1), +(477, 1), +(479, 1), +(480, 1), +(481, 1), +(484, 1), +(485, 1), +(487, 1), +(488, 1), +(490, 1), +(497, 1), +(498, 1), +(499, 1), +(500, 1), +(501, 1), +(503, 1), +(504, 1), +(505, 1), +(506, 1), +(508, 1), +(509, 1), +(510, 1), +(511, 1), +(512, 1), +(513, 1), +(515, 1), +(517, 1), +(518, 1), +(520, 1), +(522, 1), +(525, 1), +(526, 1), +(527, 1), +(528, 1), +(529, 1), +(530, 1), +(531, 1), +(534, 1), +(535, 1), +(536, 1), +(538, 1), +(539, 1), +(540, 1), +(541, 1), +(542, 1), +(543, 1), +(545, 1), +(547, 1), +(548, 1), +(549, 1), +(550, 1), +(552, 1), +(554, 1), +(555, 1), +(556, 1), +(559, 1), +(563, 1), +(564, 1), +(565, 1), +(566, 1), +(567, 1), +(569, 1), +(570, 1), +(571, 1), +(572, 1), +(573, 1), +(574, 1), +(575, 1), +(576, 1), +(577, 1), +(578, 1), +(579, 1), +(580, 1), +(581, 1), +(582, 1), +(586, 1), +(587, 1), +(589, 1), +(590, 1), +(591, 1), +(592, 1), +(593, 1), +(594, 1), +(595, 1), +(597, 1), +(598, 1), +(599, 1), +(600, 1), +(601, 1), +(603, 1), +(604, 1), +(605, 1), +(606, 1), +(608, 1), +(609, 1), +(610, 1), +(611, 1), +(612, 1), +(615, 1), +(617, 1), +(618, 1), +(619, 1), +(620, 1), +(622, 1), +(623, 1), +(624, 1), +(625, 1), +(626, 1), +(627, 1), +(628, 1), +(630, 1), +(631, 1), +(632, 1), +(635, 1), +(636, 1), +(637, 1), +(639, 1), +(640, 1), +(645, 1), +(647, 1), +(648, 1), +(649, 1), +(659, 1), +(661, 1), +(663, 1), +(664, 1), +(668, 1), +(670, 1), +(671, 1), +(673, 1), +(674, 1), +(680, 1), +(685, 1), +(687, 1), +(690, 1), +(691, 1), +(692, 1), +(694, 1), +(3093, 1), +(3094, 1), +(3095, 1), +(3096, 1), +(3097, 1), +(3098, 1), +(3099, 1), +(3100, 1), +(3101, 1), +(3102, 1), +(3103, 1), +(3104, 1), +(3105, 1), +(3106, 1), +(3124, 1), +(3125, 1), +(3126, 1), +(3127, 1), +(3128, 1), +(3129, 1), +(3130, 1), +(3131, 1), +(3132, 1), +(3133, 1), +(3134, 1), +(3135, 1), +(3137, 1), +(3138, 1), +(3139, 1), +(3140, 1), +(3141, 1), +(3142, 1), +(3143, 1), +(3144, 1), +(3145, 1), +(3146, 1), +(3147, 1), +(3148, 1), +(3149, 1), +(3150, 1), +(3151, 1), +(3152, 1), +(3153, 1), +(3154, 1), +(3155, 1), +(3156, 1), +(3157, 1), +(3158, 1), +(3159, 1), +(3160, 1), +(3161, 1), +(3162, 1), +(3163, 1), +(3164, 1), +(3165, 1), +(3166, 1), +(3167, 1), +(3168, 1), +(3169, 1), +(3170, 1), +(3171, 1), +(3172, 1), +(3173, 1), +(3174, 1), +(3175, 1), +(3176, 1), +(3177, 1), +(3178, 1), +(3179, 1), +(3180, 1), +(3181, 1), +(3182, 1), +(3183, 1), +(3184, 1), +(3185, 1), +(3186, 1), +(3187, 1), +(3188, 1), +(3189, 1), +(3190, 1), +(3191, 1), +(3192, 1), +(3193, 1), +(3194, 1), +(3195, 1), +(3196, 1), +(3197, 1), +(3198, 1), +(3199, 1), +(3200, 1), +(3201, 1), +(3202, 1), +(3203, 1), +(3204, 1), +(3205, 1), +(3206, 1), +(3207, 1), +(3208, 1), +(3209, 1), +(3210, 1), +(3211, 1), +(3212, 1), +(3213, 1), +(3214, 1), +(3215, 1), +(3216, 1), +(3217, 1), +(3218, 1), +(3219, 1), +(3220, 1), +(3221, 1), +(3222, 1), +(3223, 1), +(3224, 1), +(3225, 1), +(3226, 1), +(3227, 1), +(3228, 1), +(3229, 1), +(3230, 1), +(3231, 1), +(3232, 1), +(3233, 1), +(3234, 1), +(3235, 1), +(3236, 1), +(3237, 1), +(3238, 1), +(3239, 1), +(3240, 1), +(3241, 1), +(3242, 1), +(3243, 1), +(3244, 1), +(3245, 1), +(3246, 1), +(3247, 1), +(3248, 1), +(3249, 1), +(3250, 1), +(3251, 1), +(3252, 1), +(3253, 1), +(3254, 1), +(3255, 1), +(3256, 1), +(3257, 1), +(3258, 1), +(3259, 1), +(3260, 1), +(3261, 1), +(3262, 1), +(3263, 1), +(3264, 1), +(3265, 1), +(3266, 1), +(3267, 1), +(3268, 1), +(3269, 1), +(3270, 1), +(3271, 1), +(3272, 1), +(3273, 1), +(3274, 1), +(3275, 1), +(3276, 1), +(3277, 1), +(3278, 1), +(3279, 1), +(3280, 1), +(3281, 1), +(3282, 1), +(3283, 1), +(3284, 1), +(3285, 1), +(3286, 1), +(3287, 1), +(3288, 1), +(3289, 1), +(3290, 1), +(3291, 1), +(3292, 1), +(3293, 1), +(3294, 1), +(3295, 1), +(3296, 1), +(3297, 1), +(3298, 1), +(3299, 1), +(3300, 1), +(3301, 1), +(3302, 1), +(3303, 1), +(3304, 1), +(3305, 1), +(3306, 1), +(3307, 1), +(3308, 1), +(3309, 1), +(3311, 1), +(3312, 1), +(3313, 1), +(3314, 1), +(3315, 1), +(3316, 1), +(3317, 1), +(3318, 1), +(3319, 1), +(3320, 1), +(3321, 1), +(3322, 1), +(3323, 1), +(3324, 1), +(3325, 1), +(3326, 1), +(3327, 1), +(3328, 1), +(3329, 1), +(3330, 1), +(3331, 1), +(3332, 1), +(3333, 1), +(3334, 1), +(3335, 1), +(3336, 1), +(3337, 1), +(3338, 1), +(3339, 1), +(3340, 1), +(3341, 1), +(3342, 1), +(3343, 1), +(3344, 1), +(3345, 1), +(3346, 1), +(3347, 1), +(3348, 1), +(3349, 1), +(3350, 1), +(3351, 1), +(3352, 1), +(3353, 1), +(3355, 1), +(3356, 1), +(3357, 1), +(3358, 1), +(3359, 1), +(3360, 1), +(3369, 1), +(3370, 1), +(3371, 1), +(3372, 1), +(3373, 1), +(3377, 1), +(3378, 1), +(3379, 1), +(3380, 1), +(3381, 1), +(3382, 1), +(3383, 1), +(3384, 1), +(3386, 1), +(3387, 1), +(3388, 1), +(3389, 1), +(3390, 1), +(3391, 1), +(3392, 1), +(3393, 1), +(3394, 1), +(3395, 1), +(3396, 1), +(3397, 1), +(3398, 1), +(3399, 1), +(3400, 1), +(3401, 1), +(3402, 1), +(3403, 1), +(3404, 1), +(3405, 1), +(3406, 1), +(3407, 1), +(3408, 1), +(3409, 1), +(3410, 1), +(3411, 1), +(3412, 1), +(3414, 1), +(3415, 1), +(3416, 1), +(3417, 1), +(3418, 1), +(3419, 1), +(3420, 1), +(3421, 1), +(3422, 1), +(3423, 1), +(3424, 1), +(3425, 1), +(3426, 1), +(3427, 1), +(3428, 1), +(3429, 1), +(3430, 1), +(3431, 1), +(3432, 1), +(3433, 1), +(3434, 1), +(3435, 1), +(3436, 1), +(3437, 1), +(3438, 1), +(3439, 1), +(3440, 1), +(3441, 1), +(3442, 1), +(3443, 1), +(3444, 1), +(3445, 1), +(3446, 1), +(3447, 1), +(3448, 1), +(3449, 1), +(3450, 1), +(3451, 1), +(3452, 1), +(3453, 1), +(3454, 1), +(3455, 1), +(3456, 1), +(3457, 1), +(3458, 1), +(3459, 1), +(3460, 1), +(3461, 1), +(3462, 1), +(3463, 1), +(3464, 1), +(3465, 1), +(3466, 1), +(3467, 1), +(3468, 1), +(3469, 1), +(3470, 1), +(3471, 1), +(3472, 1), +(3473, 1), +(3474, 1), +(3475, 1), +(3476, 1), +(3477, 1), +(3478, 1), +(3479, 1), +(3480, 1), +(3481, 1), +(3482, 1), +(3483, 1), +(3484, 1), +(3485, 1), +(3486, 1), +(3487, 1), +(3488, 1), +(3489, 1), +(3490, 1), +(3491, 1), +(3492, 1), +(3493, 1), +(3494, 1), +(3495, 1), +(3496, 1), +(3497, 1), +(3498, 1), +(3499, 1), +(3500, 1), +(3501, 1), +(3502, 1), +(3503, 1), +(3504, 1), +(3505, 1), +(3506, 1), +(3507, 1), +(3508, 1), +(3509, 1), +(3510, 1), +(3511, 1), +(3512, 1), +(3513, 1), +(3514, 1), +(3515, 1), +(3516, 1), +(3517, 1), +(3518, 1), +(3519, 1), +(3520, 1), +(3521, 1), +(3522, 1), +(3523, 1), +(3524, 1), +(3525, 1), +(3526, 1), +(3527, 1), +(3528, 1), +(3529, 1), +(3530, 1), +(3531, 1), +(3532, 1), +(3533, 1), +(3534, 1), +(3535, 1), +(3536, 1), +(3537, 1), +(3538, 1), +(3539, 1), +(3540, 1), +(3541, 1), +(3542, 1), +(3543, 1), +(3544, 1), +(3545, 1), +(3546, 1), +(3547, 1), +(3548, 1), +(3549, 1), +(3550, 1), +(3551, 1), +(3552, 1), +(3553, 1), +(3554, 1), +(3555, 1), +(3556, 1), +(3558, 1), +(3559, 1), +(3560, 1), +(3561, 1), +(3562, 1), +(3573, 1), +(3574, 1), +(3575, 1), +(3576, 1), +(3577, 1), +(3578, 1), +(3579, 1), +(3580, 1), +(3581, 1), +(3582, 1), +(3583, 1), +(3584, 1), +(3585, 1), +(3586, 1), +(3587, 1), +(3588, 1), +(3589, 1), +(3590, 1), +(3591, 1), +(3592, 1), +(3593, 1), +(3594, 1), +(3595, 1), +(3597, 1), +(3598, 1), +(3599, 1), +(3600, 1), +(3601, 1), +(3602, 1), +(3603, 1), +(3604, 1), +(3605, 1), +(3606, 1), +(3607, 1), +(3608, 1), +(3609, 1), +(3610, 1), +(3611, 1), +(3612, 1), +(3613, 1), +(3614, 1), +(3615, 1), +(3616, 1), +(3617, 1), +(3618, 1), +(3619, 1), +(3620, 1), +(3621, 1), +(3622, 1), +(3623, 1), +(3624, 1), +(3625, 1), +(3626, 1), +(3627, 1), +(3628, 1), +(3629, 1), +(3630, 1), +(3631, 1), +(3632, 1), +(3633, 1), +(3634, 1), +(3635, 1), +(3636, 1), +(3637, 1), +(3638, 1), +(3639, 1), +(3640, 1), +(3641, 1), +(3642, 1), +(3643, 1), +(3644, 1), +(3645, 1), +(3646, 1), +(3647, 1), +(3649, 1), +(3650, 1), +(3651, 1), +(3652, 1), +(3653, 1), +(3655, 1), +(3656, 1), +(3657, 1), +(3658, 1), +(3659, 1), +(3660, 1), +(3661, 1), +(3662, 1), +(3663, 1), +(3664, 1), +(3665, 1), +(3666, 1), +(3667, 1), +(3668, 1), +(3669, 1), +(3670, 1), +(3671, 1), +(3672, 1), +(3673, 1), +(3674, 1), +(3675, 1), +(3676, 1), +(3677, 1), +(3678, 1), +(3679, 1), +(3680, 1), +(3681, 1), +(3682, 1), +(3683, 1), +(3684, 1), +(3685, 1), +(3686, 1), +(3687, 1), +(3688, 1), +(3690, 1), +(3691, 1), +(3692, 1), +(3693, 1), +(3694, 1), +(3695, 1), +(3696, 1), +(3697, 1), +(3698, 1), +(3699, 1), +(3700, 1), +(3701, 1), +(3703, 1), +(3704, 1), +(3705, 1), +(3706, 1), +(3707, 1), +(3708, 1), +(3709, 1), +(3710, 1), +(3711, 1), +(3712, 1), +(3713, 1), +(3714, 1), +(3715, 1), +(3716, 1), +(3717, 1), +(3718, 1), +(3719, 1), +(3722, 1), +(3723, 1), +(3724, 1), +(3726, 1), +(3727, 1), +(3728, 1), +(3729, 1), +(3730, 1), +(3731, 1), +(3732, 1), +(3733, 1), +(3734, 1), +(3735, 1), +(3736, 1), +(3737, 1), +(3738, 1), +(3739, 1), +(3741, 1), +(3742, 1), +(3743, 1), +(3744, 1), +(3745, 1), +(3746, 1), +(3747, 1), +(3748, 1), +(3749, 1), +(3750, 1), +(3751, 1), +(3752, 1), +(3753, 1), +(3754, 1), +(3755, 1), +(3756, 1), +(3757, 1), +(3758, 1), +(3759, 1), +(3760, 1), +(3761, 1), +(3762, 1), +(3763, 1), +(3764, 1), +(3765, 1), +(3766, 1), +(3767, 1), +(3768, 1), +(3769, 1), +(3770, 1), +(3771, 1), +(3772, 1), +(3773, 1), +(3774, 1), +(3775, 1), +(3776, 1), +(3777, 1), +(3778, 1), +(3779, 1), +(3780, 1), +(3781, 1), +(3782, 1), +(3783, 1), +(3784, 1), +(3785, 1), +(3786, 1), +(3787, 1), +(3788, 1), +(3789, 1), +(3790, 1), +(3791, 1), +(3794, 1), +(3795, 1), +(3796, 1), +(3797, 1), +(3798, 1), +(3799, 1), +(3800, 1), +(3801, 1), +(3802, 1), +(3803, 1), +(3804, 1), +(3805, 1), +(3806, 1), +(3807, 1), +(3808, 1), +(3809, 1), +(3810, 1), +(3811, 1), +(3812, 1), +(3813, 1), +(3814, 1), +(3815, 1), +(3816, 1), +(3817, 1), +(3818, 1), +(3821, 1), +(3822, 1), +(3823, 1), +(3824, 1), +(3825, 1), +(3826, 1), +(3828, 1), +(3829, 1), +(3830, 1), +(3831, 1), +(3833, 1), +(3834, 1), +(3835, 1), +(3836, 1), +(3837, 1), +(3838, 1), +(3839, 1), +(3840, 1), +(3841, 1), +(3842, 1), +(3843, 1), +(3844, 1), +(3845, 1), +(3846, 1), +(3847, 1), +(3848, 1), +(3849, 1), +(3850, 1), +(3851, 1), +(3852, 1), +(3853, 1), +(3854, 1), +(3855, 1), +(3856, 1), +(3857, 1), +(3858, 1), +(3859, 1), +(3861, 1), +(3863, 1), +(3864, 1), +(3865, 1), +(3866, 1), +(3868, 1), +(3869, 1), +(3870, 1), +(3871, 1), +(3872, 1), +(3874, 1), +(3875, 1), +(3876, 1), +(3877, 1), +(3878, 1), +(3879, 1), +(3880, 1), +(3882, 1), +(3883, 1), +(3884, 1), +(3885, 1), +(3886, 1), +(3887, 1), +(3888, 1), +(3889, 1), +(3890, 1), +(3891, 1), +(3892, 1), +(3893, 1), +(3894, 1), +(3895, 1), +(3896, 1), +(3897, 1), +(3898, 1), +(3899, 1), +(3900, 1), +(3901, 1), +(3902, 1), +(3903, 1), +(3904, 1), +(3905, 1), +(3906, 1), +(3907, 1), +(3908, 1), +(3909, 1), +(3910, 1), +(3911, 1), +(3913, 1), +(3916, 1), +(3917, 1), +(3918, 1), +(3919, 1), +(3920, 1), +(3921, 1), +(3922, 2), +(3924, 2), +(3927, 2), +(3928, 2), +(3932, 2), +(3933, 2), +(3935, 2), +(3937, 2), +(3938, 2), +(3939, 2), +(3940, 2), +(3941, 2), +(3943, 2), +(3945, 2), +(3946, 2), +(3947, 2), +(3948, 2), +(3949, 2), +(3950, 2), +(3952, 2), +(3953, 2), +(3954, 2), +(3955, 2), +(3957, 2), +(3960, 2), +(3962, 2), +(3964, 2), +(3965, 2), +(3966, 2), +(4008, 2), +(4047, 2), +(4051, 2), +(4052, 2), +(4053, 2), +(4055, 2), +(4056, 2), +(4059, 2), +(4062, 2), +(4063, 2), +(4066, 2), +(4068, 2), +(4070, 2), +(4073, 2), +(4077, 2), +(4078, 2), +(4081, 2), +(4082, 2), +(4083, 2), +(4085, 2), +(4088, 2), +(4089, 2), +(4094, 2), +(4096, 2), +(4098, 2), +(4105, 2), +(4108, 2), +(4109, 2), +(4110, 2), +(4111, 2), +(4114, 2), +(4115, 2), +(4119, 2), +(4120, 2), +(4124, 2), +(4128, 2), +(4129, 2), +(4133, 2), +(4134, 2), +(4135, 2), +(4136, 2), +(4137, 2), +(4138, 2), +(4139, 2), +(4140, 2), +(4155, 2), +(4157, 2), +(4158, 2), +(4180, 2), +(4181, 2), +(4185, 2), +(4186, 2), +(4187, 2), +(4190, 2), +(4196, 2), +(4199, 2), +(4201, 2), +(4208, 2), +(4210, 2), +(4212, 2), +(4221, 2), +(4222, 2), +(4232, 2), +(4233, 2), +(4234, 2), +(4236, 2), +(4239, 2), +(4240, 2), +(4241, 2), +(4243, 2), +(4244, 2), +(4245, 2), +(4246, 2), +(4253, 2), +(4254, 2), +(4255, 2), +(4256, 2), +(4427, 2), +(4428, 2), +(4429, 2), +(4430, 2), +(4431, 2), +(4432, 2), +(4433, 2), +(4434, 2), +(4435, 2), +(4436, 2), +(4437, 2), +(4438, 2), +(4439, 2), +(4440, 2), +(4441, 2), +(4442, 2), +(4443, 2), +(4444, 2), +(4446, 2), +(4447, 2), +(4448, 2), +(4449, 2), +(4450, 2), +(4451, 2), +(4452, 2), +(4453, 2), +(4454, 2), +(4455, 2), +(4456, 2), +(4457, 2), +(4458, 2), +(4459, 2), +(4460, 2), +(4461, 2), +(4462, 2), +(4463, 2), +(4464, 2), +(4465, 2), +(4466, 2), +(4467, 2), +(4468, 2), +(4469, 2), +(4470, 2), +(4471, 2), +(4472, 2), +(4473, 2), +(4474, 2), +(4475, 2), +(4476, 2), +(4477, 2), +(4478, 2), +(4479, 2), +(4480, 2), +(4481, 2), +(4482, 2), +(4483, 2), +(4484, 2), +(4485, 2), +(4486, 2), +(4487, 2), +(4488, 2), +(4489, 2), +(4490, 2), +(4491, 2), +(4492, 2), +(4493, 2), +(4494, 2), +(4495, 2), +(4496, 2), +(4497, 2), +(4498, 2), +(4499, 2), +(4500, 2), +(4501, 2), +(4502, 2), +(4504, 2), +(4505, 2), +(4506, 2), +(4507, 2), +(4508, 2), +(4509, 2), +(4510, 2), +(4511, 2), +(4512, 2), +(4513, 2), +(4514, 2), +(4515, 2), +(4516, 2), +(4517, 2), +(4518, 2), +(4519, 2), +(4520, 2), +(4521, 2), +(4522, 2), +(4523, 2), +(4524, 2), +(4525, 2), +(4526, 2), +(4527, 2), +(4528, 2), +(4529, 2), +(4530, 2), +(4531, 2), +(4532, 2), +(4533, 2), +(4534, 2), +(4535, 2), +(4536, 2), +(4537, 2), +(4538, 2), +(4539, 2), +(4540, 2), +(4541, 2), +(4542, 2), +(4543, 2), +(4544, 2), +(4545, 2), +(4546, 2), +(4547, 2), +(4548, 2), +(4549, 2), +(4550, 2), +(4551, 2), +(4552, 2), +(4553, 2), +(4554, 2), +(4555, 2), +(4556, 2), +(4557, 2), +(4558, 2), +(4559, 2), +(4560, 2), +(4561, 2), +(4562, 2), +(4563, 2), +(4564, 2), +(4565, 2), +(4566, 2), +(4567, 2), +(4568, 2), +(4569, 2), +(4570, 2), +(4571, 2), +(4572, 2), +(4573, 2), +(4574, 2), +(4575, 2), +(4576, 2), +(4577, 2), +(4578, 2), +(4579, 2), +(4580, 2), +(4581, 2), +(4582, 2), +(4583, 2), +(4584, 2), +(4585, 2), +(4586, 2), +(4587, 2), +(4588, 2), +(4589, 2), +(4590, 2), +(4591, 2), +(4592, 2), +(4593, 2), +(4594, 2), +(4595, 2), +(4596, 2), +(4597, 2), +(4598, 2), +(4599, 2), +(4600, 2), +(4601, 2), +(4602, 2), +(4603, 2), +(4604, 2), +(4605, 2), +(4606, 2), +(4607, 2), +(4608, 2), +(4609, 2), +(4610, 2), +(4611, 2), +(4612, 2), +(4613, 2), +(4614, 2), +(4615, 2), +(4616, 2), +(4617, 2), +(4618, 2), +(4619, 2), +(4620, 2), +(4621, 2), +(4622, 2), +(4623, 2), +(4624, 2), +(4625, 2), +(4626, 2), +(4627, 2), +(4628, 2), +(4629, 2), +(4630, 2), +(4631, 2), +(4632, 2), +(4633, 2), +(4634, 2), +(4635, 2), +(4636, 2), +(4637, 2), +(4638, 2), +(4639, 2), +(4640, 2), +(4641, 2), +(4642, 2), +(4643, 2), +(4644, 2), +(4645, 2), +(4646, 2), +(4647, 2), +(4648, 2), +(4649, 2), +(4650, 2), +(4651, 2), +(4652, 2), +(4653, 2), +(4654, 2), +(4655, 2), +(4656, 2), +(4657, 2), +(4658, 2), +(4659, 2), +(4660, 2), +(4661, 2), +(4662, 2), +(4663, 2), +(4664, 2), +(4665, 2), +(4666, 2), +(4667, 2), +(4668, 2), +(4669, 2), +(4670, 2), +(4671, 2), +(4672, 2), +(4673, 2), +(4674, 2), +(4675, 2), +(4676, 2), +(4677, 2), +(4678, 2), +(4679, 2), +(4680, 2), +(4681, 2), +(4682, 2), +(4683, 2), +(4684, 2), +(4685, 2), +(4686, 2), +(4687, 2), +(4688, 2), +(4689, 2), +(4690, 2), +(4691, 2), +(4692, 2), +(4693, 2), +(4694, 2), +(4695, 2), +(4696, 2), +(4697, 2), +(4698, 2), +(4699, 2), +(4700, 2), +(4701, 2), +(4702, 2), +(4703, 2), +(4704, 2), +(4705, 2), +(4706, 2), +(4707, 2), +(4708, 2), +(4709, 2), +(4710, 2), +(4711, 2), +(4712, 2), +(4713, 2), +(4714, 2), +(4715, 2), +(4716, 2), +(4717, 2), +(4718, 2), +(4719, 2), +(4720, 2), +(4721, 2), +(4722, 2), +(4723, 2), +(4724, 2), +(4725, 2), +(4726, 2), +(4727, 2), +(4728, 2), +(4729, 2), +(4731, 2), +(4732, 2), +(4734, 2), +(4735, 2), +(4736, 2), +(4739, 2), +(4740, 2), +(4741, 2), +(4742, 2), +(4743, 2), +(4744, 2), +(4745, 2), +(4746, 2), +(4747, 2), +(4748, 2), +(4749, 2), +(4750, 2), +(4751, 2), +(4752, 2), +(4753, 2), +(4754, 2), +(4755, 2), +(4756, 2), +(4757, 2), +(4758, 2), +(4760, 2), +(4761, 2), +(4763, 2), +(4764, 2), +(4765, 2), +(4766, 2), +(4767, 2), +(4768, 2), +(4770, 2), +(4771, 2), +(4773, 2), +(4774, 2), +(4775, 2), +(4776, 2), +(4777, 2), +(4778, 2), +(4779, 2), +(4780, 2), +(4781, 2), +(4782, 2), +(4783, 2), +(4784, 2), +(4785, 2), +(4786, 2), +(4787, 2), +(4788, 2), +(4789, 2), +(4790, 2), +(4791, 2), +(4792, 2), +(4793, 2), +(4794, 2), +(4795, 2), +(4796, 2), +(4797, 2), +(4798, 2), +(4799, 2), +(4800, 2), +(4801, 2), +(4802, 2), +(4803, 2), +(4804, 2), +(4805, 2), +(4806, 2), +(4807, 2), +(4808, 2), +(4809, 2), +(4810, 2), +(4811, 2), +(4812, 2), +(4813, 2), +(4814, 2), +(4815, 2), +(4816, 2), +(4817, 2), +(4818, 2), +(4819, 2), +(4820, 2), +(4821, 2), +(4822, 2), +(4823, 2), +(4824, 2), +(4825, 2), +(4826, 2), +(4827, 2), +(4828, 2), +(4829, 2), +(4830, 2), +(4831, 2), +(4832, 2), +(4833, 2), +(4834, 2), +(4835, 2), +(4836, 2), +(4837, 2), +(4838, 2), +(4839, 2), +(4840, 2), +(4841, 2), +(4842, 2), +(4843, 2), +(4844, 2), +(4845, 2), +(4847, 2), +(4848, 2), +(4849, 2), +(4850, 2), +(4851, 2), +(4852, 2), +(4854, 2), +(4855, 2), +(4856, 2), +(4857, 2), +(4858, 2), +(4859, 2), +(4861, 2), +(4862, 2), +(4863, 2), +(4864, 2), +(4865, 2), +(4866, 2), +(4867, 2), +(4868, 2), +(4869, 2), +(4870, 2), +(4871, 2), +(4872, 2), +(4873, 2), +(4874, 2), +(4876, 2), +(4877, 2), +(4878, 2), +(4879, 2), +(4880, 2), +(4881, 2), +(4882, 2), +(4883, 2), +(4884, 2), +(4885, 2), +(4886, 2), +(4887, 2), +(4888, 2), +(4889, 2), +(4890, 2), +(4891, 2), +(4892, 2), +(4893, 2), +(4894, 2), +(4895, 2), +(4896, 2), +(4897, 2), +(4898, 2), +(4899, 2), +(4900, 2), +(4901, 2), +(4902, 2), +(4903, 2), +(4904, 2), +(4905, 2), +(4906, 2), +(4907, 2), +(4908, 2), +(4909, 2), +(4910, 2), +(4911, 2), +(4912, 2), +(4913, 2), +(4915, 2), +(4916, 2), +(4917, 2), +(4918, 2), +(4919, 2), +(4920, 2), +(4922, 2), +(4923, 2), +(4924, 2), +(4925, 2), +(4927, 2), +(4928, 2), +(4929, 2), +(4930, 2), +(4932, 2), +(4933, 2), +(4934, 2), +(4936, 2), +(4937, 2), +(4938, 2), +(4939, 2), +(4940, 2), +(4941, 2), +(4943, 2), +(4944, 2), +(4945, 2), +(4946, 2), +(4947, 2), +(4948, 2), +(4949, 2), +(4951, 2), +(4952, 2), +(4953, 2), +(4954, 2), +(4955, 2), +(4956, 2), +(4957, 2), +(4958, 2), +(4959, 2), +(4960, 2), +(4961, 2), +(4962, 2), +(4963, 2), +(4964, 2), +(4965, 2), +(4966, 2), +(4967, 2), +(4968, 2), +(4969, 2), +(4970, 2), +(4971, 2), +(4972, 2), +(4973, 2), +(4974, 2), +(4975, 2), +(4976, 2), +(4977, 2), +(4978, 2), +(4979, 2), +(4980, 2), +(4981, 2), +(4982, 2), +(4983, 2), +(4984, 2), +(4985, 2), +(4986, 2), +(4987, 2), +(4988, 2), +(4989, 2), +(4990, 2), +(4991, 2), +(4992, 2), +(4993, 2), +(4994, 2), +(4995, 2), +(4996, 2), +(4997, 2), +(4998, 2), +(4999, 2), +(5000, 2), +(5001, 2), +(5002, 2), +(5003, 2), +(5004, 2), +(5005, 2), +(5006, 2), +(5007, 2), +(5008, 2), +(5009, 2), +(5010, 2), +(5011, 2), +(5012, 2), +(5013, 2), +(5014, 2), +(5015, 2), +(5016, 2), +(5017, 2), +(5018, 2), +(5019, 2), +(5020, 2), +(5021, 2), +(5022, 2), +(5023, 2), +(5024, 2), +(5025, 2), +(5026, 2), +(5027, 2), +(5028, 2), +(5029, 2), +(5030, 2), +(5031, 2), +(5032, 2), +(5033, 2), +(5034, 2), +(5035, 2), +(5036, 2), +(5037, 2), +(5038, 2), +(5039, 2), +(5040, 2), +(5041, 2), +(5042, 2), +(5043, 2), +(5044, 2), +(5045, 2), +(5046, 2), +(5047, 2), +(5048, 2), +(5049, 2), +(5050, 2), +(5051, 2), +(5052, 2), +(5053, 2), +(5054, 2), +(5055, 2), +(5056, 2), +(5057, 2), +(5058, 2), +(5059, 2), +(5060, 2), +(5061, 2), +(5062, 2), +(5063, 2), +(5064, 2), +(5065, 2), +(5066, 2), +(5067, 2), +(5068, 2), +(5069, 2), +(5070, 2), +(5071, 2), +(5072, 2), +(5073, 2), +(5074, 2), +(5075, 2), +(5076, 2), +(5077, 2), +(5078, 2), +(5079, 2), +(5080, 2), +(5081, 2), +(5082, 2), +(5083, 2), +(5084, 2), +(5085, 2), +(5086, 2), +(5087, 2), +(5088, 2), +(5089, 2), +(5090, 2), +(5091, 2), +(5092, 2), +(5093, 2), +(5094, 2), +(5095, 2), +(5096, 2), +(5097, 2), +(5098, 2), +(5099, 2), +(5100, 2), +(5101, 2), +(5102, 2), +(5103, 2), +(5104, 2), +(5105, 2), +(5106, 2), +(5107, 2), +(5108, 2), +(5109, 2), +(5110, 2), +(5111, 2), +(5112, 2), +(5113, 2), +(5114, 2), +(5115, 2), +(5116, 2), +(5117, 2), +(5118, 2), +(5119, 2), +(5120, 2), +(5121, 2), +(5122, 2), +(5123, 2), +(5124, 2), +(5125, 2), +(5126, 2), +(5127, 2), +(5128, 2), +(5129, 2), +(5130, 2), +(5131, 2), +(5132, 2), +(5133, 2), +(5134, 2), +(5135, 2), +(5136, 2), +(5137, 2), +(5139, 2), +(5140, 2), +(5141, 2), +(5142, 2), +(5143, 2), +(5144, 2), +(5145, 2), +(5146, 2), +(5147, 2), +(5148, 2), +(5149, 2), +(5150, 2), +(5151, 2), +(5152, 2), +(5153, 2), +(5154, 2), +(5155, 2), +(5156, 2), +(5157, 2), +(5158, 2), +(5159, 2), +(5160, 2), +(5161, 2), +(5162, 2), +(5163, 2), +(5164, 2), +(5165, 2), +(5166, 2), +(5167, 2), +(5168, 2), +(5169, 2), +(5170, 2), +(5171, 2), +(5172, 2), +(5173, 2), +(5174, 2), +(5175, 2), +(5176, 2), +(5177, 2), +(5178, 2), +(5179, 2), +(5180, 2), +(5181, 2), +(5182, 2), +(5183, 2), +(5184, 2), +(5185, 2), +(5186, 2), +(5187, 2), +(5188, 2), +(5189, 2), +(5190, 2), +(5191, 2), +(5192, 2), +(5193, 2), +(5194, 2), +(5195, 2), +(5196, 2), +(5197, 2), +(5199, 2), +(5200, 2), +(5201, 2), +(5202, 2), +(5203, 2), +(5204, 2), +(5206, 2), +(5207, 2), +(5208, 2), +(5209, 2), +(5210, 2), +(5211, 2), +(5212, 2), +(5213, 2), +(5214, 2), +(5215, 2), +(5216, 2), +(5217, 2), +(5218, 2), +(5219, 2), +(5220, 2), +(5221, 2), +(5222, 2), +(5223, 2), +(5224, 2), +(5225, 2), +(5226, 2), +(5227, 2), +(5228, 2), +(5229, 2), +(5230, 2), +(5232, 2), +(5233, 2), +(5234, 2), +(5235, 2), +(5236, 2), +(5237, 2), +(5238, 2), +(5239, 2), +(5240, 2), +(5241, 2), +(5242, 2), +(5243, 2), +(5244, 2), +(5245, 2), +(5246, 2), +(5247, 2), +(5248, 2), +(5249, 2), +(5250, 2), +(5251, 2), +(5252, 2), +(5253, 2), +(5254, 2), +(5255, 2), +(5256, 2), +(5257, 2), +(5258, 2), +(5259, 2), +(5260, 2), +(5261, 2), +(5262, 2), +(5263, 2), +(5264, 2), +(5265, 2), +(5266, 2), +(5267, 2), +(5268, 2), +(5269, 2), +(5270, 2), +(5271, 2), +(5272, 2), +(5273, 2), +(5274, 2), +(5275, 2), +(5276, 2), +(5277, 2), +(5278, 2), +(5279, 2), +(5280, 2), +(5281, 2), +(5282, 2), +(5283, 2), +(5284, 2), +(5285, 2), +(5286, 2), +(5287, 2), +(5288, 2), +(5289, 2), +(5290, 2), +(5291, 2), +(5292, 2), +(5293, 2), +(5294, 2), +(5295, 2), +(5296, 2), +(5297, 2), +(5298, 2), +(5299, 2), +(5300, 2), +(5301, 2), +(5302, 2), +(5303, 2), +(5304, 2), +(5305, 2), +(5306, 2), +(5307, 2), +(5308, 2), +(5309, 2), +(5310, 2), +(5311, 2), +(5312, 2), +(5313, 2), +(5314, 2), +(5315, 2), +(5316, 2), +(5317, 2), +(5318, 2), +(5319, 2), +(5320, 2), +(5321, 2), +(5322, 2), +(5323, 2), +(5324, 2), +(5325, 2), +(5326, 2), +(5327, 2), +(5328, 2), +(5329, 2), +(5330, 2), +(5331, 2), +(5332, 2), +(5333, 2), +(5334, 2), +(5335, 2), +(5336, 2), +(5337, 2), +(5338, 2), +(5339, 2), +(5340, 2), +(5341, 2), +(5342, 2), +(5343, 2), +(5344, 2), +(5345, 2), +(5346, 2), +(5347, 2), +(5348, 2), +(5349, 2), +(5350, 2), +(5351, 2), +(5352, 2), +(5353, 2), +(5354, 2), +(5355, 2), +(5356, 2), +(5357, 2), +(5358, 2), +(5359, 2), +(5360, 2), +(5361, 2), +(5362, 2), +(5363, 2), +(5364, 2), +(5365, 2), +(5366, 2), +(5367, 2), +(5368, 2), +(5369, 2), +(5370, 2), +(5371, 2), +(5372, 2), +(5373, 2), +(5374, 2), +(5375, 2), +(5376, 2), +(5377, 2), +(5378, 2), +(5379, 2), +(5380, 2), +(5381, 2), +(5382, 2), +(5383, 2), +(5384, 2), +(5385, 2), +(5386, 2), +(5387, 2), +(5388, 2), +(5389, 2), +(5390, 2), +(5391, 2), +(5392, 2), +(5393, 2), +(5394, 2), +(5395, 2), +(5396, 2), +(5397, 2), +(5398, 2), +(5399, 2), +(5400, 2), +(5401, 2), +(5402, 2), +(5403, 2), +(5404, 2), +(5405, 2), +(5406, 2), +(5407, 2), +(5408, 2), +(5409, 2), +(5410, 2), +(5411, 2), +(5412, 2), +(5413, 2), +(5414, 2), +(5415, 2), +(5416, 2), +(5417, 2), +(5418, 2), +(5419, 2), +(5420, 2), +(5421, 2), +(5422, 2), +(5423, 2), +(5424, 2), +(5425, 2), +(5426, 2), +(5427, 2), +(5428, 2), +(5429, 2), +(5430, 2), +(5431, 2), +(5432, 2), +(5433, 2), +(5434, 2), +(5435, 2), +(5436, 2), +(5437, 2), +(5438, 2), +(5439, 2), +(5440, 2), +(5441, 2), +(5442, 2), +(5443, 2), +(5444, 2), +(5445, 2), +(5446, 2), +(5447, 2), +(5448, 2), +(5449, 2), +(5450, 2), +(5451, 2), +(5452, 2), +(5453, 2), +(5454, 2), +(5455, 2), +(5456, 2), +(5457, 2), +(5458, 2), +(5459, 2), +(5460, 2), +(5461, 2), +(5462, 2), +(5463, 2), +(5464, 2), +(5465, 2), +(5466, 2), +(5467, 2), +(5468, 2), +(5469, 2), +(5470, 2), +(5471, 2), +(5472, 2), +(5473, 2), +(5474, 2), +(5475, 2), +(5476, 2), +(5477, 2), +(5478, 2), +(5479, 2), +(5480, 2), +(5481, 2), +(5482, 2), +(5483, 2), +(5484, 2), +(5485, 2), +(5486, 2), +(5487, 2), +(5488, 2), +(5489, 2), +(5490, 2), +(5491, 2), +(5492, 2), +(5493, 2), +(5494, 2), +(5495, 2), +(5496, 2), +(5497, 2), +(5498, 2), +(5499, 2), +(5500, 2), +(5501, 2), +(5502, 2), +(5503, 2), +(5504, 2), +(5505, 2), +(5506, 2), +(5507, 2), +(5508, 2), +(5509, 2), +(5510, 2), +(5511, 2), +(5512, 2), +(5513, 2), +(5514, 2), +(5515, 2), +(5516, 2), +(5517, 2), +(5518, 2), +(5519, 2), +(5520, 2), +(5521, 2), +(5522, 2), +(5523, 2), +(5524, 2), +(5525, 2), +(5526, 2), +(5527, 2), +(5528, 2), +(5529, 2), +(5530, 2), +(5531, 2), +(5532, 2), +(5533, 2), +(5534, 2), +(5535, 2), +(5536, 2), +(5537, 2), +(5538, 2), +(5539, 2), +(5540, 2), +(5541, 2), +(5542, 2), +(5543, 2), +(5544, 2), +(5545, 2), +(5546, 2), +(5547, 2), +(5548, 2), +(5549, 2), +(5550, 2), +(5551, 2), +(5552, 2), +(5553, 2), +(5554, 2), +(5555, 2), +(5556, 2), +(5557, 2), +(5558, 2), +(5559, 2), +(5560, 2), +(5561, 2), +(5562, 2), +(5563, 2), +(5564, 2), +(5565, 2), +(5566, 2), +(5567, 2), +(5569, 2), +(5570, 2), +(5571, 2), +(5572, 2), +(5573, 2), +(5575, 2), +(5577, 2), +(5578, 2), +(5579, 2), +(5580, 2), +(5581, 2), +(5583, 2), +(5584, 2), +(5586, 2), +(5587, 2), +(5589, 2), +(5591, 2), +(5593, 2), +(5594, 2), +(5595, 2), +(5596, 2), +(5597, 2), +(5598, 2), +(5599, 2), +(5600, 2), +(5601, 2), +(5602, 2), +(5603, 2), +(5604, 2), +(5605, 2), +(5606, 2), +(5607, 2), +(5608, 2), +(5609, 2), +(5610, 2), +(5611, 2), +(5612, 2), +(5613, 2), +(5614, 2), +(5615, 2), +(5616, 2), +(5617, 2), +(5618, 2), +(5619, 2), +(5620, 2), +(5621, 2), +(5622, 2), +(5623, 2), +(5624, 2), +(5625, 2), +(5626, 2), +(5627, 2), +(5628, 2), +(5629, 2), +(5630, 2), +(5631, 2), +(5632, 2), +(5633, 2), +(5634, 2), +(5635, 2), +(5636, 2), +(5637, 2), +(5638, 2), +(5639, 2), +(5640, 2), +(5641, 2), +(5642, 2), +(5643, 2), +(5644, 2), +(5645, 2), +(5646, 2), +(5647, 2), +(5648, 2), +(5649, 2), +(5650, 2), +(5651, 2), +(5652, 2), +(5653, 2), +(5654, 2), +(5655, 2), +(5656, 2), +(5657, 2), +(5658, 2), +(5659, 2), +(5660, 2), +(5661, 2), +(5662, 2), +(5663, 2), +(5664, 2), +(5665, 2), +(5666, 2), +(5668, 2), +(5669, 2), +(5670, 2), +(5671, 2), +(5672, 2), +(5673, 2), +(5674, 2), +(5676, 2), +(5677, 2), +(5678, 2), +(5679, 2), +(5680, 2), +(5681, 2), +(5682, 2), +(5683, 2), +(5684, 2), +(5685, 2), +(5686, 2), +(5688, 2), +(5690, 2), +(5694, 2), +(5695, 2), +(5696, 2), +(5697, 2), +(5698, 2), +(5699, 2), +(5700, 2), +(5701, 2), +(5702, 2), +(5703, 2), +(5704, 2), +(5705, 2), +(5706, 2), +(5707, 2), +(5708, 2), +(5709, 2), +(5710, 2), +(5711, 2), +(5712, 2), +(5713, 2), +(5714, 2), +(5715, 2), +(5716, 2), +(5717, 2), +(5718, 2), +(5719, 2), +(5720, 2), +(5721, 2), +(5722, 2), +(5723, 2), +(5724, 2), +(5725, 2), +(5727, 2), +(5729, 2), +(5730, 2), +(5731, 2), +(5733, 2), +(5734, 2), +(5735, 2), +(5736, 2), +(5737, 2), +(5738, 2), +(5739, 2), +(5740, 2), +(5741, 2), +(5742, 2), +(5743, 2), +(5744, 2), +(5745, 2), +(5746, 2), +(5747, 2), +(5748, 2), +(5749, 2), +(5750, 2), +(5751, 2), +(5752, 2), +(5753, 2), +(5754, 2), +(5755, 2), +(5756, 2), +(5757, 2), +(5758, 2), +(5759, 2), +(5760, 2), +(5761, 2), +(5762, 2), +(5763, 2), +(5764, 2), +(5765, 2), +(5766, 2), +(5767, 2), +(5768, 2), +(5769, 2), +(5770, 2), +(5771, 2), +(5772, 2), +(5773, 2), +(5774, 2), +(5775, 3), +(5777, 3), +(5783, 3), +(5785, 3), +(5788, 3), +(5802, 3), +(5803, 3), +(5805, 3), +(5806, 3), +(5807, 3), +(5808, 3), +(5810, 3), +(5811, 3), +(5812, 3), +(5813, 3), +(5814, 3), +(5815, 3), +(5816, 3), +(5817, 3), +(5818, 3), +(5821, 3), +(5823, 3), +(5824, 3), +(5842, 3), +(5843, 3), +(5848, 3), +(5855, 3), +(5859, 3), +(5860, 3), +(5863, 3), +(5866, 3), +(5868, 3), +(5871, 3), +(5872, 3), +(5873, 3), +(5874, 3), +(5875, 3), +(5876, 3), +(5877, 3), +(5878, 3), +(5880, 3), +(5882, 3), +(5883, 3), +(5885, 3), +(5886, 3), +(5887, 3), +(5890, 3), +(5891, 3), +(5892, 3), +(5893, 3), +(5894, 3), +(5896, 3), +(5897, 3), +(5899, 3), +(5900, 3), +(5901, 3), +(5902, 3), +(5903, 3), +(5904, 3), +(5905, 3), +(5906, 3), +(5907, 3), +(5908, 3), +(5910, 3), +(5911, 3), +(5912, 3), +(5913, 3), +(5914, 3), +(5915, 3), +(5916, 3), +(5917, 3), +(5921, 3), +(5922, 3), +(5923, 3), +(5924, 3), +(5925, 3), +(5926, 3), +(5927, 3), +(5928, 3), +(5929, 3), +(5930, 3), +(5931, 3), +(5932, 3), +(5933, 3), +(5934, 3), +(5935, 3), +(5936, 3), +(5937, 3), +(5947, 3), +(5948, 3), +(5949, 3), +(5950, 3), +(5951, 3), +(5952, 3), +(5953, 3), +(5954, 3), +(5955, 3), +(5956, 3), +(5957, 3), +(5958, 3), +(5959, 3), +(5960, 3), +(5961, 3), +(5962, 3), +(5963, 3), +(5964, 3), +(5965, 3), +(5966, 3), +(5967, 3), +(5968, 3), +(5969, 3), +(5970, 3), +(5971, 3), +(5972, 3), +(5973, 3), +(5974, 3), +(5975, 3), +(5976, 3), +(5977, 3), +(5978, 3), +(5979, 3), +(5980, 3), +(5981, 3), +(5982, 3), +(5983, 3), +(5984, 3), +(5986, 3), +(5987, 3), +(5988, 3), +(5989, 3), +(5990, 3), +(5991, 3), +(5992, 3), +(5993, 3), +(5994, 3), +(5995, 3), +(5996, 3), +(5997, 3), +(5998, 3), +(5999, 3), +(6000, 3), +(6001, 3), +(6002, 3), +(6003, 3), +(6004, 3), +(6006, 3), +(6007, 3), +(6008, 3), +(6009, 3), +(6010, 3), +(6011, 3), +(6012, 3), +(6013, 3), +(6014, 3), +(6016, 3), +(6017, 3), +(6019, 3), +(6020, 3), +(6021, 3), +(6023, 3), +(6024, 3), +(6025, 3), +(6027, 3), +(6029, 3), +(6031, 3), +(6033, 3), +(6034, 3), +(6035, 3), +(6036, 3), +(6038, 3), +(6039, 3), +(6040, 3), +(6041, 3), +(6042, 3), +(6044, 3), +(6045, 3), +(6046, 3), +(6047, 3), +(6048, 3), +(6049, 3), +(6050, 3), +(6052, 3), +(6053, 3), +(6054, 3), +(6056, 3), +(6057, 3), +(6058, 3), +(6059, 3), +(6060, 3), +(6061, 3), +(6062, 3), +(6063, 3), +(6064, 3), +(6065, 3), +(6067, 3), +(6069, 3), +(6071, 3), +(6072, 3), +(6073, 3), +(6074, 3), +(6076, 3), +(6078, 3), +(6081, 3), +(6083, 3), +(6085, 3), +(6087, 3), +(6091, 3), +(6094, 3), +(6097, 3), +(6098, 3), +(6108, 3), +(6110, 3), +(6111, 3), +(6112, 3), +(6114, 3), +(6118, 3), +(6119, 3), +(6124, 3), +(6125, 3), +(6126, 3), +(6127, 3), +(6128, 3), +(6129, 3), +(6130, 3), +(6131, 3), +(6132, 3), +(6134, 3), +(6135, 3), +(6136, 3), +(6137, 3), +(6138, 3), +(6139, 3), +(6141, 3), +(6142, 3), +(6143, 3), +(6144, 3), +(6145, 3), +(6146, 3), +(6147, 3), +(6149, 3), +(6150, 3), +(6151, 3), +(6153, 3), +(6154, 3), +(6156, 3), +(6157, 3), +(6158, 3), +(6160, 3), +(6161, 3), +(6162, 3), +(6164, 3), +(6165, 3), +(6167, 3), +(6168, 3), +(6169, 3), +(6171, 3), +(6172, 3), +(6173, 3), +(6175, 3), +(6176, 3), +(6177, 3), +(6178, 3), +(6180, 3), +(6181, 3), +(6182, 3), +(6184, 3), +(6185, 3), +(6187, 3), +(6188, 3), +(6189, 3), +(6190, 3), +(6191, 3), +(6192, 3), +(6194, 3), +(6195, 3), +(6196, 3), +(6198, 3), +(6199, 3), +(6200, 3), +(6201, 3), +(6202, 3), +(6204, 3), +(6205, 3), +(6206, 3), +(6207, 3), +(6208, 3), +(6209, 3), +(6210, 3), +(6212, 3), +(6213, 3), +(6214, 3), +(6215, 3), +(6217, 3), +(6218, 3), +(6219, 3), +(6220, 3), +(6222, 3), +(6223, 3), +(6224, 3), +(6226, 3), +(6227, 3), +(6228, 3), +(6229, 3), +(6231, 3), +(6232, 3), +(6233, 3), +(6234, 3), +(6235, 3), +(6236, 3), +(6237, 3), +(6238, 3), +(6239, 3), +(6240, 3), +(6242, 3), +(6243, 3), +(6244, 3), +(6245, 3), +(6246, 3), +(6247, 3), +(6249, 3), +(6250, 3), +(6252, 3), +(6253, 3), +(6255, 3), +(6256, 3), +(6257, 3), +(6258, 3), +(6259, 3), +(6260, 3), +(6262, 3), +(6263, 3), +(6264, 3), +(6265, 3), +(6267, 3), +(6268, 3), +(6269, 3), +(6270, 3), +(6272, 3), +(6273, 3), +(6275, 3), +(6276, 3), +(6277, 3), +(6278, 3), +(6279, 3), +(6281, 3), +(6282, 3), +(6283, 3), +(6284, 3), +(6285, 3), +(6287, 3), +(6288, 3), +(6289, 3), +(6290, 3), +(6292, 3), +(6293, 3), +(6295, 3), +(6296, 3), +(6297, 3), +(6298, 3), +(6299, 3), +(6300, 3), +(6301, 3), +(6302, 3), +(6303, 3), +(6305, 3), +(6306, 3), +(6307, 3), +(6308, 3), +(6309, 3), +(6310, 3), +(6311, 3), +(6312, 3), +(6314, 3), +(6315, 3), +(6316, 3), +(6317, 3), +(6318, 3), +(6319, 3), +(6320, 3), +(6321, 3), +(6322, 3), +(6323, 3), +(6324, 3), +(6325, 3), +(6326, 3), +(6328, 3), +(6329, 3), +(6331, 3), +(6332, 3), +(6333, 3), +(6335, 3), +(6336, 3), +(6337, 3), +(6338, 3), +(6339, 3), +(6340, 3), +(6341, 3), +(6342, 3), +(6343, 3), +(6344, 3), +(6345, 3), +(6346, 3), +(6347, 3), +(6349, 3), +(6350, 3), +(6351, 3), +(6352, 3), +(6355, 3), +(6356, 3), +(6357, 3), +(6358, 3), +(6359, 3), +(6360, 3), +(6361, 3), +(6362, 3), +(6364, 3), +(6365, 3), +(6366, 3), +(6367, 3), +(6368, 3), +(6369, 3), +(6370, 3), +(6371, 3), +(6372, 3), +(6373, 3), +(6374, 3), +(6375, 3), +(6376, 3), +(6377, 3), +(6378, 3), +(6379, 3), +(6380, 3), +(6381, 3), +(6382, 3), +(6383, 3), +(6384, 3), +(6385, 3), +(6386, 3), +(6387, 3), +(6388, 3), +(6389, 3), +(6390, 3), +(6391, 3), +(6392, 3), +(6393, 3), +(6394, 3), +(6395, 3), +(6396, 3), +(6397, 3), +(6398, 3), +(6399, 3), +(6400, 3), +(6401, 3), +(6402, 3), +(6403, 3), +(6404, 3), +(6405, 3), +(6407, 3), +(6408, 3), +(6409, 3), +(6410, 3), +(6411, 3), +(6412, 3), +(6413, 3), +(6414, 3), +(6415, 3), +(6416, 3), +(6417, 3), +(6418, 3), +(6419, 3), +(6421, 3), +(6422, 3), +(6423, 3), +(6424, 3), +(6425, 3), +(6426, 3), +(6427, 3), +(6428, 3), +(6429, 3), +(6430, 3), +(6431, 3), +(6432, 3), +(6433, 3), +(6434, 3), +(6435, 3), +(6436, 3), +(6437, 3), +(6439, 3), +(6440, 3), +(6441, 3), +(6442, 3), +(6443, 3), +(6444, 3), +(6445, 3), +(6446, 3), +(6447, 3), +(6448, 3), +(6449, 3), +(6450, 3), +(6451, 3), +(6452, 3), +(6453, 3), +(6454, 3), +(6455, 3), +(6456, 3), +(6457, 3), +(6458, 3), +(6459, 3), +(6460, 3), +(6461, 3), +(6462, 3), +(6463, 3), +(6464, 3), +(6465, 3), +(6466, 3), +(6467, 3), +(6468, 3), +(6469, 3), +(6470, 3), +(6471, 3), +(6472, 3), +(6473, 3), +(6474, 3), +(6475, 3), +(6476, 3), +(6477, 3), +(6478, 3), +(6479, 3), +(6480, 3), +(6481, 3), +(6482, 3), +(6483, 3), +(6484, 3), +(6485, 3), +(6486, 3), +(6487, 3), +(6488, 3), +(6489, 3), +(6490, 3), +(6491, 3), +(6492, 3), +(6493, 3), +(6494, 3), +(6495, 3), +(6496, 3), +(6497, 3), +(6499, 3), +(6500, 3), +(6501, 3), +(6503, 3), +(6504, 3), +(6505, 3), +(6506, 3), +(6507, 3), +(6509, 3), +(6510, 3), +(6511, 3), +(6512, 3), +(6513, 3), +(6514, 3), +(6515, 3), +(6516, 3), +(6517, 3), +(6518, 3), +(6519, 3), +(6520, 3), +(6521, 3), +(6522, 3), +(6523, 3), +(6525, 3), +(6526, 3), +(6528, 3), +(6529, 3), +(6531, 3), +(6532, 3), +(6533, 3), +(6534, 3), +(6535, 3), +(6536, 3), +(6537, 3), +(6538, 3), +(6539, 3), +(6540, 3), +(6541, 3), +(6542, 3), +(6543, 3), +(6544, 3), +(6545, 3), +(6546, 3), +(6547, 3), +(6548, 3), +(6549, 3), +(6551, 3), +(6552, 3), +(6553, 3), +(6554, 3), +(6555, 3), +(6556, 3), +(6557, 3), +(6559, 3), +(6560, 3), +(6561, 3), +(6562, 3), +(6563, 3), +(6564, 3), +(6565, 3), +(6567, 3), +(6568, 3), +(6569, 3), +(6570, 3), +(6571, 3), +(6572, 3), +(6573, 3), +(6575, 3), +(6576, 3), +(6577, 3), +(6578, 3), +(6579, 3), +(6580, 3), +(6581, 3), +(6582, 3), +(6583, 3), +(6586, 3), +(6587, 3), +(6588, 3), +(6589, 3), +(6591, 3), +(6592, 3), +(6593, 3), +(6594, 3), +(6595, 3), +(6596, 3), +(6598, 3), +(6599, 3), +(6600, 3), +(6601, 3), +(6602, 3), +(6603, 3), +(6604, 3), +(6605, 3), +(6606, 3), +(6607, 3), +(6608, 3), +(6609, 3), +(6610, 3), +(6611, 3), +(6612, 3), +(6613, 3), +(6614, 3), +(6615, 3), +(6617, 3), +(6618, 3), +(6619, 3), +(6620, 3), +(6621, 3), +(6623, 3), +(6624, 3), +(6625, 3), +(6626, 3), +(6628, 3), +(6629, 3), +(6630, 3), +(6631, 3), +(6633, 3), +(6634, 3), +(6635, 3), +(6636, 3), +(6637, 3), +(6639, 3), +(6640, 3), +(6641, 3), +(6642, 3), +(6644, 3), +(6645, 3), +(6646, 3), +(6647, 3), +(6648, 3), +(6650, 3), +(6651, 3), +(6652, 3), +(6653, 3), +(6654, 3), +(6655, 3), +(6657, 3), +(6658, 3), +(6659, 3), +(6660, 3), +(6661, 3), +(6662, 3), +(6664, 3), +(6665, 3), +(6666, 3), +(6667, 3), +(6668, 3), +(6669, 3), +(6670, 3), +(6671, 3), +(6673, 3), +(6674, 3), +(6675, 3), +(6681, 3), +(6682, 3), +(6683, 3), +(6684, 3), +(6685, 3), +(6686, 3), +(6687, 3), +(6688, 3), +(6689, 3), +(6690, 3), +(6691, 3), +(6692, 3), +(6693, 3), +(6694, 3), +(6695, 3), +(6696, 3), +(6698, 3), +(6699, 3), +(6700, 3), +(6701, 3), +(6703, 3), +(6704, 3), +(6705, 3), +(6706, 3), +(6707, 3), +(6708, 3), +(6709, 3), +(6710, 3), +(6712, 3), +(6713, 3), +(6714, 3), +(6715, 3), +(6716, 3), +(6717, 3), +(6718, 3), +(6720, 3), +(6721, 3), +(6722, 3), +(6723, 3), +(6726, 3), +(6727, 3), +(6728, 3), +(6729, 3), +(6730, 3), +(6731, 3), +(6732, 3), +(6733, 3), +(6734, 3), +(6735, 3), +(6740, 3), +(6741, 3), +(6742, 3), +(6743, 3), +(6744, 3), +(6745, 3), +(6746, 3), +(6747, 3), +(6748, 3), +(6749, 3), +(6750, 3), +(6751, 3), +(6752, 3), +(6753, 3), +(6754, 3), +(6755, 3), +(6756, 3), +(6757, 3), +(6758, 3), +(6759, 3), +(6760, 3), +(6761, 3), +(6762, 3), +(6763, 3), +(6764, 3), +(6765, 3), +(6766, 3), +(6767, 3), +(6768, 3), +(6769, 3), +(6770, 3), +(6771, 3), +(6773, 3), +(6774, 3), +(6775, 3), +(6776, 3), +(6777, 3), +(6778, 3), +(6779, 3), +(6782, 3), +(6783, 3), +(6784, 3), +(6785, 3), +(6786, 3), +(6787, 3), +(6788, 3), +(6790, 3), +(6791, 3), +(6792, 3), +(6793, 3), +(6794, 3), +(6795, 3), +(6796, 3), +(6797, 3), +(6798, 3), +(6800, 3), +(6801, 3), +(6802, 3), +(6804, 3), +(6805, 3), +(6806, 3), +(6807, 3), +(6808, 3), +(6810, 3), +(6811, 3), +(6812, 3), +(6813, 3), +(6814, 3), +(6815, 3), +(6816, 3), +(6817, 3), +(6819, 3), +(6820, 3), +(6821, 3), +(6822, 3), +(6823, 3), +(6824, 3), +(6825, 3), +(6826, 4), +(6829, 4), +(6831, 4), +(6841, 4), +(6842, 4), +(6843, 4), +(6844, 4), +(6846, 4), +(6849, 4), +(6853, 4), +(6854, 4), +(6858, 4), +(6859, 4), +(6860, 4), +(6862, 4), +(6863, 4), +(6866, 4), +(6868, 4), +(6871, 4), +(6875, 4), +(6877, 4), +(6879, 4), +(6880, 4), +(6884, 4), +(6886, 4), +(6889, 4), +(6890, 4), +(6891, 4), +(6895, 4), +(6897, 4), +(6898, 4), +(6899, 4), +(6901, 4), +(6902, 4), +(6903, 4), +(6904, 4), +(6905, 4), +(6906, 4), +(6908, 4), +(6909, 4), +(6910, 4), +(6911, 4), +(6912, 4), +(6913, 4), +(6914, 4), +(6916, 4), +(6917, 4), +(6918, 4), +(6920, 4), +(6921, 4), +(6922, 4), +(6923, 4), +(6924, 4), +(6925, 4), +(6927, 4), +(6928, 4), +(6929, 4), +(6930, 4), +(6931, 4), +(6933, 4), +(6934, 4), +(6935, 4), +(6937, 4), +(6938, 4), +(6939, 4), +(6940, 4), +(6941, 4), +(6942, 4), +(6943, 4), +(6944, 4), +(6945, 4), +(6946, 4), +(6947, 4), +(6948, 4), +(6949, 4), +(6950, 4), +(6951, 4), +(6952, 4), +(6953, 4), +(6954, 4), +(6955, 4), +(6956, 4), +(6957, 4), +(6958, 4), +(6959, 4), +(6961, 4), +(6962, 4), +(6963, 4), +(6964, 4), +(6966, 4), +(6967, 4), +(6968, 4), +(6969, 4), +(6971, 4), +(6972, 4), +(6973, 4), +(6974, 4), +(6975, 4), +(6976, 4), +(6977, 4), +(6978, 4), +(6979, 4), +(6980, 4), +(6981, 4), +(6982, 4), +(6983, 4), +(6984, 4), +(6985, 4), +(6986, 4), +(6987, 4), +(6988, 4), +(6989, 4), +(6991, 4), +(6992, 4), +(6993, 4), +(6994, 4), +(6995, 4), +(6996, 4), +(6997, 4), +(6998, 4), +(6999, 4), +(7000, 4), +(7002, 4), +(7003, 4), +(7004, 4), +(7005, 4), +(7006, 4), +(7007, 4), +(7008, 4), +(7009, 4), +(7010, 4), +(7011, 4), +(7012, 4), +(7013, 4), +(7014, 4), +(7015, 4), +(7016, 4), +(7017, 4), +(7018, 4), +(7019, 4), +(7020, 4), +(7022, 4), +(7023, 4), +(7024, 4), +(7025, 4), +(7026, 4), +(7027, 4), +(7028, 4), +(7029, 4), +(7030, 4), +(7031, 4), +(7033, 4), +(7034, 4), +(7035, 4), +(7036, 4), +(7037, 4), +(7038, 4), +(7039, 4), +(7040, 4), +(7041, 4), +(7042, 4), +(7043, 4), +(7044, 4), +(7045, 4), +(7046, 4), +(7047, 4), +(7048, 4), +(7049, 4), +(7050, 4), +(7051, 4), +(7052, 4), +(7053, 4), +(7054, 4), +(7055, 4), +(7056, 4), +(7057, 4), +(7058, 4), +(7059, 4), +(7060, 4), +(7061, 4), +(7062, 4), +(7063, 4), +(7064, 4), +(7066, 4), +(7067, 4), +(7068, 4), +(7070, 4), +(7071, 4), +(7072, 4), +(7073, 4), +(7074, 4), +(7075, 4), +(7076, 4), +(7077, 4), +(7078, 4), +(7079, 4), +(7081, 4), +(7082, 4), +(7083, 4), +(7084, 4), +(7085, 4), +(7086, 4), +(7087, 4), +(7088, 4), +(7089, 4), +(7090, 4), +(7092, 4), +(7093, 4), +(7094, 4), +(7095, 4), +(7096, 4), +(7098, 4), +(7099, 4), +(7100, 4), +(7102, 4), +(7103, 4), +(7104, 4), +(7105, 4), +(7107, 4), +(7108, 4), +(7109, 4), +(7110, 4), +(7111, 4), +(7112, 4), +(7113, 4), +(7115, 4), +(7116, 4), +(7117, 4), +(7118, 4), +(7119, 4), +(7120, 4), +(7121, 4), +(7122, 4), +(7124, 4), +(7125, 4), +(7126, 4), +(7128, 4), +(7129, 4), +(7130, 4), +(7131, 4), +(7132, 4), +(7133, 4), +(7134, 4), +(7135, 4), +(7136, 4), +(7137, 4), +(7138, 4), +(7139, 4), +(7140, 4), +(7141, 4), +(7142, 4), +(7143, 4), +(7144, 4), +(7145, 4), +(7146, 4), +(7147, 4), +(7148, 4), +(7149, 4), +(7150, 4), +(7151, 4), +(7152, 4), +(7153, 4), +(7154, 4), +(7155, 4), +(7162, 4), +(7163, 4), +(7164, 4), +(7165, 4), +(7166, 4), +(7167, 4), +(7168, 4), +(7169, 4), +(7170, 4), +(7171, 4), +(7172, 4), +(7173, 4), +(7174, 4), +(7175, 4), +(7176, 4), +(7177, 4), +(7178, 4), +(7179, 4), +(7180, 4), +(7181, 4), +(7182, 4), +(7184, 4), +(7185, 4), +(7186, 4), +(7187, 4), +(7188, 4), +(7189, 4), +(7190, 4), +(7191, 4), +(7192, 4), +(7193, 4), +(7194, 4), +(7196, 4), +(7197, 4), +(7198, 4), +(7199, 4), +(7200, 4), +(7201, 4), +(7202, 4), +(7203, 4), +(7205, 4), +(7206, 4), +(7207, 4), +(7208, 4), +(7209, 4), +(7211, 4), +(7212, 4), +(7213, 4), +(7220, 4), +(7221, 4), +(7222, 4), +(7224, 4), +(7225, 4), +(7226, 4), +(7227, 4), +(7228, 4), +(7229, 4), +(7231, 4), +(7232, 4), +(7233, 4), +(7234, 4), +(7235, 4), +(7236, 4), +(7237, 4), +(7238, 4), +(7239, 4), +(7240, 4), +(7241, 4), +(7242, 4), +(7243, 4), +(7244, 4), +(7245, 4), +(7246, 4), +(7247, 4), +(7248, 4), +(7249, 4), +(7250, 4), +(7251, 4), +(7252, 4), +(7253, 4), +(7255, 4), +(7256, 4), +(7257, 4), +(7258, 4), +(7259, 4), +(7261, 4), +(7262, 4), +(7263, 4), +(7264, 4), +(7265, 4), +(7266, 4), +(7267, 4), +(7268, 4), +(7270, 4), +(7271, 4), +(7272, 4), +(7273, 4), +(7274, 4), +(7275, 4), +(7277, 4), +(7278, 4), +(7279, 4), +(7280, 4), +(7281, 4), +(7282, 4), +(7283, 4), +(7284, 4), +(7285, 4), +(7286, 4), +(7287, 4), +(7288, 4), +(7290, 4), +(7291, 4), +(7292, 4), +(7293, 4), +(7295, 4), +(7296, 4), +(7297, 4), +(7298, 4), +(7299, 4), +(7300, 4), +(7301, 4), +(7302, 4), +(7303, 4), +(7304, 4), +(7305, 4), +(7306, 4), +(7307, 4), +(7308, 4), +(7309, 4), +(7310, 4), +(7311, 4), +(7312, 4), +(7313, 4), +(7314, 4), +(7315, 4), +(7316, 4), +(7317, 4), +(7318, 4), +(7319, 4), +(7320, 4), +(7322, 4), +(7323, 4), +(7324, 4), +(7325, 4), +(7326, 4), +(7327, 4), +(7329, 4), +(7330, 4), +(7331, 4), +(7332, 4), +(7334, 4), +(7335, 4), +(7336, 4), +(7337, 4), +(7338, 4), +(7340, 4), +(7341, 4), +(7342, 4), +(7344, 4), +(7345, 4), +(7346, 4), +(7347, 4), +(7348, 4), +(7349, 4), +(7350, 4), +(7352, 4), +(7353, 4), +(7354, 4), +(7355, 4), +(7356, 4), +(7358, 4), +(7359, 4), +(7360, 4), +(7361, 4), +(7362, 4), +(7364, 4), +(7365, 4), +(7366, 4), +(7367, 4), +(7369, 4), +(7370, 4), +(7371, 4), +(7372, 4), +(7374, 4), +(7375, 4), +(7376, 4), +(7378, 4), +(7379, 4), +(7380, 4), +(7381, 4), +(7383, 4), +(7384, 4), +(7385, 4), +(7387, 4), +(7388, 4), +(7389, 4), +(7390, 4), +(7391, 4), +(7392, 4), +(7393, 4), +(7394, 4), +(7395, 4), +(7396, 4), +(7397, 4), +(7398, 4), +(7399, 4), +(7400, 4), +(7401, 4), +(7402, 4), +(7403, 4), +(7404, 4), +(7405, 4), +(7406, 4), +(7407, 4), +(7408, 4), +(7409, 4), +(7410, 4), +(7411, 4), +(7412, 4), +(7413, 4), +(7414, 4), +(7415, 4), +(7416, 4), +(7417, 4), +(7418, 4), +(7419, 4), +(7420, 4), +(7421, 4), +(7422, 4), +(7423, 4), +(7424, 4), +(7425, 4), +(7426, 4), +(7427, 4), +(7428, 4), +(7429, 4), +(7430, 4), +(7431, 4), +(7432, 4), +(7433, 4), +(7434, 4), +(7435, 4), +(7436, 4), +(7437, 4), +(7438, 4), +(7439, 4), +(7440, 4), +(7441, 4), +(7442, 4), +(7443, 4), +(7444, 4), +(7445, 4), +(7446, 4), +(7447, 4), +(7448, 4), +(7449, 4), +(7450, 4), +(7451, 4), +(7452, 4), +(7453, 4), +(7454, 4), +(7455, 4), +(7457, 4), +(7458, 4), +(7459, 4), +(7460, 4), +(7461, 4), +(7462, 5), +(7465, 5), +(7467, 5), +(7471, 5), +(7473, 5), +(7474, 5), +(7476, 5), +(7477, 5), +(7479, 5), +(7487, 5), +(7491, 5), +(7493, 5), +(7506, 5), +(7507, 5), +(7509, 5), +(7512, 5), +(7515, 5), +(7518, 5), +(7521, 5), +(7525, 5), +(7526, 5), +(7527, 5), +(7534, 5), +(7536, 5), +(7545, 5), +(7546, 5), +(7547, 5), +(7549, 5), +(7551, 5), +(7552, 5), +(7554, 5), +(7555, 5), +(7556, 5), +(7557, 5), +(7558, 5), +(7559, 5), +(7561, 5), +(7562, 5), +(7563, 5), +(7565, 5), +(7567, 5), +(7573, 5), +(7574, 5), +(7575, 5), +(7576, 5), +(7578, 5), +(7579, 5), +(7581, 5), +(7582, 5), +(7583, 5), +(7584, 5), +(7586, 5), +(7587, 5), +(7601, 5), +(7609, 5), +(7617, 5), +(7623, 5), +(7625, 5), +(7628, 5), +(7630, 5), +(7632, 5), +(7634, 5), +(7643, 5), +(7647, 5), +(7654, 5), +(7655, 5), +(7656, 5), +(7657, 5), +(7658, 5), +(7660, 5), +(7661, 5), +(7663, 5), +(7664, 5), +(7665, 5), +(7666, 5), +(7668, 5), +(7670, 5), +(7672, 5), +(7673, 5), +(7674, 5), +(7676, 5), +(7678, 5), +(7679, 5), +(7680, 5), +(7682, 5), +(7683, 5), +(7684, 5), +(7685, 5), +(7688, 5), +(7690, 5), +(7691, 5), +(7695, 5), +(7697, 5), +(7699, 5), +(7701, 5), +(7704, 5), +(7708, 5), +(7710, 5), +(7712, 5), +(7713, 5), +(7715, 5), +(7716, 5), +(7718, 5), +(7720, 5), +(7721, 5), +(7722, 5), +(7725, 5), +(7726, 5), +(7727, 5), +(7728, 5), +(7730, 5), +(7731, 5), +(7732, 5), +(7734, 5), +(7736, 5), +(7737, 5), +(7738, 5), +(7739, 5), +(7741, 5), +(7742, 5), +(7743, 5), +(7744, 5), +(7745, 5), +(7746, 5), +(7747, 5), +(7748, 5), +(7750, 5), +(7751, 5), +(7752, 5), +(7753, 5), +(7754, 5), +(7755, 5), +(7756, 5), +(7758, 5), +(7759, 5), +(7760, 5), +(7761, 5), +(7762, 5), +(7763, 5), +(7765, 5), +(7766, 5), +(7767, 5), +(7768, 5), +(7769, 5), +(7770, 5), +(7771, 5), +(7773, 5), +(7774, 5), +(7775, 5), +(7776, 5), +(7777, 5), +(7779, 5), +(7780, 5), +(7781, 5), +(7782, 5), +(7783, 5), +(7784, 5), +(7785, 5), +(7786, 5), +(7788, 5), +(7789, 5), +(7790, 5), +(7791, 5), +(7792, 5), +(7793, 5), +(7794, 5), +(7795, 5), +(7797, 5), +(7798, 5), +(7799, 5), +(7800, 5), +(7801, 5), +(7802, 5), +(7803, 5), +(7804, 5), +(7805, 5), +(7806, 5), +(7807, 5), +(7808, 5), +(7809, 5), +(7810, 5), +(7811, 5), +(7812, 5), +(7813, 5), +(7814, 5), +(7815, 5), +(7816, 5), +(7817, 5), +(7818, 5), +(7819, 5), +(7820, 5), +(7821, 5), +(7822, 5), +(7823, 5), +(7824, 5), +(7825, 5), +(7826, 5), +(7827, 5), +(7828, 5), +(7829, 5), +(7830, 5), +(7831, 5), +(7832, 5), +(7833, 5), +(7834, 5), +(7835, 5), +(7836, 5), +(7837, 5), +(7838, 5), +(7839, 5), +(7840, 5), +(7841, 5), +(7842, 5), +(7843, 5), +(7844, 5), +(7845, 5), +(7846, 5), +(7848, 5), +(7849, 5), +(7850, 5), +(7851, 5), +(7852, 5), +(7853, 5), +(7854, 5), +(7855, 5), +(7856, 5), +(7857, 5), +(7858, 5), +(7859, 5), +(7860, 5), +(7861, 5), +(7862, 5), +(7863, 5), +(7864, 5), +(7865, 5), +(7866, 5), +(7868, 5), +(7869, 5), +(7870, 5), +(7871, 5), +(7872, 5), +(7873, 5), +(7874, 5), +(7875, 5), +(7876, 5), +(7877, 5), +(7879, 5), +(7880, 5), +(7881, 5), +(7882, 5), +(7883, 5), +(7885, 5), +(7886, 5), +(7887, 5), +(7888, 5), +(7889, 5), +(7890, 5), +(7891, 5), +(7893, 5), +(7894, 5), +(7895, 5), +(7896, 5), +(7897, 5), +(7898, 5), +(7900, 5), +(7901, 5), +(7902, 5), +(7903, 5), +(7905, 5), +(7906, 5), +(7907, 5), +(7908, 5), +(7909, 5), +(7910, 5), +(7911, 5), +(7912, 5), +(7913, 5), +(7914, 5), +(7915, 5), +(7916, 5), +(7917, 5), +(7918, 5), +(7919, 5), +(7920, 5), +(7921, 5), +(7923, 5), +(7924, 5), +(7925, 5), +(7926, 5), +(7927, 5), +(7928, 5), +(7929, 5), +(7930, 5), +(7932, 5), +(7933, 5), +(7934, 5), +(7935, 5), +(7936, 5), +(7937, 5), +(7938, 5), +(7939, 5), +(7940, 5), +(7941, 5), +(7942, 5), +(7943, 5), +(7944, 5), +(7945, 5), +(7946, 5), +(7947, 5), +(7948, 5), +(7949, 5), +(7950, 5), +(7951, 5), +(7952, 5), +(7953, 5), +(7954, 5), +(7955, 5), +(7956, 5), +(7957, 5), +(7958, 5), +(7959, 5), +(7960, 5), +(7961, 5), +(7962, 5), +(7963, 5), +(7964, 5), +(7965, 5), +(7966, 5), +(7967, 5), +(7968, 5), +(7969, 5), +(7970, 5), +(7971, 5), +(7972, 5), +(7973, 5), +(7974, 5), +(7975, 5), +(7976, 5), +(7978, 5), +(7979, 5), +(7980, 5), +(7982, 5), +(7983, 5), +(7984, 5), +(7985, 5), +(7986, 5), +(7987, 5), +(7988, 5), +(7989, 5), +(7990, 5), +(7992, 5), +(7993, 5), +(7994, 5), +(7995, 5), +(7996, 5), +(7997, 5), +(7999, 5), +(8000, 5), +(8001, 5), +(8002, 5), +(8003, 5), +(8004, 5), +(8005, 5), +(8007, 5), +(8008, 5), +(8009, 5), +(8010, 5), +(8011, 5), +(8012, 5), +(8013, 5), +(8014, 5), +(8015, 5), +(8016, 5), +(8017, 5), +(8018, 5), +(8019, 5), +(8020, 5), +(8021, 5), +(8022, 5), +(8024, 5), +(8025, 5), +(8026, 5), +(8027, 5), +(8028, 5), +(8029, 5), +(8030, 5), +(8031, 5), +(8032, 5), +(8033, 5), +(8034, 5), +(8035, 5), +(8037, 5), +(8038, 5), +(8039, 5), +(8040, 5), +(8041, 5), +(8042, 5), +(8043, 5), +(8044, 5), +(8045, 5), +(8046, 5), +(8047, 5), +(8048, 5), +(8049, 5), +(8050, 5), +(8051, 5), +(8052, 5), +(8053, 5), +(8054, 5), +(8055, 5), +(8057, 5), +(8058, 5), +(8059, 5), +(8060, 5), +(8061, 5), +(8062, 5), +(8063, 5), +(8064, 5), +(8065, 5), +(8066, 5), +(8067, 5), +(8068, 5), +(8069, 5), +(8070, 5), +(8071, 5), +(8072, 5), +(8074, 5), +(8075, 5), +(8076, 5), +(8078, 5), +(8079, 5), +(8080, 5), +(8081, 5), +(8082, 5), +(8083, 5), +(8084, 5), +(8085, 5), +(8087, 5), +(8088, 5), +(8089, 5), +(8090, 5), +(8091, 5), +(8092, 5), +(8093, 5), +(8095, 5), +(8096, 5), +(8097, 5), +(8098, 5), +(8100, 5), +(8101, 5), +(8102, 5), +(8103, 5), +(8104, 5), +(8105, 5), +(8106, 5), +(8107, 5), +(8108, 5), +(8109, 5), +(8110, 5), +(8111, 5), +(8112, 5), +(8113, 5), +(8114, 5), +(8115, 5), +(8116, 5), +(8117, 5), +(8118, 5), +(8119, 5), +(8120, 5), +(8121, 5), +(8122, 5), +(8123, 5), +(8124, 5), +(8125, 5), +(8126, 5), +(8128, 5), +(8129, 5), +(8130, 5), +(8131, 5), +(8132, 5), +(8133, 5), +(8134, 5), +(8135, 5), +(8136, 5), +(8137, 5), +(8138, 5), +(8139, 5), +(8140, 5), +(8141, 5), +(8142, 5), +(8143, 5), +(8144, 5), +(8145, 5), +(8146, 5), +(8147, 5), +(8149, 5), +(8150, 5), +(8151, 5), +(8152, 5), +(8153, 5), +(8154, 5), +(8155, 5), +(8157, 5), +(8158, 5), +(8159, 5), +(8160, 5), +(8161, 5), +(8162, 5), +(8164, 5), +(8165, 5), +(8166, 5), +(8167, 5), +(8168, 5), +(8169, 5), +(8170, 5), +(8172, 5), +(8173, 5), +(8174, 5), +(8175, 5), +(8176, 5), +(8177, 5), +(8178, 5), +(8180, 5), +(8181, 5), +(8182, 5), +(8183, 5), +(8184, 5), +(8185, 5), +(8186, 5), +(8187, 5), +(8189, 5), +(8190, 5), +(8191, 5), +(8192, 5), +(8193, 5), +(8194, 5), +(8195, 5), +(8196, 5), +(8197, 5), +(8198, 5), +(8199, 5), +(8200, 5), +(8201, 5), +(8202, 5), +(8203, 5), +(8204, 5), +(8205, 5), +(8206, 5), +(8207, 5), +(8208, 5), +(8209, 5), +(8210, 5), +(8211, 5), +(8212, 5), +(8213, 5), +(8214, 5), +(8215, 5), +(8216, 5), +(8217, 5), +(8218, 5), +(8219, 5), +(8220, 5), +(8221, 5), +(8222, 5), +(8223, 5), +(8224, 5), +(8225, 5), +(8226, 5), +(8227, 5), +(8228, 5), +(8229, 5), +(8230, 5), +(8231, 5), +(8232, 5), +(8233, 5), +(8234, 5), +(8235, 5), +(8236, 5), +(8237, 5), +(8238, 5), +(8239, 5), +(8240, 5), +(8241, 5), +(8242, 5), +(8243, 5), +(8244, 5), +(8245, 5), +(8246, 5), +(8247, 5), +(8248, 5), +(8249, 5), +(8250, 5), +(8251, 5), +(8252, 5), +(8253, 5), +(8254, 5), +(8255, 5), +(8256, 5), +(8257, 5), +(8258, 5), +(8259, 5), +(8260, 5), +(8261, 5), +(8262, 5), +(8263, 5), +(8264, 5), +(8265, 5), +(8266, 5), +(8267, 5), +(8268, 5), +(8269, 5), +(8270, 5), +(8271, 5), +(8272, 5), +(8273, 5), +(8274, 5), +(8275, 5), +(8276, 5), +(8277, 5), +(8278, 5), +(8279, 5), +(8280, 5), +(8281, 5), +(8282, 5), +(8283, 5), +(8284, 5), +(8285, 5), +(8286, 5), +(8287, 5), +(8288, 5), +(8289, 5), +(8290, 5), +(8291, 5), +(8292, 5), +(8293, 5), +(8294, 5), +(8295, 5), +(8296, 5), +(8297, 5), +(8298, 5), +(8299, 5), +(8300, 5), +(8301, 5), +(8302, 5), +(8303, 5), +(8304, 5), +(8305, 5), +(8306, 5), +(8307, 5), +(8308, 5), +(8309, 5), +(8310, 5), +(8311, 5), +(8312, 5), +(8313, 5), +(8314, 5), +(8315, 5), +(8316, 5), +(8317, 5), +(8318, 5), +(8319, 5), +(8320, 5), +(8321, 5), +(8322, 5), +(8323, 5), +(8324, 5), +(8326, 5), +(8327, 5), +(8328, 5), +(8329, 5), +(8330, 5), +(8331, 5), +(8332, 5), +(8333, 5), +(8335, 5), +(8336, 5), +(8337, 5), +(8338, 5), +(8339, 5), +(8340, 5), +(8342, 5), +(8343, 5), +(8344, 5), +(8345, 5), +(8346, 5), +(8347, 5), +(8349, 5), +(8350, 5), +(8351, 5), +(8352, 5), +(8353, 5), +(8355, 5), +(8356, 5), +(8357, 5), +(8358, 5), +(8359, 5), +(8360, 5), +(8362, 5), +(8363, 5), +(8364, 5), +(8365, 5), +(8366, 5), +(8367, 5), +(8368, 5), +(8369, 5), +(8371, 5), +(8372, 5), +(8373, 5), +(8374, 5), +(8375, 5), +(8376, 5), +(8377, 5), +(8378, 5), +(8379, 5), +(8380, 5), +(8381, 5), +(8382, 5), +(8383, 5), +(8384, 5), +(8385, 5), +(8386, 5), +(8387, 5), +(8388, 5), +(8389, 5), +(8390, 5), +(8391, 5), +(8392, 5), +(8393, 5), +(8394, 5), +(8395, 5), +(8396, 5), +(8397, 5), +(8398, 5), +(8399, 5), +(8400, 5), +(8401, 5), +(8402, 5), +(8403, 5), +(8404, 5), +(8405, 5), +(8406, 5), +(8407, 5), +(8408, 5), +(8409, 5), +(8410, 5), +(8411, 5), +(8412, 5), +(8413, 5), +(8414, 5), +(8415, 5), +(8416, 5), +(8417, 5), +(8418, 5), +(8419, 5), +(8420, 5), +(8421, 5), +(8422, 5), +(8423, 5), +(8424, 5), +(8425, 5), +(8426, 5), +(8427, 5), +(8428, 5), +(8429, 5), +(8430, 5), +(8431, 5), +(8432, 5), +(8433, 5), +(8434, 5), +(8435, 5), +(8436, 5), +(8437, 5), +(8438, 5), +(8439, 5), +(8440, 5), +(8441, 5), +(8442, 5), +(8443, 5), +(8444, 5), +(8445, 5), +(8446, 5), +(8447, 5), +(8448, 5), +(8449, 5), +(8450, 5), +(8451, 5), +(8452, 5), +(8453, 5), +(8454, 5), +(8456, 5), +(8458, 5), +(8459, 5), +(8460, 5), +(8461, 5), +(8462, 5), +(8463, 5), +(8464, 5), +(8465, 5), +(8466, 5), +(8467, 5), +(8468, 5), +(8469, 5), +(8470, 5), +(8471, 5), +(8473, 5), +(8474, 5), +(8475, 5), +(8476, 5), +(8477, 5), +(8478, 5), +(8479, 5), +(8480, 5), +(8481, 5), +(8482, 5), +(8483, 5), +(8484, 5), +(8485, 5), +(8486, 5), +(8487, 5), +(8488, 5), +(8489, 5), +(8494, 5), +(8495, 5), +(8496, 5), +(8497, 5), +(8498, 5), +(8499, 5), +(8500, 5), +(8501, 5), +(8502, 5), +(8503, 5), +(8504, 5), +(8505, 5), +(8506, 5), +(8507, 5), +(8508, 5), +(8509, 5), +(8510, 5), +(8511, 5), +(8512, 5), +(8513, 5), +(8514, 5), +(8515, 5), +(8516, 5), +(8517, 5), +(8518, 5), +(8519, 5), +(8520, 5), +(8521, 5), +(8522, 5), +(8523, 5), +(8524, 5), +(8525, 5), +(8526, 5), +(8527, 5), +(8528, 5), +(8529, 5), +(8530, 5), +(8531, 5), +(8532, 5), +(8533, 5), +(8534, 5), +(8535, 5), +(8536, 5), +(8537, 5), +(8538, 5), +(8539, 5), +(8540, 5), +(8541, 5), +(8542, 5), +(8543, 5), +(8551, 5), +(8552, 5), +(8553, 5), +(8554, 5), +(8555, 5), +(8556, 5), +(8557, 5), +(8558, 5), +(8559, 5), +(8560, 5), +(8561, 5), +(8562, 5), +(8563, 5), +(8564, 5), +(8565, 5), +(8566, 5), +(8567, 5), +(8568, 5), +(8569, 5), +(8570, 5), +(8571, 5), +(8572, 5), +(8573, 5), +(8574, 5), +(8575, 5), +(8576, 5), +(8577, 5), +(8578, 5), +(8579, 5), +(8580, 5), +(8581, 5), +(8582, 5), +(8583, 5), +(8584, 5), +(8585, 5), +(8586, 5), +(8587, 5), +(8588, 5), +(8589, 5), +(8590, 5), +(8591, 5), +(8592, 5), +(8593, 5), +(8594, 5), +(8595, 5), +(8596, 5), +(8597, 5), +(8598, 5), +(8599, 5), +(8600, 5), +(8601, 5), +(8602, 5), +(8603, 5), +(8604, 5), +(8605, 5), +(8606, 5), +(8607, 5), +(8608, 5), +(8609, 5), +(8610, 5), +(8611, 5), +(8612, 5), +(8613, 5), +(8614, 5), +(8615, 5), +(8616, 5), +(8617, 5), +(8618, 5), +(8619, 5), +(8620, 5), +(8621, 5), +(8622, 5), +(8623, 5), +(8624, 5), +(8625, 5), +(8626, 5), +(8627, 5), +(8628, 5), +(8629, 5), +(8630, 5), +(8631, 5), +(8632, 5), +(8633, 5), +(8634, 5), +(8635, 5), +(8636, 5), +(8637, 5), +(8638, 5), +(8639, 5), +(8640, 5), +(8641, 5), +(8642, 5), +(8643, 5), +(8644, 5), +(8645, 5), +(8646, 5), +(8647, 5), +(8648, 5), +(8649, 5), +(8650, 5), +(8651, 5), +(8652, 5), +(8653, 5), +(8654, 5), +(8655, 5), +(8656, 5), +(8657, 5), +(8658, 5), +(8659, 5), +(8660, 5), +(8661, 5), +(8662, 5), +(8663, 5), +(8664, 5), +(8665, 5), +(8666, 5), +(8667, 5), +(8668, 5), +(8669, 5), +(8670, 5), +(8671, 5), +(8672, 5), +(8673, 5), +(8674, 5), +(8675, 5), +(8676, 5), +(8677, 5), +(8678, 5), +(8679, 5), +(8680, 5), +(8681, 5), +(8682, 5), +(8683, 5), +(8685, 5), +(8687, 5), +(8688, 5), +(8689, 5), +(8690, 5), +(8691, 5), +(8692, 5), +(8693, 5), +(8694, 5), +(8695, 5), +(8696, 5), +(8697, 5), +(8698, 5), +(8699, 5), +(8700, 5), +(8701, 5), +(8702, 5), +(8703, 5), +(8707, 5), +(8708, 5), +(8709, 5), +(8710, 5), +(8711, 5), +(8712, 5), +(8713, 5), +(8714, 5), +(8715, 5), +(8716, 5), +(8717, 5), +(8718, 5), +(8719, 5), +(8720, 5), +(8721, 5), +(8723, 5), +(8724, 5), +(8725, 5), +(8726, 5), +(8728, 5), +(8729, 5), +(8730, 5), +(8731, 5), +(8732, 5), +(8733, 5), +(8734, 5), +(8735, 5), +(8736, 5), +(8737, 5), +(8738, 5), +(8739, 5), +(8740, 5), +(8741, 5), +(8742, 5), +(8743, 5), +(8744, 5), +(8745, 5), +(8746, 5), +(8747, 5), +(8748, 5), +(8749, 5), +(8750, 5), +(8751, 5), +(8752, 5), +(8753, 5), +(8754, 5), +(8755, 5), +(8756, 5), +(8757, 5), +(8759, 5), +(8760, 5), +(8761, 5), +(8762, 5), +(8763, 5), +(8765, 5), +(8766, 5), +(8767, 5), +(8768, 5), +(8769, 5), +(8770, 5), +(8771, 5), +(8772, 5), +(8773, 5), +(8774, 5), +(8775, 5), +(8776, 5), +(8777, 5), +(8778, 5), +(8779, 5), +(8780, 5), +(8781, 5), +(8782, 5), +(8783, 5), +(8784, 5), +(8785, 5), +(8786, 5), +(8787, 5), +(8788, 5), +(8789, 5), +(8791, 5), +(8792, 5), +(8793, 5), +(8794, 5), +(8795, 5), +(8796, 5), +(8797, 5), +(8798, 5), +(8799, 5), +(8800, 5), +(8801, 5), +(8802, 5), +(8803, 5), +(8804, 5), +(8805, 5), +(8806, 5), +(8807, 5), +(8809, 5), +(8810, 5), +(8811, 5), +(8812, 5), +(8813, 5), +(8814, 5), +(8815, 5), +(8816, 5), +(8817, 5), +(8818, 5), +(8819, 5), +(8820, 5), +(8821, 5), +(8822, 5), +(8823, 5), +(8824, 5), +(8825, 5), +(8826, 5), +(8827, 5), +(8828, 5), +(8829, 5), +(8830, 5), +(8831, 5), +(8832, 5), +(8833, 5), +(8834, 5), +(8836, 5), +(8838, 5), +(8839, 5), +(8840, 5), +(8841, 5), +(8842, 5), +(8843, 5), +(8844, 5), +(8845, 5), +(8846, 5), +(8847, 5), +(8848, 5), +(8849, 5), +(8850, 5), +(8851, 5), +(8852, 5), +(8853, 5), +(8854, 5), +(8855, 5), +(8856, 5), +(8857, 5), +(8858, 5), +(8859, 5), +(8860, 5), +(8861, 5), +(8862, 5), +(8863, 5), +(8864, 5), +(8865, 5), +(8866, 5), +(8867, 5), +(8868, 5), +(8869, 5), +(8870, 5), +(8871, 5), +(8872, 5), +(8873, 5), +(8874, 5), +(8875, 5), +(8876, 5), +(8877, 5), +(8878, 5), +(8879, 5), +(8880, 5), +(8881, 5), +(8882, 5), +(8883, 5), +(8884, 5), +(8885, 5), +(8886, 5), +(8887, 5), +(8888, 5), +(8889, 5), +(8890, 5), +(8891, 5), +(8892, 5), +(8893, 5), +(8894, 5), +(8895, 5), +(8896, 5), +(8897, 5), +(8899, 5), +(8900, 5), +(8901, 5), +(8902, 5), +(8903, 5), +(8904, 5), +(8905, 5), +(8906, 5), +(8907, 5), +(8908, 5), +(8909, 5), +(8910, 5), +(8911, 5), +(8912, 5), +(8913, 5), +(8914, 5), +(8915, 5), +(8916, 5), +(8917, 5), +(8918, 5), +(8919, 5), +(8920, 5), +(8921, 5), +(8922, 5), +(8923, 5), +(8924, 5), +(8925, 5), +(8926, 5), +(8927, 5), +(8928, 5), +(8929, 5), +(8930, 5), +(8931, 5), +(8932, 5), +(8933, 5), +(8934, 5), +(8935, 5), +(8936, 5), +(8937, 5), +(8938, 5), +(8939, 5), +(8940, 5), +(8941, 5), +(8942, 6), +(8944, 6), +(8946, 6), +(8954, 6), +(8961, 6), +(8963, 6), +(8965, 6), +(8966, 6), +(8972, 6), +(8973, 6), +(8974, 6), +(8976, 6), +(8977, 6), +(8978, 6), +(8979, 6), +(8980, 6), +(8981, 6), +(8982, 6), +(8983, 6), +(8984, 6), +(8985, 6), +(8986, 6), +(8987, 6), +(8988, 6), +(8989, 6), +(8990, 6), +(8991, 6), +(8992, 6), +(8993, 6), +(8994, 6), +(8995, 6), +(8996, 6), +(8997, 6), +(8998, 6), +(8999, 6), +(9000, 6), +(9001, 6), +(9002, 6), +(9003, 6), +(9004, 6), +(9005, 6), +(9006, 6), +(9007, 6), +(9008, 6), +(9009, 6), +(9010, 6), +(9011, 6), +(9012, 6), +(9013, 6), +(9014, 6), +(9015, 6), +(9016, 6), +(9017, 6), +(9018, 6), +(9019, 6), +(9020, 6), +(9021, 6), +(9022, 6), +(9023, 6), +(9024, 6), +(9025, 6), +(9026, 6), +(9027, 6), +(9030, 6), +(9031, 6), +(9032, 6), +(9033, 6), +(9034, 6), +(9035, 6), +(9036, 6), +(9038, 6), +(9046, 6), +(9047, 6), +(9048, 6), +(9049, 6), +(9054, 6), +(9055, 6), +(9056, 6), +(9058, 6), +(9059, 6), +(9060, 6), +(9062, 6), +(9085, 6), +(9087, 6), +(9089, 6), +(9094, 6), +(9097, 6), +(9098, 6), +(9100, 6), +(9101, 6), +(9103, 6), +(9104, 6), +(9106, 6), +(9107, 6), +(9108, 6), +(9109, 6), +(9111, 6), +(9112, 6), +(9113, 6), +(9115, 6), +(9116, 6), +(9117, 6), +(9119, 6), +(9122, 6), +(9124, 6), +(9126, 6), +(9130, 6), +(9131, 6), +(9133, 6), +(9135, 6), +(9137, 6), +(9138, 6), +(9139, 6), +(9140, 6), +(9142, 6), +(9143, 6), +(9144, 6), +(9146, 6), +(9148, 6), +(9149, 6), +(9150, 6), +(9151, 6), +(9156, 6), +(9161, 6), +(9163, 6), +(9165, 6), +(9167, 6), +(9172, 6), +(9175, 6), +(9176, 6), +(9178, 6), +(9180, 6), +(9182, 6), +(9184, 6), +(9185, 6), +(9186, 6), +(9187, 6), +(9188, 6), +(9189, 6), +(9190, 6), +(9191, 6), +(9192, 6), +(9193, 6), +(9194, 6), +(9195, 6), +(9196, 6), +(9197, 6), +(9199, 6), +(9200, 6), +(9203, 6), +(9204, 6), +(9206, 6), +(9207, 6), +(9208, 6), +(9210, 6), +(9211, 6), +(9213, 6), +(9214, 6), +(9216, 6), +(9218, 6), +(9219, 6), +(9220, 6), +(9221, 6), +(9222, 6), +(9229, 6), +(9231, 6), +(9239, 6), +(9241, 6), +(9242, 6), +(9243, 6), +(9244, 6), +(9246, 6), +(9253, 6), +(9254, 6), +(9256, 6), +(9261, 6), +(9265, 6), +(9267, 6), +(9270, 6), +(9271, 6), +(9273, 6), +(9275, 6), +(9277, 6), +(9278, 6), +(9280, 6), +(9281, 6), +(9282, 6), +(9283, 6), +(9285, 6), +(9292, 6), +(9293, 6), +(9294, 6), +(9295, 6), +(9297, 6), +(9300, 6), +(9301, 6), +(9302, 6), +(9303, 6), +(9304, 6), +(9306, 6), +(9308, 6), +(9310, 6), +(9311, 6), +(9313, 6), +(9314, 6), +(9315, 6), +(9317, 6), +(9318, 6), +(9319, 6), +(9321, 6), +(9323, 6), +(9325, 6), +(9326, 6), +(9327, 6), +(9328, 6), +(9329, 6), +(9330, 6), +(9331, 6), +(9332, 6), +(9333, 6), +(9335, 6), +(9336, 6), +(9337, 6), +(9338, 6), +(9339, 6), +(9340, 6), +(9341, 6), +(9342, 6), +(9343, 6), +(9344, 6), +(9345, 6), +(9346, 6), +(9348, 6), +(9349, 6), +(9350, 6), +(9351, 6), +(9352, 6), +(9354, 6), +(9355, 6), +(9356, 6), +(9357, 6), +(9358, 6), +(9359, 6), +(9360, 6), +(9361, 6), +(9362, 6), +(9363, 6), +(9364, 6), +(9366, 6), +(9367, 6), +(9368, 6), +(9369, 6), +(9370, 6), +(9371, 6), +(9372, 6), +(9373, 6), +(9374, 6), +(9375, 6), +(9376, 6), +(9377, 6), +(9379, 6), +(9380, 6), +(9381, 6), +(9382, 6), +(9384, 6), +(9385, 6), +(9386, 6), +(9387, 6), +(9388, 6), +(9389, 6), +(9390, 6), +(9391, 6), +(9392, 6), +(9393, 6), +(9394, 6), +(9395, 6), +(9397, 6), +(9398, 6), +(9399, 6), +(9400, 6), +(9401, 6), +(9403, 6), +(9404, 6), +(9405, 6), +(9406, 6), +(9407, 6), +(9408, 6), +(9409, 6), +(9410, 6), +(9411, 6), +(9412, 6), +(9413, 6), +(9414, 6), +(9415, 6), +(9416, 6), +(9417, 6), +(9418, 6), +(9419, 6), +(9420, 6), +(9422, 6), +(9423, 6), +(9424, 6), +(9425, 6), +(9426, 6), +(9427, 6), +(9428, 6), +(9429, 6), +(9430, 6), +(9431, 6), +(9432, 6), +(9433, 6), +(9434, 6), +(9435, 6), +(9436, 6), +(9437, 6), +(9438, 6), +(9439, 6), +(9440, 6), +(9441, 6), +(9442, 6), +(9443, 6), +(9444, 6), +(9445, 6), +(9446, 6), +(9447, 6), +(9448, 6), +(9449, 6), +(9450, 6), +(9451, 6), +(9452, 6), +(9453, 6), +(9454, 6), +(9455, 6), +(9456, 6), +(9457, 6), +(9458, 6), +(9459, 6), +(9460, 6), +(9461, 6), +(9463, 6), +(9464, 6), +(9465, 6), +(9466, 6), +(9467, 6), +(9468, 6), +(9469, 6), +(9470, 6), +(9472, 6), +(9473, 6), +(9474, 6), +(9475, 6), +(9476, 6), +(9477, 6), +(9478, 6), +(9479, 6), +(9480, 6), +(9481, 6), +(9482, 6), +(9484, 6), +(9485, 6), +(9486, 6), +(9488, 6), +(9489, 6), +(9490, 6), +(9491, 6), +(9492, 6), +(9493, 6), +(9494, 6), +(9495, 6), +(9496, 6), +(9498, 6), +(9499, 6), +(9500, 6), +(9501, 6), +(9502, 6), +(9503, 6), +(9505, 6), +(9506, 6), +(9507, 6), +(9508, 6), +(9509, 6), +(9510, 6), +(9511, 6), +(9513, 6), +(9514, 6), +(9515, 6), +(9516, 6), +(9517, 6), +(9518, 6), +(9519, 6), +(9520, 6), +(9522, 6), +(9523, 6), +(9524, 6), +(9525, 6), +(9526, 6), +(9527, 6), +(9528, 6), +(9529, 6), +(9531, 6), +(9532, 6), +(9533, 6), +(9534, 6), +(9535, 6), +(9536, 6), +(9537, 6), +(9538, 6), +(9539, 6), +(9540, 6), +(9541, 6), +(9542, 6), +(9543, 6), +(9544, 6), +(9545, 6), +(9546, 6), +(9547, 6), +(9548, 6), +(9549, 6), +(9550, 6), +(9551, 6), +(9552, 6), +(9553, 6), +(9554, 6), +(9555, 6), +(9556, 6), +(9557, 6), +(9558, 6), +(9559, 6), +(9560, 6), +(9561, 6), +(9562, 6), +(9563, 6), +(9564, 6), +(9565, 6), +(9566, 6), +(9567, 6), +(9569, 6), +(9570, 6), +(9571, 6), +(9572, 6), +(9573, 6), +(9574, 6), +(9575, 6), +(9576, 6), +(9577, 6), +(9578, 6), +(9579, 6), +(9580, 6), +(9581, 6), +(9582, 6), +(9583, 6), +(9584, 6), +(9585, 6), +(9586, 6), +(9587, 6), +(9588, 6), +(9589, 6), +(9591, 6), +(9592, 6), +(9593, 6), +(9594, 6), +(9595, 6), +(9596, 6), +(9597, 6), +(9598, 6), +(9599, 6), +(9600, 6), +(9601, 6), +(9602, 6), +(9603, 6), +(9605, 6), +(9606, 6), +(9607, 6), +(9608, 6), +(9610, 6), +(9611, 6), +(9612, 6), +(9613, 6), +(9614, 6), +(9615, 6), +(9616, 6), +(9617, 6), +(9619, 6), +(9620, 6), +(9621, 6), +(9622, 6), +(9623, 6), +(9624, 6), +(9625, 6), +(9626, 6), +(9627, 6), +(9628, 6), +(9629, 6), +(9630, 6), +(9631, 6), +(9632, 6), +(9633, 6), +(9634, 6), +(9635, 6), +(9636, 6), +(9637, 6), +(9638, 6), +(9639, 6), +(9640, 6), +(9641, 6), +(9642, 6), +(9643, 6), +(9644, 6), +(9645, 6), +(9646, 6), +(9647, 6), +(9648, 6), +(9649, 6), +(9650, 6), +(9651, 6), +(9652, 6), +(9653, 6), +(9654, 6), +(9655, 6), +(9656, 6), +(9657, 6), +(9658, 6), +(9659, 6), +(9660, 6), +(9661, 6), +(9662, 6), +(9663, 6), +(9664, 6), +(9665, 6), +(9666, 6), +(9667, 6), +(9668, 6), +(9669, 6), +(9670, 6), +(9672, 6), +(9673, 6), +(9674, 6), +(9675, 6), +(9676, 6), +(9677, 6), +(9678, 6), +(9679, 6), +(9680, 6), +(9681, 6), +(9682, 6), +(9683, 6), +(9684, 6), +(9686, 6), +(9687, 6), +(9688, 6), +(9689, 6), +(9690, 6), +(9691, 6), +(9692, 6), +(9693, 6), +(9694, 6), +(9695, 6), +(9696, 6), +(9697, 6), +(9698, 6), +(9699, 6), +(9700, 6), +(9701, 6), +(9702, 6), +(9703, 6), +(9704, 6), +(9705, 6), +(9706, 6), +(9707, 6), +(9709, 6), +(9710, 6), +(9711, 6), +(9712, 6), +(9714, 6), +(9715, 6), +(9716, 6), +(9717, 6), +(9718, 6), +(9719, 6), +(9720, 6), +(9721, 6), +(9722, 6), +(9723, 6); +INSERT INTO `configuration` (`id`, `projectId`) VALUES +(9724, 6), +(9725, 6), +(9727, 6), +(9728, 6), +(9729, 6), +(9730, 6), +(9731, 6), +(9732, 6), +(9733, 6), +(9734, 6), +(9735, 6), +(9736, 6), +(9738, 6), +(9739, 6), +(9740, 6), +(9741, 6), +(9742, 6), +(9743, 6), +(9744, 6), +(9745, 6), +(9746, 6), +(9748, 6), +(9749, 6), +(9750, 6), +(9751, 6), +(9752, 6), +(9753, 6), +(9754, 6), +(9756, 6), +(9757, 6), +(9758, 6), +(9759, 6), +(9760, 6), +(9761, 6), +(9762, 6), +(9763, 6), +(9764, 6), +(9766, 6), +(9767, 6), +(9768, 6), +(9769, 6), +(9770, 6), +(9771, 6), +(9772, 6), +(9773, 6), +(9774, 6), +(9775, 6), +(9776, 6), +(9777, 6), +(9778, 6), +(9779, 6), +(9780, 6), +(9781, 6), +(9782, 6), +(9783, 6), +(9784, 6), +(9785, 6), +(9786, 6), +(9787, 6), +(9788, 6), +(9789, 6), +(9790, 6), +(9791, 6), +(9792, 6), +(9793, 6), +(9795, 6), +(9796, 6), +(9797, 6), +(9798, 6), +(9799, 6), +(9800, 6), +(9802, 6), +(9803, 6), +(9804, 6), +(9805, 6), +(9806, 6), +(9807, 6), +(9808, 6), +(9809, 6), +(9810, 6), +(9811, 6), +(9812, 6), +(9813, 6), +(9815, 6), +(9816, 6), +(9817, 6), +(9818, 6), +(9819, 6), +(9820, 6), +(9821, 6), +(9823, 6), +(9824, 6), +(9825, 6), +(9826, 6), +(9827, 6), +(9828, 6), +(9829, 6), +(9830, 6), +(9831, 6), +(9832, 6), +(9834, 6), +(9835, 6), +(9836, 6), +(9837, 6), +(9838, 6), +(9839, 6), +(9840, 6), +(9841, 6), +(9842, 6), +(9843, 6), +(9844, 6), +(9845, 6), +(9846, 6), +(9847, 6), +(9848, 6), +(9849, 6), +(9850, 6), +(9851, 6), +(9853, 6), +(9854, 6), +(9855, 6), +(9856, 6), +(9857, 6), +(9858, 6), +(9859, 6), +(9861, 6), +(9862, 6), +(9863, 6), +(9864, 6), +(9865, 6), +(9866, 6), +(9867, 6), +(9868, 6), +(9869, 6), +(9870, 6), +(9871, 6), +(9872, 6), +(9874, 6), +(9875, 6), +(9876, 6), +(9877, 6), +(9878, 6), +(9879, 6), +(9880, 6), +(9881, 6), +(9883, 6), +(9884, 6), +(9885, 6), +(9886, 6), +(9887, 6), +(9889, 6), +(9890, 6), +(9891, 6), +(9892, 6), +(9893, 6), +(9894, 6), +(9895, 6), +(9896, 6), +(9898, 6), +(9899, 6), +(9900, 6), +(9901, 6), +(9902, 6), +(9903, 6), +(9904, 6), +(9905, 6), +(9906, 6), +(9907, 6), +(9908, 6), +(9909, 6), +(9911, 6), +(9912, 6), +(9913, 6), +(9914, 6), +(9915, 6), +(9916, 6), +(9917, 6), +(9919, 6), +(9920, 6), +(9921, 6), +(9922, 6), +(9923, 6), +(9924, 6), +(9925, 6), +(9926, 6), +(9927, 6), +(9929, 6), +(9930, 6), +(9931, 6), +(9932, 6), +(9933, 6), +(9934, 6), +(9935, 6), +(9936, 6), +(9937, 6), +(9938, 6), +(9939, 6), +(9940, 6), +(9941, 6), +(9942, 6), +(9943, 6), +(9944, 6), +(9945, 6), +(9946, 6), +(9947, 6), +(9948, 6), +(9949, 6), +(9950, 6), +(9951, 6), +(9952, 6), +(9953, 6), +(9955, 6), +(9956, 6), +(9957, 6), +(9958, 6), +(9959, 6), +(9960, 6), +(9961, 6), +(9962, 6), +(9963, 6), +(9964, 6), +(9966, 6), +(9967, 6), +(9968, 6), +(9969, 6), +(9970, 6), +(9971, 6), +(9972, 6), +(9973, 6), +(9974, 6), +(9975, 6), +(9976, 6), +(9977, 6), +(9978, 6), +(9979, 6), +(9980, 6), +(9981, 6), +(9982, 6), +(9983, 6), +(9984, 6), +(9985, 6), +(9986, 6), +(9987, 6), +(9988, 6), +(9989, 6), +(9991, 6), +(9992, 6), +(9993, 6), +(9994, 6), +(9995, 6), +(9996, 6), +(9998, 6), +(9999, 6), +(10000, 6), +(10001, 6), +(10002, 6), +(10003, 6), +(10004, 6), +(10005, 6), +(10006, 6), +(10007, 6), +(10008, 6), +(10009, 6), +(10010, 6), +(10011, 6), +(10012, 6), +(10014, 6), +(10015, 6), +(10016, 6), +(10017, 6), +(10018, 6), +(10019, 6), +(10020, 6), +(10021, 6), +(10022, 6), +(10024, 6), +(10025, 6), +(10026, 6), +(10027, 6), +(10028, 6), +(10029, 6), +(10030, 6), +(10031, 6), +(10033, 6), +(10034, 6), +(10035, 6), +(10036, 6), +(10037, 6), +(10038, 6), +(10039, 6), +(10040, 6), +(10042, 6), +(10043, 6), +(10044, 6), +(10045, 6), +(10046, 6), +(10047, 6), +(10048, 6), +(10049, 6), +(10051, 6), +(10052, 6), +(10053, 6), +(10054, 6), +(10055, 6), +(10056, 6), +(10057, 6), +(10058, 6), +(10059, 6), +(10060, 6), +(10061, 6), +(10062, 6), +(10064, 6), +(10065, 6), +(10066, 6), +(10067, 6), +(10068, 6), +(10069, 6), +(10071, 6), +(10072, 6), +(10073, 6), +(10074, 6), +(10075, 6), +(10076, 6), +(10077, 6), +(10078, 6), +(10079, 6), +(10081, 6), +(10082, 6), +(10083, 6), +(10084, 6), +(10085, 6), +(10086, 6), +(10087, 6), +(10089, 6), +(10090, 6), +(10091, 6), +(10092, 6), +(10093, 6), +(10094, 6), +(10095, 6), +(10096, 6), +(10097, 6), +(10099, 6), +(10100, 6), +(10101, 6), +(10102, 6), +(10103, 6), +(10104, 6), +(10105, 6), +(10107, 6), +(10108, 6), +(10109, 6), +(10110, 6), +(10111, 6), +(10112, 6), +(10113, 6), +(10114, 6), +(10116, 6), +(10117, 6), +(10118, 6), +(10119, 6), +(10120, 6), +(10121, 6), +(10122, 6), +(10124, 6), +(10125, 6), +(10126, 6), +(10127, 6), +(10128, 6), +(10129, 6), +(10130, 6), +(10131, 6), +(10132, 6), +(10133, 6), +(10135, 6), +(10136, 6), +(10137, 6), +(10138, 6), +(10139, 6), +(10140, 6), +(10141, 6), +(10142, 6), +(10143, 6), +(10144, 6), +(10145, 6), +(10146, 6), +(10148, 6), +(10149, 6), +(10150, 6), +(10151, 6), +(10152, 6), +(10174, 6), +(10175, 6), +(10176, 6), +(10177, 6), +(10189, 6), +(10190, 6), +(10191, 6), +(10192, 6), +(10193, 6), +(10194, 6), +(10195, 6), +(10196, 6), +(10198, 6), +(10199, 6), +(10200, 6), +(10201, 6), +(10202, 6), +(10203, 6), +(10204, 6), +(10205, 6), +(10206, 6), +(10207, 6), +(10208, 6), +(10209, 6), +(10210, 6), +(10211, 6), +(10212, 6), +(10213, 6), +(10214, 6), +(10215, 6), +(10216, 6), +(10217, 6), +(10218, 6), +(10219, 6), +(10220, 6), +(10221, 6), +(10222, 6), +(10223, 6), +(10224, 6), +(10225, 6), +(10226, 6), +(10227, 6), +(10228, 6), +(10230, 6), +(10231, 6), +(10232, 6), +(10233, 6), +(10234, 6), +(10235, 6), +(10236, 6), +(10237, 6), +(10238, 6), +(10239, 6), +(10240, 6), +(10241, 6), +(10242, 6), +(10243, 6), +(10244, 6), +(10245, 6), +(10246, 6), +(10247, 6), +(10248, 6), +(10249, 6), +(10250, 6), +(10251, 6), +(10252, 6), +(10253, 6), +(10254, 6), +(10255, 6), +(10256, 6), +(10257, 6), +(10258, 6), +(10259, 6), +(10260, 6), +(10261, 6), +(10262, 6), +(10263, 6), +(10264, 6), +(10265, 6), +(10266, 6), +(10267, 6), +(10268, 6), +(10269, 6), +(10270, 6), +(10272, 6), +(10273, 6), +(10274, 6), +(10275, 6), +(10276, 6), +(10277, 6), +(10278, 6), +(10279, 6), +(10280, 6), +(10281, 6), +(10282, 6), +(10283, 6), +(10284, 6), +(10285, 6), +(10286, 6), +(10287, 6), +(10288, 6), +(10289, 6), +(10290, 6), +(10291, 6), +(10292, 6), +(10293, 6), +(10294, 6), +(10295, 6), +(10296, 6), +(10297, 6), +(10298, 6), +(10299, 6), +(10300, 6), +(10301, 6), +(10302, 6), +(10303, 6), +(10304, 6), +(10305, 6), +(10306, 6), +(10308, 6), +(10309, 6), +(10310, 6), +(10311, 6), +(10312, 6), +(10313, 6), +(10314, 6), +(10315, 6), +(10316, 6), +(10317, 6), +(10319, 6), +(10320, 6), +(10321, 6), +(10322, 6), +(10323, 6), +(10324, 6), +(10325, 6), +(10326, 6), +(10327, 6), +(10328, 6), +(10329, 6), +(10330, 6), +(10331, 6), +(10333, 6), +(10334, 6), +(10335, 6), +(10336, 6), +(10337, 6), +(10338, 6), +(10339, 6), +(10340, 6), +(10341, 6), +(10342, 6), +(10343, 6), +(10344, 6), +(10345, 6), +(10346, 6), +(10347, 6), +(10348, 6), +(10349, 6), +(10350, 6), +(10351, 6), +(10352, 6), +(10353, 6), +(10354, 6), +(10355, 6), +(10356, 6), +(10357, 6), +(10358, 6), +(10359, 6), +(10360, 6), +(10361, 6), +(10362, 6), +(10363, 6), +(10364, 6), +(10365, 6), +(10366, 6), +(10367, 6), +(10368, 6), +(10369, 6), +(10370, 6), +(10371, 6), +(10372, 6), +(10373, 6), +(10374, 6), +(10375, 6), +(10376, 6), +(10377, 6), +(10378, 6), +(10379, 6), +(10380, 6), +(10381, 6), +(10382, 6), +(10383, 6), +(10384, 6), +(10385, 6), +(10386, 6), +(10387, 6), +(10388, 6), +(10389, 6), +(10390, 6), +(10391, 6), +(10392, 6), +(10393, 6), +(10394, 6), +(10395, 6), +(10396, 6), +(10397, 6), +(10398, 6), +(10399, 6), +(10400, 6), +(10401, 6), +(10402, 6), +(10403, 6), +(10405, 6), +(10406, 6), +(10407, 6), +(10408, 6), +(10409, 6), +(10410, 6), +(10411, 6), +(10412, 6), +(10413, 6), +(10414, 6), +(10415, 6), +(10416, 6), +(10417, 6), +(10418, 6), +(10419, 6), +(10420, 6), +(10422, 6), +(10423, 6), +(10424, 6), +(10425, 6), +(10426, 6), +(10427, 6), +(10428, 6), +(10429, 6), +(10430, 6), +(10431, 6), +(10432, 6), +(10433, 6), +(10434, 6), +(10435, 6), +(10436, 6), +(10437, 6), +(10438, 6), +(10439, 6), +(10440, 6), +(10441, 6), +(10442, 6), +(10443, 6), +(10444, 6), +(10445, 6), +(10446, 6), +(10447, 6), +(10448, 6), +(10449, 6), +(10450, 6), +(10451, 6), +(10452, 6), +(10453, 6), +(10454, 6), +(10455, 6), +(10456, 6), +(10457, 6), +(10458, 6), +(10459, 6), +(10460, 6), +(10461, 6), +(10462, 6), +(10463, 6), +(10464, 6), +(10465, 6), +(10466, 6), +(10467, 6), +(10468, 6), +(10469, 6), +(10470, 6), +(10471, 6), +(10472, 6), +(10473, 6), +(10474, 6), +(10475, 6), +(10476, 6), +(10477, 6), +(10478, 6), +(10479, 6), +(10480, 6), +(10481, 6), +(10482, 6), +(10483, 6), +(10484, 6), +(10485, 6), +(10486, 6), +(10487, 6), +(10488, 6), +(10489, 6), +(10490, 6), +(10491, 6), +(10492, 6), +(10493, 6), +(10494, 6), +(10495, 6), +(10496, 6), +(10497, 6), +(10498, 6), +(10499, 6), +(10500, 6), +(10501, 6), +(10502, 6), +(10503, 6), +(10504, 6), +(10505, 6), +(10506, 6), +(10507, 6), +(10508, 6), +(10509, 6), +(10510, 6), +(10511, 6), +(10512, 6), +(10513, 6), +(10514, 6), +(10515, 6), +(10516, 6), +(10517, 6), +(10518, 6), +(10519, 6), +(10520, 6), +(10521, 6), +(10522, 6), +(10523, 6), +(10525, 6), +(10526, 6), +(10527, 6), +(10528, 6), +(10529, 6), +(10530, 6), +(10531, 6), +(10532, 6), +(10533, 6), +(10534, 6), +(10535, 6), +(10536, 6), +(10537, 6), +(10538, 6), +(10539, 6), +(10540, 6), +(10541, 6), +(10542, 6), +(10543, 6), +(10544, 6), +(10545, 6), +(10546, 6), +(10547, 6), +(10548, 6), +(10549, 6), +(10550, 6), +(10551, 6), +(10552, 6), +(10553, 6), +(10554, 6), +(10555, 6), +(10556, 6), +(10557, 6), +(10558, 6), +(10559, 6), +(10560, 6), +(10561, 6), +(10562, 6), +(10563, 6), +(10564, 6), +(10565, 6), +(10566, 6), +(10567, 6), +(10568, 6), +(10569, 6), +(10570, 6), +(10571, 6), +(10572, 6), +(10573, 6), +(10574, 6), +(10575, 6), +(10576, 6), +(10577, 6), +(10578, 6), +(10579, 6), +(10580, 6), +(10581, 6), +(10582, 6), +(10583, 6), +(10584, 7), +(10586, 7), +(10593, 7), +(10594, 7), +(10698, 7), +(10700, 7), +(10702, 7), +(10830, 7), +(10868, 7), +(10869, 7), +(10872, 7), +(10873, 7), +(10875, 7), +(10876, 7), +(10878, 7), +(10879, 7), +(10880, 7), +(10881, 7), +(10882, 7), +(10883, 7), +(10884, 7), +(10885, 7), +(10886, 7), +(10887, 7), +(10889, 7), +(10891, 7), +(10892, 7), +(10893, 7), +(10894, 7), +(10896, 7), +(10898, 7), +(10899, 7), +(10900, 7), +(10902, 7), +(10904, 7), +(10908, 7), +(10909, 7), +(10910, 7), +(10911, 7), +(10912, 7), +(10915, 7), +(10916, 7), +(10917, 7), +(10918, 7), +(10919, 7), +(10920, 7), +(10921, 7), +(10925, 7), +(10927, 7), +(10928, 7), +(10929, 7), +(10930, 7), +(10935, 7), +(10937, 7), +(10938, 7), +(10939, 7), +(10940, 7), +(10941, 7), +(10942, 7), +(10943, 7), +(10944, 7), +(10945, 7), +(10946, 7), +(10947, 7), +(10948, 7), +(10949, 7), +(10950, 7), +(10951, 7), +(10953, 7), +(10954, 7), +(10955, 7), +(10956, 7), +(10958, 7), +(10959, 7), +(10960, 7), +(10961, 7), +(10962, 7), +(10963, 7), +(10964, 7), +(10965, 7), +(10966, 7), +(10967, 7), +(10970, 7), +(10971, 7), +(10972, 7), +(10973, 7), +(10975, 7), +(10976, 7), +(10978, 7), +(10980, 7), +(10981, 7), +(10983, 7), +(10984, 7), +(10985, 7), +(10986, 7), +(10987, 7), +(10988, 7), +(10990, 7), +(10991, 7), +(10992, 7), +(10993, 7), +(10994, 7), +(10995, 7), +(10996, 7), +(10997, 7), +(10998, 7), +(11002, 7), +(11003, 7), +(11004, 7), +(11005, 7), +(11007, 7), +(11008, 7), +(11010, 7), +(11011, 7), +(11012, 7), +(11014, 7), +(11015, 7), +(11016, 7), +(11017, 7), +(11018, 7), +(11019, 7), +(11020, 7), +(11021, 7), +(11022, 7), +(11023, 7), +(11024, 7), +(11025, 7), +(11026, 7), +(11027, 7), +(11028, 7), +(11029, 7), +(11030, 7), +(11031, 7), +(11032, 7), +(11033, 7), +(11034, 7), +(11035, 7), +(11036, 7), +(11037, 7), +(11038, 7), +(11039, 7), +(11040, 7), +(11041, 7), +(11042, 7), +(11043, 7), +(11044, 7), +(11045, 7), +(11046, 7), +(11047, 7), +(11048, 7), +(11049, 7), +(11050, 7), +(11051, 7), +(11052, 7), +(11053, 7), +(11054, 7), +(11055, 7), +(11056, 7), +(11058, 7), +(11059, 7), +(11060, 7), +(11061, 7), +(11063, 7), +(11064, 7), +(11065, 7), +(11066, 7), +(11067, 7), +(11068, 7), +(11069, 7), +(11070, 7), +(11072, 7), +(11073, 7), +(11074, 7), +(11075, 7), +(11076, 7), +(11077, 7), +(11078, 7), +(11079, 7), +(11081, 7), +(11082, 7), +(11083, 7), +(11084, 7), +(11085, 7), +(11086, 7), +(11088, 7), +(11089, 7), +(11090, 7), +(11091, 7), +(11092, 7), +(11093, 7), +(11094, 7), +(11095, 7), +(11096, 7), +(11097, 7), +(11098, 7), +(11099, 7), +(11100, 7), +(11101, 7), +(11102, 7), +(11103, 7), +(11104, 7), +(11105, 7), +(11106, 7), +(11107, 7), +(11108, 7), +(11109, 7), +(11110, 7), +(11111, 7), +(11112, 7), +(11113, 7), +(11114, 7), +(11115, 7), +(11116, 7), +(11117, 7), +(11118, 7), +(11119, 7), +(11120, 7), +(11121, 7), +(11122, 7), +(11123, 7), +(11124, 7), +(11125, 7), +(11126, 7), +(11127, 7), +(11128, 7), +(11129, 7), +(11130, 7), +(11131, 7), +(11132, 7), +(11133, 7), +(11134, 7), +(11135, 7), +(11136, 7), +(11137, 7), +(11138, 7), +(11139, 7), +(11140, 7), +(11141, 7), +(11142, 7), +(11143, 7), +(11144, 7), +(11145, 7), +(11146, 7), +(11147, 7), +(11148, 7), +(11149, 7), +(11151, 7), +(11152, 7), +(11153, 7), +(11154, 7), +(11155, 7), +(11156, 7), +(11157, 7), +(11158, 7), +(11159, 7), +(11161, 7), +(11162, 7), +(11163, 7), +(11164, 7), +(11165, 7), +(11166, 7), +(11167, 7), +(11168, 7), +(11169, 7), +(11170, 7), +(11171, 7), +(11172, 7), +(11173, 7), +(11174, 7), +(11175, 7), +(11176, 7), +(11177, 7), +(11178, 7), +(11179, 7), +(11180, 7), +(11181, 7), +(11182, 7), +(11183, 7), +(11184, 7), +(11185, 7), +(11186, 7), +(11187, 7), +(11188, 7), +(11189, 7), +(11190, 7), +(11191, 7), +(11192, 7), +(11193, 7), +(11194, 7), +(11195, 7), +(11196, 7), +(11197, 7), +(11198, 7), +(11199, 7), +(11201, 7), +(11202, 7), +(11203, 7), +(11204, 7), +(11205, 7), +(11206, 7), +(11207, 7), +(11208, 7), +(11209, 7), +(11210, 7), +(11211, 7), +(11212, 7), +(11213, 7), +(11214, 7), +(11215, 7), +(11216, 7), +(11218, 7), +(11219, 7), +(11220, 7), +(11221, 7), +(11222, 7), +(11224, 7), +(11225, 7), +(11226, 7), +(11227, 7), +(11228, 7), +(11229, 7), +(11230, 7), +(11231, 7), +(11232, 7), +(11234, 7), +(11235, 7), +(11236, 7), +(11237, 7), +(11238, 7), +(11239, 7), +(11240, 7), +(11241, 7), +(11243, 7), +(11244, 7), +(11245, 7), +(11246, 7), +(11247, 7), +(11249, 7), +(11250, 7), +(11251, 7), +(11252, 7), +(11253, 7), +(11254, 7), +(11255, 7), +(11256, 7), +(11257, 7), +(11258, 7), +(11259, 7), +(11260, 7), +(11261, 7), +(11262, 7), +(11263, 7), +(11264, 7), +(11265, 7), +(11266, 7), +(11267, 7), +(11268, 7), +(11269, 7), +(11271, 7), +(11272, 7), +(11273, 7), +(11274, 7), +(11275, 7), +(11276, 7), +(11277, 7), +(11278, 7), +(11279, 7), +(11280, 7), +(11281, 7), +(11282, 7), +(11283, 7), +(11284, 7), +(11285, 7), +(11286, 7), +(11287, 7), +(11288, 7), +(11289, 7), +(11291, 7), +(11292, 7), +(11293, 7), +(11294, 7), +(11295, 7), +(11296, 7), +(11297, 7), +(11298, 7), +(11299, 7), +(11301, 7), +(11302, 7), +(11303, 7), +(11304, 7), +(11305, 7), +(11306, 7), +(11307, 7), +(11308, 7), +(11309, 7), +(11310, 7), +(11311, 7), +(11312, 7), +(11313, 7), +(11314, 7), +(11315, 7), +(11316, 7), +(11317, 7), +(11318, 7), +(11319, 7), +(11320, 7), +(11321, 7), +(11322, 7), +(11323, 7), +(11324, 7), +(11325, 7), +(11326, 7), +(11327, 7), +(11328, 7), +(11329, 7), +(11330, 7), +(11331, 7), +(11332, 7), +(11333, 7), +(11334, 7), +(11335, 7), +(11336, 7), +(11337, 7), +(11338, 7), +(11339, 7), +(11340, 7), +(11341, 7), +(11342, 7), +(11343, 7), +(11344, 7), +(11345, 7), +(11346, 7), +(11347, 7), +(11348, 7), +(11350, 7), +(11351, 7), +(11352, 7), +(11353, 7), +(11354, 7), +(11355, 7), +(11356, 7), +(11358, 7), +(11359, 7), +(11360, 7), +(11361, 7), +(11362, 7), +(11363, 7), +(11364, 7), +(11365, 7), +(11366, 7), +(11367, 7), +(11368, 7), +(11369, 7), +(11370, 7), +(11371, 7), +(11372, 7), +(11373, 7), +(11374, 7), +(11375, 7), +(11376, 7), +(11377, 7), +(11385, 7), +(11386, 7), +(11387, 7), +(11388, 7), +(11389, 7), +(11390, 7), +(11391, 7), +(11392, 7), +(11393, 7), +(11394, 7), +(11395, 7), +(11396, 7), +(11397, 7), +(11398, 7), +(11399, 7), +(11400, 7), +(11401, 7), +(11402, 7), +(11403, 7), +(11404, 7), +(11405, 7), +(11406, 7), +(11407, 7), +(11408, 7), +(11409, 7), +(11410, 7), +(11411, 7), +(11412, 7), +(11413, 7), +(11414, 7), +(11415, 7), +(11416, 7), +(11417, 7), +(11418, 7), +(11419, 7), +(11420, 7), +(11421, 7), +(11422, 7), +(11423, 7), +(11424, 7), +(11425, 7), +(11426, 7), +(11427, 7), +(11428, 7), +(11429, 7), +(11430, 7), +(11431, 7), +(11432, 7), +(11433, 7), +(11434, 7), +(11435, 7), +(11436, 7), +(11437, 7), +(11438, 7), +(11439, 7), +(11440, 7), +(11441, 7), +(11442, 7), +(11443, 7), +(11444, 7), +(11445, 7), +(11446, 7), +(11447, 8), +(11449, 8), +(11454, 8), +(11464, 8), +(11468, 8), +(11472, 8), +(11473, 8), +(11474, 8), +(11479, 8), +(11481, 8), +(11489, 8), +(11491, 8), +(11493, 8), +(11494, 8), +(11498, 8), +(11501, 8), +(11505, 8), +(11506, 8), +(11508, 8), +(11509, 8), +(11510, 8), +(11511, 8), +(11512, 8), +(11513, 8), +(11514, 8), +(11515, 8), +(11516, 8), +(11517, 8), +(11518, 8), +(11519, 8), +(11520, 8), +(11528, 8), +(11529, 8), +(11531, 8), +(11533, 8), +(11535, 8), +(11540, 8), +(11541, 8), +(11543, 8), +(11563, 8), +(11564, 8), +(11565, 8), +(11566, 8), +(11567, 8), +(11568, 8), +(11569, 8), +(11570, 8), +(11571, 8), +(11572, 8), +(11573, 8), +(11575, 8), +(11576, 8), +(11577, 8), +(11578, 8), +(11580, 8), +(11582, 8), +(11583, 8), +(11586, 8), +(11587, 8), +(11589, 8), +(11592, 8), +(11597, 8), +(11599, 8), +(11600, 8), +(11602, 8), +(11607, 8), +(11609, 8), +(11611, 8), +(11614, 8), +(11615, 8), +(11616, 8), +(11618, 8), +(11619, 8), +(11620, 8), +(11621, 8), +(11622, 8), +(11623, 8), +(11627, 8), +(11629, 8), +(11630, 8), +(11631, 8), +(11632, 8), +(11633, 8), +(11635, 8), +(11636, 8), +(11637, 8), +(11639, 8), +(11640, 8), +(11641, 8), +(11642, 8), +(11643, 8), +(11644, 8), +(11645, 8), +(11646, 8), +(11647, 8), +(11648, 8), +(11649, 8), +(11650, 8), +(11653, 8), +(11654, 8), +(11655, 8), +(11656, 8), +(11658, 8), +(11662, 8), +(11668, 8), +(11670, 8), +(11672, 8), +(11674, 8), +(11676, 8), +(11678, 8), +(11679, 8), +(11680, 8), +(11684, 8), +(11686, 8), +(11688, 8), +(11690, 8), +(11692, 8), +(11695, 8), +(11696, 8), +(11697, 8), +(11698, 8), +(11701, 8), +(11703, 8), +(11706, 8), +(11707, 8), +(11708, 8), +(11710, 8), +(11712, 8), +(11717, 8), +(11720, 8), +(11724, 8), +(11727, 8), +(11728, 8), +(11729, 8), +(11730, 8), +(11731, 8), +(11733, 8), +(11734, 8), +(11736, 8), +(11737, 8), +(11740, 8), +(11741, 8), +(11742, 8), +(11743, 8), +(11745, 8), +(11746, 8), +(11747, 8), +(11748, 8), +(11749, 8), +(11750, 8), +(11751, 8), +(11752, 8), +(11753, 8), +(11754, 8), +(11755, 8), +(11756, 8), +(11757, 8), +(11758, 8), +(11759, 8), +(11760, 8), +(11761, 8), +(11762, 8), +(11764, 8), +(11765, 8), +(11766, 8), +(11767, 8), +(11768, 8), +(11769, 8), +(11770, 8), +(11771, 8), +(11772, 8), +(11773, 8), +(11779, 8), +(11780, 8), +(11782, 8), +(11783, 8), +(11784, 8), +(11786, 8), +(11787, 8), +(11788, 8), +(11789, 8), +(11790, 8), +(11791, 8), +(11792, 8), +(11793, 8), +(11795, 8), +(11796, 8), +(11797, 8), +(11798, 8), +(11800, 8), +(11801, 8), +(11802, 8), +(11803, 8), +(11805, 8), +(11806, 8), +(11807, 8), +(11808, 8), +(11809, 8), +(11810, 8), +(11811, 8), +(11812, 8), +(11813, 8), +(11814, 8), +(11815, 8), +(11817, 8), +(11818, 8), +(11819, 8), +(11820, 8), +(11822, 8), +(11823, 8), +(11825, 8), +(11826, 8), +(11827, 8), +(11828, 8), +(11829, 8), +(11830, 8), +(11832, 8), +(11833, 8), +(11834, 8), +(11836, 8), +(11837, 8), +(11838, 8), +(11839, 8), +(11841, 8), +(11842, 8), +(11844, 8), +(11845, 8), +(11846, 8), +(11848, 8), +(11849, 8), +(11850, 8), +(11851, 8), +(11852, 8), +(11853, 8), +(11855, 8), +(11856, 8), +(11857, 8), +(11858, 8), +(11860, 8), +(11861, 8), +(11862, 8), +(11863, 8), +(11864, 8), +(11865, 8), +(11867, 8), +(11868, 8), +(11869, 8), +(11870, 8), +(11872, 8), +(11873, 8), +(11874, 8), +(11875, 8), +(11879, 8), +(11880, 8), +(11881, 8), +(11882, 8), +(11883, 8), +(11884, 8), +(11885, 8), +(11887, 8), +(11888, 8), +(11889, 8), +(11890, 8), +(11891, 8), +(11892, 8), +(11893, 8), +(11895, 8), +(11896, 8), +(11897, 8), +(11898, 8), +(11899, 8), +(11900, 8), +(11901, 8), +(11902, 8), +(11903, 8), +(11905, 8), +(11906, 8), +(11907, 8), +(11908, 8), +(11910, 8), +(11911, 8), +(11912, 8), +(11913, 8), +(11914, 8), +(11916, 8), +(11917, 8), +(11918, 8), +(11919, 8), +(11920, 8), +(11921, 8), +(11923, 8), +(11924, 8), +(11925, 8), +(11926, 8), +(11927, 8), +(11928, 8), +(11929, 8), +(11930, 8), +(11931, 8), +(11932, 8), +(11933, 8), +(11934, 8), +(11935, 8), +(11936, 8), +(11937, 8), +(11938, 8), +(11939, 8), +(11940, 8), +(11941, 8), +(11942, 8), +(11943, 8), +(11944, 8), +(11945, 8), +(11946, 8), +(11947, 8), +(11948, 8), +(11949, 8), +(11950, 8), +(11951, 8), +(11952, 8), +(11953, 8), +(11954, 8), +(11955, 8), +(11957, 8), +(11958, 8), +(11959, 8), +(11960, 8), +(11961, 8), +(11962, 8), +(11963, 8), +(11964, 8), +(11965, 8), +(11966, 8), +(11968, 8), +(11969, 8), +(11970, 8), +(11971, 8), +(11972, 8), +(11973, 8), +(11974, 8), +(11975, 8), +(11976, 8), +(11977, 8), +(11978, 8), +(11979, 8), +(11980, 8), +(11981, 8), +(11982, 8), +(11983, 8), +(11984, 8), +(11985, 8), +(11986, 8), +(11987, 8), +(11988, 8), +(11989, 8), +(11990, 8), +(11991, 8), +(11992, 8), +(11993, 8), +(11994, 8), +(11995, 8), +(11996, 8), +(11998, 8), +(11999, 8), +(12001, 8), +(12002, 8), +(12003, 8), +(12004, 8), +(12005, 8), +(12006, 8), +(12008, 8), +(12009, 8), +(12010, 8), +(12011, 8), +(12012, 8), +(12013, 8), +(12014, 8), +(12016, 8), +(12017, 8), +(12018, 8), +(12019, 8), +(12020, 8), +(12021, 8), +(12022, 8), +(12023, 8), +(12024, 8), +(12025, 8), +(12026, 8), +(12027, 8), +(12028, 8), +(12029, 8), +(12030, 8), +(12031, 8), +(12032, 8), +(12033, 8), +(12034, 8), +(12035, 8), +(12036, 8), +(12037, 8), +(12038, 8), +(12039, 8), +(12040, 8), +(12041, 8), +(12042, 8), +(12043, 8), +(12044, 8), +(12045, 8), +(12046, 8), +(12047, 8), +(12048, 8), +(12049, 8), +(12050, 8), +(12051, 8), +(12052, 8), +(12053, 8), +(12054, 8), +(12055, 8), +(12056, 8), +(12057, 8), +(12058, 8), +(12059, 8), +(12060, 8), +(12061, 8), +(12062, 8), +(12063, 8), +(12064, 8), +(12065, 8), +(12066, 8), +(12067, 8), +(12068, 8), +(12069, 8), +(12070, 8), +(12071, 8), +(12072, 8), +(12073, 8), +(12074, 8), +(12075, 8), +(12076, 8), +(12077, 8), +(12078, 8), +(12079, 8), +(12080, 8), +(12081, 8), +(12082, 8), +(12083, 8), +(12084, 8), +(12085, 8), +(12086, 8), +(12087, 8), +(12088, 8), +(12089, 8), +(12090, 8), +(12091, 8), +(12093, 8), +(12094, 8), +(12095, 8), +(12096, 8), +(12097, 8), +(12098, 8), +(12099, 8), +(12101, 8), +(12102, 8), +(12103, 8), +(12104, 8), +(12105, 8), +(12106, 8), +(12108, 8), +(12109, 8), +(12110, 8), +(12112, 8), +(12113, 8), +(12114, 8), +(12115, 8), +(12116, 8), +(12117, 8), +(12118, 8), +(12119, 8), +(12120, 8), +(12121, 8), +(12122, 8), +(12123, 8), +(12124, 8), +(12125, 8), +(12126, 8), +(12127, 8), +(12128, 8), +(12129, 8), +(12130, 8), +(12131, 8), +(12132, 8), +(12133, 8), +(12134, 8), +(12135, 8), +(12136, 8), +(12137, 8), +(12138, 8), +(12139, 8), +(12140, 8), +(12141, 8), +(12142, 8), +(12143, 8), +(12144, 8), +(12145, 8), +(12146, 8), +(12147, 8), +(12148, 8), +(12149, 8), +(12150, 8), +(12151, 8), +(12152, 8), +(12153, 8), +(12154, 8), +(12155, 8), +(12156, 8), +(12157, 8), +(12158, 8), +(12159, 8), +(12160, 8), +(12161, 8), +(12162, 8), +(12163, 8), +(12164, 8), +(12165, 8), +(12166, 8), +(12167, 8), +(12168, 8), +(12169, 8), +(12170, 8), +(12171, 8), +(12172, 8), +(12173, 8), +(12174, 8), +(12175, 8), +(12176, 8), +(12177, 8), +(12178, 8), +(12179, 8), +(12180, 8), +(12181, 8), +(12182, 8), +(12183, 8), +(12184, 8), +(12186, 8), +(12187, 8), +(12188, 8), +(12189, 8), +(12190, 8), +(12191, 8), +(12192, 8), +(12193, 8), +(12194, 8), +(12195, 8), +(12196, 8), +(12197, 8), +(12198, 8), +(12199, 8), +(12201, 8), +(12202, 8), +(12203, 8), +(12204, 8), +(12206, 8), +(12207, 8), +(12208, 8), +(12210, 8), +(12211, 8), +(12212, 8), +(12213, 8), +(12214, 8), +(12215, 8), +(12216, 8), +(12217, 8), +(12218, 8), +(12219, 8), +(12220, 8), +(12221, 8), +(12223, 8), +(12224, 8), +(12225, 8), +(12226, 8), +(12227, 8), +(12228, 8), +(12229, 8), +(12230, 8), +(12231, 8), +(12232, 8), +(12233, 8), +(12234, 8), +(12235, 8), +(12236, 8), +(12237, 8), +(12238, 8), +(12239, 8), +(12240, 8), +(12242, 8), +(12243, 8), +(12244, 8), +(12245, 8), +(12246, 8), +(12247, 8), +(12248, 8), +(12249, 8), +(12250, 8), +(12251, 8), +(12252, 8), +(12253, 8), +(12254, 8), +(12255, 8), +(12256, 8), +(12257, 8), +(12258, 8), +(12259, 8), +(12260, 8), +(12261, 8), +(12262, 8), +(12263, 8), +(12264, 8), +(12265, 8), +(12266, 8), +(12267, 8), +(12268, 8), +(12269, 8), +(12270, 8), +(12271, 8), +(12272, 8), +(12273, 8), +(12274, 8), +(12275, 8), +(12276, 8), +(12277, 8), +(12278, 8), +(12279, 8), +(12280, 8), +(12281, 8), +(12282, 8), +(12283, 8), +(12284, 8), +(12285, 8), +(12286, 8), +(12287, 8), +(12288, 8), +(12289, 8), +(12290, 8), +(12291, 8), +(12292, 8), +(12293, 8), +(12294, 8), +(12295, 8), +(12296, 8), +(12298, 8), +(12299, 8), +(12300, 8), +(12301, 8), +(12302, 8), +(12303, 8), +(12304, 8), +(12305, 8), +(12306, 8), +(12307, 8), +(12308, 8), +(12310, 8), +(12311, 8), +(12312, 8), +(12313, 8), +(12314, 8), +(12315, 8), +(12316, 8), +(12317, 8), +(12318, 8), +(12319, 8), +(12320, 8), +(12321, 8), +(12322, 8), +(12323, 8), +(12324, 8), +(12325, 8), +(12326, 8), +(12327, 8), +(12328, 8), +(12329, 8), +(12330, 8), +(12332, 8), +(12333, 8), +(12334, 8), +(12336, 8), +(12337, 8), +(12338, 8), +(12339, 8), +(12340, 8), +(12341, 8), +(12342, 8), +(12343, 8), +(12344, 8), +(12345, 8), +(12346, 8), +(12347, 8), +(12348, 8), +(12350, 8), +(12351, 8), +(12352, 8), +(12353, 8), +(12354, 8), +(12355, 8), +(12356, 8), +(12357, 8), +(12359, 8), +(12360, 8), +(12361, 8), +(12362, 8), +(12363, 8), +(12364, 8), +(12365, 8), +(12367, 8), +(12368, 8), +(12369, 8), +(12370, 8), +(12371, 8), +(12372, 8), +(12374, 8), +(12375, 8), +(12376, 8), +(12377, 8), +(12378, 8), +(12379, 8), +(12380, 8), +(12381, 8), +(12382, 8), +(12383, 8), +(12385, 8), +(12386, 8), +(12387, 8), +(12388, 8), +(12389, 8), +(12391, 8), +(12392, 8), +(12393, 8), +(12394, 8), +(12395, 8), +(12396, 8), +(12398, 8), +(12399, 8), +(12400, 8), +(12401, 8), +(12402, 8), +(12403, 8), +(12405, 8), +(12406, 8), +(12407, 8), +(12408, 8), +(12409, 8), +(12410, 8), +(12411, 8), +(12413, 8), +(12414, 8), +(12415, 8), +(12416, 8), +(12417, 8), +(12418, 8), +(12419, 8), +(12420, 8), +(12421, 8), +(12422, 8), +(12423, 8), +(12424, 8), +(12425, 8), +(12426, 8), +(12427, 8), +(12428, 8), +(12429, 8), +(12430, 8), +(12431, 8), +(12432, 8), +(12433, 8), +(12434, 8), +(12435, 8), +(12436, 8), +(12437, 8), +(12438, 8), +(12439, 8), +(12440, 8), +(12441, 8), +(12442, 8), +(12443, 8), +(12444, 8), +(12445, 8), +(12446, 8), +(12447, 8), +(12448, 8), +(12449, 8), +(12450, 8), +(12451, 8), +(12452, 8), +(12453, 8), +(12454, 8), +(12455, 8), +(12456, 8), +(12457, 8), +(12458, 8), +(12459, 8), +(12460, 8), +(12461, 8), +(12462, 8), +(12463, 8), +(12464, 8), +(12465, 8), +(12466, 8), +(12467, 8), +(12468, 8), +(12469, 8), +(12470, 8), +(12471, 8), +(12472, 8), +(12473, 8), +(12474, 8), +(12475, 8), +(12476, 8), +(12477, 8), +(12478, 8), +(12479, 8), +(12480, 8), +(12481, 8), +(12482, 8), +(12483, 8), +(12484, 8), +(12485, 8), +(12486, 8), +(12487, 8), +(12488, 8), +(12489, 8), +(12490, 8), +(12491, 8), +(12492, 8), +(12493, 8), +(12494, 8), +(12495, 8), +(12496, 8), +(12497, 8), +(12498, 8), +(12499, 8), +(12500, 8), +(12501, 8), +(12502, 8), +(12503, 8), +(12504, 8), +(12505, 8), +(12506, 8), +(12507, 8), +(12508, 8), +(12509, 8), +(12510, 8), +(12511, 8), +(12512, 8), +(12513, 8), +(12514, 8), +(12515, 8), +(12516, 8), +(12517, 8), +(12518, 8), +(12519, 8), +(12520, 8), +(12521, 8), +(12522, 8), +(12523, 8), +(12524, 8), +(12525, 8), +(12526, 8), +(12527, 8), +(12528, 8), +(12529, 8), +(12530, 8), +(12531, 8), +(12532, 8), +(12533, 8), +(12534, 8), +(12535, 8), +(12536, 8), +(12537, 8), +(12538, 8), +(12539, 8), +(12540, 8), +(12541, 8), +(12542, 8), +(12543, 8), +(12544, 8), +(12545, 8), +(12546, 8), +(12547, 8), +(12548, 8), +(12549, 8), +(12550, 8), +(12551, 8), +(12552, 8), +(12553, 8), +(12554, 8), +(12555, 8), +(12556, 8), +(12557, 8), +(12558, 8), +(12560, 8), +(12561, 8), +(12562, 8), +(12563, 8), +(12564, 8), +(12565, 8), +(12566, 8), +(12567, 8), +(12568, 8), +(12569, 8), +(12570, 8), +(12571, 8), +(12572, 8), +(12573, 8), +(12575, 8), +(12576, 8), +(12577, 8), +(12578, 8), +(12579, 8), +(12580, 8), +(12581, 8), +(12582, 8), +(12583, 8), +(12584, 8), +(12585, 8), +(12586, 8), +(12587, 8), +(12588, 8), +(12590, 8), +(12591, 8), +(12592, 8), +(12593, 8), +(12594, 8), +(12595, 8), +(12596, 8), +(12598, 8), +(12599, 8), +(12600, 8), +(12601, 8), +(12602, 8), +(12603, 8), +(12604, 8), +(12605, 8), +(12606, 8), +(12607, 8), +(12608, 8), +(12609, 8), +(12610, 8), +(12611, 8), +(12612, 8), +(12613, 8), +(12614, 8), +(12615, 8), +(12616, 8), +(12617, 8), +(12618, 8), +(12619, 8), +(12620, 8), +(12621, 8), +(12622, 8), +(12623, 8), +(12624, 8), +(12625, 8), +(12627, 8), +(12628, 8), +(12629, 8), +(12630, 8), +(12631, 8), +(12632, 8), +(12633, 8), +(12634, 8), +(12636, 8), +(12637, 8), +(12638, 8), +(12639, 8), +(12640, 8), +(12641, 8), +(12642, 8), +(12643, 8), +(12644, 8), +(12645, 8), +(12646, 8), +(12647, 8), +(12649, 8), +(12650, 8), +(12651, 8), +(12652, 8), +(12653, 8), +(12654, 8), +(12655, 8), +(12656, 8), +(12658, 8), +(12659, 8), +(12660, 8), +(12661, 8), +(12662, 8), +(12663, 8), +(12664, 8), +(12666, 8), +(12667, 8), +(12668, 8), +(12669, 8), +(12670, 8), +(12671, 8), +(12673, 8), +(12674, 8), +(12675, 8), +(12676, 8), +(12677, 8), +(12679, 8), +(12680, 8), +(12681, 8), +(12683, 8), +(12684, 8), +(12685, 8), +(12687, 8), +(12689, 8), +(12691, 8), +(12692, 8), +(12693, 8), +(12694, 8), +(12696, 8), +(12714, 8), +(12715, 8), +(12716, 8), +(12717, 8), +(12718, 8), +(12719, 8), +(12720, 8), +(12721, 8), +(12722, 8), +(12723, 8), +(12724, 8), +(12725, 8), +(12726, 8), +(12727, 8), +(12728, 8), +(12729, 8), +(12731, 8), +(12732, 8), +(12733, 8), +(12735, 8), +(12736, 8), +(12737, 8), +(12739, 8), +(12740, 8), +(12741, 8), +(12742, 8), +(12743, 8), +(12744, 8), +(12745, 8), +(12747, 8), +(12748, 8), +(12749, 8), +(12751, 8), +(12753, 8), +(12754, 8), +(12755, 8), +(12756, 8), +(12757, 8), +(12758, 8), +(12759, 8), +(12760, 8), +(12761, 8), +(12762, 8), +(12763, 8), +(12764, 8), +(12765, 8), +(12767, 8), +(12768, 8), +(12769, 8), +(12770, 8), +(12771, 8), +(12772, 8), +(12773, 8), +(12774, 8), +(12775, 8), +(12776, 8), +(12778, 8), +(12780, 8), +(12781, 8), +(12782, 8), +(12783, 8), +(12784, 8), +(12785, 8), +(12786, 8), +(12787, 8), +(12788, 8), +(12789, 8), +(12790, 8), +(12791, 8), +(12792, 8), +(12793, 8), +(12794, 8), +(12795, 8), +(12796, 8), +(12797, 8), +(12798, 8), +(12799, 8), +(12800, 8), +(12801, 8), +(12802, 8), +(12803, 8), +(12804, 8), +(12805, 8), +(12806, 8), +(12807, 8), +(12808, 8), +(12809, 8), +(12810, 8), +(12811, 8), +(12812, 8), +(12813, 8), +(12814, 8), +(12815, 8), +(12816, 8), +(12817, 8), +(12818, 8), +(12819, 8), +(12820, 8), +(12821, 8), +(12822, 8), +(12823, 8), +(12824, 8), +(12825, 8), +(12826, 8), +(12827, 8), +(12828, 8), +(12829, 8), +(12830, 8), +(12831, 8), +(12832, 8), +(12833, 8), +(12834, 8), +(12835, 8), +(12836, 8), +(12837, 8), +(12838, 8), +(12839, 8), +(12840, 8), +(12841, 8), +(12842, 8), +(12843, 8), +(12844, 8), +(12845, 8), +(12846, 8), +(12847, 8), +(12848, 8), +(12849, 8), +(12850, 8), +(12851, 8), +(12852, 8), +(12853, 8), +(12854, 8), +(12855, 8), +(12856, 8), +(12857, 8), +(12858, 8), +(12859, 8), +(12860, 8), +(12861, 8), +(12862, 8), +(12863, 8), +(12864, 8), +(12865, 8), +(12866, 8), +(12867, 8), +(12868, 8), +(12869, 8), +(12870, 8), +(12871, 8), +(12872, 8), +(12873, 8), +(12874, 8), +(12876, 8), +(12877, 8), +(12878, 8), +(12879, 8), +(12880, 8), +(12881, 8), +(12882, 8), +(12883, 8), +(12884, 8), +(12885, 8), +(12886, 9), +(12890, 9), +(12892, 9), +(12894, 9), +(12899, 9), +(12905, 9), +(12907, 9), +(12912, 9), +(12914, 9), +(12919, 9), +(12920, 9), +(12922, 9), +(12923, 9), +(12927, 9), +(12929, 9), +(12930, 9), +(12932, 9), +(12935, 9), +(12937, 9), +(12938, 9), +(12939, 9), +(12941, 9), +(12947, 9), +(12950, 9), +(12952, 9), +(12953, 9), +(12955, 9), +(12957, 9), +(12962, 9), +(12964, 9), +(12965, 9), +(12967, 9), +(12970, 9), +(12971, 9), +(12973, 9), +(12982, 9), +(12984, 9), +(12986, 9), +(12987, 9), +(12989, 9), +(12992, 9), +(13003, 9), +(13016, 9), +(13017, 9), +(13018, 9), +(13022, 9), +(13024, 9), +(13026, 9), +(13029, 9), +(13030, 9), +(13034, 9), +(13036, 9), +(13037, 9), +(13038, 9), +(13039, 9), +(13040, 9), +(13042, 9), +(13043, 9), +(13044, 9), +(13046, 9), +(13047, 9), +(13051, 9), +(13053, 9), +(13055, 9), +(13069, 9), +(13071, 9), +(13073, 9), +(13075, 9), +(13077, 9), +(13078, 9), +(13080, 9), +(13082, 9), +(13083, 9), +(13085, 9), +(13087, 9), +(13089, 9), +(13090, 9), +(13092, 9), +(13093, 9), +(13095, 9), +(13099, 9), +(13101, 9), +(13102, 9), +(13107, 9), +(13109, 9), +(13111, 9), +(13113, 9), +(13115, 9), +(13117, 9), +(13119, 9), +(13120, 9), +(13122, 9), +(13129, 9), +(13130, 9), +(13131, 9), +(13132, 9), +(13134, 9), +(13135, 9), +(13137, 9), +(13138, 9), +(13140, 9), +(13143, 9), +(13144, 9), +(13145, 9), +(13147, 9), +(13149, 9), +(13150, 9), +(13151, 9), +(13153, 9), +(13154, 9), +(13155, 9), +(13156, 9), +(13158, 9), +(13159, 9), +(13160, 9), +(13162, 9), +(13163, 9), +(13164, 9), +(13165, 9), +(13167, 9), +(13168, 9), +(13169, 9), +(13170, 9), +(13172, 9), +(13173, 9), +(13174, 9), +(13176, 9), +(13177, 9), +(13178, 9), +(13179, 9), +(13180, 9), +(13182, 9), +(13183, 9), +(13184, 9), +(13185, 9), +(13187, 9), +(13188, 9), +(13189, 9), +(13191, 9), +(13192, 9), +(13193, 9), +(13194, 9), +(13195, 9), +(13197, 9), +(13198, 9), +(13199, 9), +(13200, 9), +(13201, 9), +(13203, 9), +(13204, 9), +(13206, 9), +(13207, 9), +(13209, 9), +(13210, 9), +(13211, 9), +(13213, 9), +(13214, 9), +(13215, 9), +(13217, 9), +(13218, 9), +(13220, 9), +(13221, 9), +(13223, 9), +(13224, 9), +(13225, 9), +(13226, 9), +(13228, 9), +(13229, 9), +(13230, 9), +(13231, 9), +(13232, 9), +(13234, 9), +(13235, 9), +(13236, 9), +(13237, 9), +(13238, 9), +(13239, 9), +(13240, 9), +(13242, 9), +(13243, 9), +(13244, 9), +(13245, 9), +(13246, 9), +(13247, 9), +(13248, 9), +(13250, 9), +(13251, 9), +(13252, 9), +(13253, 9), +(13255, 9), +(13256, 9), +(13257, 9), +(13258, 9), +(13259, 9), +(13260, 9), +(13261, 9), +(13262, 9), +(13263, 9), +(13265, 9), +(13266, 9), +(13267, 9), +(13268, 9), +(13269, 9), +(13270, 9), +(13271, 9), +(13272, 9), +(13274, 9), +(13275, 9), +(13276, 9), +(13277, 9), +(13278, 9), +(13279, 9), +(13280, 9), +(13281, 9), +(13283, 9), +(13284, 9), +(13285, 9), +(13286, 9), +(13287, 9), +(13288, 9), +(13289, 9), +(13290, 9), +(13291, 9), +(13293, 9), +(13294, 9), +(13295, 9), +(13296, 9), +(13298, 9), +(13299, 9), +(13300, 9), +(13301, 9), +(13302, 9), +(13303, 9), +(13304, 9), +(13306, 9), +(13307, 9), +(13308, 9), +(13309, 9), +(13310, 9), +(13311, 9), +(13312, 9), +(13313, 9), +(13314, 9), +(13315, 9), +(13316, 9), +(13317, 9), +(13318, 9), +(13319, 9), +(13320, 9), +(13321, 9), +(13322, 9), +(13323, 9), +(13325, 9), +(13326, 9), +(13327, 9), +(13328, 9), +(13329, 9), +(13330, 9), +(13331, 9), +(13332, 9), +(13333, 9), +(13334, 9), +(13336, 9), +(13337, 9), +(13338, 9), +(13339, 9), +(13340, 9), +(13341, 9), +(13342, 9), +(13343, 9), +(13344, 9), +(13345, 9), +(13346, 9), +(13347, 9), +(13348, 9), +(13349, 9), +(13350, 9), +(13351, 9), +(13352, 9), +(13353, 9), +(13354, 9), +(13355, 9), +(13357, 9), +(13358, 9), +(13359, 9), +(13360, 9), +(13361, 9), +(13362, 9), +(13363, 9), +(13364, 9), +(13365, 9), +(13366, 9), +(13367, 9), +(13368, 9), +(13369, 9), +(13370, 9), +(13371, 9), +(13372, 9), +(13373, 9), +(13374, 9), +(13376, 9), +(13377, 9), +(13378, 9), +(13379, 9), +(13380, 9), +(13382, 9), +(13383, 9), +(13384, 9), +(13385, 9), +(13386, 9), +(13387, 9), +(13389, 9), +(13390, 9), +(13391, 9), +(13392, 9), +(13393, 9), +(13394, 9), +(13395, 9), +(13397, 9), +(13398, 9), +(13399, 9), +(13400, 9), +(13401, 9), +(13402, 9), +(13403, 9), +(13404, 9), +(13405, 9), +(13406, 9), +(13407, 9), +(13408, 9), +(13409, 9), +(13410, 9), +(13411, 9), +(13412, 9), +(13413, 9), +(13414, 9), +(13415, 9), +(13416, 9), +(13417, 9), +(13418, 9), +(13419, 9), +(13420, 9), +(13421, 9), +(13422, 9), +(13423, 9), +(13425, 9), +(13426, 9), +(13427, 9), +(13428, 9), +(13429, 9), +(13430, 9), +(13431, 9), +(13432, 9), +(13433, 9), +(13434, 9), +(13435, 9), +(13436, 9), +(13437, 9), +(13438, 9), +(13439, 9), +(13440, 9), +(13441, 9), +(13442, 9), +(13443, 9), +(13445, 9), +(13446, 9), +(13447, 9), +(13448, 9), +(13449, 9), +(13450, 9), +(13451, 9), +(13452, 9), +(13453, 9), +(13454, 9), +(13455, 9), +(13456, 9), +(13457, 9), +(13458, 9), +(13459, 9), +(13460, 9), +(13461, 9), +(13462, 9), +(13463, 9), +(13464, 9), +(13465, 9), +(13466, 9), +(13467, 9), +(13468, 9), +(13469, 9), +(13470, 9), +(13471, 9), +(13472, 9), +(13473, 9), +(13474, 9), +(13475, 9), +(13476, 9), +(13477, 9), +(13478, 9), +(13479, 9), +(13480, 9), +(13481, 9), +(13482, 9), +(13483, 9), +(13484, 9), +(13485, 9), +(13486, 9), +(13487, 9), +(13489, 9), +(13490, 9), +(13491, 9), +(13492, 9), +(13493, 9), +(13494, 9), +(13495, 9), +(13496, 9), +(13498, 9), +(13499, 9), +(13500, 9), +(13501, 9), +(13502, 9), +(13504, 9), +(13505, 9), +(13506, 9), +(13507, 9), +(13508, 9), +(13511, 9), +(13512, 9), +(13513, 9), +(13514, 9), +(13515, 9), +(13516, 9), +(13517, 9), +(13518, 9), +(13519, 9), +(13520, 9), +(13521, 9), +(13522, 9), +(13523, 9), +(13524, 9), +(13525, 9), +(13526, 9), +(13527, 9), +(13528, 9), +(13529, 9), +(13530, 9), +(13531, 9), +(13532, 9), +(13533, 9), +(13534, 9), +(13535, 9), +(13536, 9), +(13538, 9), +(13539, 9), +(13540, 9), +(13541, 9), +(13542, 9), +(13544, 9), +(13545, 9), +(13546, 9), +(13547, 9), +(13548, 9), +(13549, 9), +(13550, 9), +(13551, 9), +(13552, 9), +(13553, 9), +(13554, 9), +(13555, 9), +(13556, 9), +(13557, 9), +(13558, 9), +(13559, 9), +(13560, 9), +(13561, 9), +(13562, 9), +(13563, 9), +(13564, 9), +(13565, 9), +(13566, 9), +(13567, 9), +(13568, 9), +(13569, 9), +(13570, 9), +(13571, 9), +(13572, 9), +(13573, 9), +(13574, 9), +(13575, 9), +(13576, 9), +(13577, 9), +(13578, 9), +(13579, 9), +(13580, 9), +(13581, 9), +(13582, 9), +(13583, 9), +(13584, 9), +(13586, 9), +(13587, 9), +(13588, 9), +(13589, 9), +(13590, 9), +(13591, 9), +(13592, 9), +(13594, 9), +(13595, 9), +(13596, 9), +(13597, 9), +(13598, 9), +(13599, 9), +(13600, 9), +(13601, 9), +(13602, 9), +(13603, 9), +(13605, 9), +(13606, 9), +(13607, 9), +(13608, 9), +(13609, 9), +(13610, 9), +(13612, 9), +(13613, 9), +(13614, 9), +(13615, 9), +(13616, 9), +(13617, 9), +(13618, 9), +(13620, 9), +(13621, 9), +(13622, 9), +(13623, 9), +(13624, 9), +(13626, 9), +(13627, 9), +(13628, 9), +(13629, 9), +(13630, 9), +(13631, 9), +(13632, 9), +(13633, 9), +(13634, 9), +(13635, 9), +(13636, 9), +(13637, 9), +(13638, 9), +(13639, 9), +(13640, 9), +(13641, 9), +(13642, 9), +(13643, 9), +(13644, 9), +(13645, 9), +(13646, 9), +(13647, 9), +(13648, 9), +(13649, 9), +(13650, 9), +(13651, 9), +(13652, 9), +(13653, 9), +(13654, 9), +(13655, 9), +(13656, 9), +(13657, 9), +(13658, 9), +(13659, 9), +(13660, 9), +(13661, 9), +(13662, 9), +(13663, 9), +(13664, 9), +(13665, 9), +(13666, 9), +(13667, 9), +(13668, 9), +(13669, 9), +(13670, 9), +(13671, 9), +(13672, 9), +(13673, 9), +(13674, 9), +(13675, 9), +(13676, 9), +(13677, 9), +(13678, 9), +(13679, 9), +(13680, 9), +(13681, 9), +(13682, 9), +(13683, 9), +(13684, 9), +(13685, 9), +(13686, 9), +(13687, 9), +(13688, 9), +(13689, 9), +(13690, 9), +(13691, 9), +(13692, 9), +(13693, 9), +(13694, 9), +(13695, 9), +(13696, 9), +(13697, 9), +(13698, 9), +(13699, 9), +(13701, 9), +(13702, 9), +(13703, 9), +(13704, 9), +(13705, 9), +(13706, 9), +(13708, 9), +(13709, 9), +(13710, 9), +(13711, 9), +(13712, 9), +(13713, 9), +(13715, 9), +(13716, 9), +(13717, 9), +(13718, 9), +(13719, 9), +(13720, 9), +(13721, 9), +(13722, 9), +(13724, 9), +(13725, 9), +(13726, 9), +(13727, 9), +(13728, 9), +(13730, 9), +(13731, 9), +(13732, 9), +(13733, 9), +(13734, 9), +(13735, 9), +(13736, 9), +(13737, 9), +(13738, 9), +(13739, 9), +(13740, 9), +(13741, 9), +(13743, 9), +(13744, 9), +(13745, 9), +(13746, 9), +(13747, 9), +(13748, 9), +(13750, 9), +(13751, 9), +(13752, 9), +(13753, 9), +(13755, 9), +(13756, 9), +(13757, 9), +(13758, 9), +(13759, 9), +(13760, 9), +(13761, 9), +(13762, 9), +(13763, 9), +(13764, 9), +(13765, 9), +(13766, 9), +(13767, 9), +(13768, 9), +(13769, 9), +(13771, 9), +(13772, 9), +(13773, 9), +(13774, 9), +(13775, 9), +(13776, 9), +(13777, 9), +(13778, 9), +(13780, 9), +(13781, 9), +(13782, 9), +(13783, 9), +(13784, 9), +(13785, 9), +(13786, 9), +(13788, 9), +(13789, 9), +(13790, 9), +(13792, 9), +(13793, 9), +(13794, 9), +(13796, 9), +(13797, 9), +(13798, 9), +(13799, 9), +(13800, 9), +(13802, 9), +(13803, 9), +(13804, 9), +(13805, 9), +(13806, 9), +(13807, 9), +(13808, 9), +(13809, 9), +(13810, 9), +(13811, 9), +(13812, 9), +(13813, 9), +(13814, 9), +(13815, 9), +(13816, 9), +(13817, 9), +(13818, 9), +(13819, 9), +(13820, 9), +(13821, 9), +(13822, 9), +(13823, 9), +(13824, 9), +(13825, 9), +(13826, 9), +(13827, 9), +(13828, 9), +(13829, 9), +(13830, 9), +(13831, 9), +(13832, 9), +(13833, 9), +(13834, 9), +(13835, 9), +(13836, 9), +(13837, 9), +(13838, 9), +(13839, 9), +(13840, 9), +(13841, 9), +(13843, 9), +(13844, 9), +(13845, 9), +(13846, 9), +(13847, 9), +(13848, 9), +(13849, 9), +(13850, 9), +(13851, 9), +(13852, 9), +(13853, 9), +(13854, 9), +(13855, 9), +(13856, 9), +(13857, 9), +(13858, 9), +(13859, 9), +(13860, 9), +(13861, 9), +(13862, 9), +(13863, 9), +(13864, 9), +(13865, 9), +(13866, 9), +(13867, 9), +(13868, 9), +(13869, 9), +(13870, 9), +(13871, 9), +(13873, 9), +(13874, 9), +(13875, 9), +(13876, 9), +(13877, 9), +(13878, 9), +(13880, 9), +(13881, 9), +(13882, 9), +(13883, 9), +(13884, 9), +(13885, 9), +(13886, 9), +(13892, 9), +(13893, 9), +(13894, 9), +(13895, 9), +(13896, 9), +(13897, 9), +(13899, 9), +(13900, 9), +(13901, 9), +(13902, 9), +(13903, 9), +(13904, 9), +(13906, 9), +(13907, 9), +(13908, 9), +(13909, 9), +(13910, 9), +(13912, 9), +(13913, 9), +(13914, 9), +(13915, 9), +(13916, 9), +(13917, 9), +(13919, 9), +(13920, 9), +(13921, 9), +(13922, 9), +(13923, 9), +(13924, 9), +(13925, 9), +(13927, 9), +(13928, 9), +(13929, 9), +(13930, 9), +(13931, 9), +(13932, 9), +(13933, 9), +(13934, 9), +(13935, 9), +(13936, 9), +(13937, 9), +(13938, 9), +(13939, 9), +(13940, 9), +(13941, 9), +(13943, 9), +(13944, 9), +(13945, 9), +(13946, 9), +(13947, 9), +(13948, 9), +(13949, 9), +(13950, 9), +(13951, 9), +(13953, 9), +(13954, 9), +(13955, 9), +(13956, 9), +(13957, 9), +(13958, 9), +(13959, 9), +(13960, 9), +(13962, 9), +(13963, 9), +(13964, 9), +(13965, 9), +(13966, 9), +(13968, 9), +(13969, 9), +(13970, 9), +(13971, 9), +(13974, 9), +(13975, 9), +(13976, 9), +(13977, 9), +(13978, 9), +(13979, 9), +(13980, 9), +(13981, 9), +(13982, 9), +(13983, 9), +(13984, 9), +(13985, 9), +(13986, 9), +(13987, 9), +(13988, 9), +(13989, 9), +(13990, 9), +(13991, 9), +(13992, 9), +(13993, 9), +(13994, 9), +(13995, 9), +(13998, 9), +(13999, 9), +(14000, 9), +(14001, 9), +(14002, 9), +(14003, 9), +(14004, 9), +(14005, 9), +(14006, 9), +(14010, 9), +(14011, 9), +(14012, 9), +(14013, 9), +(14014, 9), +(14015, 9), +(14016, 9), +(14017, 9), +(14018, 9), +(14019, 9), +(14020, 9), +(14021, 9), +(14022, 9), +(14023, 9), +(14024, 9), +(14025, 9), +(14026, 9), +(14027, 9), +(14028, 9), +(14029, 9), +(14031, 9), +(14032, 9), +(14033, 9), +(14034, 9), +(14035, 9), +(14039, 9), +(14040, 9), +(14041, 9), +(14042, 9), +(14043, 9), +(14044, 9), +(14045, 9), +(14051, 9), +(14052, 9), +(14053, 9), +(14054, 9), +(14055, 9), +(14056, 9), +(14057, 9), +(14058, 9), +(14059, 9), +(14061, 9), +(14062, 9), +(14064, 9), +(14066, 9), +(14068, 9), +(14070, 9), +(14071, 9), +(14072, 9), +(14074, 9), +(14075, 9), +(14076, 9), +(14077, 9), +(14078, 9), +(14079, 9), +(14080, 9), +(14081, 9), +(14082, 9), +(14083, 9), +(14084, 9), +(14085, 9), +(14086, 9), +(14087, 9), +(14089, 9), +(14091, 9), +(14093, 9), +(14094, 9), +(14096, 9), +(14098, 9), +(14100, 9), +(14102, 9), +(14104, 9), +(14106, 9), +(14107, 9), +(14108, 9), +(14110, 9), +(14112, 9), +(14114, 9), +(14115, 9), +(14116, 9), +(14118, 9), +(14120, 9), +(14121, 9), +(14123, 9), +(14125, 9), +(14127, 9), +(14128, 9), +(14129, 9), +(14130, 9), +(14131, 9), +(14132, 9), +(14133, 9), +(14134, 9), +(14135, 9), +(14136, 9), +(14137, 9), +(14138, 9), +(14139, 9), +(14140, 9), +(14141, 9), +(14142, 9), +(14143, 9), +(14144, 9), +(14145, 9), +(14146, 9), +(14147, 9), +(14148, 9), +(14149, 9), +(14150, 9), +(14151, 9), +(14152, 9), +(14153, 9), +(14154, 9), +(14155, 9), +(14156, 9), +(14157, 9), +(14158, 9), +(14159, 9), +(14160, 9), +(14161, 9), +(14162, 9), +(14163, 9), +(14164, 9), +(14165, 9), +(14166, 9), +(14167, 9), +(14168, 9), +(14169, 9), +(14170, 9), +(14171, 9), +(96130, 11), +(96134, 11), +(96137, 11), +(96139, 11), +(96142, 11), +(96147, 11), +(96152, 11), +(96153, 11), +(96155, 11), +(96156, 11), +(96159, 11), +(96160, 11), +(96161, 11), +(96165, 11), +(96166, 11), +(96167, 11), +(96168, 11), +(96169, 11), +(96175, 11), +(96178, 11), +(96183, 11), +(96194, 11), +(96195, 11), +(96196, 11), +(96197, 11), +(96203, 11), +(96204, 11), +(96209, 11), +(96210, 11), +(96214, 11), +(96215, 11), +(96216, 11), +(96217, 11), +(96219, 11), +(96220, 11), +(96221, 11), +(96222, 11), +(96258, 11), +(96259, 11), +(96260, 11), +(96266, 11), +(96267, 11), +(96268, 11), +(96269, 11), +(96270, 11), +(96271, 11), +(96272, 11), +(96273, 11), +(96274, 11), +(96275, 11), +(96276, 11), +(96277, 11), +(96278, 11), +(96279, 11), +(96280, 11), +(96281, 11), +(96282, 11), +(96283, 11), +(96284, 11), +(96291, 11), +(96292, 11), +(96293, 11), +(96294, 11), +(96295, 11), +(96296, 11), +(96297, 11), +(96298, 11), +(96299, 11), +(96300, 11), +(96301, 11), +(96302, 11), +(96303, 11), +(96304, 11), +(96305, 11), +(96306, 11), +(96307, 11), +(96308, 11), +(96309, 11), +(96310, 11), +(96311, 11), +(96312, 11), +(96313, 11), +(96314, 11), +(96315, 11), +(96316, 11), +(96317, 11), +(96318, 11), +(96319, 11), +(96320, 11), +(96321, 11), +(96322, 11), +(96324, 11), +(96325, 11), +(96326, 11), +(96327, 11), +(96328, 11), +(96329, 11), +(96330, 11), +(96331, 11), +(96333, 11), +(96334, 11), +(96335, 11), +(96336, 11), +(96337, 11), +(96338, 11), +(96339, 11), +(96341, 11), +(96342, 11), +(96343, 11), +(96344, 11), +(96345, 11), +(96347, 11), +(96348, 11), +(96349, 11), +(96350, 11), +(96351, 11), +(96352, 11), +(96353, 11), +(96354, 11), +(96355, 11), +(96356, 11), +(96357, 11), +(96358, 11), +(96359, 11), +(96360, 11), +(96363, 11), +(96364, 11), +(96365, 11), +(96366, 11), +(96367, 11), +(96368, 11), +(96369, 11), +(96370, 11), +(96373, 11), +(96374, 11), +(96392, 11), +(96393, 11), +(96394, 11), +(96395, 11), +(96396, 11), +(96397, 11), +(96398, 11), +(96399, 11), +(96400, 11), +(96401, 11), +(96402, 11), +(96403, 11), +(96404, 11), +(96407, 11), +(96408, 11), +(96409, 11), +(96410, 11), +(96411, 11), +(96425, 11), +(96428, 11), +(96431, 11), +(96436, 11), +(96439, 11), +(96446, 11), +(96447, 11), +(96448, 11), +(96449, 11), +(96450, 11), +(96451, 11), +(96452, 11), +(96453, 11), +(96454, 11), +(96455, 11), +(96456, 11), +(96457, 11), +(96458, 11), +(96459, 11), +(96460, 11), +(96461, 11), +(96462, 11), +(96463, 11), +(96464, 11), +(96465, 11), +(96466, 11), +(96467, 11), +(96468, 11), +(96469, 11), +(96470, 11), +(96471, 11), +(96472, 11), +(96473, 11), +(96474, 11), +(96475, 11), +(96476, 11), +(96477, 11), +(96483, 11), +(96484, 11), +(96485, 11), +(96487, 11), +(96488, 11), +(96489, 11), +(96490, 11), +(96492, 11), +(96493, 11), +(96494, 11), +(96495, 11), +(96496, 11), +(96498, 11), +(96501, 11), +(96502, 11), +(96503, 11), +(96504, 11), +(96505, 11), +(96507, 11), +(96508, 11), +(96510, 11), +(96511, 11), +(96512, 11), +(96513, 11), +(96514, 11), +(96515, 11), +(96516, 11), +(96517, 11), +(96518, 11), +(96519, 11), +(96520, 11), +(96521, 11), +(96522, 11), +(96523, 11), +(96524, 11), +(96526, 11), +(96527, 11), +(96528, 11), +(96529, 11), +(96530, 11), +(96531, 11), +(96532, 11), +(96536, 11), +(96537, 11), +(96538, 11), +(96539, 11), +(96540, 11), +(96541, 11), +(96543, 11), +(96544, 11), +(96545, 11), +(96546, 11), +(96547, 11), +(96548, 11), +(96549, 11), +(96550, 11), +(96551, 11), +(96552, 11), +(96553, 11), +(96554, 11), +(96555, 11), +(96556, 11), +(96557, 11), +(96558, 11), +(96559, 11), +(96560, 11), +(96561, 11), +(96562, 11), +(96563, 11), +(96564, 11), +(96565, 11), +(96566, 11), +(96569, 11), +(96570, 11), +(96571, 11), +(96572, 11), +(96573, 11), +(96575, 11), +(96576, 11), +(96577, 11), +(96578, 11), +(96579, 11), +(96580, 11), +(96581, 11), +(96582, 11), +(96583, 11), +(96584, 11), +(96585, 11), +(96586, 11), +(96587, 11), +(96588, 11), +(96589, 11), +(96590, 11), +(96591, 11), +(96592, 11), +(96593, 11), +(96602, 11), +(96603, 11), +(96604, 11), +(96605, 11), +(96606, 11), +(96607, 11), +(96608, 11), +(96609, 11), +(96610, 11), +(96611, 11), +(96612, 11), +(96613, 11), +(96614, 11), +(96615, 11), +(96616, 11), +(96617, 11), +(96618, 11), +(96619, 11), +(96620, 11), +(96621, 11), +(96622, 11), +(96624, 11), +(96625, 11), +(96626, 11), +(96627, 11), +(96628, 11), +(96631, 11), +(96634, 11), +(96635, 11), +(96636, 11), +(96637, 11), +(96638, 11), +(96639, 11), +(96640, 11), +(96641, 11), +(96642, 11), +(96643, 11), +(96644, 11), +(96645, 11), +(96646, 11), +(96647, 11), +(96654, 11), +(96655, 11), +(96656, 11), +(96657, 11), +(96658, 11), +(96659, 11), +(96660, 11), +(96661, 11), +(96662, 11), +(96663, 11), +(96664, 11), +(96665, 11), +(96666, 11), +(96667, 11), +(96668, 11), +(96669, 11), +(97487, 11), +(97488, 11), +(97489, 11), +(97490, 11), +(97491, 11), +(97492, 11), +(97493, 11), +(97494, 11), +(97496, 11), +(97497, 11), +(97498, 11), +(97499, 11), +(97500, 11), +(97501, 11), +(97502, 11), +(97503, 11), +(97504, 11), +(97505, 11), +(97506, 11), +(97507, 11), +(97508, 11), +(97509, 11), +(97510, 11), +(97511, 11), +(97512, 11), +(97513, 11), +(97514, 11), +(97515, 11), +(97516, 11), +(97517, 11), +(97518, 11), +(97519, 11), +(97520, 11), +(97521, 11), +(97522, 11), +(97523, 11), +(97524, 11), +(97525, 11), +(97526, 11), +(97527, 11), +(97528, 11), +(97529, 11), +(97532, 11), +(97533, 11), +(97534, 11), +(97535, 11), +(97536, 11), +(97537, 11), +(97538, 11), +(97539, 11), +(97540, 11), +(97542, 11), +(97543, 11), +(97544, 11), +(97545, 11), +(97546, 11), +(97549, 11), +(97550, 11), +(97551, 11), +(97552, 11), +(97553, 11), +(97554, 11), +(97555, 11), +(97556, 11), +(97558, 11), +(97559, 11), +(97560, 11), +(97561, 11), +(97562, 11), +(97563, 11), +(97564, 11), +(97565, 11), +(97566, 11), +(97567, 11), +(97576, 11), +(97578, 11), +(97579, 11), +(97580, 11), +(97581, 11), +(97582, 11), +(97583, 11), +(97585, 11), +(97587, 11), +(97588, 11), +(97589, 11), +(97590, 11), +(97591, 11), +(97592, 11), +(97593, 11), +(97594, 11), +(97595, 11), +(97596, 11), +(97597, 11), +(97598, 11), +(97599, 11), +(97600, 11), +(97601, 11), +(97602, 11), +(97603, 11), +(97604, 11), +(97605, 11), +(97606, 11), +(97607, 11), +(97608, 11), +(97609, 11), +(97610, 11), +(97611, 11), +(97612, 11), +(97613, 11), +(97614, 11), +(97615, 11), +(97616, 11), +(97617, 11), +(97618, 11), +(97619, 11), +(97620, 11), +(97621, 11), +(97622, 11), +(97623, 11), +(97624, 11), +(97625, 11), +(97626, 11), +(97627, 11), +(97628, 11), +(97629, 11), +(97630, 11), +(97631, 11), +(97632, 11), +(97633, 11), +(97634, 11), +(97635, 11), +(97636, 11), +(97637, 11), +(97638, 11), +(97639, 11), +(97640, 11), +(97641, 11), +(97642, 11), +(97644, 11), +(97645, 11), +(97646, 11), +(97647, 11), +(97648, 11), +(97649, 11), +(97650, 11), +(97651, 11), +(97652, 11), +(97653, 11), +(97654, 11), +(97655, 11), +(97656, 11), +(97657, 11), +(97658, 11), +(97659, 11), +(97661, 11), +(97663, 11), +(97664, 11), +(97665, 11), +(97666, 11), +(97668, 11), +(97670, 11), +(97671, 11), +(97672, 11), +(97673, 11), +(97674, 11), +(97675, 11), +(97676, 11), +(97734, 11), +(97735, 11), +(97736, 11), +(97738, 11), +(97739, 11), +(97740, 11), +(97742, 11), +(97744, 11), +(97745, 11), +(97746, 11), +(97749, 11), +(97751, 11), +(97752, 11), +(97759, 11), +(97760, 11), +(97761, 11), +(97762, 11), +(97763, 11), +(97764, 11), +(97765, 11), +(97766, 11), +(97767, 11), +(97768, 11), +(97769, 11), +(97770, 11), +(97771, 11), +(97772, 11), +(97774, 11), +(97775, 11), +(97776, 11), +(97777, 11), +(97778, 11), +(97780, 11), +(97781, 11), +(97782, 11), +(97783, 11), +(97784, 11), +(97785, 11), +(97786, 11), +(97787, 11), +(97788, 11), +(97789, 11), +(97791, 11), +(97792, 11), +(97793, 11), +(97794, 11), +(97795, 11), +(97796, 11), +(97797, 11), +(97798, 11), +(97799, 11), +(97800, 11), +(97801, 11), +(97802, 11), +(97803, 11), +(97804, 11), +(97805, 11), +(97807, 11), +(97808, 11), +(97809, 11), +(97810, 11), +(97811, 11), +(97812, 11), +(97813, 11), +(97815, 11), +(97816, 11), +(97817, 11), +(97818, 11), +(97819, 11), +(97820, 11), +(97821, 11), +(97823, 11), +(97824, 11), +(97825, 11), +(97826, 11), +(97827, 11), +(97828, 11), +(97829, 11), +(97830, 11), +(97831, 11), +(97832, 11), +(97834, 11), +(97835, 11), +(97836, 11), +(97837, 11), +(97838, 11), +(97839, 11), +(97840, 11), +(97841, 11), +(97842, 11), +(97844, 11), +(97845, 11), +(97846, 11), +(97847, 11), +(97848, 11), +(97849, 11), +(97850, 11), +(97851, 11), +(97852, 11), +(97853, 11), +(97854, 11), +(97855, 11), +(97856, 11), +(97857, 11), +(97858, 11), +(97859, 11), +(97860, 11), +(97861, 11), +(97863, 11), +(97864, 11), +(97865, 11), +(97866, 11), +(97867, 11), +(97868, 11), +(97869, 11), +(97870, 11), +(97871, 11), +(97872, 11), +(97873, 11), +(97874, 11), +(97875, 11), +(97876, 11), +(97877, 11), +(97878, 11), +(97879, 11), +(97880, 11), +(97881, 11), +(97882, 11), +(97883, 11), +(97884, 11), +(97885, 11), +(97886, 11), +(97887, 11), +(97889, 11), +(97890, 11), +(97891, 11), +(97892, 11), +(97893, 11), +(97894, 11), +(97895, 11), +(97896, 11), +(97897, 11), +(97898, 11), +(97899, 11), +(97900, 11), +(97901, 11), +(97902, 11), +(97903, 11), +(97904, 11), +(97905, 11), +(97906, 11), +(97908, 11), +(97909, 11), +(97910, 11), +(97911, 11), +(97912, 11), +(97913, 11), +(97914, 11), +(97915, 11), +(97916, 11), +(97917, 11), +(97918, 11), +(97919, 11), +(97925, 11), +(97926, 11), +(97927, 11), +(97929, 11), +(97930, 11), +(97932, 11), +(97933, 11), +(97934, 11), +(97935, 11), +(97936, 11), +(97937, 11), +(97938, 11), +(97939, 11), +(97940, 11), +(97941, 11), +(97942, 11), +(97943, 11), +(97944, 11), +(97945, 11), +(97946, 11), +(97947, 11), +(97948, 11), +(97949, 11), +(97950, 11), +(97951, 11), +(97952, 11), +(97953, 11), +(97954, 11), +(97955, 11), +(97956, 11), +(97957, 11), +(97959, 11), +(97960, 11), +(97961, 11), +(97962, 11), +(97963, 11), +(97965, 11), +(97966, 11), +(97967, 11), +(97968, 11), +(97969, 11), +(97970, 11), +(97972, 11), +(97973, 11), +(97974, 11), +(97975, 11), +(97976, 11), +(97977, 11), +(97978, 11), +(97979, 11), +(97980, 11), +(97981, 11), +(97983, 11), +(97984, 11), +(97985, 11), +(97986, 11), +(97987, 11), +(97988, 11), +(97989, 11), +(97992, 11), +(97993, 11), +(97994, 11), +(97995, 11), +(97996, 11), +(97997, 11), +(97998, 11), +(97999, 11), +(98000, 11), +(98001, 11), +(98002, 11), +(98003, 11), +(98004, 11), +(98005, 11), +(98006, 11), +(98007, 11), +(98008, 11), +(98009, 11), +(98010, 11), +(98011, 11), +(98012, 11), +(98013, 11), +(98015, 11), +(98016, 11), +(98017, 11), +(98018, 11), +(98019, 11), +(98020, 11), +(98021, 11), +(98022, 11), +(98023, 11), +(98024, 11), +(98025, 11), +(98026, 11), +(98027, 11), +(98028, 11), +(98373, 11), +(98374, 11), +(98375, 11), +(98376, 11), +(98377, 11), +(98378, 11), +(98379, 11), +(98380, 11), +(98381, 11), +(98382, 11), +(98384, 11), +(98385, 11), +(98386, 11), +(98387, 11), +(98388, 11), +(98389, 11), +(98390, 11), +(98391, 11), +(98392, 11), +(98393, 11), +(98394, 11), +(98395, 11), +(98396, 11), +(98397, 11), +(98398, 11), +(98399, 11), +(98400, 11), +(98401, 11), +(98402, 11), +(98403, 11), +(98404, 11), +(98405, 11), +(98406, 11), +(98407, 11), +(98408, 11), +(98409, 11), +(98410, 11), +(98411, 11), +(98412, 11), +(98414, 11), +(98417, 11), +(98418, 11), +(98419, 11), +(98420, 11), +(98421, 11), +(98422, 11), +(98423, 11), +(98424, 11), +(98425, 11), +(98426, 11), +(98427, 11), +(98429, 11), +(98430, 11), +(98431, 11), +(98432, 11), +(98433, 11), +(98434, 11), +(98435, 11), +(98436, 11), +(98437, 11), +(98438, 11), +(98439, 11), +(98440, 11), +(98441, 11), +(98442, 11), +(98443, 11), +(98444, 11), +(98445, 11), +(98447, 11), +(98451, 11), +(98452, 11), +(98453, 11), +(98454, 11), +(98455, 11), +(98456, 11), +(98457, 11), +(98458, 11), +(98459, 11), +(98460, 11), +(98462, 11), +(98463, 11), +(98464, 11), +(98465, 11), +(98466, 11), +(98467, 11), +(98468, 11), +(98469, 11), +(98470, 11), +(98471, 11), +(98472, 11), +(98473, 11), +(98474, 11), +(98475, 11), +(98476, 11), +(98477, 11), +(98478, 11), +(98479, 11), +(98480, 11), +(98481, 11), +(98482, 11), +(98483, 11), +(98484, 11), +(98485, 11), +(98486, 11), +(98487, 11), +(98488, 11), +(98490, 11), +(98491, 11), +(98492, 11), +(98493, 11), +(98494, 11), +(98495, 11), +(98496, 11), +(98497, 11), +(98498, 11), +(98499, 11), +(98500, 11), +(98501, 11), +(98502, 11), +(98503, 11), +(98504, 11), +(98505, 11), +(98506, 11), +(98507, 11), +(98508, 11), +(98509, 11), +(98510, 11), +(98511, 11), +(98512, 11), +(98513, 11), +(98514, 11), +(98515, 11), +(98517, 11), +(98518, 11), +(98520, 11), +(98521, 11), +(98524, 11), +(98526, 11), +(98527, 11), +(98531, 11), +(98532, 11), +(98533, 11), +(98534, 11), +(98535, 11), +(98536, 11), +(98537, 11), +(98538, 11), +(98539, 11), +(98540, 11), +(98541, 11), +(98542, 11), +(98543, 11), +(98544, 11), +(98545, 11), +(98546, 11), +(98547, 11), +(98548, 11), +(98549, 11), +(98550, 11), +(98551, 11), +(98552, 11), +(98553, 11), +(98554, 11), +(98555, 11), +(98556, 11), +(98557, 11), +(98558, 11), +(98559, 11), +(98560, 11), +(98561, 11), +(98562, 11), +(98563, 11), +(98564, 11), +(98565, 11), +(98566, 11), +(98567, 11), +(98568, 11), +(98569, 11), +(98570, 11), +(98571, 11), +(98572, 11), +(98573, 11), +(98574, 11), +(98575, 11), +(98576, 11), +(98577, 11), +(98578, 11), +(98579, 11), +(98581, 11), +(98582, 11), +(98583, 11), +(98584, 11), +(98585, 11), +(98586, 11), +(98587, 11), +(98588, 11), +(98589, 11), +(98590, 11), +(98591, 11), +(98592, 11), +(98593, 11), +(98594, 11), +(98595, 11), +(98596, 11), +(98597, 11), +(98598, 11), +(98599, 11), +(98600, 11), +(98601, 11), +(98602, 11), +(98603, 11), +(98604, 11), +(98605, 11), +(98606, 11), +(98607, 11), +(98608, 11), +(98609, 11), +(98610, 11), +(98611, 11), +(98613, 11), +(98614, 11), +(98615, 11), +(98616, 11), +(98617, 11), +(98618, 11), +(98619, 11), +(98620, 11), +(98621, 11), +(98622, 11), +(98623, 11), +(98624, 11), +(98625, 11), +(98626, 11), +(98629, 11), +(98632, 11), +(98633, 11), +(98634, 11), +(98644, 11), +(98646, 11), +(98648, 11), +(98649, 11), +(98650, 11), +(98653, 11), +(98654, 11), +(98656, 11), +(98657, 11), +(98659, 11), +(98661, 11), +(98662, 11), +(98663, 11), +(98664, 11), +(98665, 11), +(98666, 11), +(98667, 11), +(98668, 11), +(98669, 11), +(98670, 11), +(98671, 11), +(98673, 11), +(98674, 11), +(98675, 11), +(98676, 11), +(98677, 11), +(98678, 11), +(98679, 11), +(98680, 11), +(98681, 11), +(98682, 11), +(98684, 11), +(98685, 11), +(98687, 11), +(98688, 11), +(98689, 11), +(98690, 11), +(98691, 11), +(98693, 11), +(98694, 11), +(98695, 11), +(98697, 11), +(98699, 11), +(98700, 11), +(98702, 11), +(98703, 11), +(98704, 11), +(98705, 11), +(98706, 11), +(98707, 11), +(98709, 11), +(98711, 11), +(98712, 11), +(98713, 11), +(98715, 11), +(98716, 11), +(98717, 11), +(98718, 11), +(98720, 11), +(98721, 11), +(98722, 11), +(98723, 11), +(98724, 11), +(98725, 11), +(98727, 11), +(98728, 11), +(98729, 11), +(98731, 11), +(98732, 11), +(98734, 11), +(98735, 11), +(98736, 11), +(98737, 11), +(98739, 11), +(98740, 11), +(98742, 11), +(98744, 11), +(98746, 11), +(98747, 11), +(98749, 11), +(98750, 11), +(98752, 11), +(98753, 11), +(98755, 11), +(98756, 11), +(98757, 11), +(98759, 11), +(98760, 11), +(98761, 11), +(98763, 11), +(98765, 11), +(98766, 11), +(98768, 11), +(98770, 11), +(98771, 11), +(98773, 11), +(98774, 11), +(98775, 11), +(98777, 11), +(98778, 11), +(98779, 11), +(98780, 11), +(98781, 11), +(98782, 11), +(98784, 11), +(98786, 11), +(98787, 11), +(98788, 11), +(98789, 11), +(98790, 11), +(98791, 11), +(98793, 11), +(98794, 11), +(98795, 11), +(98796, 11), +(98797, 11), +(98798, 11), +(98799, 11), +(98801, 11), +(98802, 11), +(98804, 11), +(98805, 11), +(98807, 11), +(98808, 11), +(98809, 11), +(98810, 11), +(98811, 11), +(98812, 11), +(98813, 11), +(98814, 11), +(98815, 11), +(98816, 11), +(98818, 11), +(98819, 11), +(98820, 11), +(98821, 11), +(98822, 11), +(98823, 11), +(98825, 11), +(98826, 11), +(98827, 11), +(98828, 11), +(98829, 11), +(98830, 11), +(98831, 11), +(98832, 11), +(98833, 11), +(98834, 11), +(98835, 11), +(98836, 11), +(98837, 11), +(98838, 11), +(98839, 11), +(98841, 11), +(98842, 11), +(98843, 11), +(98845, 11), +(98846, 11), +(98847, 11), +(98848, 11), +(98849, 11), +(98850, 11), +(98851, 11), +(98852, 11), +(98853, 11), +(98854, 11), +(98855, 11), +(98857, 11), +(98858, 11), +(98859, 11), +(98860, 11), +(98861, 11), +(98863, 11), +(98864, 11), +(98865, 11), +(98867, 11), +(98868, 11), +(98869, 11), +(98870, 11), +(98871, 11), +(98872, 11), +(98873, 11), +(98874, 11), +(98875, 11), +(98876, 11), +(98878, 11), +(98879, 11), +(98880, 11), +(98881, 11), +(98883, 11), +(98885, 11), +(98886, 11), +(98887, 11), +(98888, 11), +(98889, 11), +(98890, 11), +(98891, 11), +(98892, 11), +(98893, 11), +(98894, 11), +(98896, 11), +(98897, 11), +(98898, 11), +(98900, 11), +(98901, 11), +(98903, 11), +(98905, 11), +(98906, 11), +(98907, 11), +(98909, 11), +(98910, 11), +(98911, 11), +(98913, 11), +(98914, 11), +(98915, 11), +(98916, 11), +(98919, 11), +(98920, 11), +(98921, 11), +(98922, 11), +(98923, 11), +(98924, 11), +(98925, 11), +(98926, 11), +(98927, 11), +(98928, 11), +(98930, 11), +(98931, 11), +(98933, 11), +(98934, 11), +(98935, 11), +(98937, 11), +(98938, 11), +(98939, 11), +(98941, 11), +(98942, 11), +(98943, 11), +(98945, 11), +(98946, 11), +(98947, 11), +(98948, 11), +(98949, 11), +(98950, 11), +(98952, 11), +(98953, 11), +(98954, 11), +(98955, 11), +(98956, 11), +(98957, 11), +(98958, 11), +(98959, 11), +(98960, 11), +(98961, 11), +(98962, 11), +(98963, 11), +(98964, 11), +(98965, 11), +(98966, 11), +(98967, 11), +(98968, 11), +(98969, 11), +(98970, 11), +(98972, 11), +(98973, 11), +(98974, 11), +(98975, 11), +(98976, 11), +(98977, 11), +(98978, 11), +(98979, 11), +(98980, 11), +(98981, 11), +(98983, 11), +(98984, 11), +(98985, 11), +(98986, 11), +(98987, 11), +(98988, 11), +(98989, 11), +(98990, 11), +(98991, 11), +(98993, 11), +(98994, 11), +(98995, 11), +(98996, 11), +(98997, 11), +(98998, 11), +(98999, 11), +(99000, 11), +(99002, 11), +(99004, 11), +(99005, 11), +(99006, 11), +(99007, 11), +(99008, 11), +(99009, 11), +(99010, 11), +(99011, 11), +(99013, 11), +(99014, 11), +(99015, 11), +(99016, 11), +(99018, 11), +(99019, 11), +(99020, 11), +(99021, 11), +(99023, 11), +(99024, 11), +(99025, 11), +(99026, 11), +(99027, 11), +(99028, 11), +(99030, 11), +(99031, 11), +(99032, 11), +(99033, 11), +(99034, 11), +(99035, 11), +(99037, 11), +(99038, 11), +(99039, 11), +(99041, 11), +(99043, 11), +(99044, 11), +(99045, 11), +(99046, 11), +(99047, 11), +(99048, 11), +(99050, 11), +(99051, 11), +(99052, 11), +(99054, 11), +(99055, 11), +(99056, 11), +(99058, 11), +(99059, 11), +(99060, 11), +(99061, 11), +(99062, 11), +(99064, 11), +(99065, 11), +(99066, 11), +(99068, 11), +(99069, 11), +(99071, 11), +(99072, 11), +(99073, 11), +(99075, 11), +(99076, 11), +(99077, 11), +(99078, 11), +(99079, 11), +(99080, 11), +(99082, 11), +(99083, 11), +(99084, 11), +(99085, 11), +(99087, 11), +(99088, 11), +(99090, 11), +(99091, 11), +(99092, 11), +(99094, 11), +(99095, 11), +(99096, 11), +(99098, 11), +(99099, 11), +(99100, 11), +(99101, 11), +(99102, 11), +(99103, 11), +(99105, 11), +(99106, 11), +(99107, 11), +(99109, 11), +(99110, 11), +(99111, 11), +(99113, 11), +(99114, 11), +(99115, 11), +(99117, 11), +(99118, 11), +(99119, 11); +INSERT INTO `configuration` (`id`, `projectId`) VALUES +(99121, 11), +(99122, 11), +(99123, 11), +(99125, 11), +(99126, 11), +(99127, 11), +(99128, 11), +(99129, 11), +(99130, 11), +(99131, 11), +(99132, 11), +(99133, 11), +(99134, 11), +(99135, 11), +(99136, 11), +(99137, 11), +(99138, 11), +(99139, 11), +(99140, 11), +(99141, 11), +(99142, 11), +(99143, 11), +(99144, 11), +(99146, 11), +(99147, 11), +(99148, 11), +(99149, 11), +(99150, 11), +(99151, 11), +(99152, 11), +(99154, 11), +(99155, 11), +(99156, 11), +(99157, 11), +(99158, 11), +(99159, 11), +(99160, 11), +(99161, 11), +(99162, 11), +(99165, 11), +(99166, 11), +(99167, 11), +(99168, 11), +(99169, 11), +(99170, 11), +(99172, 11), +(99173, 11), +(99174, 11), +(99175, 11), +(99176, 11), +(99178, 11), +(99179, 11), +(99181, 11), +(99182, 11), +(99184, 11), +(99185, 11), +(99186, 11), +(99188, 11), +(99189, 11), +(99190, 11), +(99191, 11), +(99195, 12), +(99198, 12), +(99200, 12), +(99201, 12), +(99202, 12), +(99204, 12), +(99205, 12), +(99207, 12), +(99208, 12), +(99212, 12), +(99218, 12), +(99219, 12), +(99220, 12), +(99221, 12), +(99222, 12), +(99223, 12), +(99224, 12), +(99225, 12), +(99226, 12), +(99228, 12), +(99229, 12), +(99230, 12), +(99232, 12), +(99233, 12), +(99234, 12), +(99235, 12), +(99236, 12), +(99237, 12), +(99238, 12), +(99239, 12), +(99240, 12), +(99241, 12), +(99242, 12), +(99243, 12), +(99244, 12), +(99245, 12), +(99246, 12), +(99247, 12), +(99249, 12), +(99250, 12), +(99251, 12), +(99252, 12), +(99253, 12), +(99254, 12), +(99255, 12), +(99256, 12), +(99257, 12), +(99258, 12), +(99259, 12), +(99261, 12), +(99262, 12), +(99263, 12), +(99270, 12), +(99271, 12), +(99272, 12), +(99273, 12), +(99274, 12), +(99276, 12), +(99277, 12), +(99278, 12), +(99279, 12), +(99280, 12), +(99281, 12), +(99282, 12), +(99283, 12), +(99284, 12), +(99285, 12), +(99286, 12), +(99287, 12), +(99288, 12), +(99289, 12), +(99290, 12), +(99291, 12), +(99292, 12), +(99293, 12), +(99294, 12), +(99295, 12), +(99296, 12), +(99297, 12), +(99298, 12), +(99299, 12), +(99300, 12), +(99301, 12), +(99302, 12), +(99303, 12), +(99304, 12), +(99305, 12), +(99306, 12), +(99307, 12), +(99308, 12), +(99309, 12), +(99310, 12), +(99311, 12), +(99312, 12), +(99313, 12), +(99318, 12), +(99319, 12), +(99320, 12), +(99321, 12), +(99322, 12), +(99323, 12), +(99324, 12), +(99325, 12), +(99326, 12), +(99327, 12), +(99329, 12), +(99330, 12), +(99331, 12), +(99332, 12), +(99333, 12), +(99334, 12), +(99335, 12), +(99336, 12), +(99337, 12), +(99338, 12), +(99339, 12), +(99340, 12), +(99341, 12), +(99342, 12), +(99343, 12), +(99344, 12), +(99345, 12), +(99346, 12), +(99347, 12), +(99348, 12), +(99349, 12), +(99350, 12), +(99351, 12), +(99352, 12), +(99353, 12), +(99354, 12), +(99355, 12), +(99356, 12), +(99357, 12), +(99358, 12), +(99359, 12), +(99360, 12), +(99361, 12), +(99362, 12), +(99363, 12), +(99364, 12), +(99365, 12), +(99366, 12), +(99367, 12), +(99368, 12), +(99369, 12), +(99370, 12), +(99371, 12), +(99372, 12), +(99373, 12), +(99374, 12), +(99375, 12), +(99376, 12), +(99377, 12), +(99378, 12), +(99379, 12), +(99380, 12), +(99381, 12), +(99382, 12), +(99383, 12), +(99384, 12), +(99385, 12), +(99386, 12), +(99387, 12), +(99388, 12), +(99389, 12), +(99390, 12), +(99391, 12), +(99392, 12), +(99393, 12), +(99394, 12), +(99395, 12), +(99396, 12), +(99397, 12), +(99398, 12), +(99399, 12), +(99400, 12), +(99401, 12), +(99402, 12), +(99403, 12), +(99404, 12), +(99405, 12), +(99406, 12), +(99407, 12), +(99408, 12), +(99409, 12), +(99410, 12), +(99411, 12), +(99412, 12), +(99413, 12), +(99414, 12), +(99415, 12), +(99418, 12), +(99419, 12), +(99420, 12), +(99421, 12), +(99422, 12), +(99423, 12), +(99424, 12), +(99425, 12), +(99426, 12), +(99427, 12), +(99428, 12), +(99429, 12), +(99430, 12), +(99431, 12), +(99432, 12), +(99433, 12), +(99434, 12), +(99435, 12), +(99436, 12), +(99437, 12), +(99438, 12), +(99439, 12), +(99440, 12), +(99441, 12), +(99442, 12), +(99444, 12), +(99445, 12), +(99447, 12), +(99448, 12), +(99449, 12), +(99450, 12), +(99451, 12), +(99452, 12), +(99453, 12), +(99454, 12), +(99455, 12), +(99456, 12), +(99457, 12), +(99459, 12), +(99461, 12), +(99462, 12), +(99464, 12), +(99465, 12), +(99466, 12), +(99467, 12), +(99469, 12), +(99472, 12), +(99474, 12), +(99476, 12), +(99478, 12), +(99480, 12), +(99482, 12), +(99484, 12), +(99486, 12), +(99488, 12), +(99489, 12), +(99490, 12), +(99492, 12), +(99493, 12), +(99494, 12), +(99496, 12), +(99497, 12), +(99499, 12), +(99500, 12), +(99501, 12), +(99502, 12), +(99503, 12), +(99504, 12), +(99505, 12), +(99507, 12), +(99508, 12), +(99509, 12), +(99511, 12), +(99512, 12), +(99513, 12), +(99515, 12), +(99516, 12), +(99517, 12), +(99518, 12), +(99520, 12), +(99521, 12), +(99523, 12), +(99524, 12), +(99526, 12), +(99527, 12), +(99529, 12), +(99530, 12), +(99532, 12), +(99533, 12), +(99534, 12), +(99535, 12), +(99537, 12), +(99538, 12), +(99539, 12), +(99541, 12), +(99542, 12), +(99544, 12), +(99545, 12), +(99546, 12), +(99547, 12), +(99548, 12), +(99549, 12), +(99550, 12), +(99551, 12), +(99553, 12), +(99554, 12), +(99555, 12), +(99556, 12), +(99558, 12), +(99559, 12), +(99561, 12), +(99562, 12), +(99563, 12), +(99564, 12), +(99565, 12), +(99566, 12), +(99567, 12), +(99568, 12), +(99569, 12), +(99570, 12), +(99572, 12), +(99573, 12), +(99575, 12), +(99576, 12), +(99578, 12), +(99579, 12), +(99581, 12), +(99582, 12), +(99583, 12), +(99584, 12), +(99586, 12), +(99587, 12), +(99589, 12), +(99590, 12), +(99592, 12), +(99593, 12), +(99595, 12), +(99596, 12), +(99598, 12), +(99599, 12), +(99601, 12), +(99602, 12), +(99604, 12), +(99605, 12), +(99606, 12), +(99607, 12), +(99609, 12), +(99610, 12), +(99612, 12), +(99613, 12), +(99614, 12), +(99615, 12), +(99616, 12), +(99617, 12), +(99618, 12), +(99619, 12), +(99620, 12), +(99621, 12), +(99623, 12), +(99624, 12), +(99625, 12), +(99627, 12), +(99628, 12), +(99629, 12), +(99630, 12), +(99631, 12), +(99632, 12), +(99633, 12), +(99634, 12), +(99637, 12), +(99638, 12), +(99639, 12), +(99640, 12), +(99642, 12), +(99643, 12), +(99645, 12), +(99646, 12), +(99647, 12), +(99648, 12), +(99649, 12), +(99650, 12), +(99651, 12), +(99652, 12), +(99653, 12), +(99654, 12), +(99655, 12), +(99656, 12), +(99657, 12), +(99658, 12), +(99659, 12), +(99660, 12), +(99661, 12), +(99662, 12), +(99664, 12), +(99665, 12), +(99667, 12), +(99668, 12), +(99669, 12), +(99670, 12), +(99672, 12), +(99673, 12), +(99674, 12), +(99676, 12), +(99677, 12), +(99679, 12), +(99680, 12), +(99682, 12), +(99683, 12), +(99685, 12), +(99686, 12), +(99687, 12), +(99688, 12), +(99689, 12), +(99691, 12), +(99692, 12), +(99693, 12), +(99694, 12), +(99695, 12), +(99696, 12), +(99698, 12), +(99699, 12), +(99701, 12), +(99702, 12), +(99703, 12), +(99705, 12), +(99706, 12), +(99707, 12), +(99708, 12), +(99709, 12), +(99710, 12), +(99711, 12), +(99713, 12), +(99714, 12), +(99715, 12), +(99716, 12), +(99718, 12), +(99719, 12), +(99721, 12), +(99722, 12), +(99724, 12), +(99725, 12), +(99726, 12), +(99728, 12), +(99729, 12), +(99730, 12), +(99731, 12), +(99732, 12), +(99734, 12), +(99735, 12), +(99736, 12), +(99737, 12), +(99739, 12), +(99740, 12), +(99741, 12), +(99742, 12), +(99743, 12), +(99744, 12), +(99745, 12), +(99746, 12), +(99747, 12), +(99748, 12), +(99750, 12), +(99751, 12), +(99752, 12), +(99753, 12), +(99754, 12), +(99755, 12), +(99756, 12), +(99758, 12), +(99759, 12), +(99760, 12), +(99761, 12), +(99762, 12), +(99763, 12), +(99764, 12), +(99765, 12), +(99766, 12), +(99767, 12), +(99768, 12), +(99769, 12), +(99770, 12), +(99771, 12), +(99772, 12), +(99773, 12), +(99774, 12), +(99776, 12), +(99777, 12), +(99778, 12), +(99779, 12), +(99781, 12), +(99782, 12), +(99784, 12), +(99785, 12), +(99786, 12), +(99788, 12), +(99789, 12), +(99790, 12), +(99791, 12), +(99792, 12), +(99793, 12), +(99795, 12), +(99796, 12), +(99797, 12), +(99798, 12), +(99799, 12), +(99800, 12), +(99801, 12), +(99802, 12), +(99804, 12), +(99805, 12), +(99806, 12), +(99807, 12), +(99808, 12), +(99810, 12), +(99811, 12), +(99813, 12), +(99814, 12), +(99815, 12), +(99816, 12), +(99818, 12), +(99819, 12), +(99820, 12), +(99821, 12), +(99822, 12), +(99823, 12), +(99825, 12), +(99826, 12), +(99827, 12), +(99828, 12), +(99830, 12), +(99831, 12), +(99832, 12), +(99834, 12), +(99835, 12), +(99836, 12), +(99837, 12), +(99839, 12), +(99840, 12), +(99841, 12), +(99843, 12), +(99844, 12), +(99845, 12), +(99846, 12), +(99847, 12), +(99848, 12), +(99849, 12), +(99850, 12), +(99852, 12), +(99853, 12), +(99854, 12), +(99856, 12), +(99857, 12), +(99858, 12), +(99859, 12), +(99860, 12), +(99862, 12), +(99863, 12), +(99864, 12), +(99865, 12), +(99866, 12), +(99867, 12), +(99869, 12), +(99870, 12), +(99871, 12), +(99873, 12), +(99874, 12), +(99875, 12), +(99876, 12), +(99878, 12), +(99879, 12), +(99880, 12), +(99881, 12), +(99883, 12), +(99884, 12), +(99885, 12), +(99886, 12), +(99887, 12), +(99888, 12), +(99889, 12), +(99890, 12), +(99891, 12), +(99892, 12), +(99893, 12), +(99894, 12), +(99896, 12), +(99897, 12), +(99898, 12), +(99899, 12), +(99900, 12), +(99903, 12), +(99904, 12), +(99905, 12), +(99906, 12), +(99907, 12), +(99909, 12), +(99910, 12), +(99911, 12), +(99912, 12), +(99914, 12), +(99915, 12), +(99916, 12), +(99918, 12), +(99919, 12), +(99921, 12), +(99922, 12), +(99923, 12), +(99924, 12), +(99926, 12), +(99927, 12), +(99928, 12), +(99929, 12), +(99931, 12), +(99932, 12), +(99933, 12), +(99935, 12), +(99936, 12), +(99937, 12), +(99938, 12), +(99939, 12), +(99940, 12), +(99941, 12), +(99943, 12), +(99944, 12), +(99945, 12), +(99946, 12), +(99948, 12), +(99949, 12), +(99950, 12), +(99952, 12), +(99953, 12), +(99954, 12), +(99955, 12), +(99957, 12), +(99958, 12), +(99959, 12), +(99960, 12), +(99962, 12), +(99963, 12), +(99964, 12), +(99965, 12), +(99966, 12), +(99968, 12), +(99969, 12), +(99970, 12), +(99971, 12), +(99972, 12), +(99973, 12), +(99974, 12), +(99975, 12), +(99976, 12), +(99978, 12), +(99979, 12), +(99980, 12), +(99982, 12), +(99983, 12), +(99984, 12), +(99985, 12), +(99986, 12), +(99989, 12), +(99990, 12), +(99991, 12), +(99992, 12), +(99993, 12), +(99994, 12), +(99995, 12), +(99996, 12), +(99997, 12), +(99998, 12), +(99999, 12), +(100000, 12), +(100001, 12), +(100002, 12), +(100003, 12), +(100004, 12), +(100006, 12), +(100007, 12), +(100008, 12), +(100010, 12), +(100011, 12), +(100012, 12), +(100014, 12), +(100015, 12), +(100016, 12), +(100017, 12), +(100018, 12), +(100019, 12), +(100020, 12), +(100021, 12), +(100022, 12), +(100023, 12), +(100024, 12), +(100025, 12), +(100026, 12), +(100027, 12), +(100029, 12), +(100030, 12), +(100031, 12), +(100032, 12), +(100033, 12), +(100035, 12), +(100036, 12), +(100037, 12), +(100038, 12), +(100039, 12), +(100040, 12), +(100041, 12), +(100043, 12), +(100044, 12), +(100045, 12), +(100047, 12), +(100048, 12), +(100049, 12), +(100050, 12), +(100051, 12), +(100052, 12), +(100054, 12), +(100055, 12), +(100056, 12), +(100057, 12), +(100059, 12), +(100060, 12), +(100061, 12), +(100062, 12), +(100064, 12), +(100065, 12), +(100066, 12), +(100067, 12), +(100068, 12), +(100069, 12), +(100070, 12), +(100072, 12), +(100073, 12), +(100074, 12), +(100075, 12), +(100076, 12), +(100078, 12), +(100079, 12), +(100080, 12), +(100081, 12), +(100083, 12), +(100084, 12), +(100085, 12), +(100086, 12), +(100087, 12), +(100088, 12), +(100089, 12), +(100090, 12), +(100092, 12), +(100093, 12), +(100094, 12), +(100095, 12), +(100096, 12), +(100098, 12), +(100099, 12), +(100101, 12), +(100102, 12), +(100103, 12), +(100105, 12), +(100106, 12), +(100107, 12), +(100108, 12), +(100109, 12), +(100111, 12), +(100112, 12), +(100113, 12), +(100114, 12), +(100115, 13), +(100117, 13), +(100119, 13), +(100121, 13), +(100123, 13), +(100125, 13), +(100127, 13), +(100129, 13), +(100131, 13), +(100133, 13), +(100134, 13), +(100135, 13), +(100148, 13), +(100149, 13), +(100150, 13), +(100151, 13), +(100152, 13), +(100153, 13), +(100154, 13), +(100155, 13), +(100156, 13), +(100157, 13), +(100159, 13), +(100160, 13), +(100161, 13), +(100162, 13), +(100163, 13), +(100164, 13), +(100167, 13), +(100169, 13), +(100171, 13), +(100172, 13), +(100173, 13), +(100175, 13), +(100176, 13), +(100177, 13), +(100178, 13), +(100179, 13), +(100181, 13), +(100184, 13), +(100185, 13), +(100186, 13), +(100187, 13), +(100188, 13), +(100190, 13), +(100191, 13), +(100192, 13), +(100193, 13), +(100194, 13), +(100195, 13), +(100205, 13), +(100206, 13), +(100207, 13), +(100208, 13), +(100209, 13), +(100210, 13), +(100211, 13), +(100212, 13), +(100213, 13), +(100214, 13), +(100215, 13), +(100216, 13), +(100217, 13), +(100218, 13), +(100219, 13), +(100220, 13), +(100221, 13), +(100222, 13), +(100223, 13), +(100224, 13), +(100225, 13), +(100226, 13), +(100227, 13), +(100228, 13), +(100230, 13), +(100231, 13), +(100232, 13), +(100233, 13), +(100234, 13), +(100235, 13), +(100236, 13), +(100237, 13), +(100238, 13), +(100239, 13), +(100240, 13), +(100241, 13), +(100243, 13), +(100244, 13), +(100245, 13), +(100246, 13), +(100247, 13), +(100248, 13), +(100249, 13), +(100250, 13), +(100251, 13), +(100252, 13), +(100253, 13), +(100254, 13), +(100255, 13), +(100256, 13), +(100257, 13), +(100258, 13), +(100259, 13), +(100260, 13), +(100261, 13), +(100262, 13), +(100263, 13), +(100264, 13), +(100265, 13), +(100267, 13), +(100268, 13), +(100269, 13), +(100270, 13), +(100271, 13), +(100272, 13), +(100273, 13), +(100274, 13), +(100275, 13), +(100276, 13), +(100277, 13), +(100278, 13), +(100279, 13), +(100280, 13), +(100281, 13), +(100282, 13), +(100283, 13), +(100284, 13), +(100285, 13), +(100286, 13), +(100287, 13), +(100288, 13), +(100289, 13), +(100290, 13), +(100291, 13), +(100292, 13), +(100293, 13), +(100295, 13), +(100296, 13), +(100297, 13), +(100298, 13), +(100299, 13), +(100300, 13), +(100301, 13), +(100302, 13), +(100303, 13), +(100304, 13), +(100307, 13), +(100308, 13), +(100309, 13), +(100310, 13), +(100311, 13), +(100312, 13), +(100313, 13), +(100314, 13), +(100315, 13), +(100316, 13), +(100317, 13), +(100318, 13), +(100319, 13), +(100320, 13), +(100322, 13), +(100324, 13), +(100325, 13), +(100327, 13), +(100328, 13), +(100329, 13), +(100330, 13), +(100331, 13), +(100332, 13), +(100333, 13), +(100334, 13), +(100335, 13), +(100336, 13), +(100337, 13), +(100338, 13), +(100340, 13), +(100341, 13), +(100342, 13), +(100343, 13), +(100344, 13), +(100345, 13), +(100346, 13), +(100347, 13), +(100349, 13), +(100350, 13), +(100351, 13), +(100352, 13), +(100353, 13), +(100354, 13), +(100355, 13), +(100356, 13), +(100357, 13), +(100358, 13), +(100360, 13), +(100366, 13), +(100367, 13), +(100368, 13), +(100369, 13), +(100370, 13), +(100371, 13), +(100372, 13), +(100373, 13), +(100374, 13), +(100375, 13), +(100376, 13), +(100377, 13), +(100378, 13), +(100379, 13), +(100380, 13), +(100381, 13), +(100382, 13), +(100383, 13), +(100384, 13), +(100385, 13), +(100386, 13), +(100387, 13), +(100388, 13), +(100389, 13), +(100390, 13), +(100392, 13), +(100393, 13), +(100394, 13), +(100395, 13), +(100396, 13), +(100397, 13), +(100398, 13), +(100399, 13), +(100400, 13), +(100401, 13), +(100402, 13), +(100403, 13), +(100404, 13), +(100405, 13), +(100406, 13), +(100407, 13), +(100408, 13), +(100409, 13), +(100410, 13), +(100411, 13), +(100412, 13), +(100413, 13), +(100414, 13), +(100415, 13), +(100416, 13), +(100417, 13), +(100418, 13), +(100419, 13), +(100421, 13), +(100422, 13), +(100424, 13), +(100425, 13), +(100427, 13), +(100428, 13), +(100429, 13), +(100430, 13), +(100432, 13), +(100433, 13), +(100435, 13), +(100436, 13), +(100437, 13), +(100438, 13), +(100439, 13), +(100440, 13), +(100441, 13), +(100442, 13), +(100444, 13), +(100445, 13), +(100446, 13), +(100447, 13), +(100448, 13), +(100449, 13), +(100450, 13), +(100452, 13), +(100453, 13), +(100454, 13), +(100455, 13), +(100456, 13), +(100457, 13), +(100458, 13), +(100459, 13), +(100460, 13), +(100461, 13), +(100463, 13), +(100464, 13), +(100465, 13), +(100467, 13), +(100468, 13), +(100469, 13), +(100470, 13), +(100471, 13), +(100472, 13), +(100473, 13), +(100474, 13), +(100475, 13), +(100477, 13), +(100478, 13), +(100479, 13), +(100480, 13), +(100482, 13), +(100483, 13), +(100484, 13), +(100486, 13), +(100487, 13), +(100488, 13), +(100489, 13), +(100490, 13), +(100491, 13), +(100492, 13), +(100493, 13), +(100494, 13), +(100495, 13), +(100496, 13), +(100498, 13), +(100499, 13), +(100500, 13), +(100501, 13), +(100503, 13), +(100504, 13), +(100505, 13), +(100506, 13), +(100507, 13), +(100509, 13), +(100510, 13), +(100511, 13), +(100512, 13), +(100513, 13), +(100514, 13), +(100516, 13), +(100517, 13), +(100518, 13), +(100519, 13), +(100521, 13), +(100522, 13), +(100523, 13), +(100524, 13), +(100525, 13), +(100526, 13), +(100528, 13), +(100529, 13), +(100530, 13), +(100531, 13), +(100532, 13), +(100534, 13), +(100535, 13), +(100536, 13), +(100537, 13), +(100538, 13), +(100539, 13), +(100540, 13), +(100541, 13), +(100543, 13), +(100544, 13), +(100545, 13), +(100546, 13), +(100547, 13), +(100548, 13), +(100550, 13), +(100551, 13), +(100552, 13), +(100553, 13), +(100554, 13), +(100555, 13), +(100556, 13), +(100557, 13), +(100558, 13), +(100559, 13), +(100560, 13), +(100561, 13), +(100562, 13), +(100563, 13), +(100564, 13), +(100565, 13), +(100566, 13), +(100567, 13), +(100568, 13), +(100570, 13), +(100571, 13), +(100572, 13), +(100573, 13), +(100574, 13), +(100575, 13), +(100576, 13), +(100577, 13), +(100578, 13), +(100579, 13), +(100580, 13), +(100581, 13), +(100582, 13), +(100583, 13), +(100584, 13), +(100585, 13), +(100587, 13), +(100588, 13), +(100589, 13), +(100590, 13), +(100591, 13), +(100592, 13), +(100593, 13), +(100594, 13), +(100595, 13), +(100596, 13), +(100597, 13), +(100598, 13), +(100599, 13), +(100600, 13), +(100601, 14), +(100607, 14), +(100609, 14), +(100613, 14), +(100614, 14), +(100616, 14), +(100621, 14), +(100625, 14), +(100629, 14), +(100630, 14), +(100632, 14), +(100666, 14), +(100672, 14), +(100673, 14), +(100675, 14), +(100676, 14), +(100677, 14), +(100678, 14), +(100679, 14), +(100680, 14), +(100681, 14), +(100682, 14), +(100683, 14), +(100684, 14), +(100685, 14), +(100686, 14), +(100687, 14), +(100692, 14), +(100693, 14), +(100695, 14), +(100696, 14), +(100697, 14), +(100698, 14), +(100700, 14), +(100701, 14), +(100702, 14), +(100703, 14), +(100707, 14), +(100708, 14), +(100711, 14), +(100713, 14), +(100714, 14), +(100716, 14), +(100717, 14), +(100718, 14), +(100720, 14), +(100721, 14), +(100722, 14), +(100723, 14), +(100724, 14), +(100725, 14), +(100733, 14), +(100734, 14), +(100735, 14), +(100736, 14), +(100737, 14), +(100738, 14), +(100739, 14), +(100740, 14), +(100741, 14), +(100742, 14), +(100743, 14), +(100744, 14), +(100745, 14), +(100746, 14), +(100747, 14), +(100748, 14), +(100749, 14), +(100750, 14), +(100751, 14), +(100752, 14), +(100753, 14), +(100755, 14), +(100756, 14), +(100757, 14), +(100758, 14), +(100759, 14), +(100760, 14), +(100761, 14), +(100762, 14), +(100763, 14), +(100764, 14), +(100765, 14), +(100767, 14), +(100769, 14), +(100770, 14), +(100771, 14), +(100772, 14), +(100773, 14), +(100774, 14), +(100775, 14), +(100776, 14), +(100777, 14), +(100778, 14), +(100779, 14), +(100780, 14), +(100781, 14), +(100782, 14), +(100783, 14), +(100784, 14), +(100785, 14), +(100786, 14), +(100787, 14), +(100788, 14), +(100789, 14), +(100790, 14), +(100791, 14), +(100792, 14), +(100793, 14), +(100794, 14), +(100795, 14), +(100796, 14), +(100797, 14), +(100798, 14), +(100799, 14), +(100800, 14), +(100801, 14), +(100802, 14), +(100803, 14), +(100804, 14), +(100805, 14), +(100806, 14), +(100807, 14), +(100808, 14), +(100809, 14), +(100810, 14), +(100811, 14), +(100812, 14), +(100813, 14), +(100814, 14), +(100815, 14), +(100816, 14), +(100817, 14), +(100818, 14), +(100819, 14), +(100820, 14), +(100821, 14), +(100822, 14), +(100823, 14), +(100824, 14), +(100825, 14), +(100826, 14), +(100827, 14), +(100828, 14), +(100829, 14), +(100830, 14), +(100831, 14), +(100832, 14), +(100833, 14), +(100834, 14), +(100835, 14), +(100836, 14), +(100837, 14), +(100838, 14), +(100839, 14), +(100840, 14), +(100841, 14), +(100842, 14), +(100843, 14), +(100844, 14), +(100845, 14), +(100846, 14), +(100847, 14), +(100848, 14), +(100849, 14), +(100851, 14), +(100852, 14), +(100859, 14), +(100860, 14), +(100861, 14), +(100862, 14), +(100863, 14), +(100864, 14), +(100865, 14), +(100866, 14), +(100867, 14), +(100868, 14), +(100869, 14), +(100870, 14), +(100871, 14), +(100872, 14), +(100873, 14), +(100877, 14), +(100882, 14), +(100884, 14), +(100888, 14), +(100891, 14), +(100893, 14), +(100894, 14), +(100895, 14), +(100896, 14), +(100897, 14), +(100898, 14), +(100899, 14), +(100900, 14), +(100901, 14), +(100902, 14), +(100903, 14), +(100905, 14), +(100906, 14), +(100908, 14), +(100909, 14), +(100910, 14), +(100911, 14), +(100912, 14), +(100913, 14), +(100915, 14), +(100918, 14), +(100919, 14), +(100920, 14), +(100924, 14), +(100925, 14), +(100926, 14), +(100927, 14), +(100930, 14), +(100931, 14), +(100932, 14), +(100937, 14), +(100942, 14), +(100943, 14), +(100946, 14), +(100947, 14), +(100948, 14), +(100949, 14), +(100950, 14), +(100951, 14), +(100953, 14), +(100954, 14), +(100955, 14), +(100956, 14), +(100959, 14), +(100960, 14), +(100961, 14), +(100962, 14), +(100967, 14), +(100970, 14), +(100971, 14), +(100973, 14), +(100974, 14), +(100978, 14), +(100979, 14), +(100980, 14), +(100981, 14), +(100983, 14), +(100984, 14), +(100985, 14), +(100986, 14), +(100987, 14), +(100988, 14), +(100992, 14), +(100993, 14), +(100994, 14), +(100996, 14), +(100997, 14), +(100998, 14), +(100999, 14), +(101000, 14), +(101002, 14), +(101008, 14), +(101009, 14), +(101010, 14), +(101011, 14), +(101012, 14), +(101013, 14), +(101015, 14), +(101016, 14), +(101021, 14), +(101022, 14), +(101023, 14), +(101024, 14), +(101025, 14), +(101026, 14), +(101027, 14), +(101028, 14), +(101029, 14), +(101031, 14), +(101032, 14), +(101033, 14), +(101034, 14), +(101035, 14), +(101036, 14), +(101037, 14), +(101038, 14), +(101039, 14), +(101040, 14), +(101041, 14), +(101042, 14), +(101043, 14), +(101044, 14), +(101045, 14), +(101046, 14), +(101047, 14), +(101048, 14), +(101052, 14), +(101053, 14), +(101054, 14), +(101057, 14), +(101062, 14), +(101063, 14), +(101064, 14), +(101065, 14), +(101066, 14), +(101067, 14), +(101070, 14), +(101071, 14), +(101072, 14), +(101074, 14), +(101075, 14), +(101076, 14), +(101077, 14), +(101078, 14), +(101079, 14), +(101080, 14), +(101081, 14), +(101082, 14), +(101089, 14), +(101090, 14), +(101094, 14), +(101095, 14), +(101096, 14), +(101102, 14), +(101104, 14), +(101105, 14), +(101106, 14), +(101107, 14), +(101108, 14), +(101109, 14), +(101110, 14), +(101111, 14), +(101112, 14), +(101113, 14), +(101114, 14), +(101115, 14), +(101116, 14), +(101117, 14), +(101118, 14), +(101119, 14), +(101120, 14), +(101121, 14), +(101122, 14), +(101123, 14), +(101124, 14), +(101125, 14), +(101126, 14), +(101127, 14), +(101128, 14), +(101129, 14), +(101130, 14), +(101131, 14), +(101132, 14), +(101134, 14), +(101135, 14), +(101136, 14), +(101137, 14), +(101138, 14), +(101139, 14), +(101140, 14), +(101141, 14), +(101142, 14), +(101143, 14), +(101144, 14), +(101145, 14), +(101146, 14), +(101147, 14), +(101148, 14), +(101149, 14), +(101150, 14), +(101151, 14), +(101152, 14), +(101153, 14), +(101154, 14), +(101156, 14), +(101157, 14), +(101158, 14), +(101159, 14), +(101161, 14), +(101162, 14), +(101163, 14), +(101164, 14), +(101165, 14), +(101166, 14), +(101167, 14), +(101168, 14), +(101169, 14), +(101170, 14), +(101171, 14), +(101172, 14), +(101173, 14), +(101174, 14), +(101175, 14), +(101176, 14), +(101177, 14), +(101178, 14), +(101179, 14), +(101180, 14), +(101181, 14), +(101182, 14), +(101183, 14), +(101184, 14), +(101185, 14), +(101186, 14), +(101188, 14), +(101189, 14), +(101192, 14), +(101193, 14), +(101194, 14), +(101195, 14), +(101196, 14), +(101197, 14), +(101198, 14), +(101199, 14), +(101200, 14), +(101201, 14), +(101202, 14), +(101203, 14), +(101204, 14), +(101205, 14), +(101206, 14), +(101207, 14), +(101208, 14), +(101210, 14), +(101212, 14), +(101214, 14), +(101216, 14), +(101218, 14), +(101219, 14), +(101221, 14), +(101223, 14), +(101225, 14), +(101227, 14), +(101228, 14), +(101230, 14), +(101232, 14), +(101233, 14), +(101234, 14), +(101235, 14), +(101236, 14), +(101237, 14), +(101239, 14), +(101240, 14), +(101241, 14), +(101244, 14), +(101245, 14), +(101246, 14), +(101247, 14), +(101249, 14), +(101250, 14), +(101251, 14), +(101252, 14), +(101253, 14), +(101254, 14), +(101255, 14), +(101256, 14), +(101257, 14), +(101259, 14), +(101260, 14), +(101261, 14), +(101263, 14), +(101264, 14), +(101265, 14), +(101266, 14), +(101267, 14), +(101268, 14), +(101269, 14), +(101270, 14), +(101271, 14), +(101272, 14), +(101273, 14), +(101274, 14), +(101275, 14), +(101276, 14), +(101278, 14), +(101279, 14), +(101280, 14), +(101282, 14), +(101283, 14), +(101285, 14), +(101286, 14), +(101287, 14), +(101288, 14), +(101289, 14), +(101290, 14), +(101291, 14), +(101292, 14), +(101294, 14), +(101295, 14), +(101296, 14), +(101297, 14), +(101298, 14), +(101299, 14), +(101300, 14), +(101301, 14), +(101303, 14), +(101304, 14), +(101305, 14), +(101306, 14), +(101307, 14), +(101308, 14), +(101309, 14), +(101310, 14), +(101311, 14), +(101312, 14), +(101313, 14), +(101314, 14), +(101315, 14), +(101316, 14), +(101317, 14), +(101318, 14), +(101320, 14), +(101321, 14), +(101322, 14), +(101323, 14), +(101325, 14), +(101326, 14), +(101328, 14), +(101329, 14), +(101330, 14), +(101332, 14), +(101333, 14), +(101334, 14), +(101336, 14), +(101337, 14), +(101338, 14), +(101339, 14), +(101340, 14), +(101341, 14), +(101342, 14), +(101343, 14), +(101344, 14), +(101345, 14), +(101346, 14), +(101347, 14), +(101348, 14), +(101349, 14), +(101350, 14), +(101351, 14), +(101352, 14), +(101354, 14), +(101355, 14), +(101356, 14), +(101357, 14), +(101358, 14), +(101359, 14), +(101360, 14), +(101361, 14), +(101362, 14), +(101363, 14), +(101364, 14), +(101365, 14), +(101366, 14), +(101368, 14), +(101369, 14), +(101370, 14), +(101371, 14), +(101372, 14), +(101373, 14), +(101374, 14), +(101375, 14), +(101376, 14), +(101377, 14), +(101378, 14), +(101380, 14), +(101381, 14), +(101383, 14), +(101384, 14), +(101385, 14), +(101392, 14), +(101393, 14), +(101394, 14), +(101395, 14), +(101396, 14), +(101397, 14), +(101399, 14), +(101400, 14), +(101401, 14), +(101402, 14), +(101403, 14), +(101404, 14), +(101405, 14), +(101406, 14), +(101407, 14), +(101409, 14), +(101410, 14), +(101411, 14), +(101412, 14), +(101413, 14), +(101414, 14), +(101415, 14), +(101416, 14), +(101417, 14), +(101418, 14), +(101419, 14), +(101423, 14), +(101424, 14), +(101425, 14), +(101426, 14), +(101428, 14), +(101429, 14), +(101430, 14), +(101433, 14), +(101434, 14), +(101435, 14), +(101436, 14), +(101437, 14), +(101438, 14), +(101439, 14), +(101440, 14), +(101441, 14), +(101442, 14), +(101443, 14), +(101444, 14), +(101445, 14), +(101446, 14), +(101447, 14), +(101448, 14), +(101449, 14), +(101450, 14), +(101451, 14), +(101452, 14), +(101453, 14), +(101454, 14), +(101455, 14), +(101456, 14), +(101457, 14), +(101458, 14), +(101459, 14), +(101461, 14), +(101462, 14), +(101463, 14), +(101464, 14), +(101466, 14), +(101467, 14), +(101468, 14), +(101469, 14), +(101470, 14), +(101471, 14), +(101472, 14), +(101473, 14), +(101474, 14), +(101475, 14), +(101476, 14), +(101477, 14), +(101478, 14), +(101479, 14), +(101480, 14), +(101481, 14), +(101482, 14), +(101483, 14), +(101485, 14), +(101486, 14), +(101487, 14), +(101488, 14), +(101489, 14), +(101490, 14), +(101492, 14), +(101493, 14), +(101494, 14), +(101495, 14), +(101496, 14), +(101497, 14), +(101498, 14), +(101499, 14), +(101500, 14), +(101501, 14), +(101502, 14), +(101503, 14), +(101504, 14), +(101505, 14), +(101506, 14), +(101507, 14), +(101508, 14), +(101509, 14), +(101510, 14), +(101511, 14), +(101512, 14), +(101513, 14), +(101514, 14), +(101515, 14), +(101516, 14), +(101517, 14), +(101518, 14), +(101519, 14), +(101520, 14), +(101521, 14), +(101522, 14), +(101523, 14), +(101524, 14), +(101525, 14), +(101526, 14), +(101527, 14), +(101528, 14), +(101529, 14), +(101530, 14), +(101531, 14), +(101532, 14), +(101533, 14), +(101534, 14), +(101535, 14), +(101536, 14), +(101537, 14), +(101538, 14), +(101539, 14), +(101540, 14), +(101541, 14), +(101542, 14), +(101543, 14), +(101544, 14), +(101545, 14), +(101547, 14), +(101548, 14), +(101549, 14), +(101551, 14), +(101552, 14), +(101553, 14), +(101554, 14), +(101555, 14), +(101556, 14), +(101557, 14), +(101558, 14), +(101559, 14), +(101560, 14), +(101561, 14), +(101562, 14), +(101563, 14), +(101564, 14), +(101565, 14), +(101566, 14), +(101567, 14), +(101568, 14), +(101569, 14), +(101570, 14), +(101571, 14), +(101572, 14), +(101573, 14), +(101574, 14), +(101575, 14), +(101576, 14), +(101577, 14), +(101579, 14), +(101580, 14), +(101581, 14), +(101582, 14), +(101584, 14), +(101585, 14), +(101586, 14), +(101587, 14), +(101588, 14), +(101589, 14), +(101590, 14), +(101591, 14), +(101592, 14), +(101593, 14), +(101594, 14), +(101595, 14), +(101596, 14), +(101597, 14), +(101598, 14), +(101599, 14), +(101600, 14), +(101601, 14), +(101602, 14), +(101603, 14), +(101604, 14), +(101605, 14), +(101606, 14), +(101607, 14), +(101608, 14), +(101609, 14), +(101610, 14), +(101611, 14), +(101612, 14), +(101613, 14), +(101614, 14), +(101615, 14), +(101616, 14), +(101617, 14), +(101618, 14), +(101619, 14), +(101620, 14), +(101621, 14), +(101622, 14), +(101623, 14), +(101624, 14), +(101625, 14), +(101626, 14), +(101627, 14), +(101628, 14), +(101629, 14), +(101630, 14), +(101631, 14), +(101632, 14), +(101633, 14), +(101634, 14), +(101635, 14), +(101637, 14), +(101638, 14), +(101639, 14), +(101640, 14), +(101641, 14), +(101642, 14), +(101643, 14), +(101644, 14), +(101645, 14), +(101646, 14), +(101647, 14), +(101648, 14), +(101649, 14), +(101650, 14), +(101651, 14), +(101652, 14), +(101653, 14), +(101654, 14), +(101656, 14), +(101657, 14), +(101658, 14), +(101660, 14), +(101661, 14), +(101662, 14), +(101663, 14), +(101664, 14), +(101665, 14), +(101667, 14), +(101668, 14), +(101669, 14), +(101670, 14), +(101671, 14), +(101673, 14), +(101677, 15), +(101679, 15), +(101681, 15), +(101683, 15), +(101685, 15), +(101689, 15), +(101692, 15), +(101694, 15), +(101695, 15), +(101696, 15), +(101697, 15), +(101698, 15), +(101704, 15), +(101706, 15), +(101708, 15), +(101709, 15), +(101710, 15), +(101712, 15), +(101713, 15), +(101714, 15), +(101715, 15), +(101716, 15), +(101717, 15), +(101719, 15), +(101720, 15), +(101724, 15), +(101726, 15), +(101728, 15), +(101729, 15), +(101751, 15), +(101752, 15), +(101753, 15), +(101754, 15), +(101765, 15), +(101766, 15), +(101767, 15), +(101769, 15), +(101770, 15), +(101773, 15), +(101774, 15), +(101775, 15), +(101776, 15), +(101777, 15), +(101779, 15), +(101780, 15), +(101781, 15), +(101783, 15), +(101785, 15), +(101787, 15), +(101789, 15), +(101790, 15), +(101793, 15), +(101794, 15), +(101795, 15), +(101796, 15), +(101797, 15), +(101798, 15), +(101800, 15), +(101801, 15), +(101802, 15), +(101803, 15), +(101804, 15), +(101805, 15), +(101806, 15), +(101807, 15), +(101810, 15), +(101811, 15), +(101818, 15), +(101819, 15), +(101820, 15), +(101821, 15), +(101822, 15), +(101823, 15), +(101824, 15), +(101825, 15), +(101826, 15), +(101827, 15), +(101828, 15), +(101829, 15), +(101831, 15), +(101832, 15), +(101833, 15), +(101834, 15), +(101835, 15), +(101836, 15), +(101837, 15), +(101839, 15), +(101841, 15), +(101842, 15), +(101843, 15), +(101844, 15), +(101845, 15), +(101846, 15), +(101847, 15), +(101848, 15), +(101849, 15), +(101850, 15), +(101851, 15), +(101853, 15), +(101854, 15), +(101855, 15), +(101856, 15), +(101857, 15), +(101858, 15), +(101860, 15), +(101862, 15), +(101863, 15), +(101864, 15), +(101865, 15), +(101866, 15), +(101867, 15), +(101869, 15), +(101870, 15), +(101871, 15), +(101872, 15), +(101873, 15), +(101874, 15), +(101875, 15), +(101876, 15), +(101877, 15), +(101878, 15), +(101881, 15), +(101883, 15), +(101884, 15), +(101885, 15), +(101886, 15), +(101887, 15), +(101888, 15), +(101890, 15), +(101891, 15), +(101892, 15), +(101893, 15), +(101894, 15), +(101895, 15), +(101896, 15), +(101897, 15), +(101898, 15), +(101899, 15), +(101900, 15), +(101902, 15), +(101903, 15), +(101904, 15), +(101905, 15), +(101906, 15), +(101907, 15), +(101908, 15), +(101909, 15), +(101910, 15), +(101911, 15), +(101912, 15), +(101914, 15), +(101919, 15), +(101921, 15), +(101922, 15), +(101923, 15), +(101924, 15), +(101925, 15), +(101927, 15), +(101928, 15), +(101929, 15), +(101930, 15), +(101931, 15), +(101935, 15), +(101936, 15), +(101937, 15), +(101940, 15), +(101941, 15), +(101943, 15), +(101944, 15), +(101945, 15), +(101947, 15), +(101949, 15), +(101951, 15), +(101953, 15), +(101955, 15), +(101956, 15), +(101958, 15), +(101959, 15), +(101960, 15), +(101961, 15), +(101962, 15), +(101963, 15), +(101964, 15), +(101965, 15), +(101967, 15), +(101968, 15), +(101969, 15), +(101970, 15), +(101971, 15), +(101975, 15), +(101977, 15), +(101981, 15), +(101983, 15), +(101984, 15), +(101985, 15), +(101986, 15), +(101988, 15), +(101991, 15), +(101993, 15), +(101996, 15), +(101997, 15), +(102002, 15), +(102003, 15), +(102005, 15), +(102006, 15), +(102007, 15), +(102009, 15), +(102010, 15), +(102011, 15), +(102012, 15), +(102013, 15), +(102015, 15), +(102018, 15), +(102019, 15), +(102020, 15), +(102021, 15), +(102022, 15), +(102024, 15), +(102025, 15), +(102026, 15), +(102027, 15), +(102028, 15), +(102029, 15), +(102030, 15), +(102031, 15), +(102032, 15), +(102033, 15), +(102034, 15), +(102035, 15), +(102036, 15), +(102037, 15), +(102038, 15), +(102039, 15), +(102040, 15), +(102041, 15), +(102042, 15), +(102044, 15), +(102045, 15), +(102046, 15), +(102048, 15), +(102053, 15), +(102056, 15), +(102057, 15), +(102058, 15), +(102060, 15), +(102061, 15), +(102062, 15), +(102063, 15), +(102065, 15), +(102066, 15), +(102067, 15), +(102068, 15), +(102069, 15), +(102070, 15), +(102071, 15), +(102072, 15), +(102073, 15), +(102074, 15), +(102075, 15), +(102076, 15), +(102077, 15), +(102078, 15), +(102079, 15), +(102080, 15), +(102081, 15), +(102082, 15), +(102084, 15), +(102085, 15), +(102086, 15), +(102087, 15), +(102088, 15), +(102089, 15), +(102090, 15), +(102093, 15), +(102094, 15), +(102095, 15), +(102096, 15), +(102097, 15), +(102098, 15), +(102099, 15), +(102100, 15), +(102102, 15), +(102103, 15), +(102104, 15), +(102105, 15), +(102106, 15), +(102107, 15), +(102108, 15), +(102109, 15), +(102111, 15), +(102112, 15), +(102114, 15), +(102115, 15), +(102116, 15), +(102118, 15), +(102119, 15), +(102120, 15), +(102121, 15), +(102122, 15), +(102124, 15), +(102125, 15), +(102126, 15), +(102127, 15), +(102129, 15), +(102130, 15), +(102132, 15), +(102133, 15), +(102134, 15), +(102135, 15), +(102136, 15), +(102137, 15), +(102138, 15), +(102139, 15), +(102141, 15), +(102142, 15), +(102143, 15), +(102144, 15), +(102145, 15), +(102146, 15), +(102147, 15), +(102148, 15), +(102150, 15), +(102151, 15), +(102152, 15), +(102154, 15), +(102155, 15), +(102156, 15), +(102157, 15), +(102158, 15), +(102159, 15), +(102160, 15), +(102161, 15), +(102163, 15), +(102164, 15), +(102166, 15), +(102167, 15), +(102168, 15), +(102169, 15), +(102171, 15), +(102172, 15), +(102174, 15), +(102175, 15), +(102176, 15), +(102177, 15), +(102179, 15), +(102180, 15), +(102181, 15), +(102182, 15), +(102183, 15), +(102184, 15), +(102185, 15), +(102187, 15), +(102188, 15), +(102189, 15), +(102190, 15), +(102191, 15), +(102193, 15), +(102194, 15), +(102195, 15), +(102196, 15), +(102197, 15), +(102200, 15), +(102201, 15), +(102203, 15), +(102204, 15), +(102206, 15), +(102207, 15), +(102208, 15), +(102209, 15), +(102211, 15), +(102212, 15), +(102213, 15), +(102214, 15), +(102216, 15), +(102217, 15), +(102218, 15), +(102219, 15), +(102221, 15), +(102222, 15), +(102223, 15), +(102224, 15), +(102226, 15), +(102227, 15), +(102228, 15), +(102229, 15), +(102231, 15), +(102232, 15), +(102234, 15), +(102235, 15), +(102236, 15), +(102237, 15), +(102239, 15), +(102240, 15), +(102241, 15), +(102245, 15), +(102246, 15), +(102247, 15), +(102248, 15), +(102249, 15), +(102250, 15), +(102251, 15), +(102252, 15), +(102253, 15), +(102254, 15), +(102255, 15), +(102256, 15), +(102257, 15), +(102258, 15), +(102259, 15), +(102260, 15), +(102261, 15), +(102262, 15), +(102263, 15), +(102264, 15), +(102265, 15), +(102266, 15), +(102267, 15), +(102268, 15), +(102269, 15), +(102270, 15), +(102271, 15), +(102272, 15), +(102273, 15), +(102274, 15), +(102275, 15), +(102276, 15), +(102277, 15), +(102278, 15), +(102279, 15), +(102280, 15), +(102281, 15), +(102282, 15), +(102283, 15), +(102284, 15), +(102285, 15), +(102286, 15), +(102287, 15), +(102288, 15), +(102289, 15), +(102290, 15), +(102291, 15), +(102292, 15), +(102293, 15), +(102294, 15), +(102295, 15), +(102296, 15), +(102297, 15), +(102298, 15), +(102299, 15), +(102300, 15), +(102301, 15), +(102302, 15), +(102303, 15), +(102304, 15), +(102305, 15), +(102306, 15), +(102307, 15), +(102308, 15), +(102309, 15), +(102310, 15), +(102311, 15), +(102312, 15), +(102313, 15), +(102314, 15), +(102315, 15), +(102316, 15), +(102317, 15), +(102318, 15), +(102319, 15), +(102320, 15), +(102321, 15), +(102322, 15), +(102323, 15), +(102324, 15), +(102325, 15), +(102326, 15), +(102327, 15), +(102328, 15), +(102329, 15), +(102330, 15), +(102331, 15), +(102332, 15), +(102333, 15), +(102334, 15), +(102335, 15), +(102336, 15), +(102337, 15), +(102338, 15), +(102339, 15), +(102340, 15), +(102341, 15), +(102342, 15), +(102343, 15), +(102344, 15), +(102345, 15), +(102346, 15), +(102347, 15), +(102348, 15), +(102349, 15), +(102350, 15), +(102351, 15), +(102352, 15), +(102353, 15), +(102354, 15), +(102355, 15), +(102356, 15), +(102357, 15), +(102358, 15), +(102359, 15), +(102360, 15), +(102361, 15), +(102362, 15), +(102363, 15), +(102364, 15), +(102365, 15), +(102366, 15), +(102367, 15), +(102368, 15), +(102369, 15), +(102370, 15), +(102371, 15), +(102372, 15), +(102373, 15), +(102374, 15), +(102375, 15), +(102376, 15), +(102377, 15), +(102378, 15), +(102379, 15), +(102380, 15), +(102381, 15), +(102382, 15), +(102383, 15), +(102384, 15), +(102385, 15), +(102386, 15), +(102387, 15), +(102388, 15), +(102389, 15), +(102391, 15), +(102392, 15), +(102393, 15), +(102394, 15), +(102396, 15), +(102397, 15), +(102398, 15), +(102399, 15), +(102400, 15), +(102401, 15), +(102402, 15), +(102403, 15), +(102405, 15), +(102406, 15), +(102407, 15), +(102408, 15), +(102409, 15), +(102410, 15), +(102411, 15), +(102412, 15), +(102413, 15), +(102414, 15), +(102415, 15), +(102416, 15), +(102417, 15), +(102418, 15), +(102419, 15), +(102420, 15), +(102421, 15), +(102422, 15), +(102423, 15), +(102424, 15), +(102425, 15), +(102426, 15), +(102427, 15), +(102428, 15), +(102429, 15), +(102430, 15), +(102432, 15), +(102433, 15), +(102434, 15), +(102435, 15), +(102436, 15), +(102438, 15), +(102439, 15), +(102441, 15), +(102442, 15), +(102443, 15), +(102444, 15), +(102446, 15), +(102447, 15), +(102449, 15), +(102450, 15), +(102451, 15), +(102453, 15), +(102454, 15), +(102455, 15), +(102456, 15), +(102457, 15), +(102458, 15), +(102459, 15), +(102460, 15), +(102461, 15), +(102462, 15), +(102463, 15), +(102464, 15), +(102465, 15), +(102466, 15), +(102467, 15), +(102468, 15), +(102469, 15), +(102470, 15), +(102471, 15), +(102472, 15), +(102473, 15), +(102474, 15), +(102475, 15), +(102476, 15), +(102477, 15), +(102478, 15), +(102479, 15), +(102480, 15), +(102481, 15), +(102482, 15), +(102483, 15), +(102484, 15), +(102485, 15), +(102486, 15), +(102487, 15), +(102488, 15), +(102489, 15), +(102490, 15), +(102491, 15), +(102492, 15), +(102493, 15), +(102494, 15), +(102495, 15), +(102496, 15), +(102497, 15), +(102498, 15), +(102499, 15), +(102501, 15), +(102502, 15), +(102503, 15), +(102504, 15), +(102505, 15), +(102507, 15), +(102508, 15), +(102510, 15), +(102511, 15), +(102512, 15), +(102513, 15), +(102514, 15), +(102515, 15), +(102516, 15), +(102517, 15), +(102518, 15), +(102519, 15), +(102520, 15), +(102521, 15), +(102522, 15), +(102523, 15), +(102524, 15), +(102525, 15), +(102526, 15), +(102527, 15), +(102528, 15), +(102529, 15), +(102530, 15), +(102531, 15), +(102533, 15), +(102534, 15), +(102535, 15), +(102536, 15), +(102538, 15), +(102539, 15), +(102540, 15), +(102541, 15), +(102543, 15), +(102544, 15), +(102545, 15), +(102546, 15), +(102547, 15), +(102548, 15), +(102549, 15), +(102550, 15), +(102552, 15), +(102553, 15), +(102554, 15), +(102555, 15), +(102556, 15), +(102557, 15), +(102558, 15), +(102559, 15), +(102560, 15), +(102561, 15), +(102562, 15), +(102563, 15), +(102565, 15), +(102566, 15), +(102567, 15), +(102570, 15), +(102571, 15), +(102572, 15), +(102573, 15), +(102574, 15), +(102575, 15), +(102577, 15), +(102578, 15), +(102579, 15), +(102580, 15), +(102581, 15), +(102582, 15), +(102583, 15), +(102584, 15), +(102585, 15), +(102586, 15), +(102587, 15), +(102588, 15), +(102589, 15), +(102590, 15), +(102591, 15), +(102592, 15), +(102593, 15), +(102594, 15), +(102595, 15), +(102596, 15), +(102597, 15), +(102598, 15), +(102599, 15), +(102600, 15), +(102601, 15), +(102603, 15), +(102604, 15), +(102605, 15), +(102609, 15), +(102610, 15), +(102611, 15), +(102612, 15), +(102613, 15), +(102614, 15), +(102615, 15), +(102616, 15), +(102617, 15), +(102619, 15), +(102620, 15), +(102621, 15), +(102622, 15), +(102623, 15), +(102624, 15), +(102625, 15), +(102626, 15), +(102627, 15), +(102628, 15), +(102629, 15), +(102630, 15), +(102631, 15), +(102633, 15), +(102634, 15), +(102635, 15), +(102636, 15), +(102637, 15), +(102638, 15), +(102639, 15), +(102640, 15), +(102642, 15), +(102643, 15), +(102644, 15), +(102646, 15), +(102647, 15), +(102648, 15), +(102649, 15), +(102650, 15), +(102655, 15), +(102656, 15), +(102657, 15), +(102659, 15), +(102660, 15), +(102661, 15), +(102662, 15), +(102663, 15), +(102664, 15), +(102665, 15), +(102667, 15), +(102668, 15), +(102669, 15), +(102671, 15), +(102672, 15), +(102673, 15), +(102674, 15), +(102675, 15), +(102676, 15), +(102677, 15), +(102678, 15), +(102679, 15), +(102680, 15), +(102681, 15), +(102683, 15), +(102684, 15), +(102685, 15), +(102687, 15), +(102688, 15), +(102689, 15), +(102690, 15), +(102691, 15), +(102692, 15), +(102693, 15), +(102696, 15), +(102697, 15), +(102698, 15), +(102699, 15), +(102700, 15), +(102702, 15), +(102703, 15), +(102704, 15), +(102706, 15), +(102707, 15), +(102708, 15), +(102710, 15), +(102711, 15), +(102712, 15), +(102713, 15), +(102714, 15), +(102715, 15), +(102716, 15), +(102717, 15), +(102718, 15), +(102719, 15), +(102720, 15), +(102721, 15), +(102722, 15), +(102723, 15), +(102724, 15), +(102725, 15), +(102726, 15), +(102727, 15), +(102728, 15), +(102730, 15), +(102731, 15), +(102732, 15), +(102734, 15), +(102735, 15), +(102736, 15), +(102738, 15), +(102739, 15), +(102740, 15), +(102741, 15), +(102743, 15), +(102744, 15), +(102745, 15), +(102746, 15), +(102747, 15), +(102749, 15), +(102750, 15), +(102751, 15), +(102753, 15), +(102754, 15), +(102755, 15), +(102756, 15), +(102758, 15), +(102759, 15), +(102760, 15), +(102761, 15), +(102762, 15), +(102763, 15), +(102764, 15), +(102765, 15), +(102766, 15), +(102767, 15), +(102768, 15), +(102769, 15), +(102770, 15), +(102771, 15), +(102773, 15), +(102774, 15), +(102775, 15), +(102776, 15), +(102778, 15), +(102779, 15), +(102780, 15), +(102782, 15), +(102783, 15), +(102784, 15), +(102785, 15), +(102786, 15), +(102788, 15), +(102789, 15), +(102790, 15), +(102791, 15), +(102793, 15), +(102794, 15), +(102795, 15), +(102796, 15), +(102798, 15), +(102799, 15), +(102800, 15), +(102801, 15), +(102802, 15), +(102804, 15), +(102805, 15), +(102806, 15), +(102807, 15), +(102808, 15), +(102809, 15), +(102810, 15), +(102811, 15), +(102812, 15), +(102813, 15), +(102815, 15), +(102816, 15), +(102817, 15), +(102818, 15), +(102819, 15), +(102821, 15), +(102822, 15), +(102823, 15), +(102824, 15), +(102826, 15), +(102827, 15), +(102828, 15), +(102829, 15), +(102830, 15), +(102831, 15), +(102832, 15), +(102834, 15), +(102835, 15), +(102836, 15), +(102838, 15), +(102839, 15), +(102840, 15), +(102841, 15), +(102842, 15), +(102844, 15), +(102845, 15), +(102846, 15), +(102847, 15), +(102849, 15), +(102850, 15), +(102851, 15), +(102852, 15), +(102854, 15), +(102855, 15), +(102856, 15), +(102857, 15), +(102858, 15), +(102859, 15), +(102860, 15), +(102863, 15), +(102864, 15), +(102865, 15), +(102867, 15), +(102868, 15), +(102869, 15), +(102870, 15), +(102871, 15), +(102872, 15), +(102874, 15), +(102875, 15), +(102876, 15), +(102877, 15), +(102878, 15), +(102879, 15), +(102881, 15), +(102882, 15), +(102883, 15), +(102884, 15), +(102885, 15), +(102886, 15), +(102888, 15), +(102889, 15), +(102890, 15), +(102891, 15), +(102892, 15), +(102893, 15), +(102894, 15), +(102895, 15), +(102896, 15), +(102898, 15), +(102899, 15), +(102900, 15), +(102901, 15), +(102902, 15), +(102903, 15), +(102904, 15), +(102905, 15), +(102907, 15), +(102908, 15), +(102909, 15), +(102910, 15), +(102912, 15), +(102913, 15), +(102914, 15), +(102915, 15), +(102916, 15), +(102917, 15), +(102918, 15), +(102920, 15), +(102921, 15), +(102922, 15), +(102923, 15), +(102925, 15), +(102926, 15), +(102927, 15), +(102928, 15), +(102930, 15), +(102931, 15), +(102932, 15), +(102933, 15), +(102934, 15), +(102936, 15), +(102937, 15), +(102938, 15), +(102939, 15), +(102940, 15), +(102941, 15), +(102943, 15), +(102944, 15), +(102945, 15), +(102946, 15), +(102948, 15), +(102949, 15), +(102950, 15), +(102951, 15), +(102953, 15), +(102954, 15), +(102955, 15), +(102956, 15), +(102957, 15), +(102958, 15), +(102960, 15), +(102961, 15), +(102962, 15), +(102963, 15), +(102964, 15), +(102965, 15), +(102966, 15), +(102967, 15), +(102968, 15), +(102970, 15), +(102971, 15), +(102972, 15), +(102973, 15), +(102975, 15), +(102976, 15), +(102977, 15), +(102979, 15), +(102980, 15), +(102981, 15), +(102982, 15), +(102984, 15), +(102985, 15), +(102986, 15), +(102987, 15), +(102988, 15), +(102989, 15), +(102990, 15), +(102992, 15), +(102993, 15), +(102994, 15), +(102995, 15), +(102997, 15), +(102998, 15), +(102999, 15), +(103000, 15), +(103002, 15), +(103003, 15), +(103004, 15), +(103006, 15), +(103007, 15), +(103008, 15), +(103009, 15), +(103010, 15), +(103011, 15), +(103012, 15), +(103013, 15), +(103014, 15), +(103015, 15), +(103016, 15), +(103017, 15), +(103018, 15), +(103019, 15), +(103021, 15), +(103022, 15), +(103023, 15), +(103024, 15), +(103025, 15), +(103026, 15), +(103027, 15), +(103028, 15), +(103029, 15), +(103030, 15), +(103031, 15), +(103033, 15), +(103034, 15), +(103035, 15), +(103036, 15), +(103037, 15), +(103038, 15), +(103039, 15), +(103040, 15), +(103042, 15), +(103043, 15), +(103044, 15), +(103045, 15), +(103047, 15), +(103048, 15), +(103049, 15), +(103050, 15), +(103051, 15), +(103052, 15), +(103054, 15), +(103055, 15), +(103056, 15), +(103057, 15), +(103058, 15), +(103059, 15), +(103061, 15), +(103062, 15), +(103063, 15), +(103064, 15), +(103066, 15), +(103067, 15), +(103068, 15), +(103069, 15), +(103071, 15), +(103072, 15), +(103073, 15), +(103074, 15), +(103076, 15), +(103077, 15), +(103078, 15), +(103079, 15), +(103080, 15), +(103081, 15), +(103082, 15), +(103083, 15), +(103085, 15), +(103086, 15), +(103087, 15), +(103089, 15), +(103090, 15), +(103091, 15), +(103093, 15), +(103094, 15), +(103095, 15), +(103097, 15), +(103098, 15), +(103100, 15), +(103101, 15), +(103102, 15), +(103103, 15), +(103105, 15), +(103106, 15), +(103107, 15), +(103109, 15), +(103110, 15), +(103111, 15), +(103112, 15), +(103113, 15), +(103115, 15), +(103116, 15), +(103117, 15), +(103118, 15), +(103119, 15), +(103120, 15), +(103121, 15), +(103122, 15), +(103123, 15), +(103124, 15), +(103126, 15), +(103127, 15), +(103128, 15), +(103130, 15), +(103131, 15), +(103132, 15), +(103133, 15), +(103135, 15), +(103136, 15), +(103137, 15), +(103138, 15), +(103140, 15), +(103141, 15), +(103142, 15), +(103143, 15), +(103144, 15), +(103145, 15), +(103146, 15), +(103147, 15), +(103148, 15), +(103149, 15), +(103151, 15), +(103152, 15), +(103153, 15), +(103155, 15), +(103156, 15), +(103157, 15), +(103158, 15), +(103159, 15), +(103161, 15), +(103162, 15), +(103163, 15), +(103164, 15), +(103166, 15), +(103167, 15), +(103168, 15), +(103169, 15), +(103170, 15), +(103172, 15), +(103173, 15), +(103174, 15), +(103175, 15), +(103177, 15), +(103178, 15), +(103179, 15), +(103180, 15), +(103181, 15), +(103182, 15), +(103184, 15), +(103185, 15), +(103186, 15), +(103187, 15), +(103188, 15), +(103189, 15), +(103190, 15), +(103191, 15), +(103192, 15), +(103193, 15), +(103194, 15), +(103195, 15), +(103197, 15), +(103198, 15), +(103199, 15), +(103201, 15), +(103202, 15), +(103203, 15), +(103204, 15), +(103205, 15), +(103206, 15), +(103207, 15), +(103208, 15), +(103210, 15), +(103211, 15), +(103212, 15), +(103213, 15), +(103214, 15), +(103215, 15), +(103216, 15), +(103217, 15), +(103218, 15), +(103219, 15), +(103220, 15), +(103221, 15), +(103222, 15), +(103223, 15), +(103224, 15), +(103225, 15), +(103226, 15), +(103228, 15), +(103229, 15), +(103230, 15), +(103232, 15), +(103233, 15), +(103235, 15), +(103236, 15), +(103237, 15), +(103238, 15), +(103239, 15), +(103241, 15), +(103242, 15), +(103243, 15), +(103244, 15), +(103245, 15), +(103246, 15), +(103247, 15), +(103248, 15), +(103250, 15), +(103251, 15), +(103252, 15), +(103253, 15), +(103254, 15), +(103255, 15), +(103256, 15), +(103257, 15), +(103258, 15), +(103259, 15), +(103260, 15), +(103261, 15), +(103262, 15), +(103263, 15), +(103264, 15), +(103265, 15), +(103266, 15), +(103267, 15), +(103269, 15), +(103270, 15), +(103271, 15), +(103272, 15), +(103273, 15), +(103274, 15), +(103275, 15), +(103276, 15), +(103278, 15), +(103279, 15), +(103280, 15), +(103281, 15), +(103283, 15), +(103284, 15), +(103285, 15), +(103286, 15), +(103288, 15), +(103289, 15), +(103290, 15), +(103291, 15), +(103292, 15), +(103293, 15), +(103295, 15), +(103296, 15), +(103297, 15), +(103298, 15), +(103300, 15), +(103301, 15), +(103302, 15), +(103304, 15), +(103305, 15), +(103306, 15), +(103307, 15), +(103308, 15), +(103309, 15), +(103310, 15), +(103311, 15), +(103313, 15), +(103314, 15), +(103315, 15), +(103316, 15), +(103317, 15), +(103318, 15), +(103319, 15), +(103320, 15), +(103321, 15), +(103322, 15), +(103323, 15), +(103324, 15), +(103325, 15), +(103330, 15), +(103331, 15), +(103332, 15), +(103333, 15), +(103364, 15), +(103365, 15), +(103366, 15), +(103367, 15), +(103368, 15), +(103370, 15), +(103371, 15), +(103372, 15), +(103373, 15), +(103374, 15), +(103375, 15), +(103376, 15), +(103377, 15), +(103378, 15), +(103379, 15), +(103380, 15), +(103382, 15), +(103383, 15), +(103384, 15), +(103386, 15), +(103387, 15), +(103388, 15), +(103389, 15), +(103390, 15), +(103391, 15), +(103392, 15), +(103393, 15), +(103395, 15), +(103396, 15), +(103397, 15), +(103398, 15), +(103399, 15), +(103400, 15), +(103401, 15), +(103402, 15), +(103403, 15), +(103404, 15), +(103405, 15), +(103406, 15), +(103408, 15), +(103409, 15), +(103410, 15), +(103411, 15), +(103413, 15), +(103414, 15), +(103415, 15), +(103416, 15), +(103418, 15), +(103419, 15), +(103420, 15), +(103421, 15), +(103423, 15), +(103424, 15), +(103425, 15), +(103427, 15), +(103428, 15), +(103429, 15), +(103431, 15), +(103432, 15), +(103433, 15), +(103434, 15), +(103435, 15), +(103436, 15), +(103437, 15), +(103438, 15), +(103439, 15), +(103440, 15), +(103441, 15), +(103442, 15), +(103443, 15), +(103444, 15), +(103446, 15), +(103447, 15), +(103448, 15), +(103450, 15), +(103451, 15), +(103452, 15), +(103453, 15), +(103455, 15), +(103456, 15), +(103457, 15), +(103458, 15), +(103459, 15), +(103460, 15), +(103461, 15), +(103462, 15), +(103463, 15), +(103464, 15), +(103465, 15), +(103466, 15), +(103467, 15), +(103469, 15), +(103470, 15), +(103471, 15), +(103472, 15), +(103474, 15), +(103475, 15), +(103476, 15), +(103477, 15), +(103478, 15), +(103479, 15), +(103481, 15), +(103482, 15), +(103483, 15), +(103484, 15), +(103485, 15), +(103486, 15), +(103488, 15), +(103489, 15), +(103490, 15), +(103491, 15), +(103493, 15), +(103494, 15), +(103495, 15), +(103496, 15), +(103497, 15), +(103499, 15), +(103500, 15), +(103501, 15), +(103502, 15), +(103503, 15), +(103505, 15), +(103506, 15), +(103507, 15), +(103509, 15), +(103510, 15), +(103511, 15), +(103512, 15), +(103513, 15), +(103514, 15), +(103515, 15), +(103517, 15), +(103518, 15), +(103519, 15), +(103520, 15), +(103521, 15), +(103522, 15), +(103523, 15), +(103525, 15), +(103526, 15), +(103527, 15), +(103528, 15), +(103529, 15), +(103530, 15), +(103532, 15), +(103533, 15), +(103534, 15), +(103535, 15), +(103536, 15), +(103537, 15), +(103538, 15), +(103539, 15), +(103540, 15), +(103541, 15), +(103542, 15), +(103543, 15), +(103545, 15), +(103546, 15), +(103547, 15), +(103549, 15), +(103550, 15), +(103551, 15), +(103552, 15), +(103553, 15), +(103555, 15), +(103556, 15), +(103557, 15), +(103558, 15), +(103559, 15), +(103560, 15), +(103562, 15), +(103563, 15), +(103564, 15), +(103566, 15), +(103567, 15), +(103568, 15), +(103570, 15), +(103571, 15), +(103572, 15), +(103573, 15), +(103574, 15), +(103575, 15), +(103576, 15), +(103578, 15), +(103579, 15), +(103580, 15), +(103581, 15), +(103582, 15), +(103583, 15), +(103584, 15), +(103585, 15), +(103586, 15), +(103587, 15), +(103588, 15), +(103589, 15), +(103590, 15), +(103591, 15), +(103592, 15), +(103594, 15), +(103595, 15), +(103596, 15), +(103597, 15), +(103599, 15), +(103600, 15), +(103601, 15), +(103602, 15), +(103603, 15), +(103604, 15), +(103605, 15), +(103606, 15), +(103607, 15), +(103608, 15), +(103609, 15), +(103610, 15), +(103612, 15), +(103613, 15), +(103614, 15), +(103615, 15), +(103616, 15), +(103617, 15), +(103618, 15), +(103619, 15), +(103621, 15), +(103622, 15), +(103623, 15), +(103625, 15), +(103626, 15), +(103627, 15), +(103628, 15), +(103630, 15), +(103631, 15), +(103632, 15), +(103633, 15), +(103634, 15), +(103635, 15), +(103636, 15), +(103637, 15), +(103638, 15), +(103639, 15), +(103640, 15), +(103641, 15), +(103642, 15), +(103643, 15), +(103644, 15), +(103645, 15), +(103646, 15), +(103647, 15), +(103648, 15), +(103649, 15), +(103650, 15), +(103651, 15), +(103652, 15), +(103653, 15), +(103654, 15), +(103655, 15), +(103656, 15), +(103657, 15), +(103658, 15), +(103659, 15), +(103660, 15), +(103662, 15), +(103663, 15), +(103664, 15), +(103665, 15), +(103666, 15), +(103667, 15), +(103669, 15), +(103670, 15), +(103671, 15), +(103672, 15), +(103673, 15), +(103675, 15), +(103676, 15), +(103677, 15), +(103678, 15), +(103679, 15), +(103680, 15), +(103681, 15), +(103682, 15), +(103683, 15), +(103684, 15), +(103685, 15), +(103686, 15), +(103687, 15), +(103688, 15), +(103689, 15), +(103691, 15), +(103692, 15), +(103693, 15), +(103694, 15), +(103695, 15), +(103696, 15), +(103697, 15), +(103698, 15), +(103699, 15), +(103700, 15), +(103701, 15), +(103702, 15), +(103703, 15), +(103704, 15), +(103705, 15), +(103706, 15), +(103707, 15), +(103708, 15), +(103709, 15), +(103710, 15), +(103711, 15), +(103713, 15), +(103714, 15), +(103715, 15), +(103716, 15), +(103718, 15), +(103719, 15), +(103720, 15), +(103721, 15), +(103722, 15), +(103724, 15), +(103725, 15), +(103726, 15), +(103727, 15), +(103728, 15), +(103730, 15), +(103731, 15), +(103732, 15), +(103733, 15), +(103735, 15), +(103736, 15), +(103737, 15), +(103739, 15), +(103740, 15), +(103741, 15), +(103742, 15), +(103743, 15), +(103744, 15), +(103745, 15), +(103746, 15), +(103747, 15), +(103748, 15), +(103749, 15), +(103750, 15), +(103751, 15), +(103752, 15), +(103754, 15), +(103755, 15), +(103756, 15), +(103757, 15), +(103758, 15), +(103759, 15), +(103760, 15), +(103761, 15), +(103762, 15), +(103763, 15), +(103764, 15), +(103765, 15), +(103766, 15), +(103768, 15), +(103769, 15), +(103770, 15), +(103772, 15), +(103773, 15), +(103774, 15), +(103775, 15), +(103777, 15), +(103778, 15), +(103779, 15), +(103780, 15), +(103781, 15), +(103782, 15), +(103783, 15), +(103784, 15), +(103785, 15), +(103786, 15), +(103787, 15), +(103789, 15), +(103790, 15), +(103791, 15), +(103792, 15), +(103793, 15), +(103794, 15), +(103795, 15), +(103796, 15), +(103797, 15), +(103798, 15), +(103799, 15), +(103800, 15), +(103801, 15), +(103802, 15), +(103803, 15), +(103804, 15), +(103807, 15), +(103808, 15), +(103809, 15), +(103810, 15), +(103811, 15), +(103812, 15), +(103813, 15), +(103814, 15), +(103815, 15), +(103816, 15), +(103817, 15), +(103818, 15), +(103819, 15), +(103820, 15), +(103821, 15), +(103822, 15), +(103823, 15), +(103824, 15), +(103825, 15), +(103826, 15), +(103828, 15), +(103829, 15), +(103830, 15), +(103831, 15), +(103832, 15), +(103833, 15), +(103834, 15), +(103835, 15), +(103836, 15), +(103837, 15), +(103838, 15), +(103839, 15), +(103840, 15), +(103841, 15), +(103842, 15), +(103843, 15), +(103844, 15), +(103845, 15), +(103846, 15), +(103847, 15), +(103849, 15), +(103850, 15), +(103851, 15), +(103852, 15), +(103853, 15), +(103855, 15), +(103856, 15), +(103857, 15), +(103858, 15), +(103859, 15), +(103861, 15), +(103862, 15), +(103863, 15), +(103864, 15), +(103865, 15), +(103866, 15), +(103867, 15), +(103868, 15), +(103869, 15), +(103870, 15), +(103871, 15), +(103872, 15), +(103873, 15), +(103874, 15), +(103875, 15), +(103876, 15), +(103877, 15), +(103878, 15), +(103879, 15), +(103880, 15), +(103881, 15), +(103882, 15), +(103883, 15), +(103884, 15), +(103885, 15), +(103886, 15), +(103887, 15), +(103888, 15), +(103889, 15), +(103890, 15), +(103891, 15), +(103892, 15), +(103893, 15), +(103894, 15), +(103895, 15), +(103896, 15), +(103897, 15), +(103898, 15), +(103899, 15), +(103900, 15), +(103901, 15), +(103902, 15), +(103903, 15), +(103904, 15), +(103905, 15), +(103906, 15), +(103907, 15), +(103908, 15), +(103909, 15), +(103910, 15), +(103911, 15), +(103912, 15), +(103913, 15), +(103914, 15), +(103915, 15), +(103916, 15), +(103917, 15), +(103918, 15), +(103919, 15), +(103920, 15), +(103921, 15), +(103922, 15), +(103923, 15), +(103924, 15), +(103925, 15), +(103926, 15), +(103927, 15), +(103928, 15), +(103929, 15), +(103930, 15), +(103931, 15), +(103932, 15), +(103933, 15), +(103934, 15), +(103935, 15), +(103936, 15), +(103937, 15), +(103938, 15), +(103939, 15), +(103940, 15), +(103941, 15), +(103942, 15), +(103943, 15), +(103944, 15), +(103945, 15), +(103946, 15), +(103947, 15), +(103948, 15), +(103949, 15), +(103950, 15), +(103951, 15), +(103952, 15), +(103953, 15), +(103954, 15), +(103955, 15), +(103956, 15), +(103957, 15), +(103958, 15), +(103959, 15), +(103960, 15), +(103961, 15), +(103962, 15), +(103963, 15), +(103964, 15), +(103965, 15), +(103966, 15), +(103967, 15), +(103968, 15), +(103969, 15), +(103970, 15), +(103971, 15), +(103972, 15), +(103973, 15), +(103974, 15), +(103975, 15), +(103976, 15), +(103977, 15), +(103978, 15), +(103979, 15), +(103980, 15), +(103981, 15), +(103982, 15), +(103983, 15), +(103984, 15), +(103985, 15), +(103986, 15), +(103987, 15), +(103988, 15), +(103989, 15), +(103990, 15), +(103991, 15), +(103992, 15), +(103993, 15), +(103994, 15), +(103995, 15), +(103996, 15), +(103997, 15), +(103998, 15), +(103999, 15), +(104000, 15), +(104001, 15), +(104002, 15), +(104003, 15), +(104004, 15), +(104005, 15), +(104006, 15), +(104007, 15), +(104008, 15), +(104009, 15), +(104010, 15), +(104011, 15), +(104012, 15), +(104013, 15), +(104014, 15), +(104015, 15), +(104016, 15), +(104017, 15), +(104018, 15), +(104019, 15), +(104020, 15), +(104021, 15), +(104022, 15), +(104023, 15), +(104024, 15), +(104025, 15), +(104026, 15), +(104027, 15), +(104028, 15), +(104029, 15), +(104030, 15), +(104031, 15), +(104032, 15), +(104033, 15), +(104034, 15), +(104035, 15), +(104036, 15), +(104037, 15), +(104038, 15), +(104039, 15), +(104040, 15), +(104041, 15), +(104042, 15), +(104043, 15), +(104044, 15), +(104045, 15), +(104046, 15), +(104047, 15), +(104048, 15), +(104049, 15), +(104050, 15), +(104051, 15), +(104052, 15), +(104053, 15), +(104054, 15), +(104055, 15), +(104056, 15), +(104057, 15), +(104058, 15), +(104059, 15), +(104060, 15), +(104061, 15), +(104062, 15), +(104063, 15), +(104064, 15), +(104065, 15), +(104066, 15), +(104067, 15), +(104068, 15), +(104069, 15), +(104070, 15), +(104071, 15), +(104072, 15), +(104073, 15), +(104074, 15), +(104075, 15), +(104076, 15), +(104077, 15), +(104078, 15), +(104079, 15), +(104080, 15), +(104081, 15), +(104082, 15), +(104083, 15), +(104084, 15), +(104085, 15), +(104086, 15), +(104087, 15), +(104088, 15), +(104089, 15), +(104090, 15), +(104091, 15), +(104094, 16), +(104100, 16), +(104102, 16), +(104105, 16), +(104106, 16), +(104107, 16), +(104108, 16), +(104109, 16), +(104113, 16), +(104115, 16), +(104116, 16), +(104117, 16), +(104118, 16), +(104119, 16), +(104120, 16), +(104126, 16), +(104131, 16), +(104133, 16), +(104134, 16), +(104136, 16), +(104137, 16), +(104138, 16), +(104139, 16), +(104141, 16), +(104143, 16), +(104144, 16), +(104145, 16), +(104146, 16), +(104149, 16), +(104150, 16), +(104152, 16), +(104153, 16), +(104154, 16), +(104156, 16), +(104157, 16), +(104158, 16), +(104159, 16), +(104161, 16), +(104162, 16), +(104163, 16), +(104164, 16), +(104165, 16), +(104166, 16), +(104167, 16), +(104169, 16), +(104171, 16), +(104172, 16), +(104173, 16), +(104175, 16), +(104177, 16), +(104179, 16), +(104181, 16), +(104182, 16), +(104183, 16), +(104184, 16), +(104186, 16), +(104187, 16), +(104188, 16), +(104189, 16), +(104190, 16), +(104191, 16), +(104192, 16), +(104193, 16), +(104194, 16), +(104195, 16), +(104196, 16), +(104197, 16), +(104198, 16), +(104200, 16), +(104201, 16), +(104202, 16), +(104204, 16), +(104205, 16), +(104206, 16), +(104207, 16), +(104208, 16), +(104209, 16), +(104210, 16), +(104211, 16), +(104212, 16), +(104213, 16), +(104214, 16), +(104215, 16), +(104217, 16), +(104218, 16), +(104219, 16), +(104220, 16), +(104221, 16), +(104222, 16), +(104223, 16), +(104224, 16), +(104225, 16), +(104226, 16), +(104227, 16), +(104228, 16), +(104229, 16), +(104230, 16), +(104231, 16), +(104232, 16), +(104233, 16), +(104234, 16), +(104235, 16), +(104236, 16), +(104237, 16), +(104238, 16), +(104239, 16), +(104240, 16), +(104241, 16), +(104242, 16), +(104243, 16), +(104245, 16), +(104246, 16), +(104247, 16), +(104248, 16), +(104249, 16), +(104250, 16), +(104251, 16), +(104252, 16), +(104253, 16), +(104254, 16), +(104255, 16), +(104256, 16), +(104257, 16), +(104258, 16), +(104259, 16), +(104260, 16), +(104261, 16), +(104262, 16), +(104263, 16), +(104264, 16), +(104265, 16), +(104266, 16), +(104267, 16), +(104268, 16), +(104270, 16), +(104271, 16), +(104276, 16), +(104277, 16), +(104278, 16), +(104279, 16), +(104280, 16), +(104281, 16), +(104282, 16), +(104283, 16), +(104284, 16), +(104288, 16), +(104289, 16), +(104290, 16), +(104291, 16), +(104292, 16), +(104293, 16), +(104294, 16), +(104295, 16), +(104298, 16), +(104300, 16); +INSERT INTO `configuration` (`id`, `projectId`) VALUES +(104301, 16), +(104302, 16), +(104303, 16), +(104304, 16), +(104306, 16), +(104307, 16), +(104308, 16), +(104309, 16), +(104310, 16), +(104311, 16), +(104313, 16), +(104314, 16), +(104315, 16), +(104318, 16), +(104319, 16), +(104321, 16), +(104322, 16), +(104325, 16), +(104326, 16), +(104327, 16), +(104332, 16), +(104333, 16), +(104334, 16), +(104335, 16), +(104337, 16), +(104338, 16), +(104339, 16), +(104344, 16), +(104345, 16), +(104346, 16), +(104347, 16), +(104348, 16), +(104349, 16), +(104350, 16), +(104351, 16), +(104352, 16), +(104353, 16), +(104354, 16), +(104355, 16), +(104356, 16), +(104357, 16), +(104358, 16), +(104359, 16), +(104360, 16), +(104361, 16), +(104362, 16), +(104363, 16), +(104364, 16), +(104365, 16), +(104366, 16), +(104367, 16), +(104368, 16), +(104370, 16), +(104371, 16), +(104372, 16), +(104373, 16), +(104374, 16), +(104375, 16), +(104376, 16), +(104377, 16), +(104378, 16), +(104379, 16), +(104380, 16), +(104381, 16), +(104382, 16), +(104383, 16), +(104384, 16), +(104385, 16), +(104386, 16), +(104387, 16), +(104388, 16), +(104389, 16), +(104390, 16), +(104391, 16), +(104392, 16), +(104393, 16), +(104394, 16), +(104395, 16), +(104396, 16), +(104397, 16), +(104398, 16), +(104399, 16), +(104400, 16), +(104401, 16), +(104402, 16), +(104403, 16), +(104404, 16), +(104405, 16), +(104406, 16), +(104407, 16), +(104408, 16), +(104409, 16), +(104410, 16), +(104411, 16), +(104412, 16), +(104413, 16), +(104414, 16), +(104415, 16), +(104416, 16), +(104417, 16), +(104418, 16), +(104419, 16), +(104420, 16), +(104421, 16), +(104422, 16), +(104424, 16), +(104425, 16), +(104426, 16), +(104427, 16), +(104428, 16), +(104430, 16), +(104431, 16), +(104432, 16), +(104434, 16), +(104435, 16), +(104436, 16), +(104437, 16), +(104438, 16), +(104439, 16), +(104440, 16), +(104442, 16), +(104444, 16), +(104445, 16), +(104446, 16), +(104447, 16), +(104448, 16), +(104449, 16), +(104450, 16), +(104451, 16), +(104452, 16), +(104454, 16), +(104455, 16), +(104456, 16), +(104457, 16), +(104459, 16), +(104461, 16), +(104462, 16), +(104463, 16), +(104464, 16), +(104465, 16), +(104466, 16), +(104467, 16), +(104468, 16), +(104470, 16), +(104472, 16), +(104473, 16), +(104474, 16), +(104475, 16), +(104476, 16), +(104478, 16), +(104479, 16), +(104480, 16), +(104481, 16), +(104483, 16), +(104484, 16), +(104485, 16), +(104486, 16), +(104488, 16), +(104490, 16), +(104491, 16), +(104492, 16), +(104493, 16), +(104495, 16), +(104496, 16), +(104497, 16), +(104499, 16), +(104500, 16), +(104502, 16), +(104503, 16), +(104505, 16), +(104506, 16), +(104508, 16), +(104509, 16), +(104511, 16), +(104512, 16), +(104513, 16), +(104515, 16), +(104516, 16), +(104518, 16), +(104519, 16), +(104521, 16), +(104522, 16), +(104523, 16), +(104524, 16), +(104526, 16), +(104527, 16), +(104529, 16), +(104530, 16), +(104531, 16), +(104532, 16), +(104533, 16), +(104535, 16), +(104536, 16), +(104538, 16), +(104539, 16), +(104540, 16), +(104541, 16), +(104542, 16), +(104543, 16), +(104545, 16), +(104546, 16), +(104547, 16), +(104549, 16), +(104550, 16), +(104552, 16), +(104553, 16), +(104555, 16), +(104556, 16), +(104557, 16), +(104558, 16), +(104559, 16), +(104560, 16), +(104562, 16), +(104563, 16), +(104564, 16), +(104565, 16), +(104567, 16), +(104568, 16), +(104569, 16), +(104571, 16), +(104572, 16), +(104573, 16), +(104574, 16), +(104576, 16), +(104577, 16), +(104578, 16), +(104580, 16), +(104581, 16), +(104582, 16), +(104583, 16), +(104584, 16), +(104586, 16), +(104587, 16), +(104588, 16), +(104589, 16), +(104591, 16), +(104592, 16), +(104593, 16), +(104596, 16), +(104597, 16), +(104598, 16), +(104599, 16), +(104600, 16), +(104602, 16), +(104603, 16), +(104604, 16), +(104606, 16), +(104607, 16), +(104608, 16), +(104609, 16), +(104610, 16), +(104611, 16), +(104612, 16), +(104613, 16), +(104614, 16), +(104615, 16), +(104616, 16), +(104617, 16), +(104618, 16), +(104619, 16), +(104620, 16), +(104622, 16), +(104623, 16), +(104624, 16), +(104626, 16), +(104627, 16), +(104628, 16), +(104629, 16), +(104630, 16), +(104631, 16), +(104633, 16), +(104634, 16), +(104635, 16), +(104636, 16), +(104637, 16), +(104639, 16), +(104640, 16), +(104641, 16), +(104642, 16), +(104643, 16), +(104644, 16), +(104645, 16), +(104646, 16), +(104647, 16), +(104648, 16), +(104649, 16), +(104650, 16), +(104651, 16), +(104652, 16), +(104654, 16), +(104655, 16), +(104656, 16), +(104658, 16), +(104660, 16), +(104661, 16), +(104662, 16), +(104664, 16), +(104665, 16), +(104666, 16), +(104668, 16), +(104669, 16), +(104670, 16), +(104672, 16), +(104673, 16), +(104674, 16), +(104676, 16), +(104677, 16), +(104678, 16), +(104679, 16), +(104680, 16), +(104681, 16), +(104682, 16), +(104683, 16), +(104684, 16), +(104685, 16), +(104687, 16), +(104688, 16), +(104689, 16), +(104690, 16), +(104691, 16), +(104693, 16), +(104694, 16), +(104695, 16), +(104696, 16), +(104697, 16), +(104699, 16), +(104700, 16), +(104701, 16), +(104702, 16), +(104703, 16), +(104704, 16), +(104705, 16), +(104706, 16), +(104707, 16), +(104708, 16), +(104709, 16), +(104711, 16), +(104712, 16), +(104713, 16), +(104714, 16), +(104715, 16), +(104716, 16), +(104717, 16), +(104718, 16), +(104719, 16), +(104720, 16), +(104721, 16), +(104723, 16), +(104724, 16), +(104725, 16), +(104727, 16), +(104728, 16), +(104729, 16), +(104730, 16), +(104731, 16), +(104732, 16), +(104733, 16), +(104735, 16), +(104736, 16), +(104738, 16), +(104739, 16), +(104740, 16), +(104741, 16), +(104742, 16), +(104743, 16), +(104744, 16); + +-- +-- Dumping data for table `configuration_branch` +-- + +INSERT INTO `configuration_branch` (`configurationId`, `branchId`) VALUES +(1, 1), +(1, 2), +(3, 1), +(3, 2), +(4, 1), +(4, 2), +(6, 1), +(6, 2), +(8, 1), +(8, 2), +(17, 1), +(17, 2), +(25, 1), +(25, 2), +(29, 1), +(29, 2), +(30, 1), +(30, 2), +(31, 1), +(31, 2), +(32, 1), +(32, 2), +(33, 1), +(33, 2), +(34, 1), +(34, 2), +(37, 1), +(37, 2), +(42, 1), +(42, 2), +(43, 1), +(43, 2), +(45, 1), +(45, 2), +(47, 1), +(47, 2), +(61, 1), +(61, 2), +(63, 1), +(63, 2), +(65, 1), +(65, 2), +(66, 1), +(66, 2), +(67, 1), +(67, 2), +(68, 1), +(68, 2), +(69, 1), +(69, 2), +(183, 1), +(183, 2), +(184, 1), +(184, 2), +(191, 1), +(191, 2), +(192, 1), +(192, 2), +(218, 1), +(218, 2), +(219, 1), +(219, 2), +(222, 1), +(222, 2), +(224, 1), +(224, 2), +(229, 1), +(229, 2), +(230, 1), +(230, 2), +(233, 1), +(233, 2), +(237, 1), +(237, 2), +(241, 1), +(241, 2), +(245, 1), +(245, 2), +(250, 1), +(250, 2), +(255, 1), +(255, 2), +(259, 1), +(259, 2), +(263, 1), +(263, 2), +(267, 1), +(267, 2), +(274, 1), +(274, 2), +(276, 1), +(276, 2), +(281, 1), +(281, 2), +(285, 1), +(285, 2), +(298, 1), +(298, 2), +(300, 1), +(300, 2), +(302, 1), +(302, 2), +(408, 1), +(408, 2), +(410, 1), +(410, 2), +(411, 1), +(411, 2), +(412, 1), +(412, 2), +(414, 1), +(414, 2), +(418, 1), +(418, 2), +(423, 1), +(423, 2), +(424, 1), +(424, 2), +(425, 1), +(425, 2), +(426, 1), +(426, 2), +(428, 1), +(428, 2), +(429, 1), +(429, 2), +(431, 1), +(431, 2), +(437, 1), +(437, 2), +(459, 1), +(459, 2), +(460, 1), +(460, 2), +(461, 1), +(461, 2), +(462, 1), +(462, 2), +(463, 1), +(463, 2), +(464, 1), +(464, 2), +(465, 1), +(465, 2), +(468, 1), +(468, 2), +(474, 1), +(474, 2), +(475, 1), +(475, 2), +(476, 1), +(476, 2), +(477, 1), +(477, 2), +(479, 1), +(479, 2), +(480, 1), +(480, 2), +(481, 1), +(481, 2), +(484, 1), +(484, 2), +(485, 1), +(485, 2), +(487, 1), +(487, 2), +(488, 1), +(488, 2), +(490, 1), +(490, 2), +(497, 1), +(497, 2), +(498, 1), +(498, 2), +(499, 1), +(499, 2), +(500, 1), +(500, 2), +(501, 1), +(501, 2), +(503, 1), +(503, 2), +(504, 1), +(504, 2), +(505, 1), +(505, 2), +(506, 1), +(506, 2), +(508, 1), +(508, 2), +(509, 1), +(509, 2), +(510, 1), +(510, 2), +(511, 1), +(511, 2), +(512, 1), +(512, 2), +(513, 1), +(513, 2), +(515, 1), +(515, 2), +(517, 1), +(517, 2), +(518, 1), +(518, 2), +(520, 1), +(520, 2), +(522, 1), +(522, 2), +(525, 1), +(525, 2), +(526, 1), +(526, 2), +(527, 1), +(527, 2), +(528, 1), +(528, 2), +(529, 1), +(529, 2), +(530, 1), +(530, 2), +(531, 1), +(531, 2), +(534, 1), +(534, 2), +(535, 1), +(535, 2), +(536, 1), +(536, 2), +(538, 1), +(538, 2), +(539, 1), +(539, 2), +(540, 1), +(540, 2), +(541, 1), +(541, 2), +(542, 1), +(542, 2), +(543, 1), +(543, 2), +(545, 1), +(545, 2), +(547, 1), +(547, 2), +(548, 1), +(548, 2), +(549, 1), +(549, 2), +(550, 1), +(550, 2), +(552, 1), +(552, 2), +(554, 1), +(554, 2), +(555, 1), +(555, 2), +(556, 1), +(556, 2), +(559, 1), +(559, 2), +(563, 1), +(563, 2), +(564, 1), +(564, 2), +(565, 1), +(565, 2), +(566, 1), +(566, 2), +(567, 1), +(567, 2), +(569, 1), +(569, 2), +(570, 1), +(570, 2), +(571, 1), +(571, 2), +(572, 1), +(572, 2), +(573, 1), +(573, 2), +(574, 1), +(574, 2), +(575, 1), +(575, 2), +(576, 1), +(576, 2), +(577, 1), +(577, 2), +(578, 1), +(578, 2), +(579, 1), +(579, 2), +(580, 1), +(580, 2), +(581, 1), +(581, 2), +(582, 1), +(582, 2), +(586, 1), +(586, 2), +(587, 1), +(587, 2), +(589, 1), +(589, 2), +(590, 1), +(590, 2), +(591, 1), +(591, 2), +(592, 1), +(592, 2), +(593, 1), +(593, 2), +(594, 1), +(594, 2), +(595, 1), +(595, 2), +(597, 1), +(597, 2), +(598, 1), +(598, 2), +(599, 1), +(599, 2), +(600, 1), +(600, 2), +(601, 1), +(601, 2), +(603, 1), +(603, 2), +(604, 1), +(604, 2), +(605, 1), +(605, 2), +(606, 1), +(606, 2), +(608, 1), +(608, 2), +(609, 1), +(609, 2), +(610, 1), +(610, 2), +(611, 1), +(611, 2), +(612, 1), +(612, 2), +(615, 1), +(615, 2), +(617, 1), +(617, 2), +(618, 1), +(618, 2), +(619, 1), +(619, 2), +(620, 1), +(620, 2), +(622, 1), +(622, 2), +(623, 1), +(623, 2), +(624, 1), +(624, 2), +(625, 1), +(625, 2), +(626, 1), +(626, 2), +(627, 1), +(627, 2), +(628, 1), +(628, 2), +(630, 1), +(630, 2), +(631, 1), +(631, 2), +(632, 1), +(632, 2), +(635, 1), +(635, 2), +(636, 1), +(636, 2), +(637, 1), +(637, 2), +(639, 1), +(639, 2), +(640, 1), +(640, 2), +(645, 1), +(645, 2), +(647, 1), +(647, 2), +(648, 1), +(648, 2), +(649, 1), +(649, 2), +(659, 1), +(659, 2), +(661, 1), +(661, 2), +(663, 1), +(663, 2), +(664, 1), +(664, 2), +(668, 1), +(668, 2), +(670, 1), +(670, 2), +(671, 1), +(671, 2), +(673, 1), +(673, 2), +(674, 1), +(674, 2), +(680, 1), +(680, 2), +(685, 1), +(685, 2), +(687, 1), +(687, 2), +(690, 1), +(690, 2), +(691, 1), +(691, 2), +(692, 1), +(692, 2), +(694, 1), +(694, 2), +(3093, 1), +(3093, 2), +(3094, 1), +(3094, 2), +(3095, 2), +(3096, 2), +(3097, 2), +(3922, 3), +(3922, 4), +(3922, 5), +(3922, 6), +(3922, 7), +(3922, 8), +(3924, 3), +(3924, 4), +(3924, 5), +(3924, 6), +(3924, 7), +(3924, 8), +(3927, 3), +(3927, 4), +(3927, 5), +(3927, 6), +(3927, 7), +(3927, 8), +(3928, 3), +(3928, 4), +(3928, 5), +(3928, 6), +(3928, 7), +(3928, 8), +(3932, 3), +(3932, 4), +(3932, 5), +(3932, 6), +(3932, 7), +(3932, 8), +(3933, 3), +(3933, 4), +(3933, 5), +(3933, 6), +(3933, 7), +(3933, 8), +(3935, 3), +(3935, 4), +(3935, 5), +(3935, 6), +(3935, 7), +(3935, 8), +(3937, 3), +(3937, 4), +(3937, 5), +(3937, 6), +(3937, 7), +(3937, 8), +(3938, 3), +(3938, 4), +(3938, 5), +(3938, 6), +(3938, 7), +(3938, 8), +(3939, 3), +(3939, 4), +(3939, 5), +(3939, 6), +(3939, 7), +(3939, 8), +(3940, 3), +(3940, 4), +(3940, 5), +(3940, 6), +(3940, 7), +(3940, 8), +(3941, 3), +(3941, 4), +(3941, 5), +(3941, 6), +(3941, 7), +(3941, 8), +(3943, 3), +(3943, 4), +(3943, 5), +(3943, 6), +(3943, 7), +(3943, 8), +(3945, 3), +(3945, 4), +(3945, 5), +(3945, 6), +(3945, 7), +(3945, 8), +(3946, 3), +(3946, 4), +(3946, 5), +(3946, 6), +(3946, 7), +(3946, 8), +(3947, 3), +(3947, 4), +(3947, 5), +(3947, 6), +(3947, 7), +(3947, 8), +(3948, 3), +(3948, 4), +(3948, 5), +(3948, 6), +(3948, 7), +(3948, 8), +(3949, 3), +(3949, 4), +(3949, 5), +(3949, 6), +(3949, 7), +(3949, 8), +(3950, 3), +(3950, 4), +(3950, 5), +(3950, 6), +(3950, 7), +(3950, 8), +(3952, 3), +(3952, 4), +(3952, 5), +(3952, 6), +(3952, 7), +(3952, 8), +(3953, 3), +(3953, 4), +(3953, 5), +(3953, 6), +(3953, 7), +(3953, 8), +(3954, 3), +(3954, 4), +(3954, 5), +(3954, 6), +(3954, 7), +(3954, 8), +(3955, 3), +(3955, 4), +(3955, 5), +(3955, 6), +(3955, 7), +(3955, 8), +(3957, 3), +(3957, 4), +(3957, 5), +(3957, 6), +(3957, 7), +(3957, 8), +(3960, 3), +(3960, 4), +(3960, 5), +(3960, 6), +(3960, 7), +(3960, 8), +(3962, 3), +(3962, 4), +(3962, 5), +(3962, 6), +(3962, 7), +(3962, 8), +(3964, 3), +(3964, 4), +(3964, 5), +(3964, 6), +(3964, 7), +(3964, 8), +(3965, 3), +(3965, 4), +(3965, 5), +(3965, 6), +(3965, 7), +(3965, 8), +(3966, 3), +(3966, 4), +(3966, 5), +(3966, 6), +(3966, 7), +(3966, 8), +(4008, 4), +(4008, 5), +(4008, 6), +(4008, 7), +(4008, 8), +(4047, 5), +(4047, 8), +(4051, 5), +(4051, 8), +(4052, 5), +(4052, 8), +(4053, 5), +(4053, 8), +(4055, 5), +(4055, 8), +(4056, 5), +(4056, 8), +(4059, 5), +(4059, 7), +(4059, 8), +(4062, 5), +(4062, 7), +(4062, 8), +(4063, 5), +(4063, 7), +(4063, 8), +(4066, 5), +(4066, 7), +(4066, 8), +(4068, 4), +(4068, 5), +(4068, 7), +(4068, 8), +(4070, 4), +(4070, 5), +(4070, 7), +(4070, 8), +(4073, 4), +(4073, 5), +(4073, 7), +(4073, 8), +(4077, 4), +(4077, 5), +(4077, 6), +(4077, 7), +(4077, 8), +(4078, 6), +(4081, 5), +(4081, 8), +(4082, 5), +(4082, 7), +(4082, 8), +(4083, 5), +(4083, 8), +(4085, 5), +(4085, 8), +(4088, 4), +(4088, 5), +(4088, 7), +(4088, 8), +(4089, 4), +(4089, 5), +(4089, 7), +(4089, 8), +(4094, 4), +(4094, 5), +(4094, 7), +(4094, 8), +(4096, 4), +(4096, 5), +(4096, 7), +(4096, 8), +(4098, 5), +(4098, 7), +(4098, 8), +(4105, 5), +(4105, 7), +(4105, 8), +(4108, 5), +(4108, 8), +(4109, 5), +(4109, 8), +(4110, 5), +(4110, 8), +(4111, 5), +(4111, 8), +(4114, 5), +(4114, 8), +(4115, 5), +(4115, 8), +(4119, 5), +(4119, 8), +(4120, 5), +(4120, 8), +(4124, 5), +(4124, 8), +(4128, 5), +(4128, 8), +(4129, 5), +(4129, 8), +(4133, 5), +(4133, 7), +(4133, 8), +(4134, 5), +(4134, 8), +(4135, 5), +(4135, 8), +(4136, 5), +(4136, 8), +(4137, 5), +(4137, 8), +(4138, 5), +(4138, 8), +(4139, 5), +(4139, 8), +(4140, 5), +(4140, 8), +(4155, 3), +(4155, 4), +(4155, 5), +(4155, 6), +(4155, 7), +(4155, 8), +(4157, 3), +(4157, 4), +(4157, 5), +(4157, 6), +(4157, 7), +(4157, 8), +(4158, 3), +(4158, 4), +(4158, 5), +(4158, 6), +(4158, 7), +(4158, 8), +(4180, 3), +(4180, 4), +(4180, 5), +(4180, 6), +(4180, 7), +(4180, 8), +(4181, 3), +(4181, 4), +(4181, 5), +(4181, 6), +(4181, 7), +(4181, 8), +(4185, 3), +(4185, 4), +(4185, 5), +(4185, 6), +(4185, 7), +(4185, 8), +(4186, 3), +(4186, 4), +(4186, 5), +(4186, 6), +(4186, 7), +(4186, 8), +(4187, 3), +(4187, 4), +(4187, 5), +(4187, 6), +(4187, 7), +(4187, 8), +(4190, 3), +(4190, 4), +(4190, 5), +(4190, 6), +(4190, 7), +(4190, 8), +(4196, 3), +(4196, 4), +(4196, 5), +(4196, 6), +(4196, 7), +(4196, 8), +(4199, 3), +(4199, 4), +(4199, 5), +(4199, 6), +(4199, 7), +(4199, 8), +(4201, 3), +(4201, 4), +(4201, 5), +(4201, 6), +(4201, 7), +(4201, 8), +(4208, 3), +(4208, 4), +(4208, 5), +(4208, 6), +(4208, 7), +(4208, 8), +(4210, 3), +(4210, 4), +(4210, 5), +(4210, 6), +(4210, 7), +(4210, 8), +(4212, 3), +(4212, 4), +(4212, 5), +(4212, 6), +(4212, 7), +(4212, 8), +(4221, 3), +(4221, 4), +(4221, 5), +(4221, 6), +(4221, 7), +(4221, 8), +(4222, 3), +(4222, 4), +(4222, 5), +(4222, 6), +(4222, 7), +(4222, 8), +(4232, 3), +(4232, 4), +(4232, 5), +(4232, 6), +(4232, 7), +(4232, 8), +(4233, 3), +(4233, 4), +(4233, 5), +(4233, 6), +(4233, 7), +(4233, 8), +(4234, 3), +(4234, 4), +(4234, 5), +(4234, 6), +(4234, 7), +(4234, 8), +(4236, 3), +(4236, 4), +(4236, 5), +(4236, 6), +(4236, 7), +(4236, 8), +(4239, 3), +(4239, 4), +(4239, 5), +(4239, 6), +(4239, 7), +(4239, 8), +(4240, 3), +(4240, 4), +(4240, 5), +(4240, 6), +(4240, 7), +(4240, 8), +(4241, 3), +(4241, 4), +(4241, 5), +(4241, 6), +(4241, 7), +(4241, 8), +(4243, 3), +(4243, 4), +(4243, 5), +(4243, 6), +(4243, 7), +(4243, 8), +(4244, 3), +(4244, 4), +(4244, 5), +(4244, 6), +(4244, 7), +(4244, 8), +(4245, 3), +(4245, 4), +(4245, 5), +(4245, 6), +(4245, 7), +(4245, 8), +(4246, 3), +(4246, 4), +(4246, 5), +(4246, 6), +(4246, 7), +(4246, 8), +(4253, 3), +(4253, 4), +(4253, 5), +(4253, 6), +(4253, 7), +(4253, 8), +(4254, 3), +(4254, 4), +(4254, 5), +(4254, 6), +(4254, 7), +(4254, 8), +(4255, 3), +(4255, 4), +(4255, 5), +(4255, 6), +(4255, 7), +(4255, 8), +(4256, 3), +(4256, 4), +(4256, 5), +(4256, 6), +(4256, 7), +(4256, 8), +(4427, 3), +(4427, 4), +(4427, 5), +(4427, 6), +(4427, 7), +(4427, 8), +(4428, 3), +(4428, 4), +(4428, 5), +(4428, 6), +(4428, 7), +(4428, 8), +(4429, 3), +(4429, 4), +(4429, 5), +(4429, 6), +(4429, 7), +(4429, 8), +(4430, 3), +(4430, 4), +(4430, 5), +(4430, 6), +(4430, 7), +(4430, 8), +(4431, 3), +(4431, 4), +(4431, 5), +(4431, 6), +(4431, 7), +(4431, 8), +(4432, 3), +(4432, 4), +(4432, 5), +(4432, 6), +(4432, 7), +(4432, 8), +(4433, 3), +(4433, 4), +(4433, 5), +(4433, 6), +(4433, 7), +(4433, 8), +(4434, 3), +(4434, 4), +(4434, 5), +(4434, 6), +(4434, 7), +(4434, 8), +(4435, 3), +(4435, 4), +(4435, 5), +(4435, 6), +(4435, 7), +(4435, 8), +(4436, 3), +(4436, 4), +(4436, 5), +(4436, 6), +(4436, 7), +(4436, 8), +(4437, 3), +(4437, 4), +(4437, 5), +(4437, 6), +(4437, 7), +(4437, 8), +(4438, 3), +(4438, 4), +(4438, 5), +(4438, 6), +(4438, 7), +(4438, 8), +(4439, 3), +(4439, 4), +(4439, 5), +(4439, 6), +(4439, 7), +(4439, 8), +(4440, 3), +(4440, 4), +(4440, 5), +(4440, 6), +(4440, 7), +(4440, 8), +(4441, 3), +(4441, 4), +(4441, 5), +(4441, 6), +(4441, 7), +(4441, 8), +(4442, 3), +(4442, 4), +(4442, 5), +(4442, 6), +(4442, 7), +(4442, 8), +(4443, 3), +(4443, 4), +(4443, 5), +(4443, 6), +(4443, 7), +(4443, 8), +(4444, 3), +(4444, 4), +(4444, 5), +(4444, 6), +(4444, 7), +(4444, 8), +(4446, 3), +(4446, 4), +(4446, 5), +(4446, 6), +(4446, 7), +(4446, 8), +(4447, 3), +(4447, 4), +(4447, 5), +(4447, 6), +(4447, 7), +(4447, 8), +(4448, 3), +(4448, 4), +(4448, 5), +(4448, 6), +(4448, 7), +(4448, 8), +(4449, 3), +(4449, 4), +(4449, 5), +(4449, 6), +(4449, 7), +(4449, 8), +(4450, 3), +(4450, 4), +(4450, 5), +(4450, 6), +(4450, 7), +(4450, 8), +(4451, 3), +(4451, 4), +(4451, 5), +(4451, 6), +(4451, 7), +(4451, 8), +(4452, 3), +(4452, 4), +(4452, 5), +(4452, 6), +(4452, 7), +(4452, 8), +(4453, 3), +(4453, 4), +(4453, 5), +(4453, 6), +(4453, 7), +(4453, 8), +(4454, 3), +(4454, 4), +(4454, 5), +(4454, 6), +(4454, 7), +(4454, 8), +(4455, 3), +(4455, 4), +(4455, 5), +(4455, 6), +(4455, 7), +(4455, 8), +(4456, 3), +(4456, 4), +(4456, 5), +(4456, 6), +(4456, 7), +(4456, 8), +(4457, 3), +(4457, 4), +(4457, 5), +(4457, 6), +(4457, 7), +(4457, 8), +(4458, 3), +(4458, 4), +(4458, 5), +(4458, 6), +(4458, 7), +(4458, 8), +(4459, 3), +(4459, 4), +(4459, 5), +(4459, 6), +(4459, 7), +(4459, 8), +(4460, 3), +(4460, 4), +(4460, 5), +(4460, 6), +(4460, 7), +(4460, 8), +(4461, 3), +(4461, 4), +(4461, 5), +(4461, 6), +(4461, 7), +(4461, 8), +(4462, 3), +(4462, 4), +(4462, 5), +(4462, 6), +(4462, 7), +(4462, 8), +(4463, 3), +(4463, 4), +(4463, 5), +(4463, 6), +(4463, 7), +(4463, 8), +(4464, 3), +(4464, 4), +(4464, 5), +(4464, 6), +(4464, 7), +(4464, 8), +(4465, 3), +(4465, 4), +(4465, 5), +(4465, 6), +(4465, 7), +(4465, 8), +(4466, 3), +(4466, 4), +(4466, 5), +(4466, 6), +(4466, 7), +(4466, 8), +(4467, 3), +(4467, 4), +(4467, 5), +(4467, 6), +(4467, 7), +(4467, 8), +(4468, 3), +(4468, 4), +(4468, 5), +(4468, 6), +(4468, 7), +(4468, 8), +(4469, 3), +(4469, 4), +(4469, 5), +(4469, 6), +(4469, 7), +(4469, 8), +(4470, 3), +(4470, 4), +(4470, 5), +(4470, 6), +(4470, 7), +(4470, 8), +(4471, 3), +(4471, 4), +(4471, 5), +(4471, 6), +(4471, 7), +(4471, 8), +(4472, 3), +(4472, 4), +(4472, 5), +(4472, 6), +(4472, 7), +(4472, 8), +(4473, 3), +(4473, 4), +(4473, 5), +(4473, 6), +(4473, 7), +(4473, 8), +(4474, 3), +(4474, 4), +(4474, 5), +(4474, 6), +(4474, 7), +(4474, 8), +(4475, 3), +(4475, 4), +(4475, 5), +(4475, 6), +(4475, 7), +(4475, 8), +(4476, 3), +(4476, 4), +(4476, 5), +(4476, 6), +(4476, 7), +(4476, 8), +(4477, 3), +(4477, 4), +(4477, 5), +(4477, 6), +(4477, 7), +(4477, 8), +(4478, 3), +(4478, 4), +(4478, 5), +(4478, 6), +(4478, 7), +(4478, 8), +(4479, 3), +(4479, 4), +(4479, 5), +(4479, 6), +(4479, 7), +(4479, 8), +(4480, 3), +(4480, 4), +(4480, 5), +(4480, 6), +(4480, 7), +(4480, 8), +(4481, 3), +(4481, 4), +(4481, 5), +(4481, 6), +(4481, 7), +(4481, 8), +(4482, 3), +(4482, 4), +(4482, 5), +(4482, 6), +(4482, 7), +(4482, 8), +(4483, 3), +(4483, 4), +(4483, 5), +(4483, 6), +(4483, 7), +(4483, 8), +(4484, 3), +(4484, 4), +(4484, 5), +(4484, 6), +(4484, 7), +(4484, 8), +(4485, 3), +(4485, 4), +(4485, 5), +(4485, 6), +(4485, 7), +(4485, 8), +(4486, 3), +(4486, 4), +(4486, 5), +(4486, 6), +(4486, 7), +(4486, 8), +(4487, 3), +(4487, 4), +(4487, 5), +(4487, 6), +(4487, 7), +(4487, 8), +(4488, 3), +(4488, 4), +(4488, 5), +(4488, 6), +(4488, 7), +(4488, 8), +(4489, 3), +(4489, 4), +(4489, 5), +(4489, 6), +(4489, 7), +(4489, 8), +(4490, 3), +(4490, 4), +(4490, 5), +(4490, 6), +(4490, 7), +(4490, 8), +(4491, 3), +(4491, 4), +(4491, 5), +(4491, 6), +(4491, 7), +(4491, 8), +(4492, 3), +(4492, 4), +(4492, 5), +(4492, 6), +(4492, 7), +(4492, 8), +(4493, 3), +(4493, 4), +(4493, 5), +(4493, 6), +(4493, 7), +(4493, 8), +(4494, 3), +(4494, 4), +(4494, 5), +(4494, 6), +(4494, 7), +(4494, 8), +(4495, 3), +(4495, 4), +(4495, 5), +(4495, 6), +(4495, 7), +(4495, 8), +(4496, 3), +(4496, 4), +(4496, 5), +(4496, 6), +(4496, 7), +(4496, 8), +(4497, 3), +(4497, 4), +(4497, 5), +(4497, 6), +(4497, 7), +(4497, 8), +(4498, 3), +(4498, 4), +(4498, 5), +(4498, 6), +(4498, 7), +(4498, 8), +(4499, 3), +(4499, 4), +(4499, 5), +(4499, 6), +(4499, 7), +(4499, 8), +(4500, 3), +(4500, 4), +(4500, 5), +(4500, 6), +(4500, 7), +(4500, 8), +(4501, 3), +(4501, 4), +(4501, 5), +(4501, 6), +(4501, 7), +(4501, 8), +(4502, 3), +(4502, 4), +(4502, 5), +(4502, 6), +(4502, 7), +(4502, 8), +(4504, 3), +(4504, 4), +(4504, 5), +(4504, 6), +(4504, 7), +(4504, 8), +(4505, 3), +(4505, 4), +(4505, 5), +(4505, 6), +(4505, 7), +(4505, 8), +(4506, 3), +(4506, 4), +(4506, 5), +(4506, 6), +(4506, 7), +(4506, 8), +(4507, 3), +(4507, 4), +(4507, 5), +(4507, 6), +(4507, 7), +(4507, 8), +(4508, 3), +(4508, 4), +(4508, 5), +(4508, 6), +(4508, 7), +(4508, 8), +(4509, 3), +(4509, 4), +(4509, 5), +(4509, 6), +(4509, 7), +(4509, 8), +(4510, 3), +(4510, 4), +(4510, 5), +(4510, 6), +(4510, 7), +(4510, 8), +(4511, 3), +(4511, 4), +(4511, 5), +(4511, 6), +(4511, 7), +(4511, 8), +(4512, 3), +(4512, 4), +(4512, 5), +(4512, 6), +(4512, 7), +(4512, 8), +(4513, 3), +(4513, 4), +(4513, 5), +(4513, 6), +(4513, 7), +(4513, 8), +(4514, 3), +(4514, 4), +(4514, 5), +(4514, 6), +(4514, 7), +(4514, 8), +(4515, 3), +(4515, 4), +(4515, 5), +(4515, 6), +(4515, 7), +(4515, 8), +(4516, 3), +(4516, 4), +(4516, 5), +(4516, 6), +(4516, 7), +(4516, 8), +(4517, 3), +(4517, 4), +(4517, 5), +(4517, 6), +(4517, 7), +(4517, 8), +(4518, 3), +(4518, 4), +(4518, 5), +(4518, 6), +(4518, 7), +(4518, 8), +(4519, 3), +(4519, 4), +(4519, 5), +(4519, 6), +(4519, 7), +(4519, 8), +(4520, 3), +(4520, 4), +(4520, 5), +(4520, 6), +(4520, 7), +(4520, 8), +(4521, 3), +(4521, 4), +(4521, 5), +(4521, 6), +(4521, 7), +(4521, 8), +(4522, 3), +(4522, 4), +(4522, 5), +(4522, 6), +(4522, 7), +(4522, 8), +(4523, 3), +(4523, 4), +(4523, 5), +(4523, 6), +(4523, 7), +(4523, 8), +(4524, 3), +(4524, 4), +(4524, 5), +(4524, 6), +(4524, 7), +(4524, 8), +(4525, 3), +(4525, 4), +(4525, 5), +(4525, 6), +(4525, 7), +(4525, 8), +(4526, 3), +(4526, 4), +(4526, 5), +(4526, 6), +(4526, 7), +(4526, 8), +(4527, 3), +(4527, 4), +(4527, 5), +(4527, 6), +(4527, 7), +(4527, 8), +(4528, 3), +(4528, 4), +(4528, 5), +(4528, 6), +(4528, 7), +(4528, 8), +(4529, 3), +(4529, 4), +(4529, 5), +(4529, 6), +(4529, 7), +(4529, 8), +(4530, 3), +(4530, 4), +(4530, 5), +(4530, 6), +(4530, 7), +(4530, 8), +(4531, 3), +(4531, 4), +(4531, 5), +(4531, 6), +(4531, 7), +(4531, 8), +(4532, 3), +(4532, 4), +(4532, 5), +(4532, 6), +(4532, 7), +(4532, 8), +(4533, 3), +(4533, 4), +(4533, 5), +(4533, 6), +(4533, 7), +(4533, 8), +(4534, 3), +(4534, 4), +(4534, 5), +(4534, 6), +(4534, 7), +(4534, 8), +(4535, 3), +(4535, 4), +(4535, 5), +(4535, 6), +(4535, 7), +(4535, 8), +(4536, 3), +(4536, 4), +(4536, 5), +(4536, 6), +(4536, 7), +(4536, 8), +(4537, 3), +(4537, 4), +(4537, 5), +(4537, 6), +(4537, 7), +(4537, 8), +(4538, 3), +(4538, 4), +(4538, 5), +(4538, 6), +(4538, 7), +(4538, 8), +(4539, 3), +(4539, 4), +(4539, 5), +(4539, 6), +(4539, 7), +(4539, 8), +(4540, 3), +(4540, 4), +(4540, 5), +(4540, 6), +(4540, 7), +(4540, 8), +(4541, 3), +(4541, 4), +(4541, 5), +(4541, 6), +(4541, 7), +(4541, 8), +(4542, 3), +(4542, 4), +(4542, 5), +(4542, 6), +(4542, 7), +(4542, 8), +(4543, 3), +(4543, 4), +(4543, 5), +(4543, 6), +(4543, 7), +(4543, 8), +(4544, 3), +(4544, 4), +(4544, 5), +(4544, 6), +(4544, 7), +(4544, 8), +(4545, 3), +(4545, 4), +(4545, 5), +(4545, 6), +(4545, 7), +(4545, 8), +(4546, 3), +(4546, 4), +(4546, 5), +(4546, 6), +(4546, 7), +(4546, 8), +(4547, 3), +(4547, 4), +(4547, 5), +(4547, 6), +(4547, 7), +(4547, 8), +(4548, 3), +(4548, 4), +(4548, 5), +(4548, 6), +(4548, 7), +(4548, 8), +(4549, 3), +(4549, 4), +(4549, 5), +(4549, 6), +(4549, 7), +(4549, 8), +(4550, 3), +(4550, 4), +(4550, 5), +(4550, 6), +(4550, 7), +(4550, 8), +(4551, 3), +(4551, 4), +(4551, 5), +(4551, 6), +(4551, 7), +(4551, 8), +(4552, 3), +(4552, 4), +(4552, 5), +(4552, 6), +(4552, 7), +(4552, 8), +(4553, 3), +(4553, 4), +(4553, 5), +(4553, 6), +(4553, 7), +(4553, 8), +(4554, 3), +(4554, 4), +(4554, 5), +(4554, 6), +(4554, 7), +(4554, 8), +(4555, 3), +(4555, 4), +(4555, 5), +(4555, 6), +(4555, 7), +(4555, 8), +(4556, 3), +(4556, 4), +(4556, 5), +(4556, 6), +(4556, 7), +(4556, 8), +(4557, 3), +(4557, 4), +(4557, 5), +(4557, 6), +(4557, 7), +(4557, 8), +(4558, 3), +(4558, 4), +(4558, 5), +(4558, 6), +(4558, 7), +(4558, 8), +(4559, 3), +(4559, 4), +(4559, 5), +(4559, 6), +(4559, 7), +(4559, 8), +(4560, 3), +(4560, 4), +(4560, 5), +(4560, 6), +(4560, 7), +(4560, 8), +(4561, 3), +(4561, 4), +(4561, 5), +(4561, 6), +(4561, 7), +(4561, 8), +(4562, 3), +(4562, 4), +(4562, 5), +(4562, 6), +(4562, 7), +(4562, 8), +(4563, 3), +(4563, 4), +(4563, 5), +(4563, 6), +(4563, 7), +(4563, 8), +(4564, 3), +(4564, 4), +(4564, 5), +(4564, 6), +(4564, 7), +(4564, 8), +(4565, 3), +(4565, 4), +(4565, 5), +(4565, 6), +(4565, 7), +(4565, 8), +(4566, 3), +(4566, 4), +(4566, 5), +(4566, 6), +(4566, 7), +(4566, 8), +(4567, 3), +(4567, 4), +(4567, 5), +(4567, 6), +(4567, 7), +(4567, 8), +(4568, 3), +(4568, 4), +(4568, 5), +(4568, 6), +(4568, 7), +(4568, 8), +(4569, 3), +(4569, 4), +(4569, 5), +(4569, 6), +(4569, 7), +(4569, 8), +(4570, 3), +(4570, 4), +(4570, 5), +(4570, 6), +(4570, 7), +(4570, 8), +(4571, 3), +(4571, 4), +(4571, 5), +(4571, 6), +(4571, 7), +(4571, 8), +(4572, 3), +(4572, 4), +(4572, 5), +(4572, 6), +(4572, 7), +(4572, 8), +(4573, 3), +(4573, 4), +(4573, 5), +(4573, 6), +(4573, 7), +(4573, 8), +(4574, 3), +(4574, 4), +(4574, 5), +(4574, 6), +(4574, 7), +(4574, 8), +(4575, 3), +(4575, 4), +(4575, 5), +(4575, 6), +(4575, 7), +(4575, 8), +(4576, 3), +(4576, 4), +(4576, 5), +(4576, 6), +(4576, 7), +(4576, 8), +(4577, 3), +(4577, 4), +(4577, 5), +(4577, 6), +(4577, 7), +(4577, 8), +(4578, 3), +(4578, 4), +(4578, 5), +(4578, 6), +(4578, 7), +(4578, 8), +(4579, 3), +(4579, 4), +(4579, 5), +(4579, 6), +(4579, 7), +(4579, 8), +(4580, 3), +(4580, 4), +(4580, 5), +(4580, 6), +(4580, 7), +(4580, 8), +(4581, 3), +(4581, 4), +(4581, 5), +(4581, 6), +(4581, 7), +(4581, 8), +(4582, 3), +(4582, 4), +(4582, 5), +(4582, 6), +(4582, 7), +(4582, 8), +(4583, 3), +(4583, 4), +(4583, 5), +(4583, 6), +(4583, 7), +(4583, 8), +(4584, 3), +(4584, 4), +(4584, 5), +(4584, 6), +(4584, 7), +(4584, 8), +(4585, 3), +(4585, 4), +(4585, 5), +(4585, 6), +(4585, 7), +(4585, 8), +(4586, 3), +(4586, 4), +(4586, 5), +(4586, 6), +(4586, 7), +(4586, 8), +(4587, 3), +(4587, 4), +(4587, 5), +(4587, 6), +(4587, 7), +(4587, 8), +(4588, 3), +(4588, 4), +(4588, 5), +(4588, 6), +(4588, 7), +(4588, 8), +(4589, 3), +(4589, 4), +(4589, 5), +(4589, 6), +(4589, 7), +(4589, 8), +(4590, 3), +(4590, 4), +(4590, 5), +(4590, 6), +(4590, 7), +(4590, 8), +(4591, 3), +(4591, 4), +(4591, 5), +(4591, 6), +(4591, 7), +(4591, 8), +(4592, 3), +(4592, 4), +(4592, 5), +(4592, 6), +(4592, 7), +(4592, 8), +(4593, 3), +(4593, 4), +(4593, 5), +(4593, 6), +(4593, 7), +(4593, 8), +(4594, 3), +(4594, 4), +(4594, 5), +(4594, 6), +(4594, 7), +(4594, 8), +(4595, 3), +(4595, 4), +(4595, 5), +(4595, 6), +(4595, 7), +(4595, 8), +(4596, 3), +(4596, 4), +(4596, 5), +(4596, 6), +(4596, 7), +(4596, 8), +(4597, 3), +(4597, 4), +(4597, 5), +(4597, 6), +(4597, 7), +(4597, 8), +(4598, 3), +(4598, 4), +(4598, 5), +(4598, 6), +(4598, 7), +(4598, 8), +(4599, 3), +(4599, 4), +(4599, 5), +(4599, 6), +(4599, 7), +(4599, 8), +(4600, 3), +(4600, 4), +(4600, 5), +(4600, 6), +(4600, 7), +(4600, 8), +(4601, 3), +(4601, 4), +(4601, 5), +(4601, 6), +(4601, 7), +(4601, 8), +(4602, 3), +(4602, 4), +(4602, 5), +(4602, 6), +(4602, 7), +(4602, 8), +(4603, 3), +(4603, 4), +(4603, 5), +(4603, 6), +(4603, 7), +(4603, 8), +(4604, 3), +(4604, 4), +(4604, 5), +(4604, 6), +(4604, 7), +(4604, 8), +(4605, 3), +(4605, 4), +(4605, 5), +(4605, 6), +(4605, 7), +(4605, 8), +(4606, 3), +(4606, 4), +(4606, 5), +(4606, 6), +(4606, 7), +(4606, 8), +(4607, 3), +(4607, 4), +(4607, 5), +(4607, 6), +(4607, 7), +(4607, 8), +(4608, 3), +(4608, 4), +(4608, 5), +(4608, 6), +(4608, 7), +(4608, 8), +(4609, 3), +(4609, 4), +(4609, 5), +(4609, 6), +(4609, 7), +(4609, 8), +(4610, 3), +(4610, 4), +(4610, 5), +(4610, 6), +(4610, 7), +(4610, 8), +(4611, 3), +(4611, 4), +(4611, 5), +(4611, 6), +(4611, 7), +(4611, 8), +(4612, 3), +(4612, 4), +(4612, 5), +(4612, 6), +(4612, 7), +(4612, 8), +(4613, 3), +(4613, 4), +(4613, 5), +(4613, 6), +(4613, 7), +(4613, 8), +(4614, 3), +(4614, 4), +(4614, 5), +(4614, 6), +(4614, 7), +(4614, 8), +(4615, 3), +(4615, 4), +(4615, 5), +(4615, 6), +(4615, 7), +(4615, 8), +(4616, 3), +(4616, 4), +(4616, 5), +(4616, 6), +(4616, 7), +(4616, 8), +(4617, 3), +(4617, 4), +(4617, 5), +(4617, 6), +(4617, 7), +(4617, 8), +(4618, 3), +(4618, 4), +(4618, 5), +(4618, 6), +(4618, 7), +(4618, 8), +(4619, 3), +(4619, 4), +(4619, 5), +(4619, 6), +(4619, 7), +(4619, 8), +(4620, 3), +(4620, 4), +(4620, 5), +(4620, 6), +(4620, 7), +(4620, 8), +(4621, 3), +(4621, 4), +(4621, 5), +(4621, 6), +(4621, 7), +(4621, 8), +(4622, 3), +(4622, 4), +(4622, 5), +(4622, 6), +(4622, 7), +(4622, 8), +(4623, 3), +(4623, 4), +(4623, 5), +(4623, 6), +(4623, 7), +(4623, 8), +(4624, 3), +(4624, 4), +(4624, 5), +(4624, 6), +(4624, 7), +(4624, 8), +(4625, 3), +(4625, 4), +(4625, 5), +(4625, 6), +(4625, 7), +(4625, 8), +(4626, 3), +(4626, 4), +(4626, 5), +(4626, 6), +(4626, 7), +(4626, 8), +(4627, 3), +(4627, 4), +(4627, 5), +(4627, 6), +(4627, 7), +(4627, 8), +(4628, 3), +(4628, 4), +(4628, 5), +(4628, 6), +(4628, 7), +(4628, 8), +(4629, 3), +(4629, 4), +(4629, 5), +(4629, 6), +(4629, 7), +(4629, 8), +(4630, 3), +(4630, 4), +(4630, 5), +(4630, 6), +(4630, 7), +(4630, 8), +(4631, 3), +(4631, 4), +(4631, 5), +(4631, 6), +(4631, 7), +(4631, 8), +(4632, 3), +(4632, 4), +(4632, 5), +(4632, 6), +(4632, 7), +(4632, 8), +(4633, 3), +(4633, 4), +(4633, 5), +(4633, 6), +(4633, 7), +(4633, 8), +(4634, 3), +(4634, 4), +(4634, 5), +(4634, 6), +(4634, 7), +(4634, 8), +(4635, 3), +(4635, 4), +(4635, 5), +(4635, 6), +(4635, 7), +(4635, 8), +(4636, 3), +(4636, 4), +(4636, 5), +(4636, 6), +(4636, 7), +(4636, 8), +(4637, 3), +(4637, 4), +(4637, 5), +(4637, 6), +(4637, 7), +(4637, 8), +(4638, 3), +(4638, 4), +(4638, 5), +(4638, 6), +(4638, 7), +(4638, 8), +(4639, 3), +(4639, 4), +(4639, 5), +(4639, 6), +(4639, 7), +(4639, 8), +(4640, 3), +(4640, 4), +(4640, 5), +(4640, 6), +(4640, 7), +(4640, 8), +(4641, 3), +(4641, 4), +(4641, 5), +(4641, 6), +(4641, 7), +(4641, 8), +(4642, 3), +(4642, 4), +(4642, 5), +(4642, 6), +(4642, 7), +(4642, 8), +(4643, 3), +(4643, 4), +(4643, 5), +(4643, 6), +(4643, 7), +(4643, 8), +(4644, 3), +(4644, 4), +(4644, 5), +(4644, 6), +(4644, 7), +(4644, 8), +(4645, 3), +(4645, 4), +(4645, 5), +(4645, 6), +(4645, 7), +(4645, 8), +(4646, 3), +(4646, 4), +(4646, 5), +(4646, 6), +(4646, 7), +(4646, 8), +(4647, 3), +(4647, 4), +(4647, 5), +(4647, 6), +(4647, 7), +(4647, 8), +(4648, 3), +(4648, 4), +(4648, 5), +(4648, 6), +(4648, 7), +(4648, 8), +(4649, 3), +(4649, 4), +(4649, 5), +(4649, 6), +(4649, 7), +(4649, 8), +(4650, 3), +(4650, 4), +(4650, 5), +(4650, 6), +(4650, 7), +(4650, 8), +(4651, 3), +(4651, 4), +(4651, 5), +(4651, 6), +(4651, 7), +(4651, 8), +(4652, 3), +(4652, 4), +(4652, 5), +(4652, 6), +(4652, 7), +(4652, 8), +(4653, 3), +(4653, 4), +(4653, 5), +(4653, 6), +(4653, 7), +(4653, 8), +(4654, 3), +(4654, 4), +(4654, 5), +(4654, 6), +(4654, 7), +(4654, 8), +(4655, 3), +(4655, 4), +(4655, 5), +(4655, 6), +(4655, 7), +(4655, 8), +(4656, 3), +(4656, 4), +(4656, 5), +(4656, 6), +(4656, 7), +(4656, 8), +(4657, 3), +(4657, 4), +(4657, 5), +(4657, 6), +(4657, 7), +(4657, 8), +(4658, 3), +(4658, 4), +(4658, 5), +(4658, 6), +(4658, 7), +(4658, 8), +(4659, 3), +(4659, 4), +(4659, 5), +(4659, 6), +(4659, 7), +(4659, 8), +(4660, 3), +(4660, 4), +(4660, 5), +(4660, 6), +(4660, 7), +(4660, 8), +(4661, 3), +(4661, 4), +(4661, 5), +(4661, 6), +(4661, 7), +(4661, 8), +(4662, 3), +(4662, 4), +(4662, 5), +(4662, 6), +(4662, 7), +(4662, 8), +(4663, 3), +(4663, 4), +(4663, 5), +(4663, 6), +(4663, 7), +(4663, 8), +(4664, 3), +(4664, 4), +(4664, 5), +(4664, 6), +(4664, 7), +(4664, 8), +(4665, 3), +(4665, 4), +(4665, 5), +(4665, 6), +(4665, 7), +(4665, 8), +(4666, 3), +(4666, 4), +(4666, 5), +(4666, 6), +(4666, 7), +(4666, 8), +(4667, 3), +(4667, 4), +(4667, 5), +(4667, 6), +(4667, 7), +(4667, 8), +(4668, 3), +(4668, 4), +(4668, 5), +(4668, 6), +(4668, 7), +(4668, 8), +(4669, 3), +(4669, 4), +(4669, 5), +(4669, 6), +(4669, 7), +(4669, 8), +(4670, 3), +(4670, 4), +(4670, 5), +(4670, 6), +(4670, 7), +(4670, 8), +(4671, 3), +(4671, 4), +(4671, 5), +(4671, 6), +(4671, 7), +(4671, 8), +(4672, 3), +(4672, 4), +(4672, 5), +(4672, 6), +(4672, 7), +(4672, 8), +(4673, 3), +(4673, 4), +(4673, 5), +(4673, 6), +(4673, 7), +(4673, 8), +(4674, 3), +(4674, 4), +(4674, 5), +(4674, 6), +(4674, 7), +(4674, 8), +(4675, 3), +(4675, 4), +(4675, 5), +(4675, 6), +(4675, 7), +(4675, 8), +(4676, 3), +(4676, 4), +(4676, 5), +(4676, 6), +(4676, 7), +(4676, 8), +(4677, 3), +(4677, 4), +(4677, 5), +(4677, 6), +(4677, 7), +(4677, 8), +(4678, 3), +(4678, 4), +(4678, 5), +(4678, 6), +(4678, 7), +(4678, 8), +(4679, 3), +(4679, 4), +(4679, 5), +(4679, 6), +(4679, 7), +(4679, 8), +(4680, 3), +(4680, 4), +(4680, 5), +(4680, 6), +(4680, 7), +(4680, 8), +(4681, 3), +(4681, 4), +(4681, 5), +(4681, 6), +(4681, 7), +(4681, 8), +(4682, 3), +(4682, 4), +(4682, 5), +(4682, 6), +(4682, 7), +(4682, 8), +(4683, 3), +(4683, 4), +(4683, 5), +(4683, 6), +(4683, 7), +(4683, 8), +(4684, 3), +(4684, 4), +(4684, 5), +(4684, 6), +(4684, 7), +(4684, 8), +(4685, 3), +(4685, 4), +(4685, 5), +(4685, 6), +(4685, 7), +(4685, 8), +(4686, 3), +(4686, 4), +(4686, 5), +(4686, 6), +(4686, 7), +(4686, 8), +(4687, 3), +(4687, 4), +(4687, 5), +(4687, 6), +(4687, 7), +(4687, 8), +(4688, 3), +(4688, 4), +(4688, 5), +(4688, 6), +(4688, 7), +(4688, 8), +(4689, 3), +(4689, 4), +(4689, 5), +(4689, 6), +(4689, 7), +(4689, 8), +(4690, 3), +(4690, 4), +(4690, 5), +(4690, 6), +(4690, 7), +(4690, 8), +(4691, 3), +(4691, 4), +(4691, 5), +(4691, 6), +(4691, 7), +(4691, 8), +(4692, 3), +(4692, 4), +(4692, 5), +(4692, 6), +(4692, 7), +(4692, 8), +(4693, 3), +(4693, 4), +(4693, 5), +(4693, 6), +(4693, 7), +(4693, 8), +(4694, 3), +(4694, 4), +(4694, 5), +(4694, 6), +(4694, 7), +(4694, 8), +(4695, 3), +(4695, 4), +(4695, 5), +(4695, 6), +(4695, 7), +(4695, 8), +(4696, 3), +(4696, 4), +(4696, 5), +(4696, 6), +(4696, 7), +(4696, 8), +(4697, 3), +(4697, 4), +(4697, 5), +(4697, 6), +(4697, 7), +(4697, 8), +(4698, 3), +(4698, 4), +(4698, 5), +(4698, 6), +(4698, 7), +(4698, 8), +(4699, 3), +(4699, 4), +(4699, 5), +(4699, 6), +(4699, 7), +(4699, 8), +(4700, 3), +(4700, 4), +(4700, 5), +(4700, 6), +(4700, 7), +(4700, 8), +(4701, 3), +(4701, 4), +(4701, 5), +(4701, 6), +(4701, 7), +(4701, 8), +(4702, 3), +(4702, 4), +(4702, 5), +(4702, 6), +(4702, 7), +(4702, 8), +(4703, 3), +(4703, 4), +(4703, 5), +(4703, 6), +(4703, 7), +(4703, 8), +(4704, 3), +(4704, 4), +(4704, 5), +(4704, 6), +(4704, 7), +(4704, 8), +(4705, 3), +(4705, 4), +(4705, 5), +(4705, 6), +(4705, 7), +(4705, 8), +(4706, 3), +(4706, 4), +(4706, 5), +(4706, 6), +(4706, 7), +(4706, 8), +(4707, 3), +(4707, 4), +(4707, 5), +(4707, 6), +(4707, 7), +(4707, 8), +(4708, 3), +(4708, 4), +(4708, 5), +(4708, 6), +(4708, 7), +(4708, 8), +(4709, 3), +(4709, 4), +(4709, 5), +(4709, 6), +(4709, 7), +(4709, 8), +(4710, 3), +(4710, 4), +(4710, 5), +(4710, 6), +(4710, 7), +(4710, 8), +(4711, 3), +(4711, 4), +(4711, 5), +(4711, 6), +(4711, 7), +(4711, 8), +(4712, 3), +(4712, 4), +(4712, 5), +(4712, 6), +(4712, 7), +(4712, 8), +(4713, 3), +(4713, 4), +(4713, 5), +(4713, 6), +(4713, 7), +(4713, 8), +(4714, 3), +(4714, 4), +(4714, 5), +(4714, 6), +(4714, 7), +(4714, 8), +(4715, 3), +(4715, 4), +(4715, 5), +(4715, 6), +(4715, 7), +(4715, 8), +(4716, 3), +(4716, 4), +(4716, 5), +(4716, 6), +(4716, 7), +(4716, 8), +(4717, 3), +(4717, 4), +(4717, 5), +(4717, 6), +(4717, 7), +(4717, 8), +(4718, 3), +(4718, 4), +(4718, 5), +(4718, 6), +(4718, 7), +(4718, 8), +(4719, 3), +(4719, 4), +(4719, 5), +(4719, 6), +(4719, 7), +(4719, 8), +(4720, 3), +(4720, 4), +(4720, 5), +(4720, 6), +(4720, 7), +(4720, 8), +(4721, 3), +(4721, 4), +(4721, 5), +(4721, 6), +(4721, 7), +(4721, 8), +(4722, 3), +(4722, 4), +(4722, 5), +(4722, 6), +(4722, 7), +(4722, 8), +(4723, 3), +(4723, 4), +(4723, 5), +(4723, 6), +(4723, 7), +(4723, 8), +(4724, 3), +(4724, 4), +(4724, 5), +(4724, 6), +(4724, 7), +(4724, 8), +(4725, 3), +(4725, 4), +(4725, 5), +(4725, 6), +(4725, 7), +(4725, 8), +(4726, 4), +(4726, 5), +(4726, 7), +(4726, 8), +(4727, 4), +(4727, 5), +(4727, 6), +(4727, 7), +(4727, 8), +(4728, 4), +(4728, 5), +(4728, 6), +(4728, 7), +(4728, 8), +(4729, 4), +(4729, 5), +(4729, 6), +(4729, 7), +(4729, 8), +(4731, 4), +(4731, 5), +(4731, 6), +(4731, 7), +(4731, 8), +(4732, 4), +(4732, 5), +(4732, 6), +(4732, 7), +(4732, 8), +(4734, 4), +(4734, 5), +(4734, 6), +(4734, 7), +(4734, 8), +(4735, 4), +(4735, 5), +(4735, 6), +(4735, 7), +(4735, 8), +(4736, 4), +(4736, 5), +(4736, 6), +(4736, 7), +(4736, 8), +(4739, 4), +(4739, 5), +(4739, 6), +(4739, 7), +(4739, 8), +(4740, 4), +(4740, 5), +(4740, 6), +(4740, 7), +(4740, 8), +(4741, 4), +(4741, 5), +(4741, 6), +(4741, 7), +(4741, 8), +(4742, 4), +(4742, 5), +(4742, 6), +(4742, 7), +(4742, 8), +(4743, 4), +(4743, 5), +(4743, 6), +(4743, 7), +(4743, 8), +(4744, 4), +(4744, 5), +(4744, 6), +(4744, 7), +(4744, 8), +(4745, 4), +(4745, 5), +(4745, 6), +(4745, 7), +(4745, 8), +(4746, 4), +(4746, 5), +(4746, 6), +(4746, 7), +(4746, 8), +(4747, 4), +(4747, 5), +(4747, 6), +(4747, 7), +(4747, 8), +(4748, 4), +(4748, 5), +(4748, 6), +(4748, 7), +(4748, 8), +(4749, 5), +(4750, 5), +(4751, 5), +(4752, 5), +(4753, 5), +(4754, 5), +(4754, 8), +(4755, 5), +(4755, 8), +(4756, 5), +(4756, 8), +(4757, 5), +(4757, 8), +(4758, 5), +(4758, 8), +(4760, 5), +(4760, 8), +(4761, 5), +(4761, 8), +(4763, 5), +(4763, 8), +(4764, 5), +(4764, 8), +(4765, 5), +(4765, 7), +(4765, 8), +(4766, 5), +(4766, 7), +(4766, 8), +(4767, 5), +(4767, 7), +(4767, 8), +(4768, 5), +(4768, 8), +(4770, 5), +(4770, 7), +(4770, 8), +(5775, 9), +(5777, 9), +(5777, 10), +(5783, 9), +(5783, 10), +(5785, 9), +(5785, 10), +(5788, 9), +(5788, 10), +(5802, 9), +(5802, 10), +(5803, 9), +(5803, 10), +(5805, 9), +(5805, 10), +(5806, 9), +(5806, 10), +(5807, 9), +(5807, 10), +(5808, 9), +(5808, 10), +(5810, 9), +(5810, 10), +(5811, 9), +(5811, 10), +(5812, 9), +(5812, 10), +(5813, 9), +(5813, 10), +(5814, 9), +(5814, 10), +(5815, 9), +(5815, 10), +(5816, 9), +(5816, 10), +(5817, 9), +(5817, 10), +(5818, 9), +(5818, 11), +(5818, 10), +(5821, 9), +(5821, 11), +(5821, 10), +(5823, 9), +(5823, 11), +(5823, 10), +(5824, 9), +(5824, 11), +(5824, 12), +(5824, 10), +(5842, 9), +(5842, 11), +(5842, 12), +(5842, 10), +(5843, 9), +(5843, 11), +(5843, 12), +(5843, 10), +(5848, 9), +(5848, 11), +(5848, 12), +(5848, 10), +(5855, 9), +(5855, 11), +(5855, 12), +(5855, 10), +(5859, 9), +(5859, 11), +(5859, 12), +(5859, 10), +(5860, 9), +(5860, 11), +(5860, 12), +(5860, 10), +(5863, 9), +(5863, 11), +(5863, 12), +(5863, 10), +(5866, 9), +(5866, 11), +(5866, 12), +(5866, 10), +(5868, 9), +(5868, 11), +(5868, 12), +(5868, 10), +(5871, 9), +(5871, 13), +(5871, 14), +(5871, 15), +(5871, 11), +(5871, 12), +(5871, 16), +(5871, 10), +(5872, 9), +(5872, 13), +(5872, 14), +(5872, 15), +(5872, 11), +(5872, 12), +(5872, 16), +(5872, 10), +(5873, 9), +(5873, 13), +(5873, 14), +(5873, 15), +(5873, 11), +(5873, 12), +(5873, 16), +(5873, 10), +(5874, 9), +(5874, 13), +(5874, 14), +(5874, 15), +(5874, 11), +(5874, 12), +(5874, 16), +(5874, 10), +(5875, 9), +(5875, 13), +(5875, 14), +(5875, 15), +(5875, 11), +(5875, 12), +(5875, 16), +(5875, 10), +(5876, 9), +(5876, 13), +(5876, 14), +(5876, 15), +(5876, 11), +(5876, 12), +(5876, 16), +(5876, 10), +(5877, 9), +(5877, 13), +(5877, 14), +(5877, 15), +(5877, 11), +(5877, 12), +(5877, 16), +(5877, 10), +(5878, 9), +(5878, 13), +(5878, 14), +(5878, 15), +(5878, 11), +(5878, 12), +(5878, 16), +(5878, 10), +(5880, 9), +(5880, 13), +(5880, 14), +(5880, 15), +(5880, 11), +(5880, 12), +(5880, 16), +(5880, 10), +(5882, 9), +(5882, 13), +(5882, 14), +(5882, 15), +(5882, 11), +(5882, 12), +(5882, 16), +(5882, 10), +(5883, 9), +(5883, 13), +(5883, 14), +(5883, 15), +(5883, 11), +(5883, 12), +(5883, 16), +(5883, 10), +(5885, 9), +(5885, 13), +(5885, 14), +(5885, 15), +(5885, 11), +(5885, 12), +(5885, 16), +(5885, 10), +(5886, 9), +(5886, 13), +(5886, 14), +(5886, 15), +(5886, 11), +(5886, 12), +(5886, 16), +(5886, 10), +(5887, 9), +(5887, 13), +(5887, 14), +(5887, 15), +(5887, 11), +(5887, 12), +(5887, 16), +(5887, 10), +(5890, 9), +(5890, 13), +(5890, 14), +(5890, 15), +(5890, 11), +(5890, 12), +(5890, 16), +(5890, 10), +(5891, 9), +(5891, 13), +(5891, 14), +(5891, 15), +(5891, 11), +(5891, 12), +(5891, 16), +(5891, 10), +(5892, 9), +(5892, 13), +(5892, 14), +(5892, 15), +(5892, 11), +(5892, 12), +(5892, 16), +(5892, 10), +(5893, 9), +(5893, 13), +(5893, 14), +(5893, 15), +(5893, 11), +(5893, 12), +(5893, 16), +(5893, 10), +(5894, 9), +(5894, 13), +(5894, 14), +(5894, 15), +(5894, 11), +(5894, 12), +(5894, 16), +(5894, 10), +(5896, 9), +(5896, 13), +(5896, 14), +(5896, 15), +(5896, 11), +(5896, 12), +(5896, 16), +(5896, 10), +(5897, 9), +(5897, 13), +(5897, 14), +(5897, 15), +(5897, 11), +(5897, 12), +(5897, 16), +(5897, 10), +(5899, 9), +(5899, 13), +(5899, 14), +(5899, 15), +(5899, 11), +(5899, 12), +(5899, 16), +(5899, 10), +(5900, 9), +(5900, 13), +(5900, 14), +(5900, 15), +(5900, 11), +(5900, 12), +(5900, 16), +(5900, 10), +(5901, 9), +(5901, 13), +(5901, 14), +(5901, 15), +(5901, 11), +(5901, 12), +(5901, 16), +(5901, 10), +(5902, 9), +(5902, 13), +(5902, 14), +(5902, 15), +(5902, 11), +(5902, 12), +(5902, 16), +(5902, 10), +(5903, 9), +(5903, 13), +(5903, 14), +(5903, 15), +(5903, 11), +(5903, 12), +(5903, 16), +(5903, 10), +(5904, 9), +(5904, 13), +(5904, 14), +(5904, 15), +(5904, 11), +(5904, 12), +(5904, 16), +(5904, 10), +(5905, 9), +(5905, 13), +(5905, 14), +(5905, 15), +(5905, 11), +(5905, 12), +(5905, 16), +(5905, 10), +(5906, 9), +(5906, 13), +(5906, 14), +(5906, 15), +(5906, 11), +(5906, 12), +(5906, 16), +(5906, 10), +(5907, 9), +(5907, 13), +(5907, 14), +(5907, 15), +(5907, 11), +(5907, 12), +(5907, 16), +(5907, 10), +(5908, 9), +(5908, 13), +(5908, 14), +(5908, 15), +(5908, 11), +(5908, 12), +(5908, 16), +(5908, 10), +(5910, 9), +(5910, 13), +(5910, 14), +(5910, 15), +(5910, 11), +(5910, 12), +(5910, 16), +(5910, 10), +(5911, 9), +(5911, 13), +(5911, 14), +(5911, 15), +(5911, 11), +(5911, 12), +(5911, 16), +(5911, 10), +(5912, 9), +(5912, 13), +(5912, 14), +(5912, 15), +(5912, 11), +(5912, 12), +(5912, 16), +(5912, 10), +(5913, 9), +(5913, 13), +(5913, 14), +(5913, 15), +(5913, 11), +(5913, 12), +(5913, 16), +(5913, 10), +(5914, 9), +(5914, 13), +(5914, 14), +(5914, 15), +(5914, 11), +(5914, 12), +(5914, 16), +(5914, 10), +(5915, 9), +(5915, 13), +(5915, 14), +(5915, 15), +(5915, 11), +(5915, 12), +(5915, 16), +(5915, 10), +(5916, 9), +(5916, 13), +(5916, 14), +(5916, 15), +(5916, 11), +(5916, 12), +(5916, 16), +(5916, 10), +(5917, 9), +(5917, 13), +(5917, 14), +(5917, 15), +(5917, 11), +(5917, 12), +(5917, 16), +(5917, 10), +(5921, 9), +(5921, 13), +(5921, 14), +(5921, 15), +(5921, 11), +(5921, 12), +(5921, 16), +(5921, 10), +(5922, 9), +(5922, 13), +(5922, 14), +(5922, 15), +(5922, 11), +(5922, 12), +(5922, 16), +(5922, 10), +(5923, 9), +(5923, 13), +(5923, 14), +(5923, 15), +(5923, 11), +(5923, 12), +(5923, 16), +(5923, 10), +(5924, 9), +(5924, 13), +(5924, 14), +(5924, 15), +(5924, 11), +(5924, 12), +(5924, 16), +(5924, 10), +(5925, 9), +(5925, 13), +(5925, 14), +(5925, 15), +(5925, 11), +(5925, 12), +(5925, 16), +(5925, 10), +(5926, 9), +(5926, 13), +(5926, 14), +(5926, 15), +(5926, 11), +(5926, 12), +(5926, 16), +(5926, 10), +(5927, 9), +(5927, 13), +(5927, 14), +(5927, 15), +(5927, 11), +(5927, 12), +(5927, 16), +(5927, 10), +(5928, 9), +(5928, 13), +(5928, 14), +(5928, 15), +(5928, 11), +(5928, 12), +(5928, 16), +(5928, 10), +(5929, 9), +(5929, 13), +(5929, 14), +(5929, 15), +(5929, 11), +(5929, 12), +(5929, 16), +(5929, 10), +(5930, 9), +(5930, 13), +(5930, 14), +(5930, 15), +(5930, 11), +(5930, 12), +(5930, 16), +(5930, 10), +(5931, 9), +(5931, 13), +(5931, 14), +(5931, 15), +(5931, 11), +(5931, 12), +(5931, 16), +(5931, 10), +(5932, 9), +(5932, 13), +(5932, 14), +(5932, 15), +(5932, 11), +(5932, 12), +(5932, 16), +(5932, 10), +(5933, 9), +(5933, 13), +(5933, 14), +(5933, 15), +(5933, 11), +(5933, 12), +(5933, 16), +(5933, 10), +(5934, 9), +(5934, 13), +(5934, 14), +(5934, 15), +(5934, 11), +(5934, 12), +(5934, 16), +(5934, 10), +(5935, 9), +(5935, 13), +(5935, 14), +(5935, 15), +(5935, 11), +(5935, 12), +(5935, 16), +(5935, 10), +(5936, 9), +(5936, 13), +(5936, 14), +(5936, 15), +(5936, 11), +(5936, 12), +(5936, 16), +(5936, 10), +(5937, 9), +(5937, 13), +(5937, 14), +(5937, 15), +(5937, 11), +(5937, 12), +(5937, 16), +(5937, 10), +(5947, 9), +(5947, 13), +(5947, 14), +(5947, 15), +(5947, 11), +(5947, 12), +(5947, 16), +(5947, 10), +(5948, 9), +(5948, 13), +(5948, 14), +(5948, 15), +(5948, 11), +(5948, 12), +(5948, 16), +(5948, 10), +(5949, 9), +(5949, 13), +(5949, 14), +(5949, 15), +(5949, 11), +(5949, 12), +(5949, 16), +(5949, 10), +(5950, 9), +(5950, 13), +(5950, 14), +(5950, 15), +(5950, 11), +(5950, 12), +(5950, 16), +(5950, 17), +(5950, 10), +(5951, 9), +(5951, 13), +(5951, 14), +(5951, 15), +(5951, 11), +(5951, 12), +(5951, 16), +(5951, 17), +(5951, 10), +(5952, 9), +(5952, 13), +(5952, 14), +(5952, 15), +(5952, 11), +(5952, 12), +(5952, 16), +(5952, 17), +(5952, 10), +(5953, 9), +(5953, 13), +(5953, 14), +(5953, 15), +(5953, 11), +(5953, 12), +(5953, 16), +(5953, 17), +(5953, 10), +(5954, 9), +(5954, 13), +(5954, 14), +(5954, 15), +(5954, 11), +(5954, 12), +(5954, 16), +(5954, 17), +(5954, 10), +(5955, 9), +(5955, 13), +(5955, 14), +(5955, 15), +(5955, 11), +(5955, 12), +(5955, 16), +(5955, 17), +(5955, 10), +(5956, 9), +(5956, 13), +(5956, 14), +(5956, 15), +(5956, 11), +(5956, 12), +(5956, 16), +(5956, 17), +(5956, 10), +(5957, 9), +(5957, 13), +(5957, 14), +(5957, 15), +(5957, 11), +(5957, 12), +(5957, 16), +(5957, 17), +(5957, 10), +(5958, 9), +(5958, 13), +(5958, 14), +(5958, 15), +(5958, 11), +(5958, 12), +(5958, 16), +(5958, 17), +(5958, 10), +(5959, 9), +(5959, 13), +(5959, 14), +(5959, 15), +(5959, 11), +(5959, 12), +(5959, 16), +(5959, 17), +(5959, 10), +(5960, 9), +(5960, 13), +(5960, 14), +(5960, 15), +(5960, 11), +(5960, 12), +(5960, 16), +(5960, 17), +(5960, 10), +(5961, 9), +(5961, 13), +(5961, 14), +(5961, 15), +(5961, 11), +(5961, 12), +(5961, 16), +(5961, 17), +(5961, 10), +(5962, 9), +(5962, 13), +(5962, 14), +(5962, 15), +(5962, 11), +(5962, 12), +(5962, 16), +(5962, 17), +(5962, 10), +(5963, 9), +(5963, 13), +(5963, 14), +(5963, 15), +(5963, 11), +(5963, 12), +(5963, 16), +(5963, 17), +(5963, 10), +(5964, 9), +(5964, 13), +(5964, 14), +(5964, 15), +(5964, 11), +(5964, 12), +(5964, 16), +(5964, 17), +(5964, 10), +(5965, 9), +(5965, 13), +(5965, 14), +(5965, 15), +(5965, 11), +(5965, 12), +(5965, 16), +(5965, 17), +(5965, 10), +(5966, 9), +(5966, 13), +(5966, 14), +(5966, 15), +(5966, 11), +(5966, 12), +(5966, 16), +(5966, 17), +(5966, 10), +(5967, 9), +(5967, 13), +(5967, 14), +(5967, 15), +(5967, 11), +(5967, 12), +(5967, 16), +(5967, 17), +(5967, 10), +(5968, 9), +(5968, 13), +(5968, 14), +(5968, 15), +(5968, 11), +(5968, 12), +(5968, 16), +(5968, 17), +(5968, 10), +(5969, 9), +(5969, 13), +(5969, 14), +(5969, 15), +(5969, 11), +(5969, 12), +(5969, 16), +(5969, 17), +(5969, 10), +(5970, 9), +(5970, 13), +(5970, 14), +(5970, 15), +(5970, 11), +(5970, 12), +(5970, 16), +(5970, 17), +(5970, 10), +(5971, 9), +(5971, 13), +(5971, 14), +(5971, 15), +(5971, 11), +(5971, 12), +(5971, 16), +(5971, 17), +(5971, 10), +(5972, 9), +(5972, 13), +(5972, 14), +(5972, 15), +(5972, 11), +(5972, 12), +(5972, 16), +(5972, 17), +(5972, 10), +(5973, 9), +(5973, 13), +(5973, 14), +(5973, 15), +(5973, 11), +(5973, 12), +(5973, 16), +(5973, 17), +(5973, 10), +(5974, 9), +(5974, 13), +(5974, 14), +(5974, 15), +(5974, 11), +(5974, 12), +(5974, 16), +(5974, 17), +(5974, 10), +(5975, 9), +(5975, 13), +(5975, 14), +(5975, 15), +(5975, 11), +(5975, 12), +(5975, 16), +(5975, 17), +(5975, 10), +(5976, 9), +(5976, 13), +(5976, 14), +(5976, 15), +(5976, 11), +(5976, 12), +(5976, 16), +(5976, 17), +(5976, 10), +(5977, 9), +(5977, 13), +(5977, 14), +(5977, 15), +(5977, 11), +(5977, 12), +(5977, 16), +(5977, 17), +(5977, 10), +(5978, 9), +(5978, 13), +(5978, 14), +(5978, 15), +(5978, 11), +(5978, 12), +(5978, 16), +(5978, 17), +(5978, 10), +(5979, 9), +(5979, 13), +(5979, 14), +(5979, 15), +(5979, 11), +(5979, 12), +(5979, 16), +(5979, 17), +(5979, 10), +(5980, 9), +(5980, 13), +(5980, 14), +(5980, 15), +(5980, 11), +(5980, 12), +(5980, 16), +(5980, 17), +(5980, 10), +(5981, 9), +(5981, 13), +(5981, 14), +(5981, 15), +(5981, 11), +(5981, 12), +(5981, 16), +(5981, 17), +(5981, 10), +(5982, 9), +(5982, 13), +(5982, 14), +(5982, 15), +(5982, 11), +(5982, 12), +(5982, 16), +(5982, 17), +(5982, 10), +(5983, 9), +(5983, 13), +(5983, 14), +(5983, 15), +(5983, 11), +(5983, 12), +(5983, 16), +(5983, 17), +(5983, 10), +(5984, 9), +(5984, 13), +(5984, 14), +(5984, 15), +(5984, 11), +(5984, 12), +(5984, 16), +(5984, 17), +(5984, 10), +(5986, 9), +(5986, 13), +(5986, 14), +(5986, 15), +(5986, 11), +(5986, 12), +(5986, 16), +(5986, 17), +(5986, 10), +(5987, 9), +(5987, 13), +(5987, 14), +(5987, 15), +(5987, 11), +(5987, 12), +(5987, 16), +(5987, 17), +(5987, 10), +(5988, 9), +(5988, 13), +(5988, 14), +(5988, 15), +(5988, 11), +(5988, 12), +(5988, 16), +(5988, 17), +(5988, 10), +(5989, 9), +(5989, 13), +(5989, 14), +(5989, 15), +(5989, 11), +(5989, 12), +(5989, 16), +(5989, 17), +(5989, 10), +(5990, 9), +(5990, 13), +(5990, 14), +(5990, 15), +(5990, 11), +(5990, 12), +(5990, 16), +(5990, 17), +(5990, 10), +(5991, 9), +(5991, 13), +(5991, 14), +(5991, 15), +(5991, 11), +(5991, 12), +(5991, 16), +(5991, 17), +(5991, 10), +(5992, 9), +(5992, 13), +(5992, 14), +(5992, 15), +(5992, 11), +(5992, 12), +(5992, 16), +(5992, 17), +(5992, 10), +(5993, 9), +(5993, 13), +(5993, 14), +(5993, 15), +(5993, 11), +(5993, 12), +(5993, 16), +(5993, 17), +(5993, 10), +(5994, 9), +(5994, 13), +(5994, 14), +(5994, 15), +(5994, 11), +(5994, 12), +(5994, 16), +(5994, 17), +(5994, 10), +(5995, 9), +(5995, 13), +(5995, 14), +(5995, 15), +(5995, 11), +(5995, 12), +(5995, 16), +(5995, 17), +(5995, 10), +(5996, 9), +(5996, 13), +(5996, 14), +(5996, 15), +(5996, 11), +(5996, 12), +(5996, 16), +(5996, 17), +(5996, 10), +(5997, 9), +(5997, 13), +(5997, 14), +(5997, 15), +(5997, 11), +(5997, 12), +(5997, 16), +(5997, 17), +(5997, 10), +(5998, 9), +(5998, 13), +(5998, 14), +(5998, 15), +(5998, 11), +(5998, 12), +(5998, 16), +(5998, 17), +(5998, 10), +(5999, 9), +(5999, 13), +(5999, 14), +(5999, 15), +(5999, 11), +(5999, 12), +(5999, 16), +(5999, 17), +(5999, 10), +(6000, 9), +(6000, 13), +(6000, 14), +(6000, 15), +(6000, 11), +(6000, 12), +(6000, 16), +(6000, 17), +(6000, 10), +(6001, 9), +(6001, 13), +(6001, 14), +(6001, 15), +(6001, 11), +(6001, 12), +(6001, 16), +(6001, 17), +(6001, 10), +(6002, 9), +(6002, 13), +(6002, 14), +(6002, 15), +(6002, 11), +(6002, 12), +(6002, 16), +(6002, 17), +(6002, 10), +(6003, 9), +(6003, 13), +(6003, 14), +(6003, 15), +(6003, 11), +(6003, 12), +(6003, 16), +(6003, 17), +(6003, 10), +(6004, 9), +(6004, 13), +(6004, 14), +(6004, 15), +(6004, 11), +(6004, 12), +(6004, 16), +(6004, 17), +(6004, 10), +(6006, 9), +(6006, 13), +(6006, 14), +(6006, 15), +(6006, 11), +(6006, 12), +(6006, 16), +(6006, 17), +(6006, 10), +(6007, 9), +(6007, 13), +(6007, 14), +(6007, 15), +(6007, 11), +(6007, 12), +(6007, 16), +(6007, 17), +(6007, 10), +(6008, 9), +(6008, 13), +(6008, 14), +(6008, 15), +(6008, 11), +(6008, 12), +(6008, 16), +(6008, 17), +(6008, 10), +(6009, 9), +(6009, 13), +(6009, 14), +(6009, 15), +(6009, 11), +(6009, 12), +(6009, 16), +(6009, 17), +(6009, 10), +(6010, 9), +(6010, 13), +(6010, 14), +(6010, 15), +(6010, 11), +(6010, 12), +(6010, 16), +(6010, 17), +(6010, 10), +(6011, 9), +(6011, 13), +(6011, 14), +(6011, 15), +(6011, 11), +(6011, 12), +(6011, 16), +(6011, 17), +(6011, 10), +(6012, 9), +(6012, 13), +(6012, 14), +(6012, 15), +(6012, 11), +(6012, 12), +(6012, 16), +(6012, 17), +(6012, 10), +(6013, 9), +(6013, 13), +(6013, 14), +(6013, 15), +(6013, 11), +(6013, 12), +(6013, 16), +(6013, 17), +(6013, 10), +(6014, 9), +(6014, 13), +(6014, 14), +(6014, 15), +(6014, 11), +(6014, 12), +(6014, 16), +(6014, 17), +(6014, 10), +(6016, 9), +(6016, 13), +(6016, 14), +(6016, 15), +(6016, 11), +(6016, 12), +(6016, 16), +(6016, 17), +(6016, 10), +(6017, 9), +(6017, 13), +(6017, 14), +(6017, 15), +(6017, 11), +(6017, 12), +(6017, 16), +(6017, 17), +(6017, 10), +(6019, 9), +(6019, 13), +(6019, 14), +(6019, 15), +(6019, 11), +(6019, 12), +(6019, 16), +(6019, 17), +(6019, 10), +(6020, 9), +(6020, 13), +(6020, 14), +(6020, 15), +(6020, 11), +(6020, 12), +(6020, 16), +(6020, 17), +(6020, 10), +(6021, 9), +(6021, 13), +(6021, 14), +(6021, 15), +(6021, 11), +(6021, 12), +(6021, 16), +(6021, 17), +(6021, 10), +(6023, 9), +(6023, 13), +(6023, 14), +(6023, 15), +(6023, 11), +(6023, 12), +(6023, 16), +(6023, 17), +(6023, 10), +(6024, 9), +(6024, 13), +(6024, 14), +(6024, 15), +(6024, 11), +(6024, 12), +(6024, 16), +(6024, 17), +(6024, 10), +(6025, 9), +(6025, 13), +(6025, 14), +(6025, 15), +(6025, 11), +(6025, 12), +(6025, 16), +(6025, 17), +(6025, 10), +(6027, 9), +(6027, 13), +(6027, 14), +(6027, 15), +(6027, 11), +(6027, 12), +(6027, 16), +(6027, 17), +(6027, 10), +(6029, 9), +(6029, 13), +(6029, 14), +(6029, 15), +(6029, 11), +(6029, 12), +(6029, 16), +(6029, 17), +(6029, 10), +(6031, 9), +(6031, 13), +(6031, 14), +(6031, 15), +(6031, 11), +(6031, 12), +(6031, 16), +(6031, 17), +(6031, 10), +(6033, 9), +(6033, 13), +(6033, 14), +(6033, 15), +(6033, 11), +(6033, 12), +(6033, 16), +(6033, 17), +(6033, 10), +(6034, 9), +(6034, 13), +(6034, 14), +(6034, 15), +(6034, 11), +(6034, 12), +(6034, 16), +(6034, 17), +(6034, 10), +(6035, 9), +(6035, 13), +(6035, 14), +(6035, 15), +(6035, 11), +(6035, 12), +(6035, 16), +(6035, 17), +(6035, 10), +(6036, 9), +(6036, 13), +(6036, 14), +(6036, 15), +(6036, 11), +(6036, 12), +(6036, 16), +(6036, 17), +(6036, 10), +(6038, 9), +(6038, 13), +(6038, 14), +(6038, 15), +(6038, 11), +(6038, 12), +(6038, 16), +(6038, 17), +(6038, 10), +(6039, 9), +(6039, 13), +(6039, 14), +(6039, 15), +(6039, 11), +(6039, 12), +(6039, 16), +(6039, 17), +(6039, 10), +(6040, 9), +(6040, 13), +(6040, 14), +(6040, 15), +(6040, 11), +(6040, 12), +(6040, 16), +(6040, 17), +(6040, 10), +(6041, 9), +(6041, 13), +(6041, 14), +(6041, 15), +(6041, 11), +(6041, 12), +(6041, 16), +(6041, 17), +(6041, 10), +(6042, 9), +(6042, 13), +(6042, 14), +(6042, 15), +(6042, 11), +(6042, 12), +(6042, 16), +(6042, 17), +(6042, 10), +(6044, 9), +(6044, 13), +(6044, 14), +(6044, 15), +(6044, 11), +(6044, 12), +(6044, 16), +(6044, 17), +(6044, 10), +(6045, 9), +(6045, 13), +(6045, 14), +(6045, 15), +(6045, 11), +(6045, 12), +(6045, 16), +(6045, 17), +(6045, 10), +(6046, 9), +(6046, 13), +(6046, 14), +(6046, 15), +(6046, 11), +(6046, 12), +(6046, 16), +(6046, 17), +(6046, 10), +(6047, 9), +(6047, 13), +(6047, 14), +(6047, 15), +(6047, 11), +(6047, 12), +(6047, 16), +(6047, 17), +(6047, 10), +(6048, 9), +(6048, 13), +(6048, 14), +(6048, 15), +(6048, 11), +(6048, 12), +(6048, 16), +(6048, 17), +(6048, 10), +(6049, 9), +(6049, 13), +(6049, 14), +(6049, 15), +(6049, 11), +(6049, 12), +(6049, 16), +(6049, 17), +(6049, 10), +(6050, 9), +(6050, 13), +(6050, 14), +(6050, 15), +(6050, 11), +(6050, 12), +(6050, 16), +(6050, 17), +(6050, 10), +(6052, 9), +(6052, 13), +(6052, 14), +(6052, 15), +(6052, 11), +(6052, 12), +(6052, 16), +(6052, 17), +(6052, 10), +(6053, 9), +(6053, 13), +(6053, 14), +(6053, 15), +(6053, 11), +(6053, 12), +(6053, 16), +(6053, 17), +(6053, 10), +(6054, 9), +(6054, 13), +(6054, 14), +(6054, 15), +(6054, 11), +(6054, 12), +(6054, 16), +(6054, 17), +(6054, 10), +(6056, 9), +(6056, 13), +(6056, 14), +(6056, 15), +(6056, 11), +(6056, 12), +(6056, 16), +(6056, 17), +(6056, 10), +(6057, 9), +(6057, 13), +(6057, 14), +(6057, 15), +(6057, 11), +(6057, 12), +(6057, 16), +(6057, 17), +(6057, 10), +(6058, 9), +(6058, 13), +(6058, 14), +(6058, 15), +(6058, 11), +(6058, 12), +(6058, 16), +(6058, 17), +(6058, 10), +(6059, 9), +(6059, 13), +(6059, 14), +(6059, 15), +(6059, 11), +(6059, 12), +(6059, 16), +(6059, 17), +(6059, 10), +(6060, 9), +(6060, 13), +(6060, 14), +(6060, 15), +(6060, 11), +(6060, 12), +(6060, 16), +(6060, 17), +(6060, 10), +(6061, 9), +(6061, 13), +(6061, 14), +(6061, 15), +(6061, 11), +(6061, 12), +(6061, 16), +(6061, 17), +(6061, 10), +(6062, 9), +(6062, 13), +(6062, 14), +(6062, 15), +(6062, 11), +(6062, 12), +(6062, 16), +(6062, 17), +(6062, 10), +(6063, 9), +(6063, 13), +(6063, 14), +(6063, 15), +(6063, 11), +(6063, 12), +(6063, 16), +(6063, 17), +(6063, 10), +(6064, 9), +(6064, 13), +(6064, 14), +(6064, 15), +(6064, 11), +(6064, 12), +(6064, 16), +(6064, 17), +(6064, 10), +(6065, 9), +(6065, 13), +(6065, 14), +(6065, 15), +(6065, 11), +(6065, 12), +(6065, 16), +(6065, 17), +(6065, 10), +(6067, 9), +(6067, 13), +(6067, 14), +(6067, 15), +(6067, 11), +(6067, 12), +(6067, 16), +(6067, 17), +(6067, 10), +(6069, 9), +(6069, 13), +(6069, 14), +(6069, 15), +(6069, 11), +(6069, 12), +(6069, 16), +(6069, 17), +(6069, 10), +(6071, 9), +(6071, 13), +(6071, 14), +(6071, 15), +(6071, 11), +(6071, 12), +(6071, 16), +(6071, 17), +(6071, 10), +(6072, 9), +(6072, 13), +(6072, 14), +(6072, 15), +(6072, 11), +(6072, 12), +(6072, 16), +(6072, 17), +(6072, 10), +(6073, 9), +(6073, 13), +(6073, 14), +(6073, 15), +(6073, 11), +(6073, 12), +(6073, 16), +(6073, 17), +(6073, 10), +(6074, 9), +(6074, 13), +(6074, 14), +(6074, 15), +(6074, 11), +(6074, 12), +(6074, 16), +(6074, 17), +(6074, 10), +(6076, 9), +(6076, 13), +(6076, 14), +(6076, 15), +(6076, 11), +(6076, 12), +(6076, 16), +(6076, 17), +(6076, 10), +(6078, 9), +(6078, 13), +(6078, 14), +(6078, 15), +(6078, 11), +(6078, 12), +(6078, 16), +(6078, 17), +(6078, 10), +(6081, 9), +(6081, 13), +(6081, 14), +(6081, 15), +(6081, 11), +(6081, 12), +(6081, 16), +(6081, 17), +(6081, 10), +(6083, 9), +(6083, 13), +(6083, 14), +(6083, 15), +(6083, 11), +(6083, 12), +(6083, 16), +(6083, 17), +(6083, 10), +(6085, 9), +(6085, 13), +(6085, 14), +(6085, 15), +(6085, 11), +(6085, 12), +(6085, 16), +(6085, 17), +(6085, 10), +(6087, 9), +(6087, 13), +(6087, 14), +(6087, 15), +(6087, 11), +(6087, 12), +(6087, 16), +(6087, 17), +(6087, 10), +(6091, 9), +(6091, 13), +(6091, 14), +(6091, 15), +(6091, 11), +(6091, 12), +(6091, 16), +(6091, 17), +(6091, 10), +(6094, 9), +(6094, 13), +(6094, 14), +(6094, 15), +(6094, 11), +(6094, 12), +(6094, 16), +(6094, 17), +(6094, 10), +(6097, 9), +(6097, 13), +(6097, 14), +(6097, 15), +(6097, 11), +(6097, 12), +(6097, 16), +(6097, 17), +(6097, 10), +(6098, 9), +(6098, 13), +(6098, 14), +(6098, 15), +(6098, 11), +(6098, 12), +(6098, 16), +(6098, 17), +(6098, 10), +(6108, 9), +(6108, 13), +(6108, 14), +(6108, 15), +(6108, 11), +(6108, 12), +(6108, 16), +(6108, 17), +(6108, 10), +(6110, 9), +(6110, 13), +(6110, 14), +(6110, 15), +(6110, 11), +(6110, 12), +(6110, 16), +(6110, 17), +(6110, 10), +(6111, 9), +(6111, 13), +(6111, 14), +(6111, 15), +(6111, 11), +(6111, 12), +(6111, 16), +(6111, 17), +(6111, 10), +(6112, 9), +(6112, 13), +(6112, 14), +(6112, 15), +(6112, 11), +(6112, 12), +(6112, 16), +(6112, 17), +(6112, 10), +(6114, 9), +(6114, 13), +(6114, 14), +(6114, 15), +(6114, 11), +(6114, 12), +(6114, 16), +(6114, 17), +(6114, 10), +(6118, 9), +(6118, 13), +(6118, 14), +(6118, 15), +(6118, 11), +(6118, 12), +(6118, 16), +(6118, 17), +(6118, 10), +(6119, 9), +(6119, 13), +(6119, 14), +(6119, 15), +(6119, 11), +(6119, 12), +(6119, 16), +(6119, 17), +(6119, 10), +(6124, 9), +(6124, 13), +(6124, 14), +(6124, 15), +(6124, 11), +(6124, 12), +(6124, 16), +(6124, 17), +(6124, 10), +(6125, 13), +(6126, 13), +(6126, 14), +(6126, 15), +(6127, 14), +(6128, 15), +(6129, 11), +(6130, 12), +(6131, 16), +(6826, 18), +(6829, 18), +(6831, 18), +(6841, 18), +(6842, 18), +(6843, 18), +(6844, 18), +(6846, 18), +(6849, 18), +(6853, 18), +(6854, 18), +(6858, 18), +(6859, 18), +(6860, 18), +(6862, 18), +(6863, 18), +(6866, 18), +(6868, 18), +(6871, 18), +(6875, 18), +(6877, 18), +(6879, 18), +(6880, 18), +(6884, 18), +(6886, 18), +(6889, 18), +(6890, 18), +(6891, 18), +(6895, 18), +(6897, 18), +(6898, 18), +(7462, 19), +(7462, 20), +(7465, 19), +(7465, 20), +(7467, 19), +(7467, 20), +(7471, 19), +(7471, 20), +(7473, 19), +(7473, 20), +(7473, 21), +(7474, 19), +(7474, 20), +(7476, 19), +(7476, 20), +(7476, 21), +(7477, 19), +(7477, 20), +(7479, 19), +(7479, 20), +(7479, 21), +(7487, 19), +(7487, 20), +(7487, 21), +(7491, 19), +(7491, 20), +(7491, 21), +(7493, 19), +(7493, 20), +(7493, 21), +(7506, 19), +(7506, 20), +(7506, 21), +(7507, 19), +(7507, 20), +(7507, 21), +(7509, 19), +(7509, 20), +(7509, 21), +(7512, 19), +(7512, 20), +(7512, 21), +(7515, 19), +(7515, 20), +(7515, 21), +(7518, 19), +(7518, 20), +(7518, 21), +(7521, 19), +(7521, 20), +(7521, 21), +(7525, 19), +(7525, 20), +(7525, 21), +(7526, 19), +(7526, 20), +(7526, 21), +(7527, 19), +(7527, 20), +(7527, 21), +(7534, 19), +(7534, 20), +(7534, 21), +(7536, 19), +(7536, 20), +(7536, 21), +(7545, 19), +(7545, 20), +(7545, 21), +(7546, 19), +(7546, 20), +(7546, 21), +(7547, 19), +(7547, 20), +(7547, 21), +(7549, 19), +(7549, 20), +(7549, 21), +(7551, 19), +(7551, 20), +(7551, 21), +(7552, 19), +(7552, 20), +(7552, 21), +(7554, 19), +(7554, 20), +(7554, 21), +(7555, 19), +(7555, 20), +(7555, 21), +(7556, 19), +(7556, 20), +(7556, 21), +(7557, 19), +(7557, 20), +(7557, 21), +(7558, 19), +(7558, 20), +(7558, 21), +(7559, 19), +(7559, 20), +(7559, 21), +(7561, 19), +(7561, 20), +(7561, 21), +(7562, 19), +(7562, 20), +(7562, 21), +(7563, 19), +(7563, 20), +(7563, 21), +(7565, 19), +(7565, 20), +(7565, 21), +(7567, 19), +(7567, 20), +(7567, 21), +(7573, 19), +(7573, 20), +(7573, 21), +(7574, 19), +(7574, 20), +(7574, 21), +(7575, 19), +(7575, 20), +(7575, 21), +(7576, 19), +(7576, 20), +(7576, 21), +(7578, 19), +(7578, 20), +(7578, 21), +(7579, 19), +(7579, 20), +(7579, 21), +(7581, 19), +(7581, 20), +(7581, 21), +(7582, 19), +(7582, 20), +(7582, 21), +(7583, 19), +(7583, 20), +(7583, 21), +(7584, 19), +(7584, 20), +(7584, 21), +(7586, 19), +(7586, 20), +(7586, 21), +(7587, 19), +(7587, 20), +(7587, 21), +(7601, 19), +(7601, 20), +(7601, 21), +(7609, 19), +(7609, 20), +(7609, 21), +(7617, 19), +(7617, 20), +(7617, 21), +(7623, 19), +(7623, 20), +(7623, 21), +(7625, 19), +(7625, 20), +(7625, 21), +(7628, 19), +(7628, 20), +(7628, 21), +(7630, 19), +(7630, 20), +(7630, 21), +(7632, 19), +(7632, 20), +(7632, 21), +(7634, 19), +(7634, 20), +(7634, 21), +(7643, 19), +(7643, 20), +(7643, 21), +(7647, 19), +(7647, 20), +(7647, 21), +(7654, 19), +(7654, 20), +(7654, 21), +(7655, 19), +(7655, 20), +(7655, 21), +(7656, 19), +(7656, 20), +(7656, 21), +(7657, 19), +(7657, 20), +(7657, 21), +(7658, 19), +(7658, 20), +(7658, 21), +(7660, 19), +(7660, 20), +(7660, 21), +(7661, 19), +(7661, 20), +(7661, 21), +(7663, 19), +(7663, 20), +(7663, 21), +(7664, 19), +(7664, 20), +(7664, 21), +(7665, 19), +(7665, 20), +(7665, 21), +(7666, 19), +(7666, 20), +(7666, 21), +(7668, 19), +(7668, 20), +(7668, 21), +(7670, 19), +(7670, 20), +(7670, 21), +(7672, 19), +(7672, 20), +(7672, 21), +(7673, 19), +(7673, 20), +(7673, 21), +(7674, 19), +(7674, 20), +(7674, 21), +(7676, 19), +(7676, 20), +(7676, 21), +(7678, 19), +(7678, 20), +(7678, 21), +(7679, 19), +(7679, 20), +(7679, 21), +(7680, 19), +(7680, 20), +(7680, 21), +(7682, 19), +(7682, 20), +(7682, 21), +(7683, 19), +(7683, 20), +(7683, 21), +(7684, 19), +(7684, 20), +(7684, 21), +(7685, 19), +(7685, 20), +(7685, 21), +(7688, 19), +(7688, 20), +(7688, 21), +(7690, 19), +(7690, 20), +(7690, 21), +(7691, 19), +(7691, 20), +(7691, 21), +(7695, 19), +(7695, 20), +(7695, 21), +(7697, 19), +(7697, 20), +(7697, 21), +(7699, 19), +(7699, 20), +(7699, 21), +(7701, 19), +(7701, 20), +(7701, 21), +(7704, 19), +(7704, 20), +(7704, 21), +(7708, 19), +(7708, 20), +(7708, 21), +(7710, 19), +(7710, 20), +(7710, 21), +(7712, 19), +(7712, 20), +(7712, 21), +(7713, 19), +(7713, 20), +(7713, 21), +(7715, 19), +(7715, 20), +(7715, 21), +(7716, 19), +(7716, 20), +(7716, 21), +(7718, 19), +(7718, 20), +(7718, 21), +(7720, 19), +(7720, 20), +(7720, 21), +(7721, 19), +(7721, 20), +(7721, 21), +(7722, 19), +(7722, 20), +(7722, 21), +(7725, 19), +(7725, 20), +(7725, 21), +(7726, 19), +(7726, 20), +(7726, 21), +(7727, 19), +(7727, 20), +(7727, 21), +(7728, 19), +(7728, 20), +(7728, 21), +(7730, 19), +(7730, 20), +(7730, 21), +(7731, 19), +(7731, 20), +(7731, 21), +(7732, 19), +(7732, 20), +(7732, 21), +(7734, 19), +(7734, 20), +(7734, 21), +(7736, 19), +(7736, 20), +(7736, 21), +(7737, 19), +(7737, 20), +(7737, 21), +(7738, 20), +(8942, 22), +(8944, 22), +(8946, 22), +(8954, 22), +(8961, 22), +(8961, 23), +(8961, 24), +(8961, 25), +(8961, 26), +(8961, 27), +(8963, 22), +(8963, 23), +(8963, 24), +(8963, 25), +(8963, 26), +(8963, 27), +(8965, 22), +(8965, 23), +(8965, 24), +(8965, 25), +(8965, 26), +(8965, 27), +(8966, 22), +(8966, 23), +(8966, 24), +(8966, 25), +(8966, 26), +(8966, 27), +(8972, 22), +(8972, 23), +(8972, 24), +(8972, 25), +(8972, 26), +(8972, 27), +(8973, 22), +(8973, 23), +(8973, 24), +(8973, 25), +(8973, 26), +(8973, 27), +(8974, 22), +(8974, 23), +(8974, 24), +(8974, 25), +(8974, 26), +(8974, 27), +(8976, 22), +(8976, 23), +(8976, 24), +(8976, 25), +(8976, 26), +(8976, 27), +(8977, 22), +(8977, 23), +(8977, 24), +(8977, 25), +(8977, 26), +(8977, 27), +(8978, 22), +(8978, 23), +(8978, 24), +(8978, 25), +(8978, 26), +(8978, 27), +(8979, 22), +(8979, 23), +(8979, 24), +(8979, 25), +(8979, 26), +(8979, 27), +(8980, 22), +(8980, 23), +(8980, 24), +(8980, 25), +(8980, 26), +(8980, 27), +(8981, 22), +(8981, 23), +(8981, 24), +(8981, 25), +(8981, 26), +(8981, 27), +(8982, 22), +(8982, 23), +(8982, 24), +(8982, 25), +(8982, 26), +(8982, 27), +(8983, 22), +(8983, 23), +(8983, 24), +(8983, 25), +(8983, 26), +(8983, 27), +(8984, 22), +(8984, 23), +(8984, 24), +(8984, 25), +(8984, 26), +(8984, 27), +(8985, 22), +(8985, 23), +(8985, 24), +(8985, 25), +(8985, 26), +(8985, 27), +(8986, 22), +(8986, 23), +(8986, 24), +(8986, 25), +(8986, 26), +(8986, 27), +(8987, 22), +(8987, 23), +(8987, 24), +(8987, 25), +(8987, 26), +(8987, 27), +(8988, 22), +(8988, 23), +(8988, 24), +(8988, 25), +(8988, 26), +(8988, 27), +(8989, 22), +(8989, 23), +(8989, 24), +(8989, 25), +(8989, 26), +(8989, 27), +(8990, 22), +(8990, 23), +(8990, 24), +(8990, 25), +(8990, 26), +(8990, 27), +(8991, 22), +(8991, 23), +(8991, 24), +(8991, 25), +(8991, 26), +(8991, 27), +(8992, 22), +(8992, 23), +(8992, 24), +(8992, 25), +(8992, 26), +(8992, 27), +(8993, 22), +(8993, 23), +(8993, 24), +(8993, 25), +(8993, 26), +(8993, 27), +(8994, 22), +(8994, 23), +(8994, 24), +(8994, 25), +(8994, 26), +(8994, 27), +(8995, 22), +(8995, 23), +(8995, 24), +(8995, 25), +(8995, 26), +(8995, 27), +(8996, 22), +(8996, 23), +(8996, 24), +(8996, 25), +(8996, 26), +(8996, 27), +(8997, 22), +(8997, 23), +(8997, 24), +(8997, 25), +(8997, 26), +(8997, 27), +(8998, 22), +(8998, 23), +(8998, 24), +(8998, 25), +(8998, 26), +(8998, 27), +(8999, 22), +(8999, 23), +(8999, 24), +(8999, 25), +(8999, 26), +(8999, 27), +(9000, 22), +(9000, 23), +(9000, 24), +(9000, 25), +(9000, 26), +(9000, 27), +(9001, 22), +(9001, 23), +(9001, 24), +(9001, 25), +(9001, 26), +(9001, 27), +(9002, 22), +(9002, 23), +(9002, 24), +(9002, 25), +(9002, 26), +(9002, 27), +(9003, 22), +(9003, 23), +(9003, 24), +(9003, 25), +(9003, 26), +(9003, 27), +(9004, 22), +(9004, 23), +(9004, 24), +(9004, 25), +(9004, 26), +(9004, 27), +(9005, 22), +(9005, 23), +(9005, 24), +(9005, 25), +(9005, 26), +(9005, 27), +(9006, 22), +(9006, 23), +(9006, 24), +(9006, 25), +(9006, 26), +(9006, 27), +(9007, 22), +(9007, 23), +(9007, 24), +(9007, 25), +(9007, 26), +(9007, 27), +(9008, 22), +(9008, 23), +(9008, 24), +(9008, 25), +(9008, 26), +(9008, 27), +(9009, 22), +(9009, 23), +(9009, 24), +(9009, 25), +(9009, 26), +(9009, 27), +(9010, 22), +(9010, 23), +(9010, 24), +(9010, 25), +(9010, 26), +(9010, 27), +(9011, 22), +(9011, 23), +(9011, 24), +(9011, 25), +(9011, 26), +(9011, 27), +(9012, 22), +(9012, 23), +(9012, 24), +(9012, 25), +(9012, 26), +(9012, 27), +(9013, 22), +(9013, 23), +(9013, 24), +(9013, 25), +(9013, 26), +(9013, 27), +(9014, 22), +(9014, 23), +(9014, 24), +(9014, 25), +(9014, 26), +(9014, 27), +(9015, 22), +(9015, 23), +(9015, 24), +(9015, 25), +(9015, 26), +(9015, 27), +(9016, 22), +(9016, 23), +(9016, 24), +(9016, 25), +(9016, 26), +(9016, 27), +(9017, 22), +(9017, 23), +(9017, 24), +(9017, 25), +(9017, 26), +(9017, 27), +(9018, 22), +(9018, 23), +(9018, 24), +(9018, 25), +(9018, 26), +(9018, 27), +(9019, 22), +(9019, 23), +(9019, 24), +(9019, 25), +(9019, 26), +(9019, 27), +(9020, 22), +(9020, 23), +(9020, 24), +(9020, 25), +(9020, 26), +(9020, 27), +(9021, 22), +(9021, 23), +(9021, 24), +(9021, 25), +(9021, 26), +(9021, 27), +(9022, 22), +(9022, 23), +(9022, 24), +(9022, 25), +(9022, 26), +(9022, 27), +(9023, 22), +(9023, 23), +(9023, 24), +(9023, 25), +(9023, 26), +(9023, 27), +(9024, 22), +(9024, 23), +(9024, 24), +(9024, 25), +(9024, 26), +(9024, 27), +(9025, 22), +(9025, 23), +(9025, 24), +(9025, 25), +(9025, 26), +(9025, 27), +(9026, 22), +(9026, 23), +(9026, 24), +(9026, 25), +(9026, 26), +(9026, 27), +(9027, 22), +(9027, 23), +(9027, 24), +(9027, 25), +(9027, 26), +(9027, 27), +(9030, 22), +(9030, 23), +(9030, 24), +(9030, 25), +(9030, 26), +(9030, 27), +(9031, 22), +(9031, 23), +(9031, 24), +(9031, 25), +(9031, 26), +(9031, 27), +(9032, 22), +(9032, 23), +(9032, 24), +(9032, 25), +(9032, 26), +(9032, 27), +(9033, 22), +(9033, 23), +(9033, 24), +(9033, 25), +(9033, 26), +(9033, 27), +(9034, 22), +(9034, 23), +(9034, 24), +(9034, 25), +(9034, 26), +(9034, 27), +(9035, 22), +(9035, 23), +(9035, 24), +(9035, 25), +(9035, 26), +(9035, 27), +(9036, 23), +(9038, 23), +(9046, 23), +(9047, 23), +(9048, 23), +(9049, 24), +(9049, 25), +(9049, 26), +(9049, 27), +(9054, 23), +(9055, 23), +(9056, 23), +(9056, 24), +(9056, 25), +(9056, 26), +(9056, 27), +(9058, 23), +(9058, 24), +(9058, 25), +(9058, 26), +(9058, 27), +(9059, 23), +(9059, 24), +(9059, 25), +(9059, 26), +(9059, 27), +(9060, 24), +(9062, 25), +(9062, 27), +(9085, 24), +(9087, 24), +(9089, 25), +(9089, 27), +(9094, 25), +(9094, 27), +(9097, 24), +(9098, 24), +(9100, 25); +INSERT INTO `configuration_branch` (`configurationId`, `branchId`) VALUES +(9100, 27), +(9101, 24), +(9103, 25), +(9103, 27), +(9104, 24), +(9106, 24), +(9107, 25), +(9107, 27), +(9108, 25), +(9108, 27), +(9109, 24), +(9111, 25), +(9111, 27), +(9112, 24), +(9113, 24), +(9115, 25), +(9115, 27), +(9116, 24), +(9117, 24), +(9119, 25), +(9119, 27), +(9122, 24), +(9122, 25), +(9122, 26), +(9122, 27), +(9124, 24), +(9124, 25), +(9124, 26), +(9124, 27), +(9126, 25), +(9130, 25), +(9131, 25), +(9133, 25), +(9135, 25), +(9135, 27), +(9137, 25), +(9137, 27), +(9138, 25), +(9138, 27), +(9139, 25), +(9139, 27), +(9140, 25), +(9140, 27), +(9142, 25), +(9142, 27), +(9143, 25), +(9143, 27), +(9144, 25), +(9144, 27), +(9146, 25), +(9146, 27), +(9148, 25), +(9148, 27), +(9149, 25), +(9149, 27), +(9150, 25), +(9150, 27), +(9151, 25), +(9151, 27), +(9156, 25), +(9156, 27), +(9161, 25), +(9161, 27), +(9163, 25), +(9163, 27), +(9165, 25), +(9165, 27), +(9167, 25), +(9167, 27), +(9172, 25), +(9172, 26), +(9172, 27), +(9175, 25), +(9175, 26), +(9175, 27), +(9176, 25), +(9176, 26), +(9176, 27), +(9178, 25), +(9178, 26), +(9178, 27), +(9180, 25), +(9180, 26), +(9180, 27), +(9182, 25), +(9182, 26), +(9182, 27), +(9184, 25), +(9184, 26), +(9184, 27), +(9185, 25), +(9185, 26), +(9185, 27), +(9186, 26), +(9187, 26), +(9188, 26), +(9189, 26), +(9190, 26), +(9191, 26), +(9192, 26), +(9193, 26), +(9194, 26), +(9195, 26), +(9196, 26), +(9197, 27), +(9199, 27), +(9200, 27), +(9203, 27), +(9204, 27), +(9206, 27), +(9207, 27), +(9208, 27), +(9210, 27), +(9211, 27), +(9213, 27), +(9214, 27), +(9216, 27), +(9218, 27), +(9219, 27), +(9220, 27), +(9221, 27), +(9222, 27), +(9229, 27), +(9231, 27), +(9239, 27), +(9241, 27), +(9242, 27), +(9243, 27), +(9244, 27), +(9246, 27), +(9253, 27), +(9254, 27), +(9256, 27), +(9261, 27), +(9265, 27), +(9267, 27), +(9270, 27), +(9271, 27), +(9273, 27), +(9275, 27), +(9277, 27), +(9278, 27), +(9280, 27), +(9281, 27), +(9282, 27), +(9283, 27), +(9285, 27), +(9292, 27), +(9293, 27), +(9294, 27), +(9295, 27), +(9297, 27), +(9300, 27), +(9301, 27), +(9302, 27), +(9303, 27), +(9304, 27), +(9306, 27), +(9308, 27), +(9310, 27), +(9311, 27), +(9313, 27), +(9314, 27), +(9315, 27), +(9317, 27), +(9318, 27), +(9319, 27), +(9321, 27), +(9323, 27), +(9325, 27), +(9326, 27), +(9327, 27), +(9328, 27), +(9329, 27), +(9330, 27), +(9331, 27), +(9332, 27), +(9333, 27), +(9335, 27), +(9336, 27), +(9337, 27), +(9338, 27), +(9339, 27), +(9340, 27), +(9341, 27), +(10584, 28), +(10586, 28), +(10593, 28), +(10594, 28), +(10698, 28), +(10700, 28), +(10702, 28), +(10830, 28), +(10868, 28), +(10869, 28), +(10872, 28), +(10873, 28), +(10875, 28), +(10876, 28), +(10878, 28), +(10879, 28), +(10880, 28), +(10881, 28), +(10882, 28), +(10883, 28), +(10884, 28), +(10885, 28), +(10886, 28), +(10887, 28), +(10889, 28), +(10891, 28), +(10892, 28), +(10893, 28), +(10894, 28), +(10896, 28), +(10898, 28), +(10899, 28), +(10900, 28), +(10902, 28), +(10904, 28), +(10908, 28), +(10909, 28), +(10910, 28), +(10911, 28), +(10912, 28), +(10915, 28), +(10916, 28), +(10917, 28), +(10918, 28), +(10919, 28), +(10920, 28), +(10921, 28), +(10925, 28), +(10927, 28), +(10928, 28), +(10929, 28), +(10930, 28), +(10935, 28), +(10937, 28), +(10938, 28), +(10939, 28), +(10940, 28), +(10941, 28), +(10942, 28), +(10943, 28), +(10944, 28), +(10945, 28), +(10946, 28), +(10947, 28), +(10948, 28), +(10949, 28), +(10950, 28), +(10951, 28), +(10953, 28), +(10954, 28), +(10955, 28), +(10956, 28), +(10958, 28), +(10959, 28), +(10960, 28), +(10961, 28), +(10962, 28), +(10963, 28), +(10964, 28), +(10965, 28), +(10966, 28), +(10967, 28), +(10970, 28), +(10971, 28), +(10972, 28), +(10973, 28), +(10975, 28), +(10976, 28), +(10978, 28), +(10980, 28), +(10981, 28), +(10983, 28), +(10984, 28), +(10985, 28), +(10986, 28), +(10987, 28), +(10988, 28), +(10990, 28), +(10991, 28), +(10992, 28), +(10993, 28), +(10994, 28), +(10995, 28), +(10996, 28), +(10997, 28), +(10998, 28), +(11002, 28), +(11003, 28), +(11004, 28), +(11005, 28), +(11007, 28), +(11447, 29), +(11447, 30), +(11447, 31), +(11447, 32), +(11447, 33), +(11447, 34), +(11447, 35), +(11447, 36), +(11447, 37), +(11447, 38), +(11447, 39), +(11447, 40), +(11447, 41), +(11447, 42), +(11447, 43), +(11447, 44), +(11447, 45), +(11447, 46), +(11447, 47), +(11449, 29), +(11449, 30), +(11449, 31), +(11449, 32), +(11449, 33), +(11449, 34), +(11449, 35), +(11449, 36), +(11449, 37), +(11449, 38), +(11449, 39), +(11449, 40), +(11449, 41), +(11449, 42), +(11449, 43), +(11449, 44), +(11449, 45), +(11449, 46), +(11449, 47), +(11454, 32), +(11454, 33), +(11454, 34), +(11454, 35), +(11454, 36), +(11454, 37), +(11454, 38), +(11454, 39), +(11454, 40), +(11454, 41), +(11454, 42), +(11454, 43), +(11454, 44), +(11454, 45), +(11454, 46), +(11454, 47), +(11464, 29), +(11464, 30), +(11464, 31), +(11464, 32), +(11464, 33), +(11464, 34), +(11464, 35), +(11464, 36), +(11464, 37), +(11464, 38), +(11464, 39), +(11464, 40), +(11464, 48), +(11464, 41), +(11464, 42), +(11464, 43), +(11464, 44), +(11464, 45), +(11464, 46), +(11464, 47), +(11468, 29), +(11468, 30), +(11468, 31), +(11468, 32), +(11468, 33), +(11468, 34), +(11468, 35), +(11468, 36), +(11468, 37), +(11468, 38), +(11468, 39), +(11468, 40), +(11468, 48), +(11468, 41), +(11468, 42), +(11468, 43), +(11468, 44), +(11468, 45), +(11468, 46), +(11468, 47), +(11472, 31), +(11472, 32), +(11472, 33), +(11472, 34), +(11472, 35), +(11472, 36), +(11472, 37), +(11472, 38), +(11472, 39), +(11472, 40), +(11472, 41), +(11472, 42), +(11472, 43), +(11472, 44), +(11472, 45), +(11472, 46), +(11472, 47), +(11473, 31), +(11473, 32), +(11473, 33), +(11473, 34), +(11473, 35), +(11473, 36), +(11473, 37), +(11473, 38), +(11473, 39), +(11473, 40), +(11473, 41), +(11473, 42), +(11473, 43), +(11473, 44), +(11473, 45), +(11473, 46), +(11473, 47), +(11474, 29), +(11474, 30), +(11474, 31), +(11474, 32), +(11474, 33), +(11474, 34), +(11474, 35), +(11474, 36), +(11474, 37), +(11474, 38), +(11474, 39), +(11474, 40), +(11474, 48), +(11474, 41), +(11474, 42), +(11474, 43), +(11474, 44), +(11474, 45), +(11474, 46), +(11474, 47), +(11479, 30), +(11479, 31), +(11479, 32), +(11479, 33), +(11479, 34), +(11479, 35), +(11479, 36), +(11479, 37), +(11479, 38), +(11479, 39), +(11479, 40), +(11479, 41), +(11479, 42), +(11479, 43), +(11479, 44), +(11479, 45), +(11479, 46), +(11479, 47), +(11481, 32), +(11481, 33), +(11481, 34), +(11481, 35), +(11481, 36), +(11481, 37), +(11481, 38), +(11481, 39), +(11481, 40), +(11481, 48), +(11481, 41), +(11481, 42), +(11481, 43), +(11481, 44), +(11481, 45), +(11481, 46), +(11481, 47), +(11489, 31), +(11489, 32), +(11489, 33), +(11489, 34), +(11489, 35), +(11489, 36), +(11489, 37), +(11489, 38), +(11489, 39), +(11489, 40), +(11489, 41), +(11489, 42), +(11489, 43), +(11489, 44), +(11489, 45), +(11489, 46), +(11489, 47), +(11491, 29), +(11491, 30), +(11491, 31), +(11491, 32), +(11491, 33), +(11491, 34), +(11491, 35), +(11491, 36), +(11491, 37), +(11491, 38), +(11491, 39), +(11491, 40), +(11491, 48), +(11491, 41), +(11491, 42), +(11491, 43), +(11491, 44), +(11491, 45), +(11491, 46), +(11491, 47), +(11493, 29), +(11493, 30), +(11493, 31), +(11493, 32), +(11493, 33), +(11493, 34), +(11493, 35), +(11493, 36), +(11493, 37), +(11493, 38), +(11493, 39), +(11493, 40), +(11493, 48), +(11493, 41), +(11493, 42), +(11493, 43), +(11493, 44), +(11493, 45), +(11493, 46), +(11493, 47), +(11494, 29), +(11494, 30), +(11494, 31), +(11494, 32), +(11494, 33), +(11494, 34), +(11494, 35), +(11494, 36), +(11494, 37), +(11494, 38), +(11494, 39), +(11494, 40), +(11494, 48), +(11494, 41), +(11494, 42), +(11494, 43), +(11494, 44), +(11494, 45), +(11494, 46), +(11494, 47), +(11498, 31), +(11498, 32), +(11498, 33), +(11498, 34), +(11498, 35), +(11498, 36), +(11498, 37), +(11498, 38), +(11498, 39), +(11498, 40), +(11498, 41), +(11498, 42), +(11498, 43), +(11498, 44), +(11498, 45), +(11498, 46), +(11498, 47), +(11501, 32), +(11501, 33), +(11501, 34), +(11501, 35), +(11501, 36), +(11501, 37), +(11501, 38), +(11501, 39), +(11501, 40), +(11501, 41), +(11501, 42), +(11501, 43), +(11501, 44), +(11501, 45), +(11501, 46), +(11501, 47), +(11505, 29), +(11505, 30), +(11505, 31), +(11505, 32), +(11505, 33), +(11505, 34), +(11505, 35), +(11505, 36), +(11505, 37), +(11505, 38), +(11505, 39), +(11505, 40), +(11505, 48), +(11505, 41), +(11505, 42), +(11505, 43), +(11505, 44), +(11505, 45), +(11505, 46), +(11505, 47), +(11506, 29), +(11506, 30), +(11506, 31), +(11506, 32), +(11506, 33), +(11506, 34), +(11506, 35), +(11506, 36), +(11506, 37), +(11506, 38), +(11506, 39), +(11506, 40), +(11506, 48), +(11506, 41), +(11506, 42), +(11506, 43), +(11506, 44), +(11506, 45), +(11506, 46), +(11506, 47), +(11508, 29), +(11508, 30), +(11508, 31), +(11508, 32), +(11508, 33), +(11508, 34), +(11508, 35), +(11508, 36), +(11508, 37), +(11508, 38), +(11508, 39), +(11508, 40), +(11508, 48), +(11508, 41), +(11508, 42), +(11508, 43), +(11508, 44), +(11508, 45), +(11508, 46), +(11508, 47), +(11509, 30), +(11509, 31), +(11509, 32), +(11509, 33), +(11509, 34), +(11509, 35), +(11509, 36), +(11509, 37), +(11509, 38), +(11509, 39), +(11509, 40), +(11509, 41), +(11509, 42), +(11509, 43), +(11509, 44), +(11509, 45), +(11509, 46), +(11509, 47), +(11510, 31), +(11510, 32), +(11510, 33), +(11510, 34), +(11510, 35), +(11510, 36), +(11510, 37), +(11510, 38), +(11510, 39), +(11510, 40), +(11510, 41), +(11510, 42), +(11510, 43), +(11510, 44), +(11510, 45), +(11510, 46), +(11510, 47), +(11511, 31), +(11511, 32), +(11511, 33), +(11511, 34), +(11511, 35), +(11511, 36), +(11511, 37), +(11511, 38), +(11511, 39), +(11511, 40), +(11511, 41), +(11511, 42), +(11511, 43), +(11511, 44), +(11511, 45), +(11511, 46), +(11511, 47), +(11512, 31), +(11512, 32), +(11512, 33), +(11512, 34), +(11512, 35), +(11512, 36), +(11512, 37), +(11512, 38), +(11512, 39), +(11512, 40), +(11512, 41), +(11512, 42), +(11512, 43), +(11512, 44), +(11512, 45), +(11512, 46), +(11512, 47), +(11513, 31), +(11513, 32), +(11513, 33), +(11513, 34), +(11513, 35), +(11513, 36), +(11513, 37), +(11513, 38), +(11513, 39), +(11513, 40), +(11513, 41), +(11513, 42), +(11513, 43), +(11513, 44), +(11513, 45), +(11513, 46), +(11513, 47), +(11514, 31), +(11514, 32), +(11514, 33), +(11514, 34), +(11514, 35), +(11514, 36), +(11514, 37), +(11514, 38), +(11514, 39), +(11514, 40), +(11514, 41), +(11514, 42), +(11514, 43), +(11514, 44), +(11514, 45), +(11514, 46), +(11514, 47), +(11515, 32), +(11515, 33), +(11515, 34), +(11515, 35), +(11515, 36), +(11515, 37), +(11515, 38), +(11515, 39), +(11515, 40), +(11515, 41), +(11515, 42), +(11515, 43), +(11515, 44), +(11515, 45), +(11515, 46), +(11515, 47), +(11516, 32), +(11516, 33), +(11516, 34), +(11516, 35), +(11516, 36), +(11516, 37), +(11516, 38), +(11516, 39), +(11516, 40), +(11516, 41), +(11516, 42), +(11516, 43), +(11516, 44), +(11516, 45), +(11516, 46), +(11516, 47), +(11517, 32), +(11517, 33), +(11517, 34), +(11517, 35), +(11517, 36), +(11517, 37), +(11517, 38), +(11517, 39), +(11517, 40), +(11517, 41), +(11517, 42), +(11517, 43), +(11517, 44), +(11517, 45), +(11517, 46), +(11517, 47), +(11518, 32), +(11518, 33), +(11518, 34), +(11518, 35), +(11518, 36), +(11518, 37), +(11518, 38), +(11518, 39), +(11518, 40), +(11518, 41), +(11518, 42), +(11518, 43), +(11518, 44), +(11518, 45), +(11518, 46), +(11518, 47), +(11519, 32), +(11519, 33), +(11519, 34), +(11519, 35), +(11519, 36), +(11519, 37), +(11519, 38), +(11519, 39), +(11519, 40), +(11519, 41), +(11519, 42), +(11519, 43), +(11519, 44), +(11519, 45), +(11519, 46), +(11519, 47), +(11520, 33), +(11520, 34), +(11520, 35), +(11520, 36), +(11520, 37), +(11520, 38), +(11520, 39), +(11520, 40), +(11520, 41), +(11520, 42), +(11520, 45), +(11520, 46), +(11520, 47), +(11528, 33), +(11528, 34), +(11528, 35), +(11528, 36), +(11528, 37), +(11528, 38), +(11528, 39), +(11528, 40), +(11528, 41), +(11528, 42), +(11528, 45), +(11528, 46), +(11528, 47), +(11529, 33), +(11529, 34), +(11529, 35), +(11529, 36), +(11529, 37), +(11529, 38), +(11529, 39), +(11529, 40), +(11529, 41), +(11529, 42), +(11529, 44), +(11529, 45), +(11529, 46), +(11529, 47), +(11531, 33), +(11531, 34), +(11531, 35), +(11531, 36), +(11531, 37), +(11531, 38), +(11531, 39), +(11531, 40), +(11531, 41), +(11531, 42), +(11531, 44), +(11531, 45), +(11531, 46), +(11531, 47), +(11533, 35), +(11533, 36), +(11533, 37), +(11533, 38), +(11533, 39), +(11533, 40), +(11533, 41), +(11533, 42), +(11533, 44), +(11533, 45), +(11533, 46), +(11533, 47), +(11535, 35), +(11535, 36), +(11535, 37), +(11535, 38), +(11535, 39), +(11535, 40), +(11535, 41), +(11535, 42), +(11535, 45), +(11535, 46), +(11535, 47), +(11540, 33), +(11540, 34), +(11540, 35), +(11540, 36), +(11540, 37), +(11540, 38), +(11540, 39), +(11540, 40), +(11540, 41), +(11540, 42), +(11540, 45), +(11540, 46), +(11540, 47), +(11541, 33), +(11541, 34), +(11541, 35), +(11541, 36), +(11541, 37), +(11541, 38), +(11541, 39), +(11541, 40), +(11541, 41), +(11541, 42), +(11541, 45), +(11541, 46), +(11541, 47), +(11543, 43), +(11563, 33), +(11563, 34), +(11563, 35), +(11563, 36), +(11563, 37), +(11563, 38), +(11563, 39), +(11563, 40), +(11563, 41), +(11563, 42), +(11563, 43), +(11563, 44), +(11563, 45), +(11563, 46), +(11563, 47), +(11564, 33), +(11564, 34), +(11564, 35), +(11564, 36), +(11564, 37), +(11564, 38), +(11564, 39), +(11564, 40), +(11564, 41), +(11564, 42), +(11564, 43), +(11564, 44), +(11564, 45), +(11564, 46), +(11564, 47), +(11565, 33), +(11565, 34), +(11565, 35), +(11565, 36), +(11565, 37), +(11565, 38), +(11565, 39), +(11565, 40), +(11565, 41), +(11565, 42), +(11565, 43), +(11565, 44), +(11565, 45), +(11565, 46), +(11565, 47), +(11566, 33), +(11566, 34), +(11566, 35), +(11566, 36), +(11566, 37), +(11566, 38), +(11566, 39), +(11566, 40), +(11566, 41), +(11566, 42), +(11566, 43), +(11566, 44), +(11566, 45), +(11566, 46), +(11566, 47), +(11567, 33), +(11567, 34), +(11567, 35), +(11567, 36), +(11567, 37), +(11567, 38), +(11567, 39), +(11567, 40), +(11567, 41), +(11567, 42), +(11567, 43), +(11567, 44), +(11567, 45), +(11567, 46), +(11567, 47), +(11568, 33), +(11568, 34), +(11568, 35), +(11568, 36), +(11568, 37), +(11568, 38), +(11568, 39), +(11568, 40), +(11568, 41), +(11568, 42), +(11568, 43), +(11568, 44), +(11568, 45), +(11568, 46), +(11568, 47), +(11569, 33), +(11569, 34), +(11569, 35), +(11569, 36), +(11569, 37), +(11569, 38), +(11569, 39), +(11569, 40), +(11569, 41), +(11569, 42), +(11569, 43), +(11569, 44), +(11569, 45), +(11569, 46), +(11569, 47), +(11570, 33), +(11570, 34), +(11570, 35), +(11570, 36), +(11570, 37), +(11570, 38), +(11570, 39), +(11570, 40), +(11570, 41), +(11570, 42), +(11570, 43), +(11570, 44), +(11570, 45), +(11570, 46), +(11570, 47), +(11571, 33), +(11571, 34), +(11571, 35), +(11571, 36), +(11571, 37), +(11571, 38), +(11571, 39), +(11571, 40), +(11571, 41), +(11571, 42), +(11571, 43), +(11571, 44), +(11571, 45), +(11571, 46), +(11571, 47), +(11572, 33), +(11572, 34), +(11572, 35), +(11572, 36), +(11572, 37), +(11572, 38), +(11572, 39), +(11572, 40), +(11572, 41), +(11572, 42), +(11572, 43), +(11572, 44), +(11572, 45), +(11572, 46), +(11572, 47), +(11573, 33), +(11573, 34), +(11573, 35), +(11573, 36), +(11573, 37), +(11573, 38), +(11573, 39), +(11573, 40), +(11573, 41), +(11573, 42), +(11573, 43), +(11573, 44), +(11573, 45), +(11573, 46), +(11573, 47), +(11575, 33), +(11575, 34), +(11575, 35), +(11575, 36), +(11575, 37), +(11575, 38), +(11575, 39), +(11575, 40), +(11575, 41), +(11575, 42), +(11575, 43), +(11575, 44), +(11575, 45), +(11575, 46), +(11575, 47), +(11576, 33), +(11576, 34), +(11576, 35), +(11576, 36), +(11576, 37), +(11576, 38), +(11576, 39), +(11576, 40), +(11576, 41), +(11576, 42), +(11576, 43), +(11576, 44), +(11576, 45), +(11576, 46), +(11576, 47), +(11577, 33), +(11577, 34), +(11577, 35), +(11577, 36), +(11577, 37), +(11577, 38), +(11577, 39), +(11577, 40), +(11577, 41), +(11577, 42), +(11577, 43), +(11577, 44), +(11577, 45), +(11577, 46), +(11577, 47), +(11578, 34), +(11578, 35), +(11578, 36), +(11578, 37), +(11578, 38), +(11578, 39), +(11578, 40), +(11578, 41), +(11578, 42), +(11578, 45), +(11578, 46), +(11578, 47), +(11580, 35), +(11580, 36), +(11580, 37), +(11580, 38), +(11580, 39), +(11580, 40), +(11580, 41), +(11580, 42), +(11580, 45), +(11580, 46), +(11580, 47), +(11582, 35), +(11582, 36), +(11582, 37), +(11582, 38), +(11582, 39), +(11582, 40), +(11582, 41), +(11582, 42), +(11582, 45), +(11582, 46), +(11582, 47), +(11583, 35), +(11583, 36), +(11583, 37), +(11583, 38), +(11583, 39), +(11583, 40), +(11583, 41), +(11583, 42), +(11583, 45), +(11583, 46), +(11583, 47), +(11586, 34), +(11586, 35), +(11586, 36), +(11586, 37), +(11586, 38), +(11586, 39), +(11586, 40), +(11586, 41), +(11586, 42), +(11586, 45), +(11586, 46), +(11586, 47), +(11587, 35), +(11587, 36), +(11587, 37), +(11587, 38), +(11587, 39), +(11587, 41), +(11587, 42), +(11587, 46), +(11589, 35), +(11589, 36), +(11589, 37), +(11589, 38), +(11589, 39), +(11589, 41), +(11589, 42), +(11589, 46), +(11592, 37), +(11592, 38), +(11592, 39), +(11592, 41), +(11592, 42), +(11592, 46), +(11597, 35), +(11597, 36), +(11597, 37), +(11597, 38), +(11597, 39), +(11597, 41), +(11597, 42), +(11597, 46), +(11599, 35), +(11599, 36), +(11599, 37), +(11599, 38), +(11599, 39), +(11599, 40), +(11599, 41), +(11599, 42), +(11599, 46), +(11599, 47), +(11600, 37), +(11600, 38), +(11600, 39), +(11600, 41), +(11600, 42), +(11600, 46), +(11602, 37), +(11602, 38), +(11602, 39), +(11602, 41), +(11602, 42), +(11602, 46), +(11607, 37), +(11607, 38), +(11607, 39), +(11607, 41), +(11607, 42), +(11607, 46), +(11609, 35), +(11609, 36), +(11609, 37), +(11609, 38), +(11609, 39), +(11609, 41), +(11609, 42), +(11609, 46), +(11611, 36), +(11611, 37), +(11611, 38), +(11611, 39), +(11611, 41), +(11611, 42), +(11611, 46), +(11614, 35), +(11614, 36), +(11614, 37), +(11614, 38), +(11614, 39), +(11614, 41), +(11614, 42), +(11614, 46), +(11614, 47), +(11615, 35), +(11615, 36), +(11615, 37), +(11615, 38), +(11615, 39), +(11615, 41), +(11615, 42), +(11615, 46), +(11615, 47), +(11616, 35), +(11616, 36), +(11616, 37), +(11616, 38), +(11616, 39), +(11616, 40), +(11616, 41), +(11616, 42), +(11616, 46), +(11616, 47), +(11618, 35), +(11618, 36), +(11618, 37), +(11618, 38), +(11618, 39), +(11618, 40), +(11618, 41), +(11618, 42), +(11618, 45), +(11618, 46), +(11618, 47), +(11619, 35), +(11619, 36), +(11619, 37), +(11619, 38), +(11619, 39), +(11619, 40), +(11619, 41), +(11619, 42), +(11619, 46), +(11619, 47), +(11620, 35), +(11620, 36), +(11620, 37), +(11620, 38), +(11620, 39), +(11620, 40), +(11620, 41), +(11620, 42), +(11620, 46), +(11620, 47), +(11621, 35), +(11621, 36), +(11621, 37), +(11621, 38), +(11621, 39), +(11621, 40), +(11621, 41), +(11621, 42), +(11621, 46), +(11621, 47), +(11622, 35), +(11622, 36), +(11622, 37), +(11622, 38), +(11622, 39), +(11622, 40), +(11622, 41), +(11622, 42), +(11622, 45), +(11622, 46), +(11622, 47), +(11623, 35), +(11623, 36), +(11623, 37), +(11623, 38), +(11623, 39), +(11623, 40), +(11623, 41), +(11623, 42), +(11623, 45), +(11623, 46), +(11623, 47), +(11627, 35), +(11627, 36), +(11627, 37), +(11627, 38), +(11627, 39), +(11627, 40), +(11627, 41), +(11627, 42), +(11627, 45), +(11627, 46), +(11627, 47), +(11629, 35), +(11629, 36), +(11629, 37), +(11629, 38), +(11629, 39), +(11629, 40), +(11629, 41), +(11629, 42), +(11629, 45), +(11629, 46), +(11629, 47), +(11630, 35), +(11630, 36), +(11630, 37), +(11630, 38), +(11630, 39), +(11630, 40), +(11630, 41), +(11630, 42), +(11630, 45), +(11630, 46), +(11630, 47), +(11631, 35), +(11631, 36), +(11631, 37), +(11631, 38), +(11631, 39), +(11631, 40), +(11631, 41), +(11631, 42), +(11631, 45), +(11631, 46), +(11631, 47), +(11632, 35), +(11632, 36), +(11632, 37), +(11632, 38), +(11632, 39), +(11632, 40), +(11632, 41), +(11632, 42), +(11632, 45), +(11632, 46), +(11632, 47), +(11633, 35), +(11633, 36), +(11633, 37), +(11633, 38), +(11633, 39), +(11633, 40), +(11633, 41), +(11633, 42), +(11633, 45), +(11633, 46), +(11633, 47), +(11635, 35), +(11635, 36), +(11635, 37), +(11635, 38), +(11635, 39), +(11635, 40), +(11635, 41), +(11635, 42), +(11635, 45), +(11635, 46), +(11635, 47), +(11636, 35), +(11636, 36), +(11636, 37), +(11636, 38), +(11636, 39), +(11636, 40), +(11636, 41), +(11636, 42), +(11636, 45), +(11636, 46), +(11636, 47), +(11637, 35), +(11637, 36), +(11637, 37), +(11637, 38), +(11637, 39), +(11637, 40), +(11637, 41), +(11637, 42), +(11637, 45), +(11637, 46), +(11637, 47), +(11639, 35), +(11639, 36), +(11639, 37), +(11639, 38), +(11639, 39), +(11639, 40), +(11639, 41), +(11639, 42), +(11639, 45), +(11639, 46), +(11639, 47), +(11640, 35), +(11640, 36), +(11640, 37), +(11640, 38), +(11640, 39), +(11640, 40), +(11640, 41), +(11640, 42), +(11640, 45), +(11640, 46), +(11640, 47), +(11641, 35), +(11641, 36), +(11641, 37), +(11641, 38), +(11641, 39), +(11641, 40), +(11641, 41), +(11641, 42), +(11641, 45), +(11641, 46), +(11641, 47), +(11642, 35), +(11642, 36), +(11642, 37), +(11642, 38), +(11642, 39), +(11642, 40), +(11642, 41), +(11642, 42), +(11642, 45), +(11642, 46), +(11642, 47), +(11643, 35), +(11643, 36), +(11643, 37), +(11643, 38), +(11643, 39), +(11643, 40), +(11643, 41), +(11643, 42), +(11643, 45), +(11643, 46), +(11643, 47), +(11644, 35), +(11644, 36), +(11644, 37), +(11644, 38), +(11644, 39), +(11644, 40), +(11644, 41), +(11644, 42), +(11644, 45), +(11644, 46), +(11644, 47), +(11645, 35), +(11645, 36), +(11645, 37), +(11645, 38), +(11645, 39), +(11645, 40), +(11645, 41), +(11645, 42), +(11645, 45), +(11645, 46), +(11645, 47), +(11646, 35), +(11646, 36), +(11646, 37), +(11646, 38), +(11646, 39), +(11646, 40), +(11646, 41), +(11646, 42), +(11646, 45), +(11646, 46), +(11646, 47), +(11647, 35), +(11647, 36), +(11647, 37), +(11647, 38), +(11647, 39), +(11647, 40), +(11647, 41), +(11647, 42), +(11647, 45), +(11647, 46), +(11647, 47), +(11648, 35), +(11648, 36), +(11648, 37), +(11648, 38), +(11648, 39), +(11648, 40), +(11648, 41), +(11648, 42), +(11648, 45), +(11648, 46), +(11648, 47), +(11649, 35), +(11649, 36), +(11649, 37), +(11649, 38), +(11649, 39), +(11649, 40), +(11649, 41), +(11649, 42), +(11649, 45), +(11649, 46), +(11649, 47), +(11650, 36), +(11650, 37), +(11650, 38), +(11650, 39), +(11650, 41), +(11650, 42), +(11650, 46), +(11653, 36), +(11653, 37), +(11653, 38), +(11653, 39), +(11653, 41), +(11653, 42), +(11653, 46), +(11654, 36), +(11654, 37), +(11654, 38), +(11654, 39), +(11654, 41), +(11654, 42), +(11654, 46), +(11655, 36), +(11655, 37), +(11655, 38), +(11655, 39), +(11655, 41), +(11655, 42), +(11655, 46), +(11656, 37), +(11656, 38), +(11656, 39), +(11656, 41), +(11656, 42), +(11656, 46), +(11658, 37), +(11658, 38), +(11658, 39), +(11658, 41), +(11658, 42), +(11658, 46), +(11662, 37), +(11662, 38), +(11662, 39), +(11662, 41), +(11662, 42), +(11662, 46), +(11668, 37), +(11668, 38), +(11668, 39), +(11668, 41), +(11668, 42), +(11668, 46), +(11670, 37), +(11670, 38), +(11670, 39), +(11670, 41), +(11670, 42), +(11670, 46), +(11672, 37), +(11672, 38), +(11672, 39), +(11672, 41), +(11672, 42), +(11672, 46), +(11674, 37), +(11674, 38), +(11674, 39), +(11674, 41), +(11674, 42), +(11674, 46), +(11676, 37), +(11676, 38), +(11676, 39), +(11676, 41), +(11676, 42), +(11676, 46), +(11678, 37), +(11678, 38), +(11678, 39), +(11678, 41), +(11678, 42), +(11678, 46), +(11679, 37), +(11679, 38), +(11679, 39), +(11679, 41), +(11679, 42), +(11679, 46), +(11680, 38), +(11680, 41), +(11680, 42), +(11684, 38), +(11684, 39), +(11684, 41), +(11684, 42), +(11686, 41), +(11686, 42), +(11688, 38), +(11688, 39), +(11688, 41), +(11688, 42), +(11690, 38), +(11690, 39), +(11690, 41), +(11690, 42), +(11692, 38), +(11692, 39), +(11692, 41), +(11692, 42), +(11695, 38), +(11695, 39), +(11695, 41), +(11695, 42), +(11696, 38), +(11696, 39), +(11696, 41), +(11696, 42), +(11697, 38), +(11697, 39), +(11697, 41), +(11697, 42), +(11698, 38), +(11698, 39), +(11698, 41), +(11698, 42), +(11701, 38), +(11701, 39), +(11701, 41), +(11701, 42), +(11703, 38), +(11703, 39), +(11703, 41), +(11703, 42), +(11706, 38), +(11706, 39), +(11706, 41), +(11706, 42), +(11707, 38), +(11707, 39), +(11707, 41), +(11707, 42), +(11708, 38), +(11708, 39), +(11708, 41), +(11708, 42), +(11710, 38), +(11710, 39), +(11710, 41), +(11710, 42), +(11710, 46), +(11712, 41), +(11712, 42), +(11712, 46), +(11717, 38), +(11717, 39), +(11717, 41), +(11717, 42), +(11717, 46), +(11720, 38), +(11720, 39), +(11720, 41), +(11720, 42), +(11720, 46), +(11724, 38), +(11724, 39), +(11724, 41), +(11724, 42), +(11724, 46), +(11727, 38), +(11727, 39), +(11727, 41), +(11727, 42), +(11727, 46), +(11728, 38), +(11728, 39), +(11728, 41), +(11728, 42), +(11728, 46), +(11729, 38), +(11729, 39), +(11729, 41), +(11729, 42), +(11729, 46), +(11730, 38), +(11730, 39), +(11730, 41), +(11730, 42), +(11730, 46), +(11731, 40), +(11733, 40), +(11734, 41), +(11734, 42), +(11736, 41), +(11736, 42), +(11737, 41), +(11737, 42), +(11740, 41), +(11740, 42), +(11741, 41), +(11741, 42), +(11742, 41), +(11742, 42), +(11743, 41), +(11743, 42), +(11745, 41), +(11745, 42), +(11746, 41), +(11746, 42), +(11747, 41), +(11747, 42), +(11748, 41), +(11748, 42), +(11749, 41), +(11749, 42), +(11750, 41), +(11750, 42), +(11751, 41), +(11751, 42), +(11752, 41), +(11752, 42), +(11753, 41), +(11753, 42), +(11754, 41), +(11754, 42), +(11755, 41), +(11755, 42), +(11756, 41), +(11756, 42), +(11757, 41), +(11757, 42), +(11758, 41), +(11758, 42), +(11759, 41), +(11759, 42), +(11760, 41), +(11760, 42), +(11761, 41), +(11761, 42), +(11762, 41), +(11762, 42), +(11764, 41), +(11764, 42), +(11765, 41), +(11765, 42), +(11766, 41), +(11766, 42), +(11767, 41), +(11767, 42), +(11768, 41), +(11768, 42), +(11769, 41), +(11769, 42), +(11770, 41), +(11770, 42), +(11771, 41), +(11771, 42), +(11772, 41), +(11772, 42), +(11773, 41), +(11773, 42), +(11779, 41), +(11779, 42), +(11780, 41), +(11780, 42), +(11780, 46), +(11782, 41), +(11782, 42), +(11783, 41), +(11783, 42), +(11784, 42), +(11786, 42), +(11787, 42), +(11788, 43), +(11789, 43), +(11790, 43), +(11791, 43), +(11792, 47), +(12886, 49), +(12886, 50), +(12886, 51), +(12886, 52), +(12886, 53), +(12886, 54), +(12886, 55), +(12886, 56), +(12886, 57), +(12886, 58), +(12890, 49), +(12890, 59), +(12890, 50), +(12890, 51), +(12890, 52), +(12890, 53), +(12890, 54), +(12890, 55), +(12890, 56), +(12890, 57), +(12890, 58), +(12892, 49), +(12892, 59), +(12892, 50), +(12892, 51), +(12892, 52), +(12892, 53), +(12892, 54), +(12892, 55), +(12892, 56), +(12892, 57), +(12892, 58), +(12894, 49), +(12894, 59), +(12894, 50), +(12894, 51), +(12894, 52), +(12894, 53), +(12894, 54), +(12894, 60), +(12894, 55), +(12894, 56), +(12894, 57), +(12894, 58), +(12899, 49), +(12899, 59), +(12899, 50), +(12899, 51), +(12899, 52), +(12899, 53), +(12899, 54), +(12899, 61), +(12899, 60), +(12899, 55), +(12899, 56), +(12899, 57), +(12899, 58), +(12905, 49), +(12905, 59), +(12905, 50), +(12905, 51), +(12905, 52), +(12905, 53), +(12905, 54), +(12905, 61), +(12905, 60), +(12905, 55), +(12905, 56), +(12905, 57), +(12905, 58), +(12907, 49), +(12907, 59), +(12907, 50), +(12907, 51), +(12907, 52), +(12907, 53), +(12907, 54), +(12907, 61), +(12907, 60), +(12907, 55), +(12907, 56), +(12907, 57), +(12907, 58), +(12912, 49), +(12912, 59), +(12912, 50), +(12912, 51), +(12912, 52), +(12912, 53), +(12912, 54), +(12912, 61), +(12912, 60), +(12912, 55), +(12912, 56), +(12912, 57), +(12912, 58), +(12914, 49), +(12914, 59), +(12914, 50), +(12914, 51), +(12914, 52), +(12914, 53), +(12914, 54), +(12914, 61), +(12914, 60), +(12914, 55), +(12914, 56), +(12914, 57), +(12914, 58), +(12919, 49), +(12919, 59), +(12919, 50), +(12919, 51), +(12919, 52), +(12919, 53), +(12919, 54), +(12919, 61), +(12919, 60), +(12919, 55), +(12919, 56), +(12919, 57), +(12919, 58), +(12920, 49), +(12920, 59), +(12920, 50), +(12920, 51), +(12920, 52), +(12920, 53), +(12920, 54), +(12920, 61), +(12920, 60), +(12920, 55), +(12920, 56), +(12920, 57), +(12920, 58), +(12922, 49), +(12922, 59), +(12922, 50), +(12922, 51), +(12922, 52), +(12922, 53), +(12922, 54), +(12922, 61), +(12922, 60), +(12922, 55), +(12922, 56), +(12922, 57), +(12922, 58), +(12923, 49), +(12923, 59), +(12923, 50), +(12923, 51), +(12923, 52), +(12923, 53), +(12923, 54), +(12923, 62), +(12923, 61), +(12923, 60), +(12923, 55), +(12923, 56), +(12923, 57), +(12923, 58), +(12927, 49), +(12927, 59), +(12927, 50), +(12927, 51), +(12927, 52), +(12927, 53), +(12927, 54), +(12927, 62), +(12927, 61), +(12927, 60), +(12927, 55), +(12927, 56), +(12927, 57), +(12927, 58), +(12929, 63), +(12930, 49), +(12930, 59), +(12930, 50), +(12930, 51), +(12930, 52), +(12930, 53), +(12930, 54), +(12930, 62), +(12930, 61), +(12930, 60), +(12930, 55), +(12930, 56), +(12930, 57), +(12930, 58), +(12932, 63), +(12932, 64), +(12935, 49), +(12935, 59), +(12935, 50), +(12935, 51), +(12935, 52), +(12935, 53), +(12935, 54), +(12935, 62), +(12935, 61), +(12935, 60), +(12935, 55), +(12935, 56), +(12935, 57), +(12935, 58), +(12937, 63), +(12937, 64), +(12938, 65), +(12939, 49), +(12939, 59), +(12939, 50), +(12939, 51), +(12939, 52), +(12939, 53), +(12939, 54), +(12939, 65), +(12939, 62), +(12939, 61), +(12939, 60), +(12939, 55), +(12939, 56), +(12939, 57), +(12939, 58), +(12941, 49), +(12941, 59), +(12941, 50), +(12941, 51), +(12941, 52), +(12941, 53), +(12941, 54), +(12941, 65), +(12941, 63), +(12941, 62), +(12941, 64), +(12941, 61), +(12941, 60), +(12941, 55), +(12941, 56), +(12941, 57), +(12941, 58), +(12947, 49), +(12947, 59), +(12947, 50), +(12947, 51), +(12947, 52), +(12947, 53), +(12947, 54), +(12947, 65), +(12947, 63), +(12947, 62), +(12947, 66), +(12947, 64), +(12947, 61), +(12947, 60), +(12947, 55), +(12947, 56), +(12947, 57), +(12947, 58), +(12950, 49), +(12950, 59), +(12950, 50), +(12950, 51), +(12950, 52), +(12950, 53), +(12950, 54), +(12950, 65), +(12950, 67), +(12950, 63), +(12950, 62), +(12950, 66), +(12950, 64), +(12950, 61), +(12950, 60), +(12950, 55), +(12950, 56), +(12950, 57), +(12950, 58), +(12952, 49), +(12952, 59), +(12952, 50), +(12952, 51), +(12952, 52), +(12952, 53), +(12952, 54), +(12952, 65), +(12952, 67), +(12952, 63), +(12952, 62), +(12952, 66), +(12952, 64), +(12952, 61), +(12952, 60), +(12952, 55), +(12952, 56), +(12952, 57), +(12952, 58), +(12953, 49), +(12953, 59), +(12953, 50), +(12953, 51), +(12953, 52), +(12953, 53), +(12953, 54), +(12953, 65), +(12953, 67), +(12953, 63), +(12953, 62), +(12953, 66), +(12953, 64), +(12953, 61), +(12953, 60), +(12953, 55), +(12953, 56), +(12953, 57), +(12953, 58), +(12955, 49), +(12955, 59), +(12955, 50), +(12955, 51), +(12955, 52), +(12955, 53), +(12955, 54), +(12955, 65), +(12955, 67), +(12955, 63), +(12955, 62), +(12955, 66), +(12955, 64), +(12955, 61), +(12955, 60), +(12955, 55), +(12955, 56), +(12955, 57), +(12955, 58), +(12957, 49), +(12957, 59), +(12957, 50), +(12957, 51), +(12957, 52), +(12957, 53), +(12957, 54), +(12957, 65), +(12957, 67), +(12957, 63), +(12957, 62), +(12957, 66), +(12957, 64), +(12957, 61), +(12957, 60), +(12957, 55), +(12957, 56), +(12957, 57), +(12957, 58), +(12962, 49), +(12962, 59), +(12962, 50), +(12962, 51), +(12962, 52), +(12962, 53), +(12962, 54), +(12962, 65), +(12962, 67), +(12962, 63), +(12962, 62), +(12962, 66), +(12962, 64), +(12962, 61), +(12962, 60), +(12962, 55), +(12962, 56), +(12962, 57), +(12962, 58), +(12964, 49), +(12964, 59), +(12964, 50), +(12964, 51), +(12964, 52), +(12964, 53), +(12964, 54), +(12964, 65), +(12964, 67), +(12964, 63), +(12964, 62), +(12964, 66), +(12964, 64), +(12964, 61), +(12964, 60), +(12964, 55), +(12964, 56), +(12964, 57), +(12964, 58), +(12965, 49), +(12965, 59), +(12965, 50), +(12965, 51), +(12965, 52), +(12965, 53), +(12965, 54), +(12965, 65), +(12965, 67), +(12965, 63), +(12965, 62), +(12965, 66), +(12965, 64), +(12965, 61), +(12965, 60), +(12965, 55), +(12965, 56), +(12965, 57), +(12965, 58), +(12967, 49), +(12967, 59), +(12967, 50), +(12967, 51), +(12967, 52), +(12967, 53), +(12967, 54), +(12967, 65), +(12967, 67), +(12967, 63), +(12967, 62), +(12967, 66), +(12967, 64), +(12967, 61), +(12967, 60), +(12967, 55), +(12967, 56), +(12967, 57), +(12967, 58), +(12970, 49), +(12970, 59), +(12970, 50), +(12970, 51), +(12970, 52), +(12970, 53), +(12970, 54), +(12970, 65), +(12970, 67), +(12970, 63), +(12970, 62), +(12970, 66), +(12970, 64), +(12970, 61), +(12970, 60), +(12970, 55), +(12970, 56), +(12970, 57), +(12970, 58), +(12971, 49), +(12971, 59), +(12971, 50), +(12971, 51), +(12971, 52), +(12971, 53), +(12971, 54), +(12971, 65), +(12971, 67), +(12971, 63), +(12971, 62), +(12971, 66), +(12971, 64), +(12971, 61), +(12971, 60), +(12971, 55), +(12971, 56), +(12971, 57), +(12971, 58), +(12973, 49), +(12973, 59), +(12973, 50), +(12973, 51), +(12973, 52), +(12973, 53), +(12973, 54), +(12973, 65), +(12973, 67), +(12973, 63), +(12973, 62), +(12973, 66), +(12973, 68), +(12973, 64), +(12973, 61), +(12973, 60), +(12973, 55), +(12973, 56), +(12973, 57), +(12973, 58), +(12982, 49), +(12982, 59), +(12982, 50), +(12982, 51), +(12982, 52), +(12982, 53), +(12982, 69), +(12982, 54), +(12982, 65), +(12982, 67), +(12982, 63), +(12982, 62), +(12982, 66), +(12982, 68), +(12982, 64), +(12982, 61), +(12982, 60), +(12982, 55), +(12982, 56), +(12982, 57), +(12982, 58), +(12984, 49), +(12984, 59), +(12984, 50), +(12984, 51), +(12984, 52), +(12984, 53), +(12984, 70), +(12984, 69), +(12984, 54), +(12984, 65), +(12984, 67), +(12984, 63), +(12984, 62), +(12984, 66), +(12984, 68), +(12984, 64), +(12984, 61), +(12984, 60), +(12984, 55), +(12984, 56), +(12984, 57), +(12984, 58), +(12986, 49), +(12986, 59), +(12986, 50), +(12986, 51), +(12986, 52), +(12986, 53), +(12986, 70), +(12986, 69), +(12986, 54), +(12986, 65), +(12986, 67), +(12986, 63), +(12986, 62), +(12986, 66), +(12986, 68), +(12986, 64), +(12986, 61), +(12986, 60), +(12986, 55), +(12986, 56), +(12986, 57), +(12986, 58), +(12987, 49), +(12987, 59), +(12987, 50), +(12987, 51), +(12987, 52), +(12987, 53), +(12987, 70), +(12987, 69), +(12987, 54), +(12987, 65), +(12987, 67), +(12987, 63), +(12987, 62), +(12987, 66), +(12987, 68), +(12987, 64), +(12987, 61), +(12987, 60), +(12987, 55), +(12987, 56), +(12987, 57), +(12987, 58), +(12989, 49), +(12989, 59), +(12989, 50), +(12989, 51), +(12989, 52), +(12989, 53), +(12989, 70), +(12989, 69), +(12989, 71), +(12989, 54), +(12989, 65), +(12989, 67), +(12989, 63), +(12989, 62), +(12989, 66), +(12989, 68), +(12989, 64), +(12989, 61), +(12989, 60), +(12989, 55), +(12989, 56), +(12989, 57), +(12989, 58), +(12992, 49), +(12992, 59), +(12992, 50), +(12992, 51), +(12992, 52), +(12992, 53), +(12992, 70), +(12992, 69), +(12992, 71), +(12992, 54), +(12992, 65), +(12992, 67), +(12992, 63), +(12992, 62), +(12992, 66), +(12992, 68), +(12992, 64), +(12992, 61), +(12992, 60), +(12992, 55), +(12992, 56), +(12992, 57), +(12992, 58), +(13003, 49), +(13003, 59), +(13003, 50), +(13003, 51), +(13003, 52), +(13003, 53), +(13003, 70), +(13003, 69), +(13003, 71), +(13003, 54), +(13003, 65), +(13003, 67), +(13003, 63), +(13003, 62), +(13003, 66), +(13003, 68), +(13003, 64), +(13003, 61), +(13003, 60), +(13003, 55), +(13003, 56), +(13003, 57), +(13003, 58), +(13016, 49), +(13016, 59), +(13016, 50), +(13016, 51), +(13016, 52), +(13016, 53), +(13016, 70), +(13016, 69), +(13016, 71), +(13016, 54), +(13016, 65), +(13016, 67), +(13016, 63), +(13016, 62), +(13016, 66), +(13016, 68), +(13016, 64), +(13016, 61), +(13016, 60), +(13016, 55), +(13016, 56), +(13016, 57), +(13016, 58), +(13017, 49), +(13017, 59), +(13017, 50), +(13017, 51), +(13017, 52), +(13017, 53), +(13017, 70), +(13017, 69), +(13017, 54), +(13017, 65), +(13017, 67), +(13017, 63), +(13017, 62), +(13017, 66), +(13017, 68), +(13017, 64), +(13017, 61), +(13017, 60), +(13017, 55), +(13017, 56), +(13017, 57), +(13017, 58), +(13018, 49), +(13018, 59), +(13018, 50), +(13018, 51), +(13018, 52), +(13018, 53), +(13018, 70), +(13018, 69), +(13018, 54), +(13018, 65), +(13018, 67), +(13018, 63), +(13018, 62), +(13018, 66), +(13018, 68), +(13018, 64), +(13018, 61), +(13018, 60), +(13018, 55), +(13018, 56), +(13018, 57), +(13018, 58), +(13022, 49), +(13022, 59), +(13022, 50), +(13022, 51), +(13022, 52), +(13022, 53), +(13022, 70), +(13022, 69), +(13022, 71), +(13022, 54), +(13022, 65), +(13022, 67), +(13022, 63), +(13022, 62), +(13022, 66), +(13022, 68), +(13022, 64), +(13022, 61), +(13022, 60), +(13022, 55), +(13022, 56), +(13022, 57), +(13022, 58), +(13024, 49), +(13024, 59), +(13024, 50), +(13024, 51), +(13024, 52), +(13024, 53), +(13024, 70), +(13024, 69), +(13024, 71), +(13024, 54), +(13024, 65), +(13024, 67), +(13024, 63), +(13024, 62), +(13024, 66), +(13024, 68), +(13024, 64), +(13024, 61), +(13024, 60), +(13024, 55), +(13024, 56), +(13024, 57), +(13024, 58), +(13026, 49), +(13026, 59), +(13026, 50), +(13026, 51), +(13026, 52), +(13026, 53), +(13026, 70), +(13026, 69), +(13026, 71), +(13026, 54), +(13026, 65), +(13026, 67), +(13026, 63), +(13026, 62), +(13026, 66), +(13026, 68), +(13026, 64), +(13026, 61), +(13026, 60), +(13026, 55), +(13026, 56), +(13026, 57), +(13026, 58), +(13029, 49), +(13029, 59), +(13029, 50), +(13029, 51), +(13029, 52), +(13029, 53), +(13029, 70), +(13029, 69), +(13029, 71), +(13029, 54), +(13029, 65), +(13029, 67), +(13029, 63), +(13029, 62), +(13029, 66), +(13029, 68), +(13029, 64), +(13029, 61), +(13029, 60), +(13029, 55), +(13029, 56), +(13029, 57), +(13029, 58), +(13030, 49), +(13030, 59), +(13030, 50), +(13030, 51), +(13030, 52), +(13030, 53), +(13030, 70), +(13030, 69), +(13030, 71), +(13030, 54), +(13030, 65), +(13030, 67), +(13030, 63), +(13030, 62), +(13030, 66), +(13030, 68), +(13030, 64), +(13030, 61), +(13030, 60), +(13030, 55), +(13030, 56), +(13030, 57), +(13030, 58), +(13034, 49), +(13034, 59), +(13034, 50), +(13034, 51), +(13034, 52), +(13034, 53), +(13034, 70), +(13034, 69), +(13034, 71), +(13034, 54), +(13034, 65), +(13034, 67), +(13034, 63), +(13034, 62), +(13034, 66), +(13034, 68), +(13034, 64), +(13034, 61), +(13034, 60), +(13034, 55), +(13034, 56), +(13034, 57), +(13034, 58), +(13036, 49), +(13036, 59), +(13036, 50), +(13036, 51), +(13036, 52), +(13036, 53), +(13036, 70), +(13036, 69), +(13036, 71), +(13036, 54), +(13036, 65), +(13036, 67), +(13036, 63), +(13036, 62), +(13036, 66), +(13036, 68), +(13036, 64), +(13036, 61), +(13036, 60), +(13036, 55), +(13036, 56), +(13036, 57), +(13036, 58), +(13037, 49), +(13037, 59), +(13037, 50), +(13037, 51), +(13037, 52), +(13037, 53), +(13037, 70), +(13037, 69), +(13037, 71), +(13037, 54), +(13037, 65), +(13037, 67), +(13037, 63), +(13037, 62), +(13037, 66), +(13037, 68), +(13037, 64), +(13037, 61), +(13037, 60), +(13037, 55), +(13037, 56), +(13037, 57), +(13037, 58), +(13038, 49), +(13038, 59), +(13038, 50), +(13038, 51), +(13038, 52), +(13038, 53), +(13038, 70), +(13038, 69), +(13038, 71), +(13038, 54), +(13038, 65), +(13038, 67), +(13038, 63), +(13038, 62), +(13038, 66), +(13038, 68), +(13038, 64), +(13038, 61), +(13038, 60), +(13038, 55), +(13038, 56), +(13038, 57), +(13038, 58), +(13039, 49), +(13039, 59), +(13039, 50), +(13039, 51), +(13039, 52), +(13039, 53), +(13039, 70), +(13039, 69), +(13039, 71), +(13039, 54), +(13039, 65), +(13039, 67), +(13039, 63), +(13039, 62), +(13039, 66), +(13039, 68), +(13039, 64), +(13039, 61), +(13039, 60), +(13039, 55), +(13039, 56), +(13039, 57), +(13039, 58), +(13040, 49), +(13040, 59), +(13040, 50), +(13040, 51), +(13040, 52), +(13040, 53), +(13040, 70), +(13040, 69), +(13040, 71), +(13040, 54), +(13040, 65), +(13040, 67), +(13040, 63), +(13040, 62), +(13040, 66), +(13040, 68), +(13040, 64), +(13040, 61), +(13040, 60), +(13040, 55), +(13040, 56), +(13040, 57), +(13040, 58), +(13042, 49), +(13042, 59), +(13042, 50), +(13042, 51), +(13042, 52), +(13042, 53), +(13042, 70), +(13042, 69), +(13042, 71), +(13042, 54), +(13042, 65), +(13042, 67), +(13042, 63), +(13042, 62), +(13042, 66), +(13042, 68), +(13042, 64), +(13042, 61), +(13042, 60), +(13042, 55), +(13042, 56), +(13042, 57), +(13042, 58), +(13043, 49), +(13043, 59), +(13043, 50), +(13043, 51), +(13043, 52), +(13043, 53), +(13043, 70), +(13043, 69), +(13043, 71), +(13043, 54), +(13043, 65), +(13043, 67), +(13043, 63), +(13043, 62), +(13043, 66), +(13043, 68), +(13043, 64), +(13043, 61), +(13043, 60), +(13043, 55), +(13043, 56), +(13043, 57), +(13043, 58), +(13044, 49), +(13044, 59), +(13044, 50), +(13044, 51), +(13044, 52), +(13044, 53), +(13044, 70), +(13044, 69), +(13044, 71), +(13044, 54), +(13044, 65), +(13044, 67), +(13044, 63), +(13044, 62), +(13044, 66), +(13044, 68), +(13044, 64), +(13044, 61), +(13044, 60), +(13044, 55), +(13044, 56), +(13044, 57), +(13044, 58), +(13046, 49), +(13046, 59), +(13046, 50), +(13046, 51), +(13046, 52), +(13046, 53), +(13046, 70), +(13046, 69), +(13046, 71), +(13046, 54), +(13046, 65), +(13046, 67), +(13046, 63), +(13046, 62), +(13046, 66), +(13046, 68), +(13046, 64), +(13046, 61), +(13046, 60), +(13046, 55), +(13046, 56), +(13046, 57), +(13046, 58), +(13047, 49), +(13047, 59), +(13047, 50), +(13047, 51), +(13047, 52), +(13047, 53), +(13047, 70), +(13047, 69), +(13047, 71), +(13047, 54), +(13047, 65), +(13047, 67), +(13047, 63), +(13047, 62), +(13047, 66), +(13047, 68), +(13047, 64), +(13047, 61), +(13047, 60), +(13047, 55), +(13047, 56), +(13047, 57), +(13047, 58), +(13051, 49), +(13051, 59), +(13051, 50), +(13051, 51), +(13051, 52), +(13051, 53), +(13051, 70), +(13051, 69), +(13051, 71), +(13051, 54), +(13051, 65), +(13051, 67), +(13051, 63), +(13051, 62), +(13051, 66), +(13051, 68), +(13051, 64), +(13051, 61), +(13051, 60), +(13051, 55), +(13051, 56), +(13051, 57), +(13051, 58), +(13053, 49), +(13053, 59), +(13053, 50), +(13053, 51), +(13053, 52), +(13053, 53), +(13053, 70), +(13053, 69), +(13053, 71), +(13053, 54), +(13053, 65), +(13053, 67), +(13053, 63), +(13053, 62), +(13053, 66), +(13053, 68), +(13053, 64), +(13053, 61), +(13053, 60), +(13053, 55), +(13053, 56), +(13053, 57), +(13053, 58), +(13055, 49), +(13055, 59), +(13055, 50), +(13055, 51), +(13055, 52), +(13055, 53), +(13055, 70), +(13055, 69), +(13055, 71), +(13055, 54), +(13055, 65), +(13055, 67), +(13055, 63), +(13055, 62), +(13055, 66), +(13055, 68), +(13055, 64), +(13055, 61), +(13055, 60), +(13055, 55), +(13055, 56), +(13055, 57), +(13055, 58), +(13069, 49), +(13069, 59), +(13069, 50), +(13069, 51), +(13069, 52), +(13069, 53), +(13069, 70), +(13069, 69), +(13069, 71), +(13069, 54), +(13069, 65), +(13069, 67), +(13069, 63), +(13069, 62), +(13069, 66), +(13069, 68), +(13069, 64), +(13069, 61), +(13069, 60), +(13069, 55), +(13069, 56), +(13069, 57), +(13069, 58), +(13071, 49), +(13071, 59), +(13071, 50), +(13071, 51), +(13071, 52), +(13071, 53), +(13071, 70), +(13071, 69), +(13071, 71), +(13071, 54), +(13071, 65), +(13071, 67), +(13071, 63), +(13071, 62), +(13071, 66), +(13071, 68), +(13071, 64), +(13071, 61), +(13071, 60), +(13071, 55), +(13071, 56), +(13071, 57), +(13071, 58), +(13073, 49), +(13073, 59), +(13073, 50), +(13073, 51), +(13073, 52), +(13073, 53), +(13073, 70), +(13073, 69), +(13073, 71), +(13073, 54), +(13073, 65), +(13073, 67), +(13073, 63), +(13073, 62), +(13073, 66), +(13073, 68), +(13073, 64), +(13073, 61), +(13073, 60), +(13073, 55), +(13073, 56), +(13073, 57), +(13073, 58), +(13075, 49), +(13075, 59), +(13075, 50), +(13075, 51), +(13075, 52), +(13075, 53), +(13075, 70), +(13075, 69), +(13075, 71), +(13075, 54), +(13075, 65), +(13075, 67), +(13075, 63), +(13075, 62), +(13075, 66), +(13075, 68), +(13075, 64), +(13075, 61), +(13075, 60), +(13075, 55), +(13075, 56), +(13075, 57), +(13075, 58), +(13077, 49), +(13077, 59), +(13077, 50), +(13077, 51), +(13077, 52), +(13077, 53), +(13077, 70), +(13077, 69), +(13077, 71), +(13077, 54), +(13077, 65), +(13077, 67), +(13077, 63), +(13077, 62), +(13077, 66), +(13077, 68), +(13077, 64), +(13077, 61), +(13077, 60), +(13077, 55), +(13077, 56), +(13077, 57), +(13077, 58), +(13078, 49), +(13078, 59), +(13078, 50), +(13078, 51), +(13078, 52), +(13078, 53), +(13078, 70), +(13078, 69), +(13078, 71), +(13078, 54), +(13078, 65), +(13078, 67), +(13078, 63), +(13078, 62), +(13078, 66), +(13078, 68), +(13078, 64), +(13078, 61), +(13078, 60), +(13078, 55), +(13078, 56), +(13078, 57), +(13078, 58), +(13080, 49), +(13080, 59), +(13080, 50), +(13080, 51), +(13080, 52), +(13080, 53), +(13080, 70), +(13080, 69), +(13080, 71), +(13080, 54), +(13080, 65), +(13080, 67), +(13080, 63), +(13080, 62), +(13080, 66), +(13080, 68), +(13080, 64), +(13080, 61), +(13080, 60), +(13080, 55), +(13080, 56), +(13080, 57), +(13080, 58), +(13082, 49), +(13082, 59), +(13082, 50), +(13082, 51), +(13082, 52), +(13082, 53), +(13082, 70), +(13082, 69), +(13082, 71), +(13082, 54), +(13082, 65), +(13082, 67), +(13082, 63), +(13082, 62), +(13082, 66), +(13082, 68), +(13082, 64), +(13082, 61), +(13082, 60), +(13082, 55), +(13082, 56), +(13082, 57), +(13082, 58), +(13083, 49), +(13083, 59), +(13083, 50), +(13083, 51), +(13083, 52), +(13083, 53), +(13083, 70), +(13083, 69), +(13083, 71), +(13083, 54), +(13083, 65), +(13083, 67), +(13083, 63), +(13083, 62), +(13083, 66), +(13083, 68), +(13083, 64), +(13083, 61), +(13083, 60), +(13083, 55), +(13083, 56), +(13083, 57), +(13083, 58), +(13085, 49), +(13085, 59), +(13085, 50), +(13085, 51), +(13085, 52), +(13085, 53), +(13085, 70), +(13085, 69), +(13085, 71), +(13085, 54), +(13085, 65), +(13085, 67), +(13085, 63), +(13085, 62), +(13085, 66), +(13085, 68), +(13085, 64), +(13085, 61), +(13085, 60), +(13085, 55), +(13085, 56), +(13085, 57), +(13085, 58), +(13087, 49), +(13087, 59), +(13087, 50), +(13087, 51), +(13087, 52), +(13087, 53), +(13087, 70), +(13087, 69), +(13087, 71), +(13087, 54), +(13087, 65), +(13087, 67), +(13087, 63), +(13087, 62), +(13087, 66), +(13087, 68), +(13087, 64), +(13087, 61), +(13087, 60), +(13087, 55), +(13087, 56), +(13087, 57), +(13087, 58), +(13089, 49), +(13089, 59), +(13089, 50), +(13089, 51), +(13089, 52), +(13089, 53), +(13089, 70), +(13089, 69), +(13089, 71), +(13089, 54), +(13089, 65), +(13089, 67), +(13089, 63), +(13089, 62), +(13089, 66), +(13089, 68), +(13089, 64), +(13089, 61), +(13089, 60), +(13089, 55), +(13089, 56), +(13089, 57), +(13089, 58), +(13090, 49), +(13090, 59), +(13090, 50), +(13090, 51), +(13090, 52), +(13090, 53), +(13090, 70), +(13090, 69), +(13090, 71), +(13090, 54), +(13090, 65), +(13090, 67), +(13090, 63), +(13090, 62), +(13090, 66), +(13090, 68), +(13090, 64), +(13090, 61), +(13090, 60), +(13090, 55), +(13090, 56), +(13090, 57), +(13090, 58), +(13092, 49), +(13092, 59), +(13092, 50), +(13092, 51), +(13092, 52), +(13092, 53), +(13092, 70), +(13092, 69), +(13092, 71), +(13092, 54), +(13092, 65), +(13092, 67), +(13092, 63), +(13092, 62), +(13092, 66), +(13092, 68), +(13092, 64), +(13092, 61), +(13092, 60), +(13092, 55), +(13092, 56), +(13092, 57), +(13092, 58), +(13093, 49), +(13093, 59), +(13093, 50), +(13093, 51), +(13093, 52), +(13093, 53), +(13093, 70), +(13093, 69), +(13093, 71), +(13093, 54), +(13093, 65), +(13093, 67), +(13093, 63), +(13093, 62), +(13093, 66), +(13093, 68), +(13093, 64), +(13093, 61), +(13093, 60), +(13093, 55), +(13093, 56), +(13093, 57), +(13093, 58), +(13095, 49), +(13095, 59), +(13095, 50), +(13095, 51), +(13095, 52), +(13095, 53), +(13095, 70), +(13095, 69), +(13095, 71), +(13095, 54), +(13095, 65), +(13095, 67), +(13095, 63), +(13095, 62), +(13095, 66), +(13095, 68), +(13095, 64), +(13095, 61), +(13095, 60), +(13095, 55), +(13095, 56), +(13095, 57), +(13095, 58), +(13099, 49), +(13099, 59), +(13099, 50), +(13099, 51), +(13099, 52), +(13099, 53), +(13099, 70), +(13099, 69), +(13099, 71), +(13099, 54), +(13099, 65), +(13099, 67), +(13099, 63), +(13099, 62), +(13099, 66), +(13099, 68), +(13099, 64), +(13099, 61), +(13099, 60), +(13099, 55), +(13099, 56), +(13099, 57), +(13099, 58), +(13101, 49), +(13101, 59), +(13101, 50), +(13101, 51), +(13101, 52), +(13101, 53), +(13101, 70), +(13101, 69), +(13101, 71), +(13101, 54), +(13101, 65), +(13101, 67), +(13101, 63), +(13101, 62), +(13101, 66), +(13101, 68), +(13101, 64), +(13101, 61), +(13101, 60), +(13101, 55), +(13101, 56), +(13101, 57), +(13101, 58), +(13102, 50), +(13102, 52), +(13102, 53), +(13102, 54), +(13102, 56), +(13102, 57), +(13102, 58), +(13107, 50), +(13107, 52), +(13107, 53), +(13107, 54), +(13107, 55), +(13107, 56), +(13107, 57), +(13107, 58), +(13109, 50), +(13109, 51), +(13109, 52), +(13109, 53), +(13109, 54), +(13109, 55), +(13109, 56), +(13109, 57), +(13109, 58), +(13111, 50), +(13111, 51), +(13111, 52), +(13111, 53), +(13111, 54), +(13111, 55), +(13111, 56), +(13111, 57), +(13111, 58), +(13113, 50), +(13113, 51), +(13113, 52), +(13113, 53), +(13113, 54), +(13113, 55), +(13113, 56), +(13113, 57), +(13113, 58), +(13115, 52), +(13115, 53), +(13115, 54), +(13115, 56), +(13115, 57), +(13115, 58), +(13117, 53), +(13117, 54), +(13117, 56), +(13117, 57), +(13117, 58), +(13119, 54), +(13119, 57), +(13119, 58), +(13120, 54), +(13120, 57), +(13120, 58), +(13122, 54), +(13122, 57), +(13122, 58), +(13129, 54), +(13129, 57), +(13129, 58), +(13130, 54), +(13130, 57), +(13130, 58), +(13131, 54), +(13131, 57), +(13131, 58), +(13132, 54), +(13132, 57), +(13132, 58), +(13134, 54), +(13134, 57), +(13134, 58), +(13135, 56), +(13137, 56), +(13138, 56), +(13140, 57), +(13143, 57), +(13144, 57), +(96130, 106), +(96134, 106), +(96137, 106), +(96139, 106), +(96139, 107), +(96139, 108), +(96142, 106), +(96142, 107), +(96142, 108), +(96147, 106), +(96147, 107), +(96147, 108), +(96152, 106), +(96152, 107), +(96152, 108), +(96153, 106), +(96153, 107), +(96153, 108), +(96155, 106), +(96155, 107), +(96155, 108), +(96156, 106), +(96156, 107), +(96156, 108), +(96159, 106), +(96159, 107), +(96159, 108), +(96160, 106), +(96160, 107), +(96160, 108), +(96161, 106), +(96161, 107), +(96161, 108), +(96165, 106), +(96165, 107), +(96165, 108), +(96166, 106), +(96166, 107), +(96166, 108), +(96167, 106), +(96167, 107), +(96167, 108), +(96168, 106), +(96168, 107), +(96168, 108), +(96169, 106), +(96169, 107), +(96169, 108), +(96175, 106), +(96175, 109), +(96175, 107), +(96175, 108), +(96178, 106), +(96178, 109), +(96178, 107), +(96178, 108), +(96183, 106), +(96183, 109), +(96183, 107), +(96183, 108), +(96194, 106), +(96194, 109), +(96194, 107), +(96194, 108), +(96195, 106), +(96195, 109), +(96195, 107), +(96195, 108), +(96196, 106), +(96196, 109), +(96196, 107), +(96196, 108), +(96197, 106), +(96197, 109), +(96197, 107), +(96197, 108), +(96203, 106), +(96203, 109), +(96203, 107), +(96203, 108), +(96204, 106), +(96204, 109), +(96204, 107), +(96204, 108), +(96209, 106), +(96209, 109), +(96209, 107), +(96209, 108), +(96210, 106), +(96210, 109), +(96210, 107), +(96210, 108), +(96214, 106), +(96214, 109), +(96214, 107), +(96214, 108), +(96215, 106), +(96215, 109), +(96215, 107), +(96215, 108), +(96216, 106), +(96216, 110), +(96216, 109), +(96216, 107), +(96216, 108), +(96217, 106), +(96217, 110), +(96217, 109), +(96217, 107), +(96217, 108), +(96219, 106), +(96219, 110), +(96219, 109), +(96219, 107), +(96219, 108), +(96220, 106), +(96220, 110), +(96220, 109), +(96220, 107), +(96220, 108), +(96221, 106), +(96221, 110), +(96221, 111), +(96221, 109), +(96221, 107), +(96221, 108), +(96222, 106), +(96222, 110), +(96222, 111), +(96222, 109), +(96222, 112), +(96222, 107), +(96222, 108), +(96258, 106), +(96258, 110), +(96258, 111), +(96258, 109), +(96258, 112), +(96258, 107), +(96258, 108), +(96259, 106), +(96259, 110), +(96259, 111), +(96259, 109), +(96259, 112), +(96259, 107), +(96259, 108), +(96260, 106), +(96260, 110), +(96260, 111), +(96260, 109), +(96260, 112), +(96260, 107), +(96260, 108), +(96266, 106), +(96266, 110), +(96266, 111), +(96266, 109), +(96266, 112), +(96266, 107), +(96266, 108), +(96267, 106), +(96267, 110), +(96267, 111), +(96267, 109), +(96267, 112), +(96267, 107), +(96267, 108), +(96268, 106), +(96268, 110), +(96268, 111), +(96268, 109), +(96268, 112), +(96268, 107), +(96268, 108), +(96269, 106), +(96269, 110), +(96269, 111), +(96269, 109), +(96269, 112), +(96269, 107), +(96269, 108), +(96270, 106), +(96270, 110), +(96270, 111), +(96270, 109), +(96270, 112), +(96270, 107), +(96270, 108), +(96271, 106), +(96271, 110), +(96271, 111), +(96271, 109), +(96271, 112), +(96271, 107), +(96271, 108), +(96272, 106), +(96272, 110), +(96272, 111), +(96272, 109), +(96272, 112), +(96272, 107), +(96272, 108), +(96273, 106), +(96273, 110), +(96273, 111), +(96273, 109), +(96273, 112), +(96273, 107), +(96273, 108), +(96274, 106), +(96274, 110), +(96274, 111), +(96274, 109), +(96274, 112), +(96274, 107), +(96274, 108), +(96275, 106), +(96275, 110), +(96275, 111), +(96275, 109), +(96275, 112), +(96275, 107), +(96275, 108), +(96276, 106), +(96276, 110), +(96276, 111), +(96276, 109), +(96276, 112), +(96276, 107), +(96276, 108), +(96277, 106), +(96277, 110), +(96277, 111), +(96277, 109), +(96277, 112), +(96277, 107), +(96277, 108), +(96278, 106), +(96278, 110), +(96278, 111), +(96278, 109), +(96278, 112), +(96278, 107), +(96278, 108), +(96279, 106), +(96279, 110), +(96279, 111), +(96279, 109), +(96279, 112), +(96279, 107), +(96279, 108), +(96280, 106), +(96280, 110), +(96280, 111), +(96280, 109), +(96280, 112), +(96280, 107), +(96280, 108), +(96281, 106), +(96281, 110), +(96281, 113), +(96281, 111), +(96281, 109), +(96281, 112), +(96281, 114), +(96281, 107), +(96281, 108), +(96281, 115), +(96282, 106), +(96282, 110), +(96282, 113), +(96282, 111), +(96282, 109), +(96282, 112), +(96282, 114), +(96282, 107), +(96282, 108), +(96282, 115), +(96283, 106), +(96283, 110), +(96283, 116), +(96283, 113), +(96283, 111), +(96283, 109), +(96283, 112), +(96283, 114), +(96283, 107), +(96283, 108), +(96283, 115), +(96284, 106), +(96284, 110), +(96284, 116), +(96284, 113), +(96284, 111), +(96284, 109), +(96284, 112), +(96284, 114), +(96284, 107), +(96284, 108), +(96284, 115), +(96291, 106), +(96291, 110), +(96291, 116), +(96291, 113), +(96291, 111), +(96291, 109), +(96291, 112), +(96291, 114), +(96291, 107), +(96291, 108), +(96291, 115), +(96292, 106), +(96292, 110), +(96292, 116), +(96292, 113), +(96292, 111), +(96292, 109), +(96292, 112), +(96292, 114), +(96292, 107), +(96292, 108), +(96292, 115), +(96293, 106), +(96293, 110), +(96293, 116), +(96293, 113), +(96293, 111), +(96293, 109), +(96293, 112), +(96293, 114), +(96293, 107), +(96293, 108), +(96293, 115), +(96294, 106), +(96294, 110), +(96294, 116), +(96294, 113), +(96294, 111), +(96294, 109), +(96294, 112), +(96294, 114), +(96294, 107), +(96294, 108), +(96294, 115), +(96295, 106), +(96295, 110), +(96295, 116), +(96295, 113), +(96295, 111), +(96295, 109), +(96295, 112), +(96295, 114), +(96295, 107), +(96295, 108), +(96295, 115), +(96296, 106), +(96296, 110), +(96296, 116), +(96296, 113), +(96296, 111), +(96296, 109), +(96296, 112), +(96296, 114), +(96296, 107), +(96296, 108), +(96296, 115), +(96297, 106), +(96297, 110), +(96297, 116), +(96297, 113), +(96297, 111), +(96297, 109), +(96297, 112), +(96297, 114), +(96297, 107), +(96297, 108), +(96297, 115), +(96298, 106), +(96298, 110), +(96298, 116), +(96298, 113), +(96298, 111), +(96298, 109), +(96298, 112), +(96298, 114), +(96298, 107), +(96298, 108), +(96298, 115), +(96299, 106), +(96299, 110), +(96299, 116), +(96299, 113), +(96299, 111), +(96299, 109), +(96299, 112), +(96299, 114), +(96299, 107), +(96299, 108), +(96299, 115), +(96300, 106), +(96300, 110), +(96300, 116), +(96300, 113), +(96300, 111), +(96300, 109), +(96300, 112), +(96300, 114), +(96300, 107), +(96300, 108), +(96300, 115), +(96301, 106), +(96301, 110), +(96301, 116), +(96301, 113), +(96301, 111), +(96301, 109), +(96301, 112), +(96301, 114), +(96301, 107), +(96301, 108), +(96301, 115), +(96302, 106), +(96302, 110), +(96302, 116), +(96302, 113), +(96302, 111), +(96302, 109), +(96302, 112), +(96302, 114), +(96302, 107), +(96302, 108), +(96302, 115), +(96303, 106), +(96303, 110), +(96303, 116), +(96303, 113), +(96303, 111), +(96303, 109), +(96303, 112), +(96303, 114), +(96303, 107), +(96303, 108), +(96303, 115), +(96304, 106), +(96304, 110), +(96304, 116), +(96304, 113), +(96304, 111), +(96304, 109), +(96304, 112), +(96304, 114), +(96304, 107), +(96304, 108), +(96304, 115), +(96305, 106), +(96305, 110), +(96305, 116), +(96305, 113), +(96305, 111), +(96305, 109), +(96305, 112), +(96305, 114), +(96305, 107), +(96305, 108), +(96305, 115), +(96306, 106), +(96306, 110), +(96306, 116), +(96306, 113), +(96306, 111), +(96306, 109), +(96306, 112), +(96306, 114), +(96306, 107), +(96306, 108), +(96306, 115), +(96307, 106), +(96307, 110), +(96307, 116), +(96307, 113), +(96307, 111), +(96307, 109), +(96307, 112), +(96307, 114), +(96307, 107), +(96307, 108), +(96307, 115), +(96308, 106), +(96308, 110), +(96308, 116), +(96308, 113), +(96308, 111), +(96308, 109), +(96308, 112), +(96308, 114), +(96308, 107), +(96308, 108), +(96308, 115), +(96309, 106), +(96309, 110), +(96309, 116), +(96309, 113), +(96309, 111), +(96309, 109), +(96309, 112), +(96309, 114), +(96309, 107), +(96309, 108), +(96309, 115), +(96310, 106), +(96310, 110), +(96310, 116), +(96310, 113), +(96310, 111), +(96310, 109), +(96310, 112), +(96310, 114), +(96310, 107), +(96310, 108), +(96310, 115), +(96311, 106), +(96311, 110), +(96311, 116), +(96311, 113), +(96311, 111), +(96311, 109), +(96311, 112), +(96311, 114), +(96311, 107), +(96311, 108), +(96311, 115), +(96312, 106), +(96312, 110), +(96312, 116), +(96312, 113), +(96312, 111), +(96312, 109), +(96312, 112), +(96312, 114), +(96312, 107), +(96312, 108), +(96312, 115), +(96313, 106), +(96313, 110), +(96313, 116), +(96313, 113), +(96313, 111), +(96313, 109), +(96313, 112), +(96313, 114), +(96313, 107), +(96313, 108), +(96313, 115), +(96314, 106), +(96314, 110), +(96314, 116), +(96314, 113), +(96314, 111), +(96314, 109), +(96314, 112), +(96314, 114), +(96314, 107), +(96314, 108), +(96314, 115), +(96315, 106), +(96315, 110), +(96315, 116), +(96315, 113), +(96315, 111), +(96315, 109), +(96315, 112), +(96315, 114), +(96315, 107), +(96315, 108), +(96315, 115), +(96315, 117), +(96315, 118), +(96316, 106), +(96316, 110), +(96316, 116), +(96316, 113), +(96316, 111), +(96316, 109), +(96316, 112), +(96316, 114), +(96316, 107), +(96316, 108), +(96316, 115), +(96316, 117), +(96316, 118), +(96317, 106), +(96317, 110), +(96317, 116), +(96317, 113), +(96317, 111), +(96317, 109), +(96317, 112), +(96317, 114), +(96317, 107), +(96317, 108), +(96317, 115), +(96317, 117), +(96317, 118), +(96318, 106), +(96318, 110), +(96318, 116), +(96318, 113), +(96318, 111), +(96318, 109), +(96318, 112), +(96318, 114), +(96318, 107), +(96318, 108), +(96318, 115), +(96318, 117), +(96318, 118), +(96319, 106), +(96319, 110), +(96319, 116), +(96319, 113), +(96319, 111), +(96319, 109), +(96319, 112), +(96319, 114), +(96319, 107), +(96319, 108), +(96319, 115), +(96319, 117), +(96319, 118), +(96320, 106), +(96320, 110), +(96320, 116), +(96320, 113), +(96320, 111), +(96320, 109), +(96320, 119), +(96320, 112), +(96320, 114), +(96320, 107), +(96320, 108), +(96320, 115), +(96320, 120), +(96320, 117), +(96320, 118), +(96321, 106), +(96321, 110), +(96321, 116), +(96321, 113), +(96321, 111), +(96321, 109), +(96321, 119), +(96321, 112), +(96321, 114), +(96321, 107), +(96321, 108), +(96321, 115), +(96321, 120), +(96321, 117), +(96321, 118), +(96322, 106), +(96322, 110), +(96322, 116), +(96322, 113), +(96322, 111), +(96322, 109), +(96322, 119), +(96322, 112), +(96322, 114), +(96322, 107), +(96322, 108), +(96322, 115), +(96322, 120), +(96322, 117), +(96322, 118), +(96324, 106), +(96324, 110), +(96324, 121), +(96324, 116), +(96324, 113), +(96324, 111), +(96324, 109), +(96324, 119), +(96324, 112), +(96324, 114), +(96324, 107), +(96324, 108), +(96324, 115), +(96324, 120), +(96324, 117), +(96324, 118), +(96325, 106), +(96325, 110), +(96325, 121), +(96325, 116), +(96325, 113), +(96325, 111), +(96325, 109), +(96325, 119), +(96325, 112), +(96325, 114), +(96325, 107), +(96325, 108), +(96325, 115), +(96325, 120), +(96325, 117), +(96325, 118), +(96326, 106), +(96326, 110), +(96326, 121), +(96326, 116), +(96326, 113), +(96326, 111), +(96326, 109), +(96326, 119), +(96326, 112), +(96326, 114), +(96326, 107), +(96326, 108), +(96326, 115), +(96326, 122), +(96326, 120), +(96326, 117), +(96326, 118), +(96327, 106), +(96327, 110), +(96327, 121), +(96327, 116), +(96327, 113), +(96327, 111), +(96327, 109), +(96327, 119), +(96327, 112), +(96327, 114), +(96327, 107), +(96327, 108), +(96327, 115), +(96327, 122), +(96327, 120), +(96327, 117), +(96327, 118), +(96328, 106), +(96328, 110), +(96328, 121), +(96328, 116), +(96328, 113), +(96328, 111), +(96328, 109), +(96328, 119), +(96328, 112), +(96328, 114), +(96328, 107), +(96328, 108), +(96328, 115), +(96328, 122), +(96328, 120), +(96328, 117), +(96328, 118), +(96329, 106), +(96329, 110), +(96329, 121), +(96329, 116), +(96329, 113), +(96329, 111), +(96329, 109), +(96329, 119), +(96329, 112), +(96329, 114), +(96329, 107), +(96329, 108), +(96329, 115), +(96329, 122), +(96329, 120), +(96329, 117), +(96329, 118), +(96330, 106), +(96330, 110), +(96330, 121), +(96330, 116), +(96330, 113), +(96330, 111), +(96330, 109), +(96330, 119), +(96330, 112), +(96330, 114), +(96330, 107), +(96330, 108), +(96330, 115), +(96330, 122), +(96330, 120), +(96330, 117), +(96330, 118), +(96331, 106), +(96331, 110), +(96331, 121), +(96331, 116), +(96331, 113), +(96331, 111), +(96331, 109), +(96331, 119), +(96331, 112), +(96331, 114), +(96331, 107), +(96331, 108), +(96331, 115), +(96331, 122), +(96331, 120), +(96331, 117), +(96331, 118), +(96333, 106), +(96333, 110), +(96333, 121), +(96333, 116), +(96333, 113), +(96333, 111), +(96333, 109), +(96333, 119), +(96333, 112), +(96333, 114), +(96333, 107), +(96333, 108), +(96333, 115), +(96333, 122), +(96333, 120), +(96333, 117), +(96333, 118), +(96334, 106), +(96334, 110), +(96334, 121), +(96334, 116), +(96334, 113), +(96334, 111), +(96334, 109), +(96334, 119), +(96334, 112), +(96334, 114), +(96334, 107), +(96334, 108), +(96334, 115), +(96334, 122), +(96334, 120), +(96334, 117), +(96334, 118), +(96335, 106), +(96335, 110), +(96335, 121), +(96335, 116), +(96335, 113), +(96335, 111), +(96335, 109), +(96335, 119), +(96335, 112), +(96335, 114), +(96335, 107), +(96335, 108), +(96335, 115), +(96335, 122), +(96335, 120), +(96335, 117), +(96335, 118), +(96336, 106), +(96336, 110), +(96336, 121), +(96336, 116), +(96336, 113), +(96336, 111), +(96336, 109), +(96336, 119), +(96336, 112), +(96336, 114), +(96336, 107), +(96336, 108), +(96336, 115), +(96336, 122), +(96336, 120), +(96336, 117), +(96336, 118), +(96337, 106), +(96337, 110), +(96337, 121), +(96337, 116), +(96337, 113), +(96337, 111), +(96337, 109), +(96337, 119), +(96337, 112), +(96337, 114), +(96337, 107), +(96337, 108), +(96337, 115), +(96337, 122), +(96337, 120), +(96337, 117), +(96337, 118), +(96338, 106), +(96338, 110), +(96338, 121), +(96338, 116), +(96338, 113), +(96338, 111), +(96338, 109), +(96338, 123), +(96338, 119), +(96338, 112), +(96338, 114), +(96338, 107), +(96338, 108), +(96338, 115), +(96338, 122), +(96338, 120), +(96338, 117), +(96338, 118), +(96339, 106), +(96339, 110), +(96339, 121), +(96339, 116), +(96339, 113), +(96339, 111), +(96339, 109), +(96339, 123), +(96339, 119), +(96339, 112), +(96339, 114), +(96339, 107), +(96339, 108), +(96339, 115), +(96339, 122), +(96339, 120), +(96339, 117), +(96339, 118), +(96341, 106), +(96341, 110), +(96341, 121), +(96341, 116), +(96341, 113), +(96341, 111), +(96341, 109), +(96341, 123), +(96341, 119), +(96341, 112), +(96341, 114), +(96341, 107), +(96341, 108), +(96341, 115), +(96341, 122), +(96341, 120), +(96341, 117), +(96341, 118), +(96342, 106), +(96342, 110), +(96342, 121), +(96342, 116), +(96342, 113), +(96342, 111), +(96342, 109), +(96342, 123), +(96342, 119), +(96342, 112); +INSERT INTO `configuration_branch` (`configurationId`, `branchId`) VALUES +(96342, 114), +(96342, 107), +(96342, 108), +(96342, 115), +(96342, 122), +(96342, 120), +(96342, 117), +(96342, 118), +(96343, 106), +(96343, 110), +(96343, 121), +(96343, 116), +(96343, 113), +(96343, 111), +(96343, 109), +(96343, 123), +(96343, 119), +(96343, 112), +(96343, 114), +(96343, 107), +(96343, 108), +(96343, 115), +(96343, 122), +(96343, 120), +(96343, 117), +(96343, 118), +(96344, 106), +(96344, 110), +(96344, 121), +(96344, 116), +(96344, 113), +(96344, 111), +(96344, 109), +(96344, 123), +(96344, 119), +(96344, 112), +(96344, 114), +(96344, 107), +(96344, 108), +(96344, 115), +(96344, 122), +(96344, 120), +(96344, 117), +(96344, 118), +(96345, 106), +(96345, 110), +(96345, 121), +(96345, 116), +(96345, 113), +(96345, 111), +(96345, 109), +(96345, 123), +(96345, 119), +(96345, 112), +(96345, 114), +(96345, 107), +(96345, 108), +(96345, 115), +(96345, 122), +(96345, 120), +(96345, 117), +(96345, 118), +(96347, 106), +(96347, 110), +(96347, 121), +(96347, 116), +(96347, 113), +(96347, 111), +(96347, 109), +(96347, 123), +(96347, 119), +(96347, 112), +(96347, 114), +(96347, 107), +(96347, 108), +(96347, 115), +(96347, 122), +(96347, 120), +(96347, 117), +(96347, 118), +(96348, 106), +(96348, 110), +(96348, 121), +(96348, 116), +(96348, 113), +(96348, 111), +(96348, 109), +(96348, 123), +(96348, 119), +(96348, 112), +(96348, 114), +(96348, 107), +(96348, 108), +(96348, 115), +(96348, 122), +(96348, 120), +(96348, 117), +(96348, 118), +(96349, 106), +(96349, 110), +(96349, 121), +(96349, 116), +(96349, 113), +(96349, 111), +(96349, 109), +(96349, 123), +(96349, 119), +(96349, 112), +(96349, 114), +(96349, 107), +(96349, 108), +(96349, 115), +(96349, 122), +(96349, 120), +(96349, 117), +(96349, 118), +(96350, 106), +(96350, 110), +(96350, 121), +(96350, 116), +(96350, 113), +(96350, 111), +(96350, 109), +(96350, 123), +(96350, 119), +(96350, 112), +(96350, 114), +(96350, 107), +(96350, 108), +(96350, 115), +(96350, 122), +(96350, 120), +(96350, 117), +(96350, 118), +(96351, 106), +(96351, 110), +(96351, 121), +(96351, 116), +(96351, 113), +(96351, 111), +(96351, 109), +(96351, 123), +(96351, 119), +(96351, 112), +(96351, 114), +(96351, 107), +(96351, 108), +(96351, 115), +(96351, 122), +(96351, 120), +(96351, 117), +(96351, 118), +(96352, 106), +(96352, 110), +(96352, 121), +(96352, 116), +(96352, 113), +(96352, 111), +(96352, 109), +(96352, 123), +(96352, 119), +(96352, 112), +(96352, 114), +(96352, 107), +(96352, 108), +(96352, 115), +(96352, 122), +(96352, 120), +(96352, 117), +(96352, 118), +(96353, 106), +(96353, 110), +(96353, 121), +(96353, 116), +(96353, 113), +(96353, 111), +(96353, 109), +(96353, 123), +(96353, 119), +(96353, 112), +(96353, 114), +(96353, 107), +(96353, 108), +(96353, 115), +(96353, 122), +(96353, 120), +(96353, 117), +(96353, 118), +(96354, 106), +(96354, 110), +(96354, 121), +(96354, 116), +(96354, 113), +(96354, 111), +(96354, 109), +(96354, 123), +(96354, 119), +(96354, 112), +(96354, 114), +(96354, 107), +(96354, 108), +(96354, 115), +(96354, 122), +(96354, 120), +(96354, 117), +(96354, 118), +(96355, 106), +(96355, 110), +(96355, 121), +(96355, 116), +(96355, 113), +(96355, 111), +(96355, 109), +(96355, 123), +(96355, 119), +(96355, 112), +(96355, 114), +(96355, 107), +(96355, 108), +(96355, 115), +(96355, 122), +(96355, 120), +(96355, 117), +(96355, 118), +(96356, 106), +(96356, 110), +(96356, 121), +(96356, 116), +(96356, 113), +(96356, 111), +(96356, 109), +(96356, 123), +(96356, 119), +(96356, 112), +(96356, 114), +(96356, 107), +(96356, 108), +(96356, 115), +(96356, 122), +(96356, 120), +(96356, 117), +(96356, 118), +(96357, 106), +(96357, 110), +(96357, 121), +(96357, 116), +(96357, 113), +(96357, 111), +(96357, 124), +(96357, 109), +(96357, 123), +(96357, 119), +(96357, 112), +(96357, 114), +(96357, 107), +(96357, 108), +(96357, 115), +(96357, 122), +(96357, 120), +(96357, 117), +(96357, 118), +(96358, 106), +(96358, 110), +(96358, 121), +(96358, 116), +(96358, 113), +(96358, 111), +(96358, 124), +(96358, 109), +(96358, 123), +(96358, 119), +(96358, 112), +(96358, 114), +(96358, 107), +(96358, 108), +(96358, 115), +(96358, 122), +(96358, 120), +(96358, 117), +(96358, 118), +(96359, 106), +(96359, 110), +(96359, 121), +(96359, 116), +(96359, 113), +(96359, 111), +(96359, 124), +(96359, 109), +(96359, 123), +(96359, 119), +(96359, 112), +(96359, 114), +(96359, 107), +(96359, 108), +(96359, 115), +(96359, 122), +(96359, 120), +(96359, 117), +(96359, 118), +(96360, 106), +(96360, 110), +(96360, 121), +(96360, 116), +(96360, 113), +(96360, 111), +(96360, 124), +(96360, 109), +(96360, 123), +(96360, 119), +(96360, 112), +(96360, 114), +(96360, 107), +(96360, 108), +(96360, 115), +(96360, 122), +(96360, 120), +(96360, 117), +(96360, 118), +(96363, 106), +(96363, 110), +(96363, 121), +(96363, 116), +(96363, 113), +(96363, 111), +(96363, 124), +(96363, 109), +(96363, 123), +(96363, 119), +(96363, 112), +(96363, 114), +(96363, 107), +(96363, 108), +(96363, 115), +(96363, 122), +(96363, 120), +(96363, 117), +(96363, 118), +(96364, 106), +(96364, 110), +(96364, 121), +(96364, 116), +(96364, 113), +(96364, 111), +(96364, 124), +(96364, 109), +(96364, 123), +(96364, 119), +(96364, 112), +(96364, 114), +(96364, 107), +(96364, 108), +(96364, 115), +(96364, 122), +(96364, 120), +(96364, 117), +(96364, 118), +(96365, 106), +(96365, 110), +(96365, 121), +(96365, 116), +(96365, 113), +(96365, 111), +(96365, 124), +(96365, 109), +(96365, 123), +(96365, 119), +(96365, 112), +(96365, 114), +(96365, 107), +(96365, 108), +(96365, 115), +(96365, 122), +(96365, 120), +(96365, 117), +(96365, 118), +(96366, 106), +(96366, 110), +(96366, 121), +(96366, 116), +(96366, 113), +(96366, 111), +(96366, 124), +(96366, 109), +(96366, 123), +(96366, 119), +(96366, 112), +(96366, 114), +(96366, 107), +(96366, 108), +(96366, 115), +(96366, 122), +(96366, 120), +(96366, 117), +(96366, 118), +(96367, 106), +(96367, 110), +(96367, 121), +(96367, 116), +(96367, 113), +(96367, 111), +(96367, 124), +(96367, 109), +(96367, 123), +(96367, 119), +(96367, 112), +(96367, 114), +(96367, 107), +(96367, 108), +(96367, 115), +(96367, 122), +(96367, 120), +(96367, 117), +(96367, 118), +(96368, 106), +(96368, 110), +(96368, 121), +(96368, 116), +(96368, 113), +(96368, 111), +(96368, 124), +(96368, 109), +(96368, 123), +(96368, 119), +(96368, 112), +(96368, 114), +(96368, 107), +(96368, 108), +(96368, 115), +(96368, 122), +(96368, 120), +(96368, 117), +(96368, 118), +(96369, 106), +(96369, 110), +(96369, 121), +(96369, 116), +(96369, 113), +(96369, 111), +(96369, 124), +(96369, 109), +(96369, 123), +(96369, 119), +(96369, 112), +(96369, 114), +(96369, 107), +(96369, 108), +(96369, 115), +(96369, 122), +(96369, 120), +(96369, 117), +(96369, 118), +(96370, 106), +(96370, 110), +(96370, 121), +(96370, 116), +(96370, 113), +(96370, 111), +(96370, 124), +(96370, 109), +(96370, 123), +(96370, 119), +(96370, 112), +(96370, 114), +(96370, 107), +(96370, 108), +(96370, 115), +(96370, 122), +(96370, 120), +(96370, 117), +(96370, 118), +(96373, 106), +(96373, 110), +(96373, 121), +(96373, 116), +(96373, 113), +(96373, 111), +(96373, 124), +(96373, 109), +(96373, 123), +(96373, 119), +(96373, 112), +(96373, 114), +(96373, 107), +(96373, 108), +(96373, 115), +(96373, 122), +(96373, 120), +(96373, 117), +(96373, 118), +(96374, 106), +(96374, 110), +(96374, 121), +(96374, 116), +(96374, 113), +(96374, 111), +(96374, 124), +(96374, 109), +(96374, 123), +(96374, 119), +(96374, 112), +(96374, 114), +(96374, 107), +(96374, 108), +(96374, 115), +(96374, 122), +(96374, 120), +(96374, 117), +(96374, 118), +(96392, 106), +(96392, 110), +(96392, 121), +(96392, 116), +(96392, 113), +(96392, 111), +(96392, 125), +(96392, 124), +(96392, 109), +(96392, 123), +(96392, 119), +(96392, 112), +(96392, 114), +(96392, 107), +(96392, 108), +(96392, 115), +(96392, 122), +(96392, 120), +(96392, 117), +(96392, 118), +(96393, 106), +(96393, 110), +(96393, 121), +(96393, 116), +(96393, 113), +(96393, 111), +(96393, 126), +(96393, 125), +(96393, 124), +(96393, 109), +(96393, 123), +(96393, 119), +(96393, 112), +(96393, 114), +(96393, 107), +(96393, 108), +(96393, 115), +(96393, 122), +(96393, 120), +(96393, 117), +(96393, 118), +(96394, 106), +(96394, 110), +(96394, 121), +(96394, 116), +(96394, 113), +(96394, 111), +(96394, 126), +(96394, 125), +(96394, 124), +(96394, 109), +(96394, 123), +(96394, 119), +(96394, 112), +(96394, 114), +(96394, 107), +(96394, 108), +(96394, 115), +(96394, 122), +(96394, 120), +(96394, 117), +(96394, 118), +(96395, 106), +(96395, 110), +(96395, 121), +(96395, 116), +(96395, 113), +(96395, 111), +(96395, 126), +(96395, 125), +(96395, 124), +(96395, 109), +(96395, 123), +(96395, 119), +(96395, 112), +(96395, 114), +(96395, 107), +(96395, 108), +(96395, 115), +(96395, 122), +(96395, 120), +(96395, 117), +(96395, 118), +(96396, 106), +(96396, 110), +(96396, 121), +(96396, 116), +(96396, 113), +(96396, 111), +(96396, 126), +(96396, 125), +(96396, 124), +(96396, 109), +(96396, 123), +(96396, 119), +(96396, 112), +(96396, 114), +(96396, 107), +(96396, 108), +(96396, 115), +(96396, 122), +(96396, 120), +(96396, 117), +(96396, 118), +(96397, 106), +(96397, 110), +(96397, 121), +(96397, 116), +(96397, 113), +(96397, 111), +(96397, 126), +(96397, 125), +(96397, 124), +(96397, 109), +(96397, 123), +(96397, 119), +(96397, 112), +(96397, 114), +(96397, 107), +(96397, 108), +(96397, 115), +(96397, 122), +(96397, 120), +(96397, 117), +(96397, 118), +(96398, 106), +(96398, 110), +(96398, 121), +(96398, 116), +(96398, 113), +(96398, 111), +(96398, 126), +(96398, 125), +(96398, 124), +(96398, 109), +(96398, 123), +(96398, 119), +(96398, 112), +(96398, 114), +(96398, 107), +(96398, 108), +(96398, 115), +(96398, 122), +(96398, 120), +(96398, 117), +(96398, 118), +(96399, 106), +(96399, 110), +(96399, 121), +(96399, 116), +(96399, 113), +(96399, 111), +(96399, 126), +(96399, 125), +(96399, 124), +(96399, 109), +(96399, 123), +(96399, 119), +(96399, 112), +(96399, 114), +(96399, 107), +(96399, 108), +(96399, 115), +(96399, 122), +(96399, 120), +(96399, 117), +(96399, 118), +(96400, 106), +(96400, 110), +(96400, 121), +(96400, 116), +(96400, 113), +(96400, 111), +(96400, 126), +(96400, 125), +(96400, 124), +(96400, 109), +(96400, 123), +(96400, 119), +(96400, 112), +(96400, 114), +(96400, 107), +(96400, 108), +(96400, 115), +(96400, 122), +(96400, 120), +(96400, 117), +(96400, 118), +(96401, 106), +(96401, 110), +(96401, 121), +(96401, 116), +(96401, 113), +(96401, 111), +(96401, 126), +(96401, 125), +(96401, 124), +(96401, 109), +(96401, 123), +(96401, 119), +(96401, 112), +(96401, 114), +(96401, 107), +(96401, 108), +(96401, 115), +(96401, 122), +(96401, 120), +(96401, 117), +(96401, 118), +(96402, 106), +(96402, 110), +(96402, 121), +(96402, 116), +(96402, 113), +(96402, 111), +(96402, 126), +(96402, 125), +(96402, 124), +(96402, 109), +(96402, 123), +(96402, 119), +(96402, 112), +(96402, 114), +(96402, 107), +(96402, 108), +(96402, 115), +(96402, 122), +(96402, 120), +(96402, 117), +(96402, 118), +(96403, 106), +(96403, 110), +(96403, 121), +(96403, 116), +(96403, 113), +(96403, 111), +(96403, 126), +(96403, 125), +(96403, 124), +(96403, 109), +(96403, 123), +(96403, 119), +(96403, 112), +(96403, 114), +(96403, 107), +(96403, 108), +(96403, 115), +(96403, 122), +(96403, 120), +(96403, 117), +(96403, 118), +(96404, 106), +(96404, 110), +(96404, 121), +(96404, 116), +(96404, 113), +(96404, 111), +(96404, 126), +(96404, 125), +(96404, 124), +(96404, 109), +(96404, 123), +(96404, 119), +(96404, 112), +(96404, 114), +(96404, 107), +(96404, 108), +(96404, 115), +(96404, 122), +(96404, 120), +(96404, 117), +(96404, 118), +(96407, 106), +(96407, 110), +(96407, 121), +(96407, 116), +(96407, 113), +(96407, 111), +(96407, 126), +(96407, 125), +(96407, 124), +(96407, 109), +(96407, 123), +(96407, 119), +(96407, 112), +(96407, 114), +(96407, 107), +(96407, 108), +(96407, 115), +(96407, 122), +(96407, 120), +(96407, 117), +(96407, 118), +(96408, 106), +(96408, 110), +(96408, 121), +(96408, 116), +(96408, 113), +(96408, 111), +(96408, 126), +(96408, 125), +(96408, 124), +(96408, 109), +(96408, 123), +(96408, 119), +(96408, 112), +(96408, 114), +(96408, 107), +(96408, 108), +(96408, 115), +(96408, 122), +(96408, 120), +(96408, 117), +(96408, 118), +(96409, 106), +(96409, 110), +(96409, 121), +(96409, 116), +(96409, 113), +(96409, 111), +(96409, 126), +(96409, 125), +(96409, 124), +(96409, 109), +(96409, 123), +(96409, 119), +(96409, 112), +(96409, 114), +(96409, 107), +(96409, 108), +(96409, 115), +(96409, 122), +(96409, 120), +(96409, 117), +(96409, 118), +(96410, 106), +(96410, 110), +(96410, 121), +(96410, 116), +(96410, 113), +(96410, 111), +(96410, 126), +(96410, 125), +(96410, 124), +(96410, 109), +(96410, 123), +(96410, 119), +(96410, 112), +(96410, 114), +(96410, 107), +(96410, 108), +(96410, 115), +(96410, 122), +(96410, 120), +(96410, 117), +(96410, 118), +(96411, 106), +(96411, 110), +(96411, 121), +(96411, 116), +(96411, 113), +(96411, 111), +(96411, 126), +(96411, 125), +(96411, 124), +(96411, 109), +(96411, 123), +(96411, 119), +(96411, 112), +(96411, 114), +(96411, 107), +(96411, 108), +(96411, 115), +(96411, 122), +(96411, 120), +(96411, 117), +(96411, 118), +(96425, 106), +(96425, 110), +(96425, 121), +(96425, 116), +(96425, 113), +(96425, 111), +(96425, 126), +(96425, 125), +(96425, 124), +(96425, 109), +(96425, 123), +(96425, 119), +(96425, 112), +(96425, 114), +(96425, 107), +(96425, 108), +(96425, 115), +(96425, 122), +(96425, 120), +(96425, 117), +(96425, 118), +(96428, 106), +(96428, 110), +(96428, 121), +(96428, 116), +(96428, 113), +(96428, 111), +(96428, 126), +(96428, 125), +(96428, 124), +(96428, 109), +(96428, 123), +(96428, 119), +(96428, 112), +(96428, 114), +(96428, 107), +(96428, 108), +(96428, 115), +(96428, 122), +(96428, 120), +(96428, 117), +(96428, 118), +(96431, 106), +(96431, 110), +(96431, 121), +(96431, 116), +(96431, 113), +(96431, 111), +(96431, 126), +(96431, 125), +(96431, 124), +(96431, 109), +(96431, 123), +(96431, 119), +(96431, 112), +(96431, 114), +(96431, 107), +(96431, 108), +(96431, 115), +(96431, 122), +(96431, 120), +(96431, 117), +(96431, 118), +(96436, 106), +(96436, 110), +(96436, 121), +(96436, 116), +(96436, 113), +(96436, 111), +(96436, 126), +(96436, 125), +(96436, 124), +(96436, 109), +(96436, 123), +(96436, 119), +(96436, 112), +(96436, 114), +(96436, 107), +(96436, 108), +(96436, 115), +(96436, 122), +(96436, 120), +(96436, 117), +(96436, 118), +(96439, 106), +(96439, 110), +(96439, 121), +(96439, 116), +(96439, 113), +(96439, 111), +(96439, 126), +(96439, 125), +(96439, 124), +(96439, 109), +(96439, 123), +(96439, 119), +(96439, 112), +(96439, 114), +(96439, 107), +(96439, 108), +(96439, 115), +(96439, 122), +(96439, 120), +(96439, 117), +(96439, 118), +(96446, 106), +(96446, 110), +(96446, 121), +(96446, 116), +(96446, 113), +(96446, 111), +(96446, 126), +(96446, 125), +(96446, 124), +(96446, 109), +(96446, 123), +(96446, 119), +(96446, 112), +(96446, 114), +(96446, 107), +(96446, 108), +(96446, 115), +(96446, 122), +(96446, 120), +(96446, 117), +(96446, 118), +(96447, 106), +(96447, 110), +(96447, 121), +(96447, 116), +(96447, 113), +(96447, 111), +(96447, 126), +(96447, 125), +(96447, 124), +(96447, 109), +(96447, 123), +(96447, 119), +(96447, 112), +(96447, 114), +(96447, 107), +(96447, 108), +(96447, 115), +(96447, 122), +(96447, 120), +(96447, 117), +(96447, 118), +(96448, 106), +(96448, 110), +(96448, 121), +(96448, 116), +(96448, 113), +(96448, 111), +(96448, 126), +(96448, 125), +(96448, 124), +(96448, 109), +(96448, 123), +(96448, 119), +(96448, 112), +(96448, 114), +(96448, 107), +(96448, 108), +(96448, 115), +(96448, 122), +(96448, 120), +(96448, 117), +(96448, 118), +(96449, 106), +(96449, 110), +(96449, 121), +(96449, 116), +(96449, 113), +(96449, 111), +(96449, 126), +(96449, 125), +(96449, 124), +(96449, 109), +(96449, 123), +(96449, 119), +(96449, 112), +(96449, 114), +(96449, 107), +(96449, 108), +(96449, 115), +(96449, 122), +(96449, 120), +(96449, 117), +(96449, 118), +(96450, 106), +(96450, 110), +(96450, 121), +(96450, 116), +(96450, 113), +(96450, 111), +(96450, 126), +(96450, 125), +(96450, 124), +(96450, 109), +(96450, 123), +(96450, 119), +(96450, 112), +(96450, 114), +(96450, 107), +(96450, 108), +(96450, 115), +(96450, 122), +(96450, 120), +(96450, 117), +(96450, 118), +(96451, 106), +(96451, 110), +(96451, 121), +(96451, 116), +(96451, 113), +(96451, 111), +(96451, 126), +(96451, 125), +(96451, 124), +(96451, 109), +(96451, 123), +(96451, 119), +(96451, 112), +(96451, 114), +(96451, 107), +(96451, 108), +(96451, 115), +(96451, 122), +(96451, 120), +(96451, 117), +(96451, 118), +(96452, 106), +(96452, 110), +(96452, 121), +(96452, 116), +(96452, 113), +(96452, 111), +(96452, 126), +(96452, 125), +(96452, 124), +(96452, 109), +(96452, 123), +(96452, 119), +(96452, 112), +(96452, 114), +(96452, 107), +(96452, 108), +(96452, 115), +(96452, 122), +(96452, 120), +(96452, 117), +(96452, 118), +(96453, 106), +(96453, 110), +(96453, 121), +(96453, 116), +(96453, 113), +(96453, 111), +(96453, 126), +(96453, 125), +(96453, 124), +(96453, 109), +(96453, 123), +(96453, 119), +(96453, 112), +(96453, 114), +(96453, 107), +(96453, 108), +(96453, 115), +(96453, 122), +(96453, 120), +(96453, 117), +(96453, 118), +(96454, 106), +(96454, 110), +(96454, 121), +(96454, 116), +(96454, 113), +(96454, 111), +(96454, 126), +(96454, 125), +(96454, 124), +(96454, 109), +(96454, 123), +(96454, 119), +(96454, 112), +(96454, 114), +(96454, 107), +(96454, 108), +(96454, 115), +(96454, 122), +(96454, 120), +(96454, 117), +(96454, 118), +(96455, 106), +(96455, 110), +(96455, 121), +(96455, 116), +(96455, 113), +(96455, 111), +(96455, 126), +(96455, 125), +(96455, 124), +(96455, 109), +(96455, 123), +(96455, 119), +(96455, 112), +(96455, 114), +(96455, 107), +(96455, 108), +(96455, 115), +(96455, 122), +(96455, 120), +(96455, 117), +(96455, 118), +(96456, 106), +(96456, 110), +(96456, 121), +(96456, 116), +(96456, 113), +(96456, 111), +(96456, 126), +(96456, 125), +(96456, 124), +(96456, 109), +(96456, 123), +(96456, 119), +(96456, 112), +(96456, 114), +(96456, 107), +(96456, 108), +(96456, 115), +(96456, 122), +(96456, 120), +(96456, 117), +(96456, 118), +(96457, 106), +(96457, 110), +(96457, 121), +(96457, 116), +(96457, 113), +(96457, 111), +(96457, 126), +(96457, 125), +(96457, 124), +(96457, 109), +(96457, 123), +(96457, 119), +(96457, 112), +(96457, 114), +(96457, 107), +(96457, 108), +(96457, 115), +(96457, 122), +(96457, 120), +(96457, 117), +(96457, 118), +(96458, 106), +(96458, 110), +(96458, 121), +(96458, 116), +(96458, 113), +(96458, 111), +(96458, 126), +(96458, 125), +(96458, 124), +(96458, 109), +(96458, 123), +(96458, 119), +(96458, 112), +(96458, 114), +(96458, 107), +(96458, 108), +(96458, 115), +(96458, 122), +(96458, 120), +(96458, 117), +(96458, 118), +(96459, 106), +(96459, 110), +(96459, 121), +(96459, 116), +(96459, 113), +(96459, 111), +(96459, 126), +(96459, 125), +(96459, 124), +(96459, 109), +(96459, 123), +(96459, 119), +(96459, 112), +(96459, 114), +(96459, 107), +(96459, 108), +(96459, 115), +(96459, 122), +(96459, 120), +(96459, 117), +(96459, 118), +(96460, 106), +(96460, 110), +(96460, 121), +(96460, 116), +(96460, 113), +(96460, 111), +(96460, 126), +(96460, 125), +(96460, 124), +(96460, 109), +(96460, 123), +(96460, 119), +(96460, 112), +(96460, 114), +(96460, 107), +(96460, 108), +(96460, 115), +(96460, 122), +(96460, 120), +(96460, 117), +(96460, 118), +(96461, 106), +(96461, 110), +(96461, 121), +(96461, 116), +(96461, 113), +(96461, 111), +(96461, 126), +(96461, 125), +(96461, 124), +(96461, 109), +(96461, 123), +(96461, 119), +(96461, 112), +(96461, 114), +(96461, 107), +(96461, 108), +(96461, 115), +(96461, 122), +(96461, 120), +(96461, 117), +(96461, 118), +(96462, 106), +(96462, 110), +(96462, 121), +(96462, 116), +(96462, 113), +(96462, 111), +(96462, 126), +(96462, 125), +(96462, 124), +(96462, 109), +(96462, 123), +(96462, 119), +(96462, 112), +(96462, 114), +(96462, 107), +(96462, 108), +(96462, 115), +(96462, 122), +(96462, 120), +(96462, 117), +(96462, 118), +(96463, 106), +(96463, 110), +(96463, 121), +(96463, 116), +(96463, 113), +(96463, 111), +(96463, 126), +(96463, 125), +(96463, 124), +(96463, 109), +(96463, 123), +(96463, 119), +(96463, 112), +(96463, 114), +(96463, 107), +(96463, 108), +(96463, 115), +(96463, 122), +(96463, 120), +(96463, 117), +(96463, 118), +(96464, 106), +(96464, 110), +(96464, 121), +(96464, 116), +(96464, 113), +(96464, 111), +(96464, 126), +(96464, 125), +(96464, 124), +(96464, 109), +(96464, 123), +(96464, 119), +(96464, 112), +(96464, 114), +(96464, 107), +(96464, 108), +(96464, 115), +(96464, 122), +(96464, 120), +(96464, 117), +(96464, 118), +(96465, 106), +(96465, 110), +(96465, 121), +(96465, 116), +(96465, 113), +(96465, 111), +(96465, 126), +(96465, 125), +(96465, 124), +(96465, 109), +(96465, 123), +(96465, 119), +(96465, 112), +(96465, 114), +(96465, 107), +(96465, 108), +(96465, 115), +(96465, 122), +(96465, 120), +(96465, 117), +(96465, 118), +(96466, 106), +(96466, 110), +(96466, 121), +(96466, 116), +(96466, 113), +(96466, 111), +(96466, 126), +(96466, 125), +(96466, 124), +(96466, 109), +(96466, 123), +(96466, 119), +(96466, 112), +(96466, 114), +(96466, 107), +(96466, 108), +(96466, 115), +(96466, 122), +(96466, 120), +(96466, 117), +(96466, 118), +(96467, 106), +(96467, 110), +(96467, 121), +(96467, 116), +(96467, 113), +(96467, 111), +(96467, 126), +(96467, 125), +(96467, 124), +(96467, 109), +(96467, 123), +(96467, 119), +(96467, 112), +(96467, 114), +(96467, 107), +(96467, 108), +(96467, 115), +(96467, 122), +(96467, 120), +(96467, 117), +(96467, 118), +(96468, 106), +(96468, 110), +(96468, 121), +(96468, 116), +(96468, 113), +(96468, 111), +(96468, 126), +(96468, 125), +(96468, 124), +(96468, 109), +(96468, 123), +(96468, 119), +(96468, 112), +(96468, 114), +(96468, 107), +(96468, 108), +(96468, 115), +(96468, 122), +(96468, 120), +(96468, 117), +(96468, 118), +(96469, 106), +(96469, 110), +(96469, 121), +(96469, 116), +(96469, 113), +(96469, 111), +(96469, 126), +(96469, 125), +(96469, 124), +(96469, 109), +(96469, 123), +(96469, 119), +(96469, 112), +(96469, 114), +(96469, 107), +(96469, 108), +(96469, 115), +(96469, 122), +(96469, 120), +(96469, 117), +(96469, 118), +(96470, 106), +(96470, 110), +(96470, 121), +(96470, 116), +(96470, 113), +(96470, 111), +(96470, 126), +(96470, 125), +(96470, 124), +(96470, 109), +(96470, 123), +(96470, 119), +(96470, 112), +(96470, 114), +(96470, 107), +(96470, 108), +(96470, 115), +(96470, 122), +(96470, 120), +(96470, 117), +(96470, 118), +(96471, 106), +(96471, 110), +(96471, 121), +(96471, 116), +(96471, 113), +(96471, 111), +(96471, 126), +(96471, 125), +(96471, 124), +(96471, 109), +(96471, 123), +(96471, 119), +(96471, 112), +(96471, 114), +(96471, 107), +(96471, 108), +(96471, 115), +(96471, 122), +(96471, 120), +(96471, 117), +(96471, 118), +(96472, 106), +(96472, 110), +(96472, 121), +(96472, 116), +(96472, 113), +(96472, 111), +(96472, 126), +(96472, 125), +(96472, 124), +(96472, 109), +(96472, 123), +(96472, 119), +(96472, 112), +(96472, 114), +(96472, 107), +(96472, 108), +(96472, 115), +(96472, 122), +(96472, 120), +(96472, 117), +(96472, 118), +(96473, 106), +(96473, 110), +(96473, 121), +(96473, 116), +(96473, 113), +(96473, 111), +(96473, 126), +(96473, 125), +(96473, 124), +(96473, 109), +(96473, 123), +(96473, 119), +(96473, 112), +(96473, 114), +(96473, 107), +(96473, 108), +(96473, 115), +(96473, 122), +(96473, 120), +(96473, 117), +(96473, 118), +(96474, 106), +(96474, 110), +(96474, 121), +(96474, 116), +(96474, 113), +(96474, 111), +(96474, 126), +(96474, 125), +(96474, 124), +(96474, 109), +(96474, 123), +(96474, 119), +(96474, 112), +(96474, 114), +(96474, 107), +(96474, 108), +(96474, 115), +(96474, 122), +(96474, 120), +(96474, 117), +(96474, 118), +(96475, 106), +(96475, 110), +(96475, 121), +(96475, 116), +(96475, 113), +(96475, 111), +(96475, 126), +(96475, 125), +(96475, 124), +(96475, 109), +(96475, 123), +(96475, 119), +(96475, 112), +(96475, 114), +(96475, 107), +(96475, 108), +(96475, 115), +(96475, 122), +(96475, 120), +(96475, 117), +(96475, 118), +(96476, 106), +(96476, 110), +(96476, 121), +(96476, 116), +(96476, 113), +(96476, 111), +(96476, 126), +(96476, 125), +(96476, 124), +(96476, 109), +(96476, 123), +(96476, 119), +(96476, 112), +(96476, 114), +(96476, 107), +(96476, 108), +(96476, 115), +(96476, 122), +(96476, 120), +(96476, 117), +(96476, 118), +(96477, 106), +(96477, 110), +(96477, 121), +(96477, 116), +(96477, 113), +(96477, 111), +(96477, 126), +(96477, 125), +(96477, 124), +(96477, 109), +(96477, 123), +(96477, 119), +(96477, 112), +(96477, 114), +(96477, 107), +(96477, 108), +(96477, 115), +(96477, 122), +(96477, 120), +(96477, 117), +(96477, 118), +(96483, 106), +(96483, 110), +(96483, 121), +(96483, 116), +(96483, 113), +(96483, 111), +(96483, 126), +(96483, 125), +(96483, 124), +(96483, 109), +(96483, 123), +(96483, 119), +(96483, 112), +(96483, 114), +(96483, 107), +(96483, 108), +(96483, 115), +(96483, 122), +(96483, 120), +(96483, 117), +(96483, 118), +(96484, 106), +(96484, 110), +(96484, 121), +(96484, 116), +(96484, 113), +(96484, 111), +(96484, 126), +(96484, 125), +(96484, 124), +(96484, 109), +(96484, 123), +(96484, 119), +(96484, 112), +(96484, 114), +(96484, 107), +(96484, 108), +(96484, 115), +(96484, 122), +(96484, 120), +(96484, 117), +(96484, 118), +(96485, 106), +(96485, 110), +(96485, 121), +(96485, 116), +(96485, 113), +(96485, 111), +(96485, 126), +(96485, 125), +(96485, 124), +(96485, 109), +(96485, 123), +(96485, 119), +(96485, 112), +(96485, 114), +(96485, 107), +(96485, 108), +(96485, 115), +(96485, 122), +(96485, 120), +(96485, 117), +(96485, 118), +(96487, 106), +(96487, 110), +(96487, 121), +(96487, 116), +(96487, 113), +(96487, 111), +(96487, 126), +(96487, 125), +(96487, 124), +(96487, 109), +(96487, 123), +(96487, 119), +(96487, 112), +(96487, 114), +(96487, 107), +(96487, 108), +(96487, 115), +(96487, 122), +(96487, 120), +(96487, 117), +(96487, 118), +(96488, 106), +(96488, 110), +(96488, 121), +(96488, 116), +(96488, 113), +(96488, 111), +(96488, 126), +(96488, 125), +(96488, 124), +(96488, 109), +(96488, 123), +(96488, 119), +(96488, 112), +(96488, 114), +(96488, 107), +(96488, 108), +(96488, 115), +(96488, 122), +(96488, 120), +(96488, 117), +(96488, 118), +(96489, 106), +(96489, 110), +(96489, 121), +(96489, 116), +(96489, 113), +(96489, 111), +(96489, 126), +(96489, 125), +(96489, 124), +(96489, 109), +(96489, 123), +(96489, 119), +(96489, 112), +(96489, 114), +(96489, 107), +(96489, 108), +(96489, 115), +(96489, 122), +(96489, 120), +(96489, 117), +(96489, 118), +(96490, 106), +(96490, 110), +(96490, 121), +(96490, 116), +(96490, 113), +(96490, 111), +(96490, 126), +(96490, 125), +(96490, 124), +(96490, 109), +(96490, 123), +(96490, 119), +(96490, 112), +(96490, 114), +(96490, 107), +(96490, 108), +(96490, 115), +(96490, 122), +(96490, 120), +(96490, 117), +(96490, 118), +(96492, 106), +(96492, 110), +(96492, 121), +(96492, 116), +(96492, 113), +(96492, 111), +(96492, 126), +(96492, 125), +(96492, 124), +(96492, 109), +(96492, 123), +(96492, 119), +(96492, 112), +(96492, 114), +(96492, 107), +(96492, 108), +(96492, 115), +(96492, 122), +(96492, 120), +(96492, 117), +(96492, 118), +(96493, 106), +(96493, 110), +(96493, 121), +(96493, 116), +(96493, 113), +(96493, 111), +(96493, 126), +(96493, 125), +(96493, 124), +(96493, 109), +(96493, 123), +(96493, 119), +(96493, 112), +(96493, 114), +(96493, 107), +(96493, 108), +(96493, 115), +(96493, 122), +(96493, 120), +(96493, 117), +(96493, 118), +(96494, 106), +(96494, 110), +(96494, 121), +(96494, 116), +(96494, 113), +(96494, 111), +(96494, 126), +(96494, 125), +(96494, 124), +(96494, 109), +(96494, 123), +(96494, 119), +(96494, 112), +(96494, 114), +(96494, 107), +(96494, 108), +(96494, 115), +(96494, 122), +(96494, 120), +(96494, 117), +(96494, 118), +(96495, 106), +(96495, 110), +(96495, 121), +(96495, 116), +(96495, 113), +(96495, 111), +(96495, 126), +(96495, 125), +(96495, 124), +(96495, 109), +(96495, 123), +(96495, 119), +(96495, 112), +(96495, 114), +(96495, 107), +(96495, 108), +(96495, 115), +(96495, 122), +(96495, 120), +(96495, 117), +(96495, 118), +(96496, 106), +(96496, 110), +(96496, 121), +(96496, 116), +(96496, 113), +(96496, 111), +(96496, 126), +(96496, 125), +(96496, 124), +(96496, 109), +(96496, 123), +(96496, 119), +(96496, 112), +(96496, 114), +(96496, 107), +(96496, 108), +(96496, 115), +(96496, 122), +(96496, 120), +(96496, 117), +(96496, 118), +(96498, 106), +(96498, 110), +(96498, 121), +(96498, 116), +(96498, 113), +(96498, 111), +(96498, 126), +(96498, 125), +(96498, 124), +(96498, 109), +(96498, 123), +(96498, 119), +(96498, 112), +(96498, 114), +(96498, 107), +(96498, 108), +(96498, 115), +(96498, 122), +(96498, 120), +(96498, 117), +(96498, 118), +(96501, 106), +(96501, 110), +(96501, 121), +(96501, 116), +(96501, 113), +(96501, 111), +(96501, 126), +(96501, 125), +(96501, 124), +(96501, 109), +(96501, 123), +(96501, 119), +(96501, 112), +(96501, 114), +(96501, 107), +(96501, 108), +(96501, 115), +(96501, 122), +(96501, 120), +(96501, 117), +(96501, 118), +(96502, 106), +(96502, 110), +(96502, 121), +(96502, 116), +(96502, 113), +(96502, 111), +(96502, 126), +(96502, 125), +(96502, 124), +(96502, 109), +(96502, 123), +(96502, 119), +(96502, 112), +(96502, 114), +(96502, 107), +(96502, 108), +(96502, 115), +(96502, 122), +(96502, 120), +(96502, 117), +(96502, 118), +(96503, 106), +(96503, 110), +(96503, 121), +(96503, 116), +(96503, 113), +(96503, 111), +(96503, 126), +(96503, 125), +(96503, 124), +(96503, 109), +(96503, 123), +(96503, 119), +(96503, 112), +(96503, 114), +(96503, 107), +(96503, 108), +(96503, 115), +(96503, 122), +(96503, 120), +(96503, 117), +(96503, 118), +(96504, 106), +(96504, 110), +(96504, 121), +(96504, 116), +(96504, 113), +(96504, 111), +(96504, 126), +(96504, 125), +(96504, 124), +(96504, 109), +(96504, 123), +(96504, 119), +(96504, 112), +(96504, 114), +(96504, 107), +(96504, 108), +(96504, 115), +(96504, 122), +(96504, 120), +(96504, 117), +(96504, 118), +(96505, 106), +(96505, 110), +(96505, 121), +(96505, 116), +(96505, 113), +(96505, 111), +(96505, 126), +(96505, 125), +(96505, 124), +(96505, 109), +(96505, 123), +(96505, 119), +(96505, 112), +(96505, 114), +(96505, 107), +(96505, 108), +(96505, 115), +(96505, 122), +(96505, 120), +(96505, 117), +(96505, 118), +(96507, 106), +(96507, 110), +(96507, 121), +(96507, 116), +(96507, 113), +(96507, 111), +(96507, 126), +(96507, 125), +(96507, 124), +(96507, 109), +(96507, 123), +(96507, 119), +(96507, 112), +(96507, 114), +(96507, 107), +(96507, 108), +(96507, 115), +(96507, 122), +(96507, 120), +(96507, 117), +(96507, 118), +(96508, 106), +(96508, 110), +(96508, 121), +(96508, 116), +(96508, 113), +(96508, 111), +(96508, 126), +(96508, 125), +(96508, 124), +(96508, 109), +(96508, 123), +(96508, 119), +(96508, 112), +(96508, 114), +(96508, 107), +(96508, 108), +(96508, 115), +(96508, 122), +(96508, 120), +(96508, 117), +(96508, 118), +(96510, 106), +(96510, 110), +(96510, 121), +(96510, 116), +(96510, 113), +(96510, 111), +(96510, 126), +(96510, 125), +(96510, 124), +(96510, 109), +(96510, 123), +(96510, 119), +(96510, 112), +(96510, 114), +(96510, 107), +(96510, 108), +(96510, 115), +(96510, 122), +(96510, 120), +(96510, 117), +(96510, 118), +(96511, 106), +(96511, 110), +(96511, 121), +(96511, 116), +(96511, 113), +(96511, 111), +(96511, 126), +(96511, 125), +(96511, 124), +(96511, 109), +(96511, 123), +(96511, 119), +(96511, 112), +(96511, 114), +(96511, 107), +(96511, 108), +(96511, 115), +(96511, 122), +(96511, 120), +(96511, 117), +(96511, 118), +(96512, 106), +(96512, 110), +(96512, 121), +(96512, 116), +(96512, 113), +(96512, 111), +(96512, 126), +(96512, 125), +(96512, 124), +(96512, 109), +(96512, 123), +(96512, 119), +(96512, 112), +(96512, 114), +(96512, 107), +(96512, 108), +(96512, 115), +(96512, 122), +(96512, 120), +(96512, 117), +(96512, 118), +(96513, 106), +(96513, 110), +(96513, 121), +(96513, 116), +(96513, 113), +(96513, 111), +(96513, 126), +(96513, 125), +(96513, 124), +(96513, 109), +(96513, 123), +(96513, 119), +(96513, 112), +(96513, 114), +(96513, 107), +(96513, 108), +(96513, 115), +(96513, 122), +(96513, 120), +(96513, 117), +(96513, 118), +(96514, 106), +(96514, 110), +(96514, 121), +(96514, 116), +(96514, 113), +(96514, 111), +(96514, 126), +(96514, 125), +(96514, 124), +(96514, 109), +(96514, 123), +(96514, 119), +(96514, 112), +(96514, 114), +(96514, 107), +(96514, 108), +(96514, 115), +(96514, 122), +(96514, 120), +(96514, 117), +(96514, 118), +(96515, 106), +(96515, 110), +(96515, 121), +(96515, 116), +(96515, 113), +(96515, 111), +(96515, 126), +(96515, 125), +(96515, 124), +(96515, 109), +(96515, 123), +(96515, 119), +(96515, 112), +(96515, 114), +(96515, 107), +(96515, 108), +(96515, 115), +(96515, 122), +(96515, 120), +(96515, 117), +(96515, 118), +(96516, 106), +(96516, 110), +(96516, 121), +(96516, 116), +(96516, 113), +(96516, 111), +(96516, 126), +(96516, 125), +(96516, 124), +(96516, 109), +(96516, 123), +(96516, 119), +(96516, 112), +(96516, 114), +(96516, 107), +(96516, 108), +(96516, 115), +(96516, 122), +(96516, 120), +(96516, 117), +(96516, 118), +(96517, 106), +(96517, 110), +(96517, 121), +(96517, 116), +(96517, 113), +(96517, 111), +(96517, 126), +(96517, 125), +(96517, 124), +(96517, 109), +(96517, 123), +(96517, 119), +(96517, 112), +(96517, 114), +(96517, 107), +(96517, 108), +(96517, 115), +(96517, 122), +(96517, 120), +(96517, 117), +(96517, 118), +(96518, 106), +(96518, 110), +(96518, 121), +(96518, 116), +(96518, 113), +(96518, 111), +(96518, 126), +(96518, 125), +(96518, 124), +(96518, 109), +(96518, 123), +(96518, 119), +(96518, 112), +(96518, 114), +(96518, 107), +(96518, 108), +(96518, 115), +(96518, 122), +(96518, 120), +(96518, 117), +(96518, 118), +(96519, 106), +(96519, 110), +(96519, 121), +(96519, 116), +(96519, 113), +(96519, 111), +(96519, 126), +(96519, 125), +(96519, 124), +(96519, 109), +(96519, 123), +(96519, 119), +(96519, 112), +(96519, 114), +(96519, 107), +(96519, 108), +(96519, 115), +(96519, 122), +(96519, 120), +(96519, 117), +(96519, 118), +(96520, 106), +(96520, 110), +(96520, 121), +(96520, 116), +(96520, 113), +(96520, 111), +(96520, 126), +(96520, 125), +(96520, 124), +(96520, 109), +(96520, 123), +(96520, 119), +(96520, 112), +(96520, 114), +(96520, 107), +(96520, 108), +(96520, 115), +(96520, 122), +(96520, 120), +(96520, 117), +(96520, 118), +(96521, 106), +(96521, 110), +(96521, 121), +(96521, 116), +(96521, 113), +(96521, 111), +(96521, 126), +(96521, 125), +(96521, 124), +(96521, 109), +(96521, 123), +(96521, 119), +(96521, 112), +(96521, 114), +(96521, 107), +(96521, 108), +(96521, 115), +(96521, 122), +(96521, 120), +(96521, 117), +(96521, 118), +(96522, 106), +(96522, 110), +(96522, 121), +(96522, 116), +(96522, 113), +(96522, 111), +(96522, 126), +(96522, 125), +(96522, 124), +(96522, 109), +(96522, 123), +(96522, 119), +(96522, 112), +(96522, 114), +(96522, 107), +(96522, 108), +(96522, 115), +(96522, 122), +(96522, 120), +(96522, 117), +(96522, 118), +(96523, 106), +(96523, 110), +(96523, 121), +(96523, 116), +(96523, 113), +(96523, 111), +(96523, 126), +(96523, 125), +(96523, 124), +(96523, 109), +(96523, 123), +(96523, 119), +(96523, 112), +(96523, 114), +(96523, 107), +(96523, 108), +(96523, 115), +(96523, 122), +(96523, 120), +(96523, 117), +(96523, 118), +(96524, 106), +(96524, 110), +(96524, 121), +(96524, 116), +(96524, 113), +(96524, 111), +(96524, 126), +(96524, 125), +(96524, 124), +(96524, 109), +(96524, 123), +(96524, 119), +(96524, 112), +(96524, 114), +(96524, 107), +(96524, 108), +(96524, 115), +(96524, 122), +(96524, 120), +(96524, 117), +(96524, 118), +(96526, 106), +(96526, 110), +(96526, 121), +(96526, 116), +(96526, 113), +(96526, 111), +(96526, 126), +(96526, 125), +(96526, 124), +(96526, 109), +(96526, 123), +(96526, 119), +(96526, 112), +(96526, 114), +(96526, 107), +(96526, 108), +(96526, 115), +(96526, 122), +(96526, 120), +(96526, 117), +(96526, 118), +(96527, 106), +(96527, 110), +(96527, 121), +(96527, 116), +(96527, 113), +(96527, 111), +(96527, 126), +(96527, 125), +(96527, 124), +(96527, 109), +(96527, 123), +(96527, 119), +(96527, 112), +(96527, 114), +(96527, 107), +(96527, 108), +(96527, 115), +(96527, 122), +(96527, 120), +(96527, 117), +(96527, 118), +(96528, 106), +(96528, 110), +(96528, 121), +(96528, 116), +(96528, 113), +(96528, 111), +(96528, 126), +(96528, 125), +(96528, 124), +(96528, 109), +(96528, 123), +(96528, 119), +(96528, 112), +(96528, 114), +(96528, 107), +(96528, 108), +(96528, 115), +(96528, 122), +(96528, 120), +(96528, 117), +(96528, 118), +(96529, 106), +(96529, 110), +(96529, 121), +(96529, 116), +(96529, 113), +(96529, 111), +(96529, 126), +(96529, 125), +(96529, 124), +(96529, 109), +(96529, 123), +(96529, 119), +(96529, 112), +(96529, 114), +(96529, 107), +(96529, 108), +(96529, 115), +(96529, 122), +(96529, 120), +(96529, 117), +(96529, 118), +(96530, 106), +(96530, 110), +(96530, 121), +(96530, 116), +(96530, 113), +(96530, 111), +(96530, 126), +(96530, 125), +(96530, 124), +(96530, 109), +(96530, 123), +(96530, 119), +(96530, 112), +(96530, 114), +(96530, 107), +(96530, 108), +(96530, 115), +(96530, 122), +(96530, 120), +(96530, 117), +(96530, 118), +(96531, 106), +(96531, 110), +(96531, 121), +(96531, 116), +(96531, 113), +(96531, 111), +(96531, 126), +(96531, 125), +(96531, 124), +(96531, 109), +(96531, 123), +(96531, 119), +(96531, 112), +(96531, 114), +(96531, 107), +(96531, 108), +(96531, 115), +(96531, 122), +(96531, 120), +(96531, 117), +(96531, 118), +(96532, 106), +(96532, 110), +(96532, 121), +(96532, 116), +(96532, 113), +(96532, 111), +(96532, 126), +(96532, 125), +(96532, 124), +(96532, 109), +(96532, 123), +(96532, 119), +(96532, 112), +(96532, 114), +(96532, 107), +(96532, 108), +(96532, 115), +(96532, 122), +(96532, 120), +(96532, 117), +(96532, 118), +(96536, 106), +(96536, 110), +(96536, 121), +(96536, 116), +(96536, 113), +(96536, 111), +(96536, 126), +(96536, 125), +(96536, 124), +(96536, 109), +(96536, 123), +(96536, 119), +(96536, 112), +(96536, 114), +(96536, 107), +(96536, 108), +(96536, 115), +(96536, 122), +(96536, 120), +(96536, 117), +(96536, 118), +(96537, 106), +(96537, 110), +(96537, 121), +(96537, 116), +(96537, 113), +(96537, 111), +(96537, 126), +(96537, 125), +(96537, 124), +(96537, 109), +(96537, 123), +(96537, 119), +(96537, 112), +(96537, 114), +(96537, 107), +(96537, 108), +(96537, 115), +(96537, 122), +(96537, 120), +(96537, 117), +(96537, 118), +(96538, 106), +(96538, 110), +(96538, 121), +(96538, 116), +(96538, 113), +(96538, 111), +(96538, 126), +(96538, 125), +(96538, 124), +(96538, 109), +(96538, 123), +(96538, 119), +(96538, 112), +(96538, 114), +(96538, 107), +(96538, 108), +(96538, 115), +(96538, 122), +(96538, 120), +(96538, 117), +(96538, 118), +(96539, 106), +(96539, 110), +(96539, 121), +(96539, 116), +(96539, 113), +(96539, 111), +(96539, 126), +(96539, 125), +(96539, 124), +(96539, 109), +(96539, 123), +(96539, 119), +(96539, 112), +(96539, 114), +(96539, 107), +(96539, 108), +(96539, 115), +(96539, 122), +(96539, 120), +(96539, 117), +(96539, 118), +(96540, 106), +(96540, 110), +(96540, 121), +(96540, 116), +(96540, 113), +(96540, 111), +(96540, 126), +(96540, 125), +(96540, 124), +(96540, 109), +(96540, 123), +(96540, 119), +(96540, 112), +(96540, 114), +(96540, 107), +(96540, 108), +(96540, 115), +(96540, 122), +(96540, 120), +(96540, 117), +(96540, 118), +(96541, 106), +(96541, 110), +(96541, 121), +(96541, 116), +(96541, 113), +(96541, 111), +(96541, 126), +(96541, 125), +(96541, 124), +(96541, 109), +(96541, 123), +(96541, 119), +(96541, 112), +(96541, 114), +(96541, 107), +(96541, 108), +(96541, 115), +(96541, 122), +(96541, 120), +(96541, 117), +(96541, 118), +(96543, 106), +(96543, 110), +(96543, 121), +(96543, 116), +(96543, 113), +(96543, 111), +(96543, 126), +(96543, 125), +(96543, 124), +(96543, 109), +(96543, 123), +(96543, 119), +(96543, 112), +(96543, 114), +(96543, 107), +(96543, 108), +(96543, 115), +(96543, 122), +(96543, 120), +(96543, 117), +(96543, 118), +(96544, 106), +(96544, 110), +(96544, 121), +(96544, 116), +(96544, 113), +(96544, 111), +(96544, 126), +(96544, 125), +(96544, 124), +(96544, 109), +(96544, 123), +(96544, 119), +(96544, 112), +(96544, 114), +(96544, 107), +(96544, 108), +(96544, 115), +(96544, 122), +(96544, 120), +(96544, 117), +(96544, 118), +(96545, 106), +(96545, 110), +(96545, 121), +(96545, 116), +(96545, 113), +(96545, 111), +(96545, 126), +(96545, 125), +(96545, 124), +(96545, 109), +(96545, 123), +(96545, 119), +(96545, 112), +(96545, 114), +(96545, 107), +(96545, 108), +(96545, 115), +(96545, 122), +(96545, 120), +(96545, 117), +(96545, 118), +(96546, 106), +(96546, 110), +(96546, 121), +(96546, 116), +(96546, 113), +(96546, 111), +(96546, 126), +(96546, 125), +(96546, 124), +(96546, 109), +(96546, 123), +(96546, 119), +(96546, 112), +(96546, 114), +(96546, 107), +(96546, 108), +(96546, 115), +(96546, 122), +(96546, 120), +(96546, 117), +(96546, 118), +(96547, 106), +(96547, 110), +(96547, 121), +(96547, 116), +(96547, 113), +(96547, 111), +(96547, 126), +(96547, 125), +(96547, 124), +(96547, 109), +(96547, 123), +(96547, 119), +(96547, 112), +(96547, 114), +(96547, 107), +(96547, 108), +(96547, 115), +(96547, 122), +(96547, 120), +(96547, 117), +(96547, 118), +(96548, 106), +(96548, 110), +(96548, 121), +(96548, 116), +(96548, 113), +(96548, 111), +(96548, 126), +(96548, 125), +(96548, 124), +(96548, 109), +(96548, 123), +(96548, 119), +(96548, 112), +(96548, 114), +(96548, 107), +(96548, 108), +(96548, 115), +(96548, 122), +(96548, 120), +(96548, 117), +(96548, 118), +(96549, 106), +(96549, 110), +(96549, 121), +(96549, 116), +(96549, 113), +(96549, 111), +(96549, 126), +(96549, 125), +(96549, 124), +(96549, 109), +(96549, 123), +(96549, 119), +(96549, 112), +(96549, 114), +(96549, 107), +(96549, 108), +(96549, 115), +(96549, 122), +(96549, 120), +(96549, 117), +(96549, 118), +(96550, 106), +(96550, 110), +(96550, 121), +(96550, 116), +(96550, 113), +(96550, 111), +(96550, 126), +(96550, 125), +(96550, 124), +(96550, 109), +(96550, 123), +(96550, 119), +(96550, 112), +(96550, 114), +(96550, 107), +(96550, 108), +(96550, 115), +(96550, 122), +(96550, 120), +(96550, 117), +(96550, 118), +(96551, 106), +(96551, 110), +(96551, 121), +(96551, 116), +(96551, 113), +(96551, 111), +(96551, 126), +(96551, 125), +(96551, 124), +(96551, 109), +(96551, 123), +(96551, 119), +(96551, 112), +(96551, 114), +(96551, 107), +(96551, 108), +(96551, 115), +(96551, 122), +(96551, 120), +(96551, 117), +(96551, 118), +(96552, 106), +(96552, 110), +(96552, 121), +(96552, 116), +(96552, 113), +(96552, 111), +(96552, 126), +(96552, 125), +(96552, 124), +(96552, 109), +(96552, 123), +(96552, 119), +(96552, 112), +(96552, 114), +(96552, 107), +(96552, 108), +(96552, 115), +(96552, 122), +(96552, 120), +(96552, 117), +(96552, 118), +(96553, 106), +(96553, 110), +(96553, 121), +(96553, 116), +(96553, 113), +(96553, 111), +(96553, 126), +(96553, 125), +(96553, 124), +(96553, 109), +(96553, 123), +(96553, 119), +(96553, 112), +(96553, 114), +(96553, 107), +(96553, 108), +(96553, 115), +(96553, 122), +(96553, 120), +(96553, 117), +(96553, 118), +(96554, 106), +(96554, 110), +(96554, 121), +(96554, 116), +(96554, 113), +(96554, 111), +(96554, 126), +(96554, 125), +(96554, 124), +(96554, 109), +(96554, 123), +(96554, 119), +(96554, 112), +(96554, 114), +(96554, 107), +(96554, 108), +(96554, 115), +(96554, 122), +(96554, 120), +(96554, 117), +(96554, 118), +(96555, 106), +(96555, 110), +(96555, 121), +(96555, 116), +(96555, 113), +(96555, 111), +(96555, 126), +(96555, 125), +(96555, 124), +(96555, 109), +(96555, 123), +(96555, 119), +(96555, 112), +(96555, 114), +(96555, 107), +(96555, 108), +(96555, 115), +(96555, 122), +(96555, 120), +(96555, 117), +(96555, 118), +(96556, 106), +(96556, 110), +(96556, 121), +(96556, 116), +(96556, 113), +(96556, 111), +(96556, 126), +(96556, 125), +(96556, 124), +(96556, 109), +(96556, 123), +(96556, 119), +(96556, 112), +(96556, 114), +(96556, 107), +(96556, 108), +(96556, 115), +(96556, 122), +(96556, 120), +(96556, 117), +(96556, 118), +(96557, 106), +(96557, 110), +(96557, 121), +(96557, 116), +(96557, 113), +(96557, 111), +(96557, 126), +(96557, 125), +(96557, 124), +(96557, 109), +(96557, 123), +(96557, 119), +(96557, 112), +(96557, 114), +(96557, 107), +(96557, 108), +(96557, 115), +(96557, 122), +(96557, 120), +(96557, 117), +(96557, 118), +(96558, 106), +(96558, 110), +(96558, 121), +(96558, 116), +(96558, 113), +(96558, 111), +(96558, 126), +(96558, 125), +(96558, 124), +(96558, 109), +(96558, 123), +(96558, 119), +(96558, 112), +(96558, 114), +(96558, 107), +(96558, 108), +(96558, 115), +(96558, 122), +(96558, 120), +(96558, 117), +(96558, 118), +(96559, 106), +(96559, 110), +(96559, 121), +(96559, 116), +(96559, 113), +(96559, 111), +(96559, 126), +(96559, 125), +(96559, 124), +(96559, 109), +(96559, 123), +(96559, 119), +(96559, 112), +(96559, 114), +(96559, 107), +(96559, 108), +(96559, 115), +(96559, 122), +(96559, 120), +(96559, 117), +(96559, 118), +(96560, 106), +(96560, 110), +(96560, 121), +(96560, 116), +(96560, 113), +(96560, 111), +(96560, 126), +(96560, 125), +(96560, 124), +(96560, 109), +(96560, 123), +(96560, 119), +(96560, 112), +(96560, 114), +(96560, 107), +(96560, 108), +(96560, 115), +(96560, 122), +(96560, 120), +(96560, 117), +(96560, 118), +(96561, 106), +(96561, 110), +(96561, 121), +(96561, 116), +(96561, 113), +(96561, 111), +(96561, 126), +(96561, 125), +(96561, 124), +(96561, 109), +(96561, 123), +(96561, 119), +(96561, 112), +(96561, 114), +(96561, 107), +(96561, 108), +(96561, 115), +(96561, 122), +(96561, 120), +(96561, 117), +(96561, 118), +(96562, 106), +(96562, 110), +(96562, 121), +(96562, 116), +(96562, 113), +(96562, 111), +(96562, 126), +(96562, 125), +(96562, 124), +(96562, 109), +(96562, 123), +(96562, 119), +(96562, 112), +(96562, 114), +(96562, 107), +(96562, 108), +(96562, 115), +(96562, 122), +(96562, 120), +(96562, 117), +(96562, 118), +(96563, 106), +(96563, 110), +(96563, 121), +(96563, 116), +(96563, 113), +(96563, 111), +(96563, 126), +(96563, 125), +(96563, 124), +(96563, 109), +(96563, 123), +(96563, 119), +(96563, 112), +(96563, 114), +(96563, 107), +(96563, 108), +(96563, 115), +(96563, 122), +(96563, 120), +(96563, 117), +(96563, 118), +(96564, 106), +(96564, 110), +(96564, 121), +(96564, 116), +(96564, 113), +(96564, 111), +(96564, 126), +(96564, 125), +(96564, 124), +(96564, 109), +(96564, 123), +(96564, 119), +(96564, 112), +(96564, 114), +(96564, 107), +(96564, 108), +(96564, 115), +(96564, 122), +(96564, 120), +(96564, 117), +(96564, 118), +(96565, 106), +(96565, 110), +(96565, 121), +(96565, 116), +(96565, 113), +(96565, 111), +(96565, 126), +(96565, 125), +(96565, 124), +(96565, 109), +(96565, 123), +(96565, 119), +(96565, 112), +(96565, 114), +(96565, 107), +(96565, 108), +(96565, 115), +(96565, 122), +(96565, 120), +(96565, 117), +(96565, 118), +(96566, 106), +(96566, 110), +(96566, 121), +(96566, 116), +(96566, 113), +(96566, 111), +(96566, 126), +(96566, 125), +(96566, 124), +(96566, 109), +(96566, 123), +(96566, 119), +(96566, 112), +(96566, 114), +(96566, 107), +(96566, 108), +(96566, 115), +(96566, 122), +(96566, 120), +(96566, 117), +(96566, 118), +(96569, 106), +(96569, 110), +(96569, 121), +(96569, 116), +(96569, 113), +(96569, 111), +(96569, 126), +(96569, 125), +(96569, 124), +(96569, 109), +(96569, 123), +(96569, 119), +(96569, 112), +(96569, 114), +(96569, 107), +(96569, 108), +(96569, 115), +(96569, 122), +(96569, 120), +(96569, 117), +(96569, 118), +(96570, 106), +(96570, 110), +(96570, 121), +(96570, 116), +(96570, 113), +(96570, 111), +(96570, 126), +(96570, 125), +(96570, 124), +(96570, 109), +(96570, 123), +(96570, 119), +(96570, 112), +(96570, 114), +(96570, 107), +(96570, 108), +(96570, 115), +(96570, 122), +(96570, 120), +(96570, 117), +(96570, 118), +(96571, 106), +(96571, 110), +(96571, 121), +(96571, 116), +(96571, 113), +(96571, 111), +(96571, 126), +(96571, 125), +(96571, 124), +(96571, 109), +(96571, 123), +(96571, 119), +(96571, 112), +(96571, 114), +(96571, 107), +(96571, 108), +(96571, 115), +(96571, 122), +(96571, 120), +(96571, 117), +(96571, 118), +(96572, 106), +(96572, 110), +(96572, 121), +(96572, 116), +(96572, 113), +(96572, 111), +(96572, 126), +(96572, 125), +(96572, 124), +(96572, 109), +(96572, 123), +(96572, 119), +(96572, 112), +(96572, 114), +(96572, 107), +(96572, 108), +(96572, 115), +(96572, 122), +(96572, 120), +(96572, 117), +(96572, 118), +(96573, 106), +(96573, 110), +(96573, 121), +(96573, 116), +(96573, 113), +(96573, 111), +(96573, 126), +(96573, 125), +(96573, 124), +(96573, 109), +(96573, 123), +(96573, 119), +(96573, 112), +(96573, 114), +(96573, 107), +(96573, 108), +(96573, 115), +(96573, 122), +(96573, 120), +(96573, 117), +(96573, 118), +(96575, 106), +(96575, 110), +(96575, 121), +(96575, 116), +(96575, 113), +(96575, 111), +(96575, 126), +(96575, 125), +(96575, 124), +(96575, 109), +(96575, 123), +(96575, 119), +(96575, 112), +(96575, 114), +(96575, 107), +(96575, 108), +(96575, 115), +(96575, 122), +(96575, 120), +(96575, 117), +(96575, 118), +(96576, 106), +(96576, 110), +(96576, 121), +(96576, 116), +(96576, 113), +(96576, 111), +(96576, 126), +(96576, 125), +(96576, 124), +(96576, 109), +(96576, 123), +(96576, 119), +(96576, 112), +(96576, 114), +(96576, 107), +(96576, 108), +(96576, 115), +(96576, 122), +(96576, 120), +(96576, 117), +(96576, 118), +(96577, 106), +(96577, 110), +(96577, 121), +(96577, 116), +(96577, 113), +(96577, 111), +(96577, 126), +(96577, 125), +(96577, 124), +(96577, 109), +(96577, 123), +(96577, 119), +(96577, 112), +(96577, 114), +(96577, 107), +(96577, 108), +(96577, 115), +(96577, 122), +(96577, 120), +(96577, 117), +(96577, 118), +(96578, 106), +(96578, 110), +(96578, 121), +(96578, 116), +(96578, 113), +(96578, 111), +(96578, 126), +(96578, 125), +(96578, 124), +(96578, 109), +(96578, 123), +(96578, 119), +(96578, 112), +(96578, 114), +(96578, 107), +(96578, 108), +(96578, 115), +(96578, 122), +(96578, 120), +(96578, 117), +(96578, 118), +(96579, 106), +(96579, 110), +(96579, 121), +(96579, 116), +(96579, 113), +(96579, 111), +(96579, 126), +(96579, 125), +(96579, 124), +(96579, 109), +(96579, 123), +(96579, 119), +(96579, 112), +(96579, 114), +(96579, 107), +(96579, 108), +(96579, 115), +(96579, 122), +(96579, 120), +(96579, 117), +(96579, 118), +(96580, 106), +(96580, 110), +(96580, 121), +(96580, 116), +(96580, 113), +(96580, 111), +(96580, 126), +(96580, 125), +(96580, 124), +(96580, 109), +(96580, 123), +(96580, 119), +(96580, 112), +(96580, 114), +(96580, 107), +(96580, 108), +(96580, 115), +(96580, 122), +(96580, 120), +(96580, 117), +(96580, 118), +(96581, 106), +(96581, 110), +(96581, 121), +(96581, 116), +(96581, 113), +(96581, 111), +(96581, 126), +(96581, 125), +(96581, 124), +(96581, 109), +(96581, 123), +(96581, 119), +(96581, 112), +(96581, 114), +(96581, 107), +(96581, 108), +(96581, 115), +(96581, 122), +(96581, 120), +(96581, 117), +(96581, 118), +(96582, 106), +(96582, 110), +(96582, 121), +(96582, 116), +(96582, 113), +(96582, 111), +(96582, 126), +(96582, 125), +(96582, 124), +(96582, 109), +(96582, 123), +(96582, 119), +(96582, 112), +(96582, 114), +(96582, 107), +(96582, 108), +(96582, 115), +(96582, 122), +(96582, 120), +(96582, 117), +(96582, 118), +(96583, 106), +(96583, 110), +(96583, 121), +(96583, 116), +(96583, 113), +(96583, 111), +(96583, 126), +(96583, 125), +(96583, 124), +(96583, 109), +(96583, 123), +(96583, 119), +(96583, 112), +(96583, 114), +(96583, 107), +(96583, 108), +(96583, 115), +(96583, 122), +(96583, 120), +(96583, 117), +(96583, 118), +(96584, 106), +(96584, 110), +(96584, 121), +(96584, 116), +(96584, 113), +(96584, 111), +(96584, 126), +(96584, 125), +(96584, 124), +(96584, 109), +(96584, 123), +(96584, 119), +(96584, 112), +(96584, 114), +(96584, 107), +(96584, 108), +(96584, 115), +(96584, 122), +(96584, 120), +(96584, 117), +(96584, 118), +(96585, 106), +(96585, 110), +(96585, 121), +(96585, 116), +(96585, 113), +(96585, 111), +(96585, 126), +(96585, 125), +(96585, 124), +(96585, 109), +(96585, 123), +(96585, 119), +(96585, 112), +(96585, 114), +(96585, 107), +(96585, 108), +(96585, 115), +(96585, 122), +(96585, 120), +(96585, 117), +(96585, 118), +(96586, 106), +(96586, 110), +(96586, 121), +(96586, 116), +(96586, 113), +(96586, 111), +(96586, 126), +(96586, 125), +(96586, 124), +(96586, 109), +(96586, 123), +(96586, 119), +(96586, 112), +(96586, 114), +(96586, 107), +(96586, 108), +(96586, 115), +(96586, 122), +(96586, 120), +(96586, 117), +(96586, 118), +(96587, 106), +(96587, 110), +(96587, 121), +(96587, 116), +(96587, 113), +(96587, 111), +(96587, 126), +(96587, 125), +(96587, 124), +(96587, 109), +(96587, 123), +(96587, 119), +(96587, 112), +(96587, 114), +(96587, 107), +(96587, 108), +(96587, 115), +(96587, 122), +(96587, 120), +(96587, 117), +(96587, 118), +(96588, 106), +(96588, 110), +(96588, 121), +(96588, 116), +(96588, 113), +(96588, 111), +(96588, 126), +(96588, 125), +(96588, 124), +(96588, 109), +(96588, 123), +(96588, 119), +(96588, 112), +(96588, 114), +(96588, 107), +(96588, 108), +(96588, 115), +(96588, 122), +(96588, 120), +(96588, 117), +(96588, 118), +(96589, 106), +(96589, 110), +(96589, 121), +(96589, 116), +(96589, 113), +(96589, 111), +(96589, 126), +(96589, 125), +(96589, 124), +(96589, 109), +(96589, 123), +(96589, 119), +(96589, 112), +(96589, 114), +(96589, 107), +(96589, 108), +(96589, 115), +(96589, 122), +(96589, 120), +(96589, 117), +(96589, 118), +(96590, 106), +(96590, 110), +(96590, 121), +(96590, 116), +(96590, 113), +(96590, 111), +(96590, 126), +(96590, 125), +(96590, 124), +(96590, 109), +(96590, 123), +(96590, 119), +(96590, 112), +(96590, 114), +(96590, 107), +(96590, 108), +(96590, 115), +(96590, 122), +(96590, 120), +(96590, 117), +(96590, 118), +(96591, 106), +(96591, 110), +(96591, 121), +(96591, 116), +(96591, 113), +(96591, 111), +(96591, 126), +(96591, 125), +(96591, 124), +(96591, 109), +(96591, 123), +(96591, 119), +(96591, 112), +(96591, 114), +(96591, 107), +(96591, 108), +(96591, 115), +(96591, 122), +(96591, 120), +(96591, 117), +(96591, 118), +(96592, 106), +(96592, 110), +(96592, 121), +(96592, 116), +(96592, 113), +(96592, 111), +(96592, 126), +(96592, 125), +(96592, 124), +(96592, 109), +(96592, 123), +(96592, 119), +(96592, 112), +(96592, 114), +(96592, 107), +(96592, 108), +(96592, 115), +(96592, 122), +(96592, 120), +(96592, 117), +(96592, 118), +(96593, 106), +(96593, 110), +(96593, 121), +(96593, 116), +(96593, 113), +(96593, 111), +(96593, 126), +(96593, 125), +(96593, 124), +(96593, 109), +(96593, 123), +(96593, 119), +(96593, 112), +(96593, 114), +(96593, 107), +(96593, 108), +(96593, 115), +(96593, 122), +(96593, 120), +(96593, 117), +(96593, 118), +(96602, 106), +(96602, 110), +(96602, 121), +(96602, 116), +(96602, 113), +(96602, 111), +(96602, 126), +(96602, 125), +(96602, 124), +(96602, 109), +(96602, 123), +(96602, 119), +(96602, 112), +(96602, 114), +(96602, 107), +(96602, 108), +(96602, 115), +(96602, 122), +(96602, 120), +(96602, 117), +(96602, 118), +(96603, 106), +(96603, 110), +(96603, 121), +(96603, 116), +(96603, 113), +(96603, 111), +(96603, 126), +(96603, 125), +(96603, 124), +(96603, 109), +(96603, 123), +(96603, 119), +(96603, 112), +(96603, 114), +(96603, 107), +(96603, 108), +(96603, 115), +(96603, 122), +(96603, 120), +(96603, 117), +(96603, 118), +(96604, 106), +(96604, 110), +(96604, 121), +(96604, 116), +(96604, 113), +(96604, 111), +(96604, 126), +(96604, 125), +(96604, 124), +(96604, 109), +(96604, 123), +(96604, 119), +(96604, 112), +(96604, 114), +(96604, 107), +(96604, 108), +(96604, 115), +(96604, 122), +(96604, 120), +(96604, 117), +(96604, 118), +(96605, 106), +(96605, 110), +(96605, 121), +(96605, 116), +(96605, 113), +(96605, 111), +(96605, 126), +(96605, 125), +(96605, 124), +(96605, 109), +(96605, 123), +(96605, 119), +(96605, 112), +(96605, 114), +(96605, 107), +(96605, 108), +(96605, 115), +(96605, 122), +(96605, 120), +(96605, 117), +(96605, 118), +(96606, 106), +(96606, 110), +(96606, 121), +(96606, 116), +(96606, 113), +(96606, 111), +(96606, 126), +(96606, 125), +(96606, 124), +(96606, 109), +(96606, 123), +(96606, 119), +(96606, 112), +(96606, 114), +(96606, 107), +(96606, 108), +(96606, 115), +(96606, 122), +(96606, 120), +(96606, 117), +(96606, 118), +(96607, 106), +(96607, 110), +(96607, 121), +(96607, 116), +(96607, 113), +(96607, 111), +(96607, 126), +(96607, 125), +(96607, 124), +(96607, 109), +(96607, 123), +(96607, 119), +(96607, 112), +(96607, 114), +(96607, 107), +(96607, 108), +(96607, 115), +(96607, 122), +(96607, 120), +(96607, 117), +(96607, 118), +(96608, 106), +(96608, 110), +(96608, 121), +(96608, 116), +(96608, 113), +(96608, 111), +(96608, 126), +(96608, 125), +(96608, 124), +(96608, 109), +(96608, 123), +(96608, 119), +(96608, 112), +(96608, 114), +(96608, 107), +(96608, 108), +(96608, 115), +(96608, 122), +(96608, 120), +(96608, 117), +(96608, 118), +(96609, 106), +(96609, 110), +(96609, 121), +(96609, 116), +(96609, 113), +(96609, 111), +(96609, 126), +(96609, 125), +(96609, 124), +(96609, 109), +(96609, 123), +(96609, 119), +(96609, 112), +(96609, 114), +(96609, 107), +(96609, 108), +(96609, 115), +(96609, 122), +(96609, 120), +(96609, 117), +(96609, 118), +(96610, 106), +(96610, 110), +(96610, 121), +(96610, 116), +(96610, 113), +(96610, 111), +(96610, 126), +(96610, 125), +(96610, 124), +(96610, 109), +(96610, 123), +(96610, 119), +(96610, 112), +(96610, 114), +(96610, 107), +(96610, 108), +(96610, 115), +(96610, 122), +(96610, 120), +(96610, 117), +(96610, 118), +(96611, 106), +(96611, 110), +(96611, 121), +(96611, 116), +(96611, 113), +(96611, 111), +(96611, 126), +(96611, 125), +(96611, 124), +(96611, 109), +(96611, 123), +(96611, 119), +(96611, 112), +(96611, 114), +(96611, 107), +(96611, 108), +(96611, 115), +(96611, 122), +(96611, 120), +(96611, 117), +(96611, 118), +(96612, 106), +(96612, 110), +(96612, 121), +(96612, 116), +(96612, 113), +(96612, 111), +(96612, 126), +(96612, 125), +(96612, 124), +(96612, 109), +(96612, 123), +(96612, 119), +(96612, 112), +(96612, 114), +(96612, 107), +(96612, 108), +(96612, 115), +(96612, 122), +(96612, 120), +(96612, 117), +(96612, 118), +(96613, 106), +(96613, 110), +(96613, 121), +(96613, 116), +(96613, 113), +(96613, 111), +(96613, 126), +(96613, 125), +(96613, 124), +(96613, 109), +(96613, 123), +(96613, 119), +(96613, 112), +(96613, 114), +(96613, 107), +(96613, 108), +(96613, 115), +(96613, 122), +(96613, 120), +(96613, 117), +(96613, 118), +(96614, 106), +(96614, 110), +(96614, 121), +(96614, 116), +(96614, 113), +(96614, 111), +(96614, 126), +(96614, 125), +(96614, 124), +(96614, 109), +(96614, 123), +(96614, 119), +(96614, 112), +(96614, 114), +(96614, 107), +(96614, 108), +(96614, 115), +(96614, 122), +(96614, 120), +(96614, 117), +(96614, 118), +(96615, 106), +(96615, 110), +(96615, 121), +(96615, 116), +(96615, 113), +(96615, 111), +(96615, 126), +(96615, 125), +(96615, 124), +(96615, 109), +(96615, 123), +(96615, 119), +(96615, 112), +(96615, 114), +(96615, 107), +(96615, 108), +(96615, 115), +(96615, 122), +(96615, 120), +(96615, 117), +(96615, 118), +(96616, 106), +(96616, 110), +(96616, 121), +(96616, 116), +(96616, 113), +(96616, 111), +(96616, 126), +(96616, 125), +(96616, 124), +(96616, 109), +(96616, 123), +(96616, 119), +(96616, 112), +(96616, 114), +(96616, 107), +(96616, 108), +(96616, 115), +(96616, 122), +(96616, 120), +(96616, 117), +(96616, 118), +(96617, 106), +(96617, 110), +(96617, 121), +(96617, 116), +(96617, 113), +(96617, 111), +(96617, 126), +(96617, 125), +(96617, 124), +(96617, 109), +(96617, 123), +(96617, 119), +(96617, 112), +(96617, 114), +(96617, 107), +(96617, 108), +(96617, 115), +(96617, 122), +(96617, 120), +(96617, 117), +(96617, 118), +(96618, 106), +(96618, 110), +(96618, 121), +(96618, 116), +(96618, 113), +(96618, 111), +(96618, 126), +(96618, 125), +(96618, 124), +(96618, 109), +(96618, 123), +(96618, 119), +(96618, 112), +(96618, 114), +(96618, 107), +(96618, 108), +(96618, 115), +(96618, 122), +(96618, 120), +(96618, 117), +(96618, 118), +(96619, 106), +(96619, 110), +(96619, 121), +(96619, 116), +(96619, 113), +(96619, 111), +(96619, 126), +(96619, 125), +(96619, 124), +(96619, 109), +(96619, 123), +(96619, 119), +(96619, 112), +(96619, 114), +(96619, 107), +(96619, 108), +(96619, 115), +(96619, 122), +(96619, 120), +(96619, 117), +(96619, 118), +(96620, 106), +(96620, 110), +(96620, 121), +(96620, 116), +(96620, 113), +(96620, 111), +(96620, 126), +(96620, 125), +(96620, 124), +(96620, 109), +(96620, 123), +(96620, 119), +(96620, 112), +(96620, 114), +(96620, 107), +(96620, 108), +(96620, 115), +(96620, 122), +(96620, 120), +(96620, 117), +(96620, 118), +(96621, 106), +(96621, 110), +(96621, 121), +(96621, 116), +(96621, 113), +(96621, 111), +(96621, 126), +(96621, 125), +(96621, 124), +(96621, 109), +(96621, 123), +(96621, 119), +(96621, 112), +(96621, 114), +(96621, 107), +(96621, 108), +(96621, 115), +(96621, 122), +(96621, 120), +(96621, 117), +(96621, 118), +(96622, 106), +(96622, 110), +(96622, 121), +(96622, 116), +(96622, 113), +(96622, 111), +(96622, 126), +(96622, 125), +(96622, 124), +(96622, 109), +(96622, 123), +(96622, 119), +(96622, 112), +(96622, 114), +(96622, 107), +(96622, 108), +(96622, 115), +(96622, 122), +(96622, 120), +(96622, 117), +(96622, 118), +(96624, 106), +(96624, 110), +(96624, 121), +(96624, 116), +(96624, 113), +(96624, 111), +(96624, 126), +(96624, 125), +(96624, 124), +(96624, 109), +(96624, 123), +(96624, 119), +(96624, 112), +(96624, 114), +(96624, 107), +(96624, 108), +(96624, 115), +(96624, 122), +(96624, 120), +(96624, 117), +(96624, 118), +(96625, 106), +(96625, 110), +(96625, 121), +(96625, 116), +(96625, 113), +(96625, 111), +(96625, 126), +(96625, 125), +(96625, 124), +(96625, 109), +(96625, 123), +(96625, 119), +(96625, 112), +(96625, 114), +(96625, 107), +(96625, 108), +(96625, 115), +(96625, 122), +(96625, 120), +(96625, 117); +INSERT INTO `configuration_branch` (`configurationId`, `branchId`) VALUES +(96625, 118), +(96626, 106), +(96626, 110), +(96626, 121), +(96626, 116), +(96626, 113), +(96626, 111), +(96626, 126), +(96626, 125), +(96626, 124), +(96626, 109), +(96626, 123), +(96626, 119), +(96626, 112), +(96626, 114), +(96626, 107), +(96626, 108), +(96626, 115), +(96626, 122), +(96626, 120), +(96626, 117), +(96626, 118), +(96627, 106), +(96627, 110), +(96627, 121), +(96627, 116), +(96627, 113), +(96627, 111), +(96627, 126), +(96627, 125), +(96627, 124), +(96627, 109), +(96627, 123), +(96627, 119), +(96627, 112), +(96627, 114), +(96627, 107), +(96627, 108), +(96627, 115), +(96627, 122), +(96627, 120), +(96627, 117), +(96627, 118), +(96628, 106), +(96628, 110), +(96628, 121), +(96628, 116), +(96628, 113), +(96628, 111), +(96628, 126), +(96628, 125), +(96628, 124), +(96628, 109), +(96628, 123), +(96628, 119), +(96628, 112), +(96628, 114), +(96628, 107), +(96628, 108), +(96628, 115), +(96628, 122), +(96628, 120), +(96628, 117), +(96628, 118), +(96631, 106), +(96631, 110), +(96631, 121), +(96631, 116), +(96631, 113), +(96631, 111), +(96631, 126), +(96631, 125), +(96631, 124), +(96631, 109), +(96631, 123), +(96631, 119), +(96631, 112), +(96631, 114), +(96631, 107), +(96631, 108), +(96631, 115), +(96631, 122), +(96631, 120), +(96631, 117), +(96631, 118), +(96634, 106), +(96634, 110), +(96634, 121), +(96634, 116), +(96634, 113), +(96634, 111), +(96634, 126), +(96634, 125), +(96634, 124), +(96634, 109), +(96634, 123), +(96634, 119), +(96634, 112), +(96634, 114), +(96634, 107), +(96634, 108), +(96634, 115), +(96634, 122), +(96634, 120), +(96634, 117), +(96634, 118), +(96635, 106), +(96635, 110), +(96635, 121), +(96635, 116), +(96635, 113), +(96635, 111), +(96635, 126), +(96635, 125), +(96635, 124), +(96635, 109), +(96635, 123), +(96635, 119), +(96635, 112), +(96635, 114), +(96635, 107), +(96635, 108), +(96635, 115), +(96635, 122), +(96635, 120), +(96635, 117), +(96635, 118), +(96636, 106), +(96636, 110), +(96636, 121), +(96636, 116), +(96636, 113), +(96636, 111), +(96636, 126), +(96636, 125), +(96636, 124), +(96636, 109), +(96636, 123), +(96636, 119), +(96636, 112), +(96636, 114), +(96636, 107), +(96636, 108), +(96636, 115), +(96636, 122), +(96636, 120), +(96636, 117), +(96636, 118), +(96637, 106), +(96637, 110), +(96637, 121), +(96637, 116), +(96637, 113), +(96637, 111), +(96637, 126), +(96637, 125), +(96637, 124), +(96637, 109), +(96637, 123), +(96637, 119), +(96637, 112), +(96637, 114), +(96637, 107), +(96637, 108), +(96637, 115), +(96637, 122), +(96637, 120), +(96637, 117), +(96637, 118), +(96638, 106), +(96638, 110), +(96638, 121), +(96638, 116), +(96638, 113), +(96638, 111), +(96638, 126), +(96638, 125), +(96638, 124), +(96638, 109), +(96638, 123), +(96638, 119), +(96638, 112), +(96638, 114), +(96638, 107), +(96638, 108), +(96638, 115), +(96638, 122), +(96638, 120), +(96638, 117), +(96638, 118), +(96639, 106), +(96639, 110), +(96639, 121), +(96639, 116), +(96639, 113), +(96639, 111), +(96639, 126), +(96639, 125), +(96639, 124), +(96639, 109), +(96639, 123), +(96639, 119), +(96639, 112), +(96639, 114), +(96639, 107), +(96639, 108), +(96639, 115), +(96639, 122), +(96639, 120), +(96639, 117), +(96639, 118), +(96640, 106), +(96640, 110), +(96640, 121), +(96640, 116), +(96640, 113), +(96640, 111), +(96640, 126), +(96640, 125), +(96640, 124), +(96640, 109), +(96640, 123), +(96640, 119), +(96640, 112), +(96640, 114), +(96640, 107), +(96640, 108), +(96640, 115), +(96640, 122), +(96640, 120), +(96640, 117), +(96640, 118), +(96641, 106), +(96641, 110), +(96641, 121), +(96641, 116), +(96641, 113), +(96641, 111), +(96641, 126), +(96641, 125), +(96641, 124), +(96641, 109), +(96641, 123), +(96641, 119), +(96641, 112), +(96641, 114), +(96641, 107), +(96641, 108), +(96641, 115), +(96641, 122), +(96641, 120), +(96641, 117), +(96641, 118), +(96642, 106), +(96642, 110), +(96642, 121), +(96642, 116), +(96642, 113), +(96642, 111), +(96642, 126), +(96642, 125), +(96642, 124), +(96642, 109), +(96642, 123), +(96642, 119), +(96642, 112), +(96642, 114), +(96642, 107), +(96642, 108), +(96642, 115), +(96642, 122), +(96642, 120), +(96642, 117), +(96642, 118), +(96643, 106), +(96643, 110), +(96643, 121), +(96643, 116), +(96643, 113), +(96643, 111), +(96643, 126), +(96643, 125), +(96643, 124), +(96643, 109), +(96643, 123), +(96643, 119), +(96643, 112), +(96643, 114), +(96643, 107), +(96643, 108), +(96643, 115), +(96643, 122), +(96643, 120), +(96643, 117), +(96643, 118), +(96644, 106), +(96644, 110), +(96644, 121), +(96644, 116), +(96644, 113), +(96644, 111), +(96644, 126), +(96644, 125), +(96644, 124), +(96644, 109), +(96644, 123), +(96644, 119), +(96644, 112), +(96644, 114), +(96644, 107), +(96644, 108), +(96644, 115), +(96644, 122), +(96644, 120), +(96644, 117), +(96644, 118), +(96645, 106), +(96645, 110), +(96645, 121), +(96645, 116), +(96645, 113), +(96645, 111), +(96645, 126), +(96645, 125), +(96645, 124), +(96645, 109), +(96645, 123), +(96645, 119), +(96645, 112), +(96645, 114), +(96645, 107), +(96645, 108), +(96645, 115), +(96645, 122), +(96645, 120), +(96645, 117), +(96645, 118), +(96646, 106), +(96646, 110), +(96646, 121), +(96646, 116), +(96646, 113), +(96646, 111), +(96646, 126), +(96646, 125), +(96646, 124), +(96646, 109), +(96646, 123), +(96646, 119), +(96646, 112), +(96646, 114), +(96646, 107), +(96646, 108), +(96646, 115), +(96646, 122), +(96646, 120), +(96646, 117), +(96646, 118), +(96647, 106), +(96647, 110), +(96647, 121), +(96647, 116), +(96647, 113), +(96647, 111), +(96647, 126), +(96647, 125), +(96647, 124), +(96647, 109), +(96647, 123), +(96647, 119), +(96647, 112), +(96647, 114), +(96647, 107), +(96647, 108), +(96647, 115), +(96647, 122), +(96647, 120), +(96647, 117), +(96647, 118), +(96654, 106), +(96654, 110), +(96654, 121), +(96654, 116), +(96654, 113), +(96654, 111), +(96654, 126), +(96654, 125), +(96654, 124), +(96654, 109), +(96654, 123), +(96654, 119), +(96654, 112), +(96654, 114), +(96654, 107), +(96654, 108), +(96654, 115), +(96654, 122), +(96654, 120), +(96654, 117), +(96654, 118), +(96655, 106), +(96655, 110), +(96655, 121), +(96655, 116), +(96655, 113), +(96655, 111), +(96655, 126), +(96655, 125), +(96655, 124), +(96655, 109), +(96655, 123), +(96655, 119), +(96655, 112), +(96655, 114), +(96655, 107), +(96655, 108), +(96655, 115), +(96655, 122), +(96655, 120), +(96655, 117), +(96655, 118), +(96656, 106), +(96656, 110), +(96656, 121), +(96656, 116), +(96656, 113), +(96656, 111), +(96656, 126), +(96656, 125), +(96656, 124), +(96656, 109), +(96656, 123), +(96656, 119), +(96656, 112), +(96656, 114), +(96656, 107), +(96656, 108), +(96656, 115), +(96656, 122), +(96656, 120), +(96656, 117), +(96656, 118), +(96657, 106), +(96657, 110), +(96657, 121), +(96657, 116), +(96657, 113), +(96657, 111), +(96657, 126), +(96657, 125), +(96657, 124), +(96657, 109), +(96657, 123), +(96657, 119), +(96657, 112), +(96657, 114), +(96657, 107), +(96657, 108), +(96657, 115), +(96657, 122), +(96657, 120), +(96657, 117), +(96657, 118), +(96658, 106), +(96658, 110), +(96658, 121), +(96658, 116), +(96658, 113), +(96658, 111), +(96658, 126), +(96658, 125), +(96658, 124), +(96658, 109), +(96658, 123), +(96658, 119), +(96658, 112), +(96658, 114), +(96658, 107), +(96658, 108), +(96658, 115), +(96658, 122), +(96658, 120), +(96658, 117), +(96658, 118), +(96659, 106), +(96659, 110), +(96659, 121), +(96659, 116), +(96659, 113), +(96659, 111), +(96659, 126), +(96659, 125), +(96659, 124), +(96659, 109), +(96659, 123), +(96659, 119), +(96659, 112), +(96659, 114), +(96659, 107), +(96659, 108), +(96659, 115), +(96659, 122), +(96659, 120), +(96659, 117), +(96659, 118), +(96660, 106), +(96660, 110), +(96660, 121), +(96660, 116), +(96660, 113), +(96660, 111), +(96660, 126), +(96660, 125), +(96660, 124), +(96660, 109), +(96660, 123), +(96660, 119), +(96660, 112), +(96660, 114), +(96660, 107), +(96660, 108), +(96660, 115), +(96660, 122), +(96660, 120), +(96660, 117), +(96660, 118), +(96661, 106), +(96661, 110), +(96661, 121), +(96661, 116), +(96661, 113), +(96661, 111), +(96661, 126), +(96661, 125), +(96661, 124), +(96661, 109), +(96661, 123), +(96661, 119), +(96661, 112), +(96661, 114), +(96661, 107), +(96661, 108), +(96661, 115), +(96661, 122), +(96661, 120), +(96661, 117), +(96661, 118), +(96662, 106), +(96662, 110), +(96662, 121), +(96662, 116), +(96662, 113), +(96662, 111), +(96662, 126), +(96662, 125), +(96662, 124), +(96662, 109), +(96662, 123), +(96662, 119), +(96662, 112), +(96662, 114), +(96662, 107), +(96662, 108), +(96662, 115), +(96662, 122), +(96662, 120), +(96662, 117), +(96662, 118), +(96663, 106), +(96663, 110), +(96663, 121), +(96663, 116), +(96663, 113), +(96663, 111), +(96663, 126), +(96663, 125), +(96663, 124), +(96663, 109), +(96663, 123), +(96663, 119), +(96663, 112), +(96663, 114), +(96663, 107), +(96663, 108), +(96663, 115), +(96663, 122), +(96663, 120), +(96663, 117), +(96663, 118), +(96664, 106), +(96664, 110), +(96664, 121), +(96664, 116), +(96664, 113), +(96664, 111), +(96664, 126), +(96664, 125), +(96664, 124), +(96664, 109), +(96664, 123), +(96664, 119), +(96664, 112), +(96664, 114), +(96664, 107), +(96664, 108), +(96664, 115), +(96664, 122), +(96664, 120), +(96664, 117), +(96664, 118), +(96665, 106), +(96665, 110), +(96665, 121), +(96665, 116), +(96665, 113), +(96665, 111), +(96665, 126), +(96665, 125), +(96665, 124), +(96665, 109), +(96665, 123), +(96665, 119), +(96665, 112), +(96665, 114), +(96665, 107), +(96665, 108), +(96665, 115), +(96665, 122), +(96665, 120), +(96665, 117), +(96665, 118), +(96666, 106), +(96666, 110), +(96666, 121), +(96666, 116), +(96666, 113), +(96666, 111), +(96666, 126), +(96666, 125), +(96666, 124), +(96666, 109), +(96666, 123), +(96666, 119), +(96666, 112), +(96666, 114), +(96666, 107), +(96666, 108), +(96666, 115), +(96666, 122), +(96666, 120), +(96666, 117), +(96666, 118), +(96667, 106), +(96667, 110), +(96667, 121), +(96667, 116), +(96667, 113), +(96667, 111), +(96667, 126), +(96667, 125), +(96667, 124), +(96667, 109), +(96667, 123), +(96667, 119), +(96667, 112), +(96667, 114), +(96667, 107), +(96667, 108), +(96667, 115), +(96667, 122), +(96667, 120), +(96667, 117), +(96667, 118), +(96668, 106), +(96668, 110), +(96668, 121), +(96668, 116), +(96668, 113), +(96668, 111), +(96668, 126), +(96668, 125), +(96668, 124), +(96668, 109), +(96668, 123), +(96668, 119), +(96668, 112), +(96668, 114), +(96668, 107), +(96668, 108), +(96668, 115), +(96668, 122), +(96668, 120), +(96668, 117), +(96668, 118), +(96669, 106), +(96669, 110), +(96669, 121), +(96669, 116), +(96669, 113), +(96669, 111), +(96669, 126), +(96669, 125), +(96669, 124), +(96669, 109), +(96669, 123), +(96669, 119), +(96669, 112), +(96669, 114), +(96669, 107), +(96669, 108), +(96669, 115), +(96669, 122), +(96669, 120), +(96669, 117), +(96669, 118), +(97487, 106), +(97487, 110), +(97487, 121), +(97487, 116), +(97487, 113), +(97487, 111), +(97487, 126), +(97487, 125), +(97487, 124), +(97487, 109), +(97487, 123), +(97487, 119), +(97487, 112), +(97487, 114), +(97487, 107), +(97487, 108), +(97487, 115), +(97487, 122), +(97487, 120), +(97487, 117), +(97487, 118), +(97488, 106), +(97488, 110), +(97488, 121), +(97488, 116), +(97488, 113), +(97488, 111), +(97488, 126), +(97488, 125), +(97488, 124), +(97488, 109), +(97488, 123), +(97488, 119), +(97488, 112), +(97488, 114), +(97488, 107), +(97488, 108), +(97488, 115), +(97488, 122), +(97488, 120), +(97488, 117), +(97488, 118), +(97489, 106), +(97489, 110), +(97489, 121), +(97489, 116), +(97489, 113), +(97489, 111), +(97489, 126), +(97489, 125), +(97489, 124), +(97489, 109), +(97489, 123), +(97489, 119), +(97489, 112), +(97489, 114), +(97489, 107), +(97489, 108), +(97489, 115), +(97489, 122), +(97489, 120), +(97489, 117), +(97489, 118), +(97490, 106), +(97490, 110), +(97490, 121), +(97490, 116), +(97490, 113), +(97490, 111), +(97490, 126), +(97490, 125), +(97490, 124), +(97490, 109), +(97490, 123), +(97490, 119), +(97490, 112), +(97490, 114), +(97490, 107), +(97490, 108), +(97490, 115), +(97490, 122), +(97490, 120), +(97490, 117), +(97490, 118), +(97491, 106), +(97491, 110), +(97491, 121), +(97491, 116), +(97491, 113), +(97491, 111), +(97491, 126), +(97491, 125), +(97491, 124), +(97491, 109), +(97491, 123), +(97491, 119), +(97491, 112), +(97491, 114), +(97491, 107), +(97491, 108), +(97491, 115), +(97491, 122), +(97491, 120), +(97491, 117), +(97491, 118), +(97492, 106), +(97492, 110), +(97492, 121), +(97492, 116), +(97492, 113), +(97492, 111), +(97492, 126), +(97492, 125), +(97492, 124), +(97492, 109), +(97492, 123), +(97492, 119), +(97492, 112), +(97492, 114), +(97492, 107), +(97492, 108), +(97492, 115), +(97492, 122), +(97492, 120), +(97492, 117), +(97492, 118), +(97493, 106), +(97493, 110), +(97493, 121), +(97493, 116), +(97493, 113), +(97493, 111), +(97493, 126), +(97493, 125), +(97493, 124), +(97493, 109), +(97493, 123), +(97493, 119), +(97493, 112), +(97493, 114), +(97493, 107), +(97493, 108), +(97493, 115), +(97493, 122), +(97493, 120), +(97493, 117), +(97493, 118), +(97494, 106), +(97494, 110), +(97494, 121), +(97494, 116), +(97494, 113), +(97494, 111), +(97494, 126), +(97494, 125), +(97494, 124), +(97494, 109), +(97494, 123), +(97494, 119), +(97494, 112), +(97494, 114), +(97494, 107), +(97494, 108), +(97494, 115), +(97494, 122), +(97494, 120), +(97494, 117), +(97494, 118), +(97496, 106), +(97496, 110), +(97496, 121), +(97496, 116), +(97496, 113), +(97496, 111), +(97496, 126), +(97496, 125), +(97496, 124), +(97496, 109), +(97496, 123), +(97496, 119), +(97496, 112), +(97496, 114), +(97496, 107), +(97496, 108), +(97496, 115), +(97496, 122), +(97496, 120), +(97496, 117), +(97496, 118), +(97497, 106), +(97497, 110), +(97497, 121), +(97497, 116), +(97497, 113), +(97497, 111), +(97497, 126), +(97497, 125), +(97497, 124), +(97497, 109), +(97497, 123), +(97497, 119), +(97497, 112), +(97497, 114), +(97497, 107), +(97497, 108), +(97497, 115), +(97497, 122), +(97497, 120), +(97497, 117), +(97497, 118), +(97498, 106), +(97498, 110), +(97498, 121), +(97498, 116), +(97498, 113), +(97498, 111), +(97498, 126), +(97498, 125), +(97498, 124), +(97498, 109), +(97498, 123), +(97498, 119), +(97498, 112), +(97498, 114), +(97498, 107), +(97498, 108), +(97498, 115), +(97498, 122), +(97498, 120), +(97498, 117), +(97498, 118), +(97499, 106), +(97499, 110), +(97499, 121), +(97499, 116), +(97499, 113), +(97499, 111), +(97499, 126), +(97499, 125), +(97499, 124), +(97499, 109), +(97499, 123), +(97499, 119), +(97499, 112), +(97499, 114), +(97499, 107), +(97499, 108), +(97499, 115), +(97499, 122), +(97499, 120), +(97499, 117), +(97499, 118), +(97500, 106), +(97500, 110), +(97500, 121), +(97500, 116), +(97500, 113), +(97500, 111), +(97500, 126), +(97500, 125), +(97500, 124), +(97500, 109), +(97500, 123), +(97500, 119), +(97500, 112), +(97500, 114), +(97500, 107), +(97500, 108), +(97500, 115), +(97500, 122), +(97500, 120), +(97500, 117), +(97500, 118), +(97501, 106), +(97501, 110), +(97501, 121), +(97501, 116), +(97501, 113), +(97501, 111), +(97501, 126), +(97501, 125), +(97501, 124), +(97501, 109), +(97501, 123), +(97501, 119), +(97501, 112), +(97501, 114), +(97501, 107), +(97501, 108), +(97501, 115), +(97501, 122), +(97501, 120), +(97501, 117), +(97501, 118), +(97502, 106), +(97502, 110), +(97502, 121), +(97502, 116), +(97502, 113), +(97502, 111), +(97502, 126), +(97502, 125), +(97502, 124), +(97502, 109), +(97502, 123), +(97502, 119), +(97502, 112), +(97502, 114), +(97502, 107), +(97502, 108), +(97502, 115), +(97502, 122), +(97502, 120), +(97502, 117), +(97502, 118), +(97503, 106), +(97503, 110), +(97503, 121), +(97503, 116), +(97503, 113), +(97503, 111), +(97503, 126), +(97503, 125), +(97503, 124), +(97503, 109), +(97503, 123), +(97503, 119), +(97503, 112), +(97503, 114), +(97503, 107), +(97503, 108), +(97503, 115), +(97503, 122), +(97503, 120), +(97503, 117), +(97503, 118), +(97504, 106), +(97504, 110), +(97504, 121), +(97504, 116), +(97504, 113), +(97504, 111), +(97504, 126), +(97504, 125), +(97504, 124), +(97504, 109), +(97504, 123), +(97504, 119), +(97504, 112), +(97504, 114), +(97504, 107), +(97504, 108), +(97504, 115), +(97504, 122), +(97504, 120), +(97504, 117), +(97504, 118), +(97505, 106), +(97505, 110), +(97505, 121), +(97505, 116), +(97505, 113), +(97505, 111), +(97505, 126), +(97505, 125), +(97505, 124), +(97505, 109), +(97505, 123), +(97505, 119), +(97505, 112), +(97505, 114), +(97505, 107), +(97505, 108), +(97505, 115), +(97505, 122), +(97505, 120), +(97505, 117), +(97505, 118), +(97506, 106), +(97506, 110), +(97506, 121), +(97506, 116), +(97506, 113), +(97506, 111), +(97506, 126), +(97506, 125), +(97506, 124), +(97506, 109), +(97506, 123), +(97506, 119), +(97506, 112), +(97506, 114), +(97506, 107), +(97506, 108), +(97506, 115), +(97506, 122), +(97506, 120), +(97506, 117), +(97506, 118), +(97507, 106), +(97507, 110), +(97507, 121), +(97507, 116), +(97507, 113), +(97507, 111), +(97507, 126), +(97507, 125), +(97507, 124), +(97507, 109), +(97507, 123), +(97507, 119), +(97507, 112), +(97507, 114), +(97507, 107), +(97507, 108), +(97507, 115), +(97507, 122), +(97507, 120), +(97507, 117), +(97507, 118), +(97508, 106), +(97508, 110), +(97508, 121), +(97508, 116), +(97508, 113), +(97508, 111), +(97508, 126), +(97508, 125), +(97508, 124), +(97508, 109), +(97508, 123), +(97508, 119), +(97508, 112), +(97508, 114), +(97508, 107), +(97508, 108), +(97508, 115), +(97508, 122), +(97508, 120), +(97508, 117), +(97508, 118), +(97509, 106), +(97509, 110), +(97509, 121), +(97509, 116), +(97509, 113), +(97509, 111), +(97509, 126), +(97509, 125), +(97509, 124), +(97509, 109), +(97509, 123), +(97509, 119), +(97509, 112), +(97509, 114), +(97509, 107), +(97509, 108), +(97509, 115), +(97509, 122), +(97509, 120), +(97509, 117), +(97509, 118), +(97510, 106), +(97510, 110), +(97510, 121), +(97510, 116), +(97510, 113), +(97510, 111), +(97510, 126), +(97510, 125), +(97510, 124), +(97510, 109), +(97510, 123), +(97510, 119), +(97510, 112), +(97510, 114), +(97510, 107), +(97510, 108), +(97510, 115), +(97510, 122), +(97510, 120), +(97510, 117), +(97510, 118), +(97511, 106), +(97511, 110), +(97511, 121), +(97511, 116), +(97511, 113), +(97511, 111), +(97511, 126), +(97511, 125), +(97511, 124), +(97511, 109), +(97511, 123), +(97511, 119), +(97511, 112), +(97511, 114), +(97511, 107), +(97511, 108), +(97511, 115), +(97511, 122), +(97511, 120), +(97511, 117), +(97511, 118), +(97512, 106), +(97512, 110), +(97512, 121), +(97512, 116), +(97512, 113), +(97512, 111), +(97512, 126), +(97512, 125), +(97512, 124), +(97512, 109), +(97512, 123), +(97512, 119), +(97512, 112), +(97512, 114), +(97512, 107), +(97512, 108), +(97512, 115), +(97512, 122), +(97512, 120), +(97512, 117), +(97512, 118), +(97513, 106), +(97513, 110), +(97513, 121), +(97513, 116), +(97513, 113), +(97513, 111), +(97513, 126), +(97513, 125), +(97513, 124), +(97513, 109), +(97513, 123), +(97513, 119), +(97513, 112), +(97513, 114), +(97513, 107), +(97513, 108), +(97513, 115), +(97513, 122), +(97513, 120), +(97513, 117), +(97513, 118), +(97514, 106), +(97514, 110), +(97514, 121), +(97514, 116), +(97514, 113), +(97514, 111), +(97514, 126), +(97514, 125), +(97514, 124), +(97514, 109), +(97514, 123), +(97514, 119), +(97514, 112), +(97514, 114), +(97514, 107), +(97514, 108), +(97514, 115), +(97514, 122), +(97514, 120), +(97514, 117), +(97514, 118), +(97515, 106), +(97515, 110), +(97515, 121), +(97515, 116), +(97515, 113), +(97515, 111), +(97515, 126), +(97515, 125), +(97515, 124), +(97515, 109), +(97515, 123), +(97515, 119), +(97515, 112), +(97515, 114), +(97515, 107), +(97515, 108), +(97515, 115), +(97515, 122), +(97515, 120), +(97515, 117), +(97515, 118), +(97516, 106), +(97516, 110), +(97516, 121), +(97516, 116), +(97516, 113), +(97516, 111), +(97516, 126), +(97516, 125), +(97516, 124), +(97516, 109), +(97516, 123), +(97516, 119), +(97516, 112), +(97516, 114), +(97516, 107), +(97516, 108), +(97516, 115), +(97516, 122), +(97516, 120), +(97516, 117), +(97516, 118), +(97517, 106), +(97517, 110), +(97517, 121), +(97517, 116), +(97517, 113), +(97517, 111), +(97517, 126), +(97517, 125), +(97517, 124), +(97517, 109), +(97517, 123), +(97517, 119), +(97517, 112), +(97517, 114), +(97517, 107), +(97517, 108), +(97517, 115), +(97517, 122), +(97517, 120), +(97517, 117), +(97517, 118), +(97518, 106), +(97518, 110), +(97518, 121), +(97518, 116), +(97518, 113), +(97518, 111), +(97518, 126), +(97518, 125), +(97518, 124), +(97518, 109), +(97518, 123), +(97518, 119), +(97518, 112), +(97518, 114), +(97518, 107), +(97518, 108), +(97518, 115), +(97518, 122), +(97518, 120), +(97518, 117), +(97518, 118), +(97519, 106), +(97519, 110), +(97519, 121), +(97519, 116), +(97519, 113), +(97519, 111), +(97519, 126), +(97519, 125), +(97519, 124), +(97519, 109), +(97519, 123), +(97519, 119), +(97519, 112), +(97519, 114), +(97519, 107), +(97519, 108), +(97519, 115), +(97519, 122), +(97519, 120), +(97519, 117), +(97519, 118), +(97520, 106), +(97520, 110), +(97520, 121), +(97520, 116), +(97520, 113), +(97520, 111), +(97520, 126), +(97520, 125), +(97520, 124), +(97520, 109), +(97520, 123), +(97520, 119), +(97520, 112), +(97520, 114), +(97520, 107), +(97520, 108), +(97520, 115), +(97520, 122), +(97520, 120), +(97520, 117), +(97520, 118), +(97521, 106), +(97521, 110), +(97521, 121), +(97521, 116), +(97521, 113), +(97521, 111), +(97521, 126), +(97521, 125), +(97521, 124), +(97521, 109), +(97521, 123), +(97521, 119), +(97521, 112), +(97521, 114), +(97521, 107), +(97521, 108), +(97521, 115), +(97521, 122), +(97521, 120), +(97521, 117), +(97521, 118), +(97522, 106), +(97522, 110), +(97522, 121), +(97522, 116), +(97522, 113), +(97522, 111), +(97522, 126), +(97522, 125), +(97522, 124), +(97522, 109), +(97522, 123), +(97522, 119), +(97522, 112), +(97522, 114), +(97522, 107), +(97522, 108), +(97522, 115), +(97522, 122), +(97522, 120), +(97522, 117), +(97522, 118), +(97523, 106), +(97523, 110), +(97523, 121), +(97523, 116), +(97523, 113), +(97523, 111), +(97523, 126), +(97523, 125), +(97523, 124), +(97523, 109), +(97523, 123), +(97523, 119), +(97523, 112), +(97523, 114), +(97523, 107), +(97523, 108), +(97523, 115), +(97523, 122), +(97523, 120), +(97523, 117), +(97523, 118), +(97524, 106), +(97524, 110), +(97524, 121), +(97524, 116), +(97524, 113), +(97524, 111), +(97524, 126), +(97524, 125), +(97524, 124), +(97524, 109), +(97524, 123), +(97524, 119), +(97524, 112), +(97524, 114), +(97524, 107), +(97524, 108), +(97524, 115), +(97524, 122), +(97524, 120), +(97524, 117), +(97524, 118), +(97525, 106), +(97525, 110), +(97525, 121), +(97525, 116), +(97525, 113), +(97525, 111), +(97525, 126), +(97525, 125), +(97525, 124), +(97525, 109), +(97525, 123), +(97525, 119), +(97525, 112), +(97525, 114), +(97525, 107), +(97525, 108), +(97525, 115), +(97525, 122), +(97525, 120), +(97525, 117), +(97525, 118), +(97526, 106), +(97526, 110), +(97526, 121), +(97526, 116), +(97526, 113), +(97526, 111), +(97526, 126), +(97526, 125), +(97526, 124), +(97526, 109), +(97526, 123), +(97526, 119), +(97526, 112), +(97526, 114), +(97526, 107), +(97526, 108), +(97526, 115), +(97526, 122), +(97526, 120), +(97526, 117), +(97526, 118), +(97527, 106), +(97527, 110), +(97527, 121), +(97527, 116), +(97527, 113), +(97527, 111), +(97527, 126), +(97527, 125), +(97527, 124), +(97527, 109), +(97527, 123), +(97527, 119), +(97527, 112), +(97527, 114), +(97527, 107), +(97527, 108), +(97527, 115), +(97527, 122), +(97527, 120), +(97527, 117), +(97527, 118), +(97528, 106), +(97528, 110), +(97528, 121), +(97528, 116), +(97528, 113), +(97528, 111), +(97528, 126), +(97528, 125), +(97528, 124), +(97528, 109), +(97528, 123), +(97528, 119), +(97528, 112), +(97528, 114), +(97528, 107), +(97528, 108), +(97528, 115), +(97528, 122), +(97528, 120), +(97528, 117), +(97528, 118), +(97529, 106), +(97529, 110), +(97529, 121), +(97529, 116), +(97529, 113), +(97529, 111), +(97529, 126), +(97529, 125), +(97529, 124), +(97529, 109), +(97529, 123), +(97529, 119), +(97529, 112), +(97529, 114), +(97529, 107), +(97529, 108), +(97529, 115), +(97529, 122), +(97529, 120), +(97529, 117), +(97529, 118), +(97532, 106), +(97532, 110), +(97532, 121), +(97532, 116), +(97532, 113), +(97532, 111), +(97532, 126), +(97532, 125), +(97532, 124), +(97532, 109), +(97532, 123), +(97532, 119), +(97532, 112), +(97532, 114), +(97532, 107), +(97532, 108), +(97532, 115), +(97532, 122), +(97532, 120), +(97532, 117), +(97532, 118), +(97533, 106), +(97533, 110), +(97533, 121), +(97533, 116), +(97533, 113), +(97533, 111), +(97533, 126), +(97533, 125), +(97533, 124), +(97533, 109), +(97533, 123), +(97533, 119), +(97533, 112), +(97533, 114), +(97533, 107), +(97533, 108), +(97533, 115), +(97533, 122), +(97533, 120), +(97533, 117), +(97533, 118), +(97534, 106), +(97534, 110), +(97534, 121), +(97534, 116), +(97534, 113), +(97534, 111), +(97534, 126), +(97534, 125), +(97534, 124), +(97534, 109), +(97534, 123), +(97534, 119), +(97534, 112), +(97534, 114), +(97534, 107), +(97534, 108), +(97534, 115), +(97534, 122), +(97534, 120), +(97534, 117), +(97534, 118), +(97535, 106), +(97535, 110), +(97535, 121), +(97535, 116), +(97535, 113), +(97535, 111), +(97535, 126), +(97535, 125), +(97535, 124), +(97535, 109), +(97535, 123), +(97535, 119), +(97535, 112), +(97535, 114), +(97535, 107), +(97535, 108), +(97535, 115), +(97535, 122), +(97535, 120), +(97535, 117), +(97535, 118), +(97536, 106), +(97536, 110), +(97536, 121), +(97536, 116), +(97536, 113), +(97536, 111), +(97536, 126), +(97536, 125), +(97536, 124), +(97536, 109), +(97536, 123), +(97536, 119), +(97536, 112), +(97536, 114), +(97536, 107), +(97536, 108), +(97536, 115), +(97536, 122), +(97536, 120), +(97536, 117), +(97536, 118), +(97537, 106), +(97537, 110), +(97537, 121), +(97537, 116), +(97537, 113), +(97537, 111), +(97537, 126), +(97537, 125), +(97537, 124), +(97537, 109), +(97537, 123), +(97537, 119), +(97537, 112), +(97537, 114), +(97537, 107), +(97537, 108), +(97537, 115), +(97537, 122), +(97537, 120), +(97537, 117), +(97537, 118), +(97538, 106), +(97538, 110), +(97538, 121), +(97538, 116), +(97538, 113), +(97538, 111), +(97538, 126), +(97538, 125), +(97538, 124), +(97538, 109), +(97538, 123), +(97538, 119), +(97538, 112), +(97538, 114), +(97538, 107), +(97538, 108), +(97538, 115), +(97538, 122), +(97538, 120), +(97538, 117), +(97538, 118), +(97539, 106), +(97539, 110), +(97539, 121), +(97539, 116), +(97539, 113), +(97539, 111), +(97539, 126), +(97539, 125), +(97539, 124), +(97539, 109), +(97539, 123), +(97539, 119), +(97539, 112), +(97539, 114), +(97539, 107), +(97539, 108), +(97539, 115), +(97539, 122), +(97539, 120), +(97539, 117), +(97539, 118), +(97540, 106), +(97540, 110), +(97540, 121), +(97540, 116), +(97540, 113), +(97540, 111), +(97540, 126), +(97540, 125), +(97540, 124), +(97540, 109), +(97540, 123), +(97540, 119), +(97540, 112), +(97540, 114), +(97540, 107), +(97540, 108), +(97540, 115), +(97540, 122), +(97540, 120), +(97540, 117), +(97540, 118), +(97542, 106), +(97542, 110), +(97542, 121), +(97542, 116), +(97542, 113), +(97542, 111), +(97542, 126), +(97542, 125), +(97542, 124), +(97542, 109), +(97542, 123), +(97542, 119), +(97542, 112), +(97542, 114), +(97542, 107), +(97542, 108), +(97542, 115), +(97542, 122), +(97542, 120), +(97542, 117), +(97542, 118), +(97543, 106), +(97543, 110), +(97543, 121), +(97543, 116), +(97543, 113), +(97543, 111), +(97543, 126), +(97543, 125), +(97543, 124), +(97543, 109), +(97543, 123), +(97543, 119), +(97543, 112), +(97543, 114), +(97543, 107), +(97543, 108), +(97543, 115), +(97543, 122), +(97543, 120), +(97543, 117), +(97543, 118), +(97544, 106), +(97544, 110), +(97544, 121), +(97544, 116), +(97544, 113), +(97544, 111), +(97544, 126), +(97544, 125), +(97544, 124), +(97544, 109), +(97544, 123), +(97544, 119), +(97544, 112), +(97544, 114), +(97544, 107), +(97544, 108), +(97544, 115), +(97544, 122), +(97544, 120), +(97544, 117), +(97544, 118), +(97545, 106), +(97545, 110), +(97545, 121), +(97545, 116), +(97545, 113), +(97545, 111), +(97545, 126), +(97545, 125), +(97545, 124), +(97545, 109), +(97545, 123), +(97545, 119), +(97545, 112), +(97545, 114), +(97545, 107), +(97545, 108), +(97545, 115), +(97545, 122), +(97545, 120), +(97545, 117), +(97545, 118), +(97546, 106), +(97546, 110), +(97546, 121), +(97546, 116), +(97546, 113), +(97546, 111), +(97546, 126), +(97546, 125), +(97546, 124), +(97546, 109), +(97546, 123), +(97546, 119), +(97546, 112), +(97546, 114), +(97546, 107), +(97546, 108), +(97546, 115), +(97546, 122), +(97546, 120), +(97546, 117), +(97546, 118), +(97549, 106), +(97549, 110), +(97549, 121), +(97549, 116), +(97549, 113), +(97549, 111), +(97549, 126), +(97549, 125), +(97549, 124), +(97549, 109), +(97549, 123), +(97549, 119), +(97549, 112), +(97549, 114), +(97549, 107), +(97549, 108), +(97549, 115), +(97549, 122), +(97549, 120), +(97549, 117), +(97549, 118), +(97550, 106), +(97550, 110), +(97550, 121), +(97550, 116), +(97550, 113), +(97550, 111), +(97550, 126), +(97550, 125), +(97550, 124), +(97550, 109), +(97550, 123), +(97550, 119), +(97550, 112), +(97550, 114), +(97550, 107), +(97550, 108), +(97550, 115), +(97550, 122), +(97550, 120), +(97550, 117), +(97550, 118), +(97551, 106), +(97551, 110), +(97551, 121), +(97551, 116), +(97551, 113), +(97551, 111), +(97551, 126), +(97551, 125), +(97551, 124), +(97551, 109), +(97551, 123), +(97551, 119), +(97551, 112), +(97551, 114), +(97551, 107), +(97551, 108), +(97551, 115), +(97551, 122), +(97551, 120), +(97551, 117), +(97551, 118), +(97552, 106), +(97552, 110), +(97552, 121), +(97552, 116), +(97552, 113), +(97552, 111), +(97552, 126), +(97552, 125), +(97552, 124), +(97552, 109), +(97552, 123), +(97552, 119), +(97552, 112), +(97552, 114), +(97552, 107), +(97552, 108), +(97552, 115), +(97552, 122), +(97552, 120), +(97552, 117), +(97552, 118), +(97553, 106), +(97553, 110), +(97553, 121), +(97553, 116), +(97553, 113), +(97553, 111), +(97553, 126), +(97553, 125), +(97553, 124), +(97553, 109), +(97553, 123), +(97553, 119), +(97553, 112), +(97553, 114), +(97553, 107), +(97553, 108), +(97553, 115), +(97553, 122), +(97553, 120), +(97553, 117), +(97553, 118), +(97554, 106), +(97554, 110), +(97554, 121), +(97554, 116), +(97554, 113), +(97554, 111), +(97554, 126), +(97554, 125), +(97554, 124), +(97554, 109), +(97554, 123), +(97554, 119), +(97554, 112), +(97554, 114), +(97554, 107), +(97554, 108), +(97554, 115), +(97554, 122), +(97554, 120), +(97554, 117), +(97554, 118), +(97555, 106), +(97555, 110), +(97555, 121), +(97555, 116), +(97555, 113), +(97555, 111), +(97555, 126), +(97555, 125), +(97555, 124), +(97555, 109), +(97555, 123), +(97555, 119), +(97555, 112), +(97555, 114), +(97555, 107), +(97555, 108), +(97555, 115), +(97555, 122), +(97555, 120), +(97555, 117), +(97555, 118), +(97556, 106), +(97556, 110), +(97556, 121), +(97556, 116), +(97556, 113), +(97556, 111), +(97556, 126), +(97556, 125), +(97556, 124), +(97556, 109), +(97556, 123), +(97556, 119), +(97556, 112), +(97556, 114), +(97556, 107), +(97556, 108), +(97556, 115), +(97556, 122), +(97556, 120), +(97556, 117), +(97556, 118), +(97558, 106), +(97558, 110), +(97558, 121), +(97558, 116), +(97558, 113), +(97558, 111), +(97558, 126), +(97558, 125), +(97558, 124), +(97558, 109), +(97558, 123), +(97558, 119), +(97558, 112), +(97558, 114), +(97558, 107), +(97558, 108), +(97558, 115), +(97558, 122), +(97558, 120), +(97558, 117), +(97558, 118), +(97559, 106), +(97559, 110), +(97559, 121), +(97559, 116), +(97559, 113), +(97559, 111), +(97559, 126), +(97559, 125), +(97559, 124), +(97559, 109), +(97559, 123), +(97559, 119), +(97559, 112), +(97559, 114), +(97559, 107), +(97559, 108), +(97559, 115), +(97559, 122), +(97559, 120), +(97559, 117), +(97559, 118), +(97560, 106), +(97560, 110), +(97560, 121), +(97560, 116), +(97560, 113), +(97560, 111), +(97560, 126), +(97560, 125), +(97560, 124), +(97560, 109), +(97560, 123), +(97560, 119), +(97560, 112), +(97560, 114), +(97560, 107), +(97560, 108), +(97560, 115), +(97560, 122), +(97560, 120), +(97560, 117), +(97560, 118), +(97561, 106), +(97561, 110), +(97561, 121), +(97561, 116), +(97561, 113), +(97561, 111), +(97561, 126), +(97561, 125), +(97561, 124), +(97561, 109), +(97561, 123), +(97561, 119), +(97561, 112), +(97561, 114), +(97561, 107), +(97561, 108), +(97561, 115), +(97561, 122), +(97561, 120), +(97561, 117), +(97561, 118), +(97562, 106), +(97562, 110), +(97562, 121), +(97562, 116), +(97562, 113), +(97562, 111), +(97562, 126), +(97562, 125), +(97562, 124), +(97562, 109), +(97562, 123), +(97562, 119), +(97562, 112), +(97562, 114), +(97562, 107), +(97562, 108), +(97562, 115), +(97562, 122), +(97562, 120), +(97562, 117), +(97562, 118), +(97563, 106), +(97563, 110), +(97563, 121), +(97563, 116), +(97563, 113), +(97563, 111), +(97563, 126), +(97563, 125), +(97563, 124), +(97563, 109), +(97563, 123), +(97563, 119), +(97563, 112), +(97563, 114), +(97563, 107), +(97563, 108), +(97563, 115), +(97563, 122), +(97563, 120), +(97563, 117), +(97563, 118), +(97564, 106), +(97564, 110), +(97564, 121), +(97564, 116), +(97564, 113), +(97564, 111), +(97564, 126), +(97564, 125), +(97564, 124), +(97564, 109), +(97564, 123), +(97564, 119), +(97564, 112), +(97564, 114), +(97564, 107), +(97564, 108), +(97564, 115), +(97564, 122), +(97564, 120), +(97564, 117), +(97564, 118), +(97565, 106), +(97565, 110), +(97565, 121), +(97565, 116), +(97565, 113), +(97565, 111), +(97565, 126), +(97565, 125), +(97565, 124), +(97565, 109), +(97565, 123), +(97565, 119), +(97565, 112), +(97565, 114), +(97565, 107), +(97565, 108), +(97565, 115), +(97565, 122), +(97565, 120), +(97565, 117), +(97565, 118), +(97566, 106), +(97566, 110), +(97566, 121), +(97566, 116), +(97566, 113), +(97566, 111), +(97566, 126), +(97566, 125), +(97566, 124), +(97566, 109), +(97566, 123), +(97566, 119), +(97566, 112), +(97566, 114), +(97566, 107), +(97566, 108), +(97566, 115), +(97566, 122), +(97566, 120), +(97566, 117), +(97566, 118), +(97567, 106), +(97567, 110), +(97567, 121), +(97567, 116), +(97567, 113), +(97567, 111), +(97567, 126), +(97567, 125), +(97567, 124), +(97567, 109), +(97567, 123), +(97567, 119), +(97567, 112), +(97567, 114), +(97567, 107), +(97567, 108), +(97567, 115), +(97567, 122), +(97567, 120), +(97567, 117), +(97567, 118), +(97576, 106), +(97576, 110), +(97576, 121), +(97576, 116), +(97576, 113), +(97576, 111), +(97576, 126), +(97576, 125), +(97576, 124), +(97576, 109), +(97576, 123), +(97576, 119), +(97576, 112), +(97576, 114), +(97576, 107), +(97576, 108), +(97576, 115), +(97576, 122), +(97576, 120), +(97576, 117), +(97576, 118), +(97578, 106), +(97578, 110), +(97578, 121), +(97578, 116), +(97578, 113), +(97578, 111), +(97578, 126), +(97578, 125), +(97578, 124), +(97578, 109), +(97578, 123), +(97578, 119), +(97578, 112), +(97578, 114), +(97578, 107), +(97578, 108), +(97578, 115), +(97578, 122), +(97578, 120), +(97578, 117), +(97578, 118), +(97579, 106), +(97579, 110), +(97579, 121), +(97579, 116), +(97579, 113), +(97579, 111), +(97579, 126), +(97579, 125), +(97579, 124), +(97579, 109), +(97579, 123), +(97579, 119), +(97579, 112), +(97579, 114), +(97579, 107), +(97579, 108), +(97579, 115), +(97579, 122), +(97579, 120), +(97579, 117), +(97579, 118), +(97580, 106), +(97580, 110), +(97580, 121), +(97580, 116), +(97580, 113), +(97580, 111), +(97580, 126), +(97580, 125), +(97580, 124), +(97580, 109), +(97580, 123), +(97580, 119), +(97580, 112), +(97580, 114), +(97580, 107), +(97580, 108), +(97580, 115), +(97580, 122), +(97580, 120), +(97580, 117), +(97580, 118), +(97581, 106), +(97581, 110), +(97581, 121), +(97581, 116), +(97581, 113), +(97581, 111), +(97581, 126), +(97581, 125), +(97581, 124), +(97581, 109), +(97581, 123), +(97581, 119), +(97581, 112), +(97581, 114), +(97581, 107), +(97581, 108), +(97581, 115), +(97581, 122), +(97581, 120), +(97581, 117), +(97581, 118), +(97582, 106), +(97582, 110), +(97582, 121), +(97582, 116), +(97582, 113), +(97582, 111), +(97582, 126), +(97582, 125), +(97582, 124), +(97582, 109), +(97582, 123), +(97582, 119), +(97582, 112), +(97582, 114), +(97582, 107), +(97582, 108), +(97582, 115), +(97582, 122), +(97582, 120), +(97582, 117), +(97582, 118), +(97583, 106), +(97583, 110), +(97583, 121), +(97583, 116), +(97583, 113), +(97583, 111), +(97583, 126), +(97583, 125), +(97583, 124), +(97583, 109), +(97583, 123), +(97583, 119), +(97583, 112), +(97583, 114), +(97583, 107), +(97583, 108), +(97583, 115), +(97583, 122), +(97583, 120), +(97583, 117), +(97583, 118), +(97585, 106), +(97585, 110), +(97585, 121), +(97585, 116), +(97585, 113), +(97585, 111), +(97585, 126), +(97585, 125), +(97585, 124), +(97585, 109), +(97585, 123), +(97585, 119), +(97585, 112), +(97585, 114), +(97585, 107), +(97585, 108), +(97585, 115), +(97585, 122), +(97585, 120), +(97585, 117), +(97585, 118), +(97587, 106), +(97587, 110), +(97587, 121), +(97587, 116), +(97587, 113), +(97587, 111), +(97587, 126), +(97587, 125), +(97587, 124), +(97587, 109), +(97587, 123), +(97587, 119), +(97587, 112), +(97587, 114), +(97587, 107), +(97587, 108), +(97587, 115), +(97587, 122), +(97587, 120), +(97587, 117), +(97587, 118), +(97588, 106), +(97588, 110), +(97588, 121), +(97588, 116), +(97588, 113), +(97588, 111), +(97588, 126), +(97588, 125), +(97588, 124), +(97588, 109), +(97588, 123), +(97588, 119), +(97588, 112), +(97588, 114), +(97588, 107), +(97588, 108), +(97588, 115), +(97588, 122), +(97588, 120), +(97588, 117), +(97588, 118), +(97589, 106), +(97589, 110), +(97589, 121), +(97589, 116), +(97589, 113), +(97589, 111), +(97589, 126), +(97589, 125), +(97589, 124), +(97589, 109), +(97589, 123), +(97589, 119), +(97589, 112), +(97589, 114), +(97589, 107), +(97589, 108), +(97589, 115), +(97589, 122), +(97589, 120), +(97589, 117), +(97589, 118), +(97590, 106), +(97590, 110), +(97590, 121), +(97590, 116), +(97590, 113), +(97590, 111), +(97590, 126), +(97590, 125), +(97590, 124), +(97590, 109), +(97590, 123), +(97590, 119), +(97590, 112), +(97590, 114), +(97590, 107), +(97590, 108), +(97590, 115), +(97590, 122), +(97590, 120), +(97590, 117), +(97590, 118), +(97591, 106), +(97591, 110), +(97591, 121), +(97591, 116), +(97591, 113), +(97591, 111), +(97591, 126), +(97591, 125), +(97591, 124), +(97591, 109), +(97591, 123), +(97591, 119), +(97591, 112), +(97591, 114), +(97591, 107), +(97591, 108), +(97591, 115), +(97591, 122), +(97591, 120), +(97591, 117), +(97591, 118), +(97592, 106), +(97592, 110), +(97592, 121), +(97592, 116), +(97592, 113), +(97592, 111), +(97592, 126), +(97592, 125), +(97592, 124), +(97592, 109), +(97592, 123), +(97592, 119), +(97592, 112), +(97592, 114), +(97592, 107), +(97592, 108), +(97592, 115), +(97592, 122), +(97592, 120), +(97592, 117), +(97592, 118), +(97593, 106), +(97593, 110), +(97593, 121), +(97593, 116), +(97593, 113), +(97593, 111), +(97593, 126), +(97593, 125), +(97593, 124), +(97593, 109), +(97593, 123), +(97593, 119), +(97593, 112), +(97593, 114), +(97593, 107), +(97593, 108), +(97593, 115), +(97593, 122), +(97593, 120), +(97593, 117), +(97593, 118), +(97594, 106), +(97594, 110), +(97594, 121), +(97594, 116), +(97594, 113), +(97594, 111), +(97594, 126), +(97594, 125), +(97594, 124), +(97594, 109), +(97594, 123), +(97594, 119), +(97594, 112), +(97594, 114), +(97594, 107), +(97594, 108), +(97594, 115), +(97594, 122), +(97594, 120), +(97594, 117), +(97594, 118), +(97595, 106), +(97595, 110), +(97595, 121), +(97595, 116), +(97595, 113), +(97595, 111), +(97595, 126), +(97595, 125), +(97595, 124), +(97595, 109), +(97595, 123), +(97595, 119), +(97595, 112), +(97595, 114), +(97595, 107), +(97595, 108), +(97595, 115), +(97595, 122), +(97595, 120), +(97595, 117), +(97595, 118), +(97596, 106), +(97596, 110), +(97596, 121), +(97596, 116), +(97596, 113), +(97596, 111), +(97596, 126), +(97596, 125), +(97596, 124), +(97596, 109), +(97596, 123), +(97596, 119), +(97596, 112), +(97596, 114), +(97596, 107), +(97596, 108), +(97596, 115), +(97596, 122), +(97596, 120), +(97596, 117), +(97596, 118), +(97597, 106), +(97597, 110), +(97597, 121), +(97597, 116), +(97597, 113), +(97597, 111), +(97597, 126), +(97597, 125), +(97597, 124), +(97597, 109), +(97597, 123), +(97597, 119), +(97597, 112), +(97597, 114), +(97597, 107), +(97597, 108), +(97597, 115), +(97597, 122), +(97597, 120), +(97597, 117), +(97597, 118), +(97598, 106), +(97598, 110), +(97598, 121), +(97598, 116), +(97598, 113), +(97598, 111), +(97598, 126), +(97598, 125), +(97598, 124), +(97598, 109), +(97598, 123), +(97598, 119), +(97598, 112), +(97598, 114), +(97598, 107), +(97598, 108), +(97598, 115), +(97598, 122), +(97598, 120), +(97598, 117), +(97598, 118), +(97599, 106), +(97599, 110), +(97599, 121), +(97599, 116), +(97599, 113), +(97599, 111), +(97599, 126), +(97599, 125), +(97599, 124), +(97599, 109), +(97599, 123), +(97599, 119), +(97599, 112), +(97599, 114), +(97599, 107), +(97599, 108), +(97599, 115), +(97599, 122), +(97599, 120), +(97599, 117), +(97599, 118), +(97600, 106), +(97600, 110), +(97600, 121), +(97600, 116), +(97600, 113), +(97600, 111), +(97600, 126), +(97600, 125), +(97600, 124), +(97600, 109), +(97600, 123), +(97600, 119), +(97600, 112), +(97600, 114), +(97600, 107), +(97600, 108), +(97600, 115), +(97600, 122), +(97600, 120), +(97600, 117), +(97600, 118), +(97601, 106), +(97601, 110), +(97601, 121), +(97601, 116), +(97601, 113), +(97601, 111), +(97601, 126), +(97601, 125), +(97601, 124), +(97601, 109), +(97601, 123), +(97601, 119), +(97601, 112), +(97601, 114), +(97601, 107), +(97601, 108), +(97601, 115), +(97601, 122), +(97601, 120), +(97601, 117), +(97601, 118), +(97602, 106), +(97602, 110), +(97602, 121), +(97602, 116), +(97602, 113), +(97602, 111), +(97602, 126), +(97602, 125), +(97602, 124), +(97602, 109), +(97602, 123), +(97602, 119), +(97602, 112), +(97602, 114), +(97602, 107), +(97602, 108), +(97602, 115), +(97602, 122), +(97602, 120), +(97602, 117), +(97602, 118), +(97603, 106), +(97603, 110), +(97603, 121), +(97603, 116), +(97603, 113), +(97603, 111), +(97603, 126), +(97603, 125), +(97603, 124), +(97603, 109), +(97603, 123), +(97603, 119), +(97603, 112), +(97603, 114), +(97603, 107), +(97603, 108), +(97603, 115), +(97603, 122), +(97603, 120), +(97603, 117), +(97603, 118), +(97604, 106), +(97604, 110), +(97604, 121), +(97604, 116), +(97604, 113), +(97604, 111), +(97604, 126), +(97604, 125), +(97604, 124), +(97604, 109), +(97604, 123), +(97604, 119), +(97604, 112), +(97604, 114), +(97604, 107), +(97604, 108), +(97604, 115), +(97604, 122), +(97604, 120), +(97604, 117), +(97604, 118), +(97605, 106), +(97605, 110), +(97605, 121), +(97605, 116), +(97605, 113), +(97605, 111), +(97605, 126), +(97605, 125), +(97605, 124), +(97605, 109), +(97605, 123), +(97605, 119), +(97605, 112), +(97605, 114), +(97605, 107), +(97605, 108), +(97605, 115), +(97605, 122), +(97605, 120), +(97605, 117), +(97605, 118), +(97606, 106), +(97606, 110), +(97606, 121), +(97606, 116), +(97606, 113), +(97606, 111), +(97606, 126), +(97606, 125), +(97606, 124), +(97606, 109), +(97606, 123), +(97606, 119), +(97606, 112), +(97606, 114), +(97606, 107), +(97606, 108), +(97606, 115), +(97606, 122), +(97606, 120), +(97606, 117), +(97606, 118), +(97607, 106), +(97607, 110), +(97607, 121), +(97607, 116), +(97607, 113), +(97607, 111), +(97607, 126), +(97607, 125), +(97607, 124), +(97607, 109), +(97607, 123), +(97607, 119), +(97607, 112), +(97607, 114), +(97607, 107), +(97607, 108), +(97607, 115), +(97607, 122), +(97607, 120), +(97607, 117), +(97607, 118), +(97608, 106), +(97608, 110), +(97608, 121), +(97608, 116), +(97608, 113), +(97608, 111), +(97608, 126), +(97608, 125), +(97608, 124), +(97608, 109), +(97608, 123), +(97608, 119), +(97608, 112), +(97608, 114), +(97608, 107), +(97608, 108), +(97608, 115), +(97608, 122), +(97608, 120), +(97608, 117), +(97608, 118), +(97609, 106), +(97609, 110), +(97609, 121), +(97609, 116), +(97609, 113), +(97609, 111), +(97609, 126), +(97609, 125), +(97609, 124), +(97609, 109), +(97609, 123), +(97609, 119), +(97609, 112), +(97609, 114), +(97609, 107), +(97609, 108), +(97609, 115), +(97609, 122), +(97609, 120), +(97609, 117), +(97609, 118), +(97610, 106), +(97610, 110), +(97610, 121), +(97610, 116), +(97610, 113), +(97610, 111), +(97610, 126), +(97610, 125), +(97610, 124), +(97610, 109), +(97610, 123), +(97610, 119), +(97610, 112), +(97610, 114), +(97610, 107), +(97610, 108), +(97610, 115), +(97610, 122), +(97610, 120), +(97610, 117), +(97610, 118), +(97611, 106), +(97611, 110), +(97611, 121), +(97611, 116), +(97611, 113), +(97611, 111), +(97611, 126), +(97611, 125), +(97611, 124), +(97611, 109), +(97611, 123), +(97611, 119), +(97611, 112), +(97611, 114), +(97611, 107), +(97611, 108), +(97611, 115), +(97611, 122), +(97611, 120), +(97611, 117), +(97611, 118), +(97612, 106), +(97612, 110), +(97612, 121), +(97612, 116), +(97612, 113), +(97612, 111), +(97612, 126), +(97612, 125), +(97612, 124), +(97612, 109), +(97612, 123), +(97612, 119), +(97612, 112), +(97612, 114), +(97612, 107), +(97612, 108), +(97612, 115), +(97612, 122), +(97612, 120), +(97612, 117), +(97612, 118), +(97613, 106), +(97613, 110), +(97613, 121), +(97613, 116), +(97613, 113), +(97613, 111), +(97613, 126), +(97613, 125), +(97613, 124), +(97613, 109), +(97613, 123), +(97613, 119), +(97613, 112), +(97613, 114), +(97613, 107), +(97613, 108), +(97613, 115), +(97613, 122), +(97613, 120), +(97613, 117), +(97613, 118), +(97614, 106), +(97614, 110), +(97614, 121), +(97614, 116), +(97614, 113), +(97614, 111), +(97614, 126), +(97614, 125), +(97614, 124), +(97614, 109), +(97614, 123), +(97614, 119), +(97614, 112), +(97614, 114), +(97614, 107), +(97614, 108), +(97614, 115), +(97614, 122), +(97614, 120), +(97614, 117), +(97614, 118), +(97615, 106), +(97615, 110), +(97615, 121), +(97615, 116), +(97615, 113), +(97615, 111), +(97615, 126), +(97615, 125), +(97615, 124), +(97615, 109), +(97615, 123), +(97615, 119), +(97615, 112), +(97615, 114), +(97615, 107), +(97615, 108), +(97615, 115), +(97615, 122), +(97615, 120), +(97615, 117), +(97615, 118), +(97616, 106), +(97616, 110), +(97616, 121), +(97616, 116), +(97616, 113), +(97616, 111), +(97616, 126), +(97616, 125), +(97616, 124), +(97616, 109), +(97616, 123), +(97616, 119), +(97616, 112), +(97616, 114), +(97616, 107), +(97616, 108), +(97616, 115), +(97616, 122), +(97616, 120), +(97616, 117), +(97616, 118), +(97617, 106), +(97617, 110), +(97617, 121), +(97617, 116), +(97617, 113), +(97617, 111), +(97617, 126), +(97617, 125), +(97617, 124), +(97617, 109), +(97617, 123), +(97617, 119), +(97617, 112), +(97617, 114), +(97617, 107), +(97617, 108), +(97617, 115), +(97617, 122), +(97617, 120), +(97617, 117), +(97617, 118), +(97618, 106), +(97618, 110), +(97618, 121), +(97618, 116), +(97618, 113), +(97618, 111), +(97618, 126), +(97618, 125), +(97618, 124), +(97618, 109), +(97618, 123), +(97618, 119), +(97618, 112), +(97618, 114), +(97618, 107), +(97618, 108), +(97618, 115), +(97618, 122), +(97618, 120), +(97618, 117), +(97618, 118), +(97619, 106), +(97619, 110), +(97619, 121), +(97619, 116), +(97619, 113), +(97619, 111), +(97619, 126), +(97619, 125), +(97619, 124), +(97619, 109), +(97619, 123), +(97619, 119), +(97619, 112), +(97619, 114), +(97619, 107), +(97619, 108), +(97619, 115), +(97619, 122), +(97619, 120), +(97619, 117), +(97619, 118), +(97620, 106), +(97620, 110), +(97620, 121), +(97620, 116), +(97620, 113), +(97620, 111), +(97620, 126), +(97620, 125), +(97620, 124), +(97620, 109), +(97620, 123), +(97620, 119), +(97620, 112), +(97620, 114), +(97620, 107), +(97620, 108), +(97620, 115), +(97620, 122), +(97620, 120), +(97620, 117), +(97620, 118), +(97621, 106), +(97621, 110), +(97621, 121), +(97621, 116), +(97621, 113), +(97621, 111), +(97621, 126), +(97621, 125), +(97621, 124), +(97621, 109), +(97621, 123), +(97621, 119), +(97621, 112), +(97621, 114), +(97621, 107), +(97621, 108), +(97621, 115), +(97621, 122), +(97621, 120), +(97621, 117), +(97621, 118), +(97622, 106), +(97622, 110), +(97622, 121), +(97622, 116), +(97622, 113), +(97622, 111), +(97622, 126), +(97622, 125), +(97622, 124), +(97622, 109), +(97622, 123), +(97622, 119), +(97622, 112), +(97622, 114), +(97622, 107), +(97622, 108), +(97622, 115), +(97622, 122), +(97622, 120), +(97622, 117), +(97622, 118), +(97623, 106), +(97623, 110), +(97623, 121), +(97623, 116), +(97623, 113), +(97623, 111), +(97623, 126), +(97623, 125), +(97623, 124), +(97623, 109), +(97623, 123), +(97623, 119), +(97623, 112), +(97623, 114), +(97623, 107), +(97623, 108), +(97623, 115), +(97623, 122), +(97623, 120), +(97623, 117), +(97623, 118), +(97624, 106), +(97624, 110), +(97624, 121), +(97624, 116), +(97624, 113), +(97624, 111), +(97624, 126), +(97624, 125), +(97624, 124), +(97624, 109), +(97624, 123), +(97624, 119), +(97624, 112), +(97624, 114), +(97624, 107), +(97624, 108), +(97624, 115), +(97624, 122), +(97624, 120), +(97624, 117), +(97624, 118), +(97625, 106), +(97625, 110), +(97625, 121), +(97625, 116), +(97625, 113), +(97625, 111), +(97625, 126), +(97625, 125), +(97625, 124), +(97625, 109), +(97625, 123), +(97625, 119), +(97625, 112), +(97625, 114), +(97625, 107), +(97625, 108), +(97625, 115), +(97625, 122), +(97625, 120), +(97625, 117), +(97625, 118), +(97626, 106), +(97626, 110), +(97626, 121), +(97626, 116), +(97626, 113), +(97626, 111), +(97626, 126), +(97626, 125), +(97626, 124), +(97626, 109), +(97626, 123), +(97626, 119), +(97626, 112), +(97626, 114), +(97626, 107), +(97626, 108), +(97626, 115), +(97626, 122), +(97626, 120), +(97626, 117), +(97626, 118), +(97627, 106), +(97627, 110), +(97627, 121), +(97627, 116), +(97627, 113), +(97627, 111), +(97627, 126), +(97627, 125), +(97627, 124), +(97627, 109), +(97627, 123), +(97627, 119), +(97627, 112), +(97627, 114), +(97627, 107), +(97627, 108), +(97627, 115), +(97627, 122), +(97627, 120), +(97627, 117), +(97627, 118), +(97628, 106), +(97628, 110), +(97628, 121), +(97628, 116), +(97628, 113), +(97628, 111), +(97628, 126), +(97628, 125), +(97628, 124), +(97628, 109), +(97628, 123), +(97628, 119), +(97628, 112), +(97628, 114), +(97628, 107), +(97628, 108), +(97628, 115), +(97628, 122), +(97628, 120), +(97628, 117), +(97628, 118), +(97629, 106), +(97629, 110), +(97629, 121), +(97629, 116), +(97629, 113), +(97629, 111), +(97629, 126), +(97629, 125), +(97629, 124), +(97629, 109), +(97629, 123), +(97629, 119), +(97629, 112), +(97629, 114), +(97629, 107), +(97629, 108), +(97629, 115), +(97629, 122), +(97629, 120), +(97629, 117), +(97629, 118), +(97630, 106), +(97630, 110), +(97630, 121), +(97630, 116), +(97630, 113), +(97630, 111), +(97630, 126), +(97630, 125), +(97630, 124), +(97630, 109), +(97630, 123), +(97630, 119), +(97630, 112), +(97630, 114), +(97630, 107), +(97630, 108), +(97630, 115), +(97630, 122), +(97630, 120), +(97630, 117), +(97630, 118), +(97631, 106), +(97631, 110), +(97631, 121), +(97631, 116), +(97631, 113), +(97631, 111), +(97631, 126), +(97631, 125), +(97631, 124), +(97631, 109), +(97631, 123), +(97631, 119), +(97631, 112), +(97631, 114), +(97631, 107), +(97631, 108), +(97631, 115), +(97631, 122), +(97631, 120), +(97631, 117), +(97631, 118), +(97632, 106), +(97632, 110), +(97632, 121), +(97632, 116), +(97632, 113), +(97632, 111), +(97632, 126), +(97632, 125), +(97632, 124), +(97632, 109), +(97632, 123), +(97632, 119), +(97632, 112), +(97632, 114), +(97632, 107), +(97632, 108), +(97632, 115), +(97632, 122), +(97632, 120), +(97632, 117), +(97632, 118), +(97633, 106), +(97633, 110), +(97633, 121), +(97633, 116), +(97633, 113), +(97633, 111), +(97633, 126), +(97633, 125), +(97633, 124), +(97633, 109), +(97633, 123), +(97633, 119), +(97633, 112), +(97633, 114), +(97633, 107), +(97633, 108), +(97633, 115), +(97633, 122), +(97633, 120), +(97633, 117), +(97633, 118), +(97634, 106), +(97634, 110), +(97634, 121), +(97634, 116), +(97634, 113), +(97634, 111), +(97634, 126), +(97634, 125), +(97634, 124), +(97634, 109), +(97634, 123), +(97634, 119), +(97634, 112), +(97634, 114), +(97634, 107), +(97634, 108), +(97634, 115), +(97634, 122), +(97634, 120), +(97634, 117), +(97634, 118), +(97635, 106), +(97635, 110), +(97635, 121), +(97635, 116), +(97635, 113), +(97635, 111), +(97635, 126), +(97635, 125), +(97635, 124), +(97635, 109), +(97635, 123), +(97635, 119), +(97635, 112), +(97635, 114), +(97635, 107), +(97635, 108), +(97635, 115), +(97635, 122), +(97635, 120), +(97635, 117), +(97635, 118), +(97636, 106), +(97636, 110), +(97636, 121), +(97636, 116), +(97636, 113), +(97636, 111), +(97636, 126), +(97636, 125), +(97636, 124), +(97636, 109), +(97636, 123), +(97636, 119), +(97636, 112), +(97636, 114), +(97636, 107), +(97636, 108), +(97636, 115), +(97636, 122), +(97636, 120), +(97636, 117), +(97636, 118), +(97637, 106), +(97637, 110), +(97637, 121), +(97637, 116), +(97637, 113), +(97637, 111), +(97637, 126), +(97637, 125), +(97637, 124), +(97637, 109), +(97637, 123), +(97637, 119), +(97637, 112), +(97637, 114), +(97637, 107), +(97637, 108), +(97637, 115), +(97637, 122), +(97637, 120), +(97637, 117), +(97637, 118), +(97638, 106), +(97638, 110), +(97638, 121), +(97638, 116), +(97638, 113), +(97638, 111), +(97638, 126), +(97638, 125), +(97638, 124), +(97638, 109), +(97638, 123), +(97638, 119), +(97638, 112), +(97638, 114), +(97638, 107), +(97638, 108), +(97638, 115), +(97638, 122), +(97638, 120), +(97638, 117), +(97638, 118), +(97639, 106), +(97639, 110), +(97639, 121), +(97639, 116), +(97639, 113), +(97639, 111), +(97639, 126), +(97639, 125), +(97639, 124), +(97639, 109), +(97639, 123), +(97639, 119), +(97639, 112), +(97639, 114), +(97639, 107), +(97639, 108), +(97639, 115), +(97639, 122), +(97639, 120), +(97639, 117), +(97639, 118), +(97640, 106), +(97640, 110), +(97640, 121), +(97640, 116), +(97640, 113), +(97640, 111), +(97640, 126), +(97640, 125), +(97640, 124), +(97640, 109), +(97640, 123), +(97640, 119), +(97640, 112), +(97640, 114), +(97640, 107), +(97640, 108), +(97640, 115), +(97640, 122), +(97640, 120), +(97640, 117), +(97640, 118), +(97641, 106), +(97641, 110), +(97641, 121), +(97641, 116), +(97641, 113), +(97641, 111), +(97641, 126), +(97641, 125), +(97641, 124), +(97641, 109), +(97641, 123), +(97641, 119), +(97641, 112), +(97641, 114), +(97641, 107), +(97641, 108), +(97641, 115), +(97641, 122), +(97641, 120), +(97641, 117), +(97641, 118), +(97642, 106), +(97642, 110), +(97642, 121), +(97642, 116), +(97642, 113), +(97642, 111), +(97642, 126), +(97642, 125), +(97642, 124), +(97642, 109), +(97642, 123), +(97642, 119), +(97642, 112), +(97642, 114), +(97642, 107), +(97642, 108), +(97642, 115), +(97642, 122), +(97642, 120), +(97642, 117), +(97642, 118), +(97644, 106), +(97644, 110), +(97644, 121), +(97644, 116), +(97644, 113), +(97644, 111), +(97644, 126), +(97644, 125), +(97644, 124), +(97644, 109), +(97644, 123), +(97644, 119), +(97644, 112), +(97644, 114), +(97644, 107), +(97644, 108), +(97644, 115), +(97644, 122), +(97644, 120), +(97644, 117), +(97644, 118), +(97645, 106), +(97645, 110), +(97645, 121), +(97645, 116), +(97645, 113), +(97645, 111), +(97645, 126), +(97645, 125), +(97645, 124), +(97645, 109), +(97645, 123), +(97645, 119), +(97645, 112), +(97645, 114), +(97645, 107), +(97645, 108), +(97645, 115), +(97645, 122), +(97645, 120), +(97645, 117), +(97645, 118), +(97646, 106), +(97646, 110), +(97646, 121), +(97646, 116), +(97646, 113), +(97646, 111), +(97646, 126), +(97646, 125), +(97646, 124), +(97646, 109), +(97646, 123), +(97646, 119), +(97646, 112), +(97646, 114), +(97646, 107), +(97646, 108), +(97646, 115), +(97646, 122), +(97646, 120), +(97646, 117), +(97646, 118), +(97647, 106), +(97647, 110), +(97647, 121), +(97647, 116), +(97647, 113), +(97647, 111), +(97647, 126), +(97647, 125), +(97647, 124), +(97647, 109), +(97647, 123), +(97647, 119), +(97647, 112), +(97647, 114), +(97647, 107), +(97647, 108), +(97647, 115), +(97647, 122), +(97647, 120), +(97647, 117), +(97647, 118), +(97648, 106), +(97648, 110), +(97648, 121), +(97648, 116), +(97648, 113), +(97648, 111), +(97648, 126), +(97648, 125), +(97648, 124), +(97648, 109), +(97648, 123), +(97648, 119), +(97648, 112), +(97648, 114), +(97648, 107), +(97648, 108), +(97648, 115), +(97648, 122), +(97648, 120), +(97648, 117), +(97648, 118), +(97649, 106), +(97649, 110), +(97649, 121), +(97649, 116), +(97649, 113), +(97649, 111), +(97649, 126), +(97649, 125), +(97649, 124), +(97649, 109), +(97649, 123), +(97649, 119), +(97649, 112), +(97649, 114), +(97649, 107), +(97649, 108), +(97649, 115), +(97649, 122), +(97649, 120), +(97649, 117), +(97649, 118), +(97650, 106), +(97650, 110), +(97650, 121), +(97650, 116), +(97650, 113), +(97650, 111), +(97650, 126), +(97650, 125), +(97650, 124), +(97650, 109), +(97650, 123), +(97650, 119), +(97650, 112), +(97650, 114), +(97650, 107), +(97650, 108), +(97650, 115), +(97650, 122), +(97650, 120), +(97650, 117), +(97650, 118), +(97651, 106), +(97651, 110), +(97651, 121), +(97651, 116), +(97651, 113), +(97651, 111), +(97651, 126), +(97651, 125), +(97651, 124), +(97651, 109), +(97651, 123), +(97651, 119), +(97651, 112), +(97651, 114), +(97651, 107), +(97651, 108), +(97651, 115), +(97651, 122), +(97651, 120), +(97651, 117), +(97651, 118), +(97652, 106), +(97652, 110), +(97652, 121), +(97652, 116), +(97652, 113), +(97652, 111), +(97652, 126), +(97652, 125), +(97652, 124), +(97652, 109), +(97652, 123), +(97652, 119), +(97652, 112), +(97652, 114), +(97652, 107), +(97652, 108), +(97652, 115), +(97652, 122), +(97652, 120), +(97652, 117), +(97652, 118), +(97653, 106), +(97653, 110), +(97653, 121), +(97653, 116), +(97653, 113), +(97653, 111), +(97653, 126), +(97653, 125), +(97653, 124), +(97653, 109), +(97653, 123), +(97653, 119), +(97653, 112), +(97653, 114), +(97653, 107), +(97653, 108), +(97653, 115), +(97653, 122), +(97653, 120), +(97653, 117), +(97653, 118), +(97654, 106), +(97654, 110), +(97654, 121), +(97654, 116), +(97654, 113), +(97654, 111), +(97654, 126), +(97654, 125), +(97654, 124), +(97654, 109), +(97654, 123), +(97654, 119), +(97654, 112), +(97654, 114), +(97654, 107), +(97654, 108), +(97654, 115), +(97654, 122), +(97654, 120), +(97654, 117), +(97654, 118), +(97655, 106), +(97655, 110), +(97655, 121), +(97655, 116), +(97655, 113), +(97655, 111), +(97655, 126), +(97655, 125), +(97655, 124), +(97655, 109), +(97655, 123), +(97655, 119), +(97655, 112), +(97655, 114), +(97655, 107), +(97655, 108), +(97655, 115), +(97655, 122), +(97655, 120), +(97655, 117), +(97655, 118), +(97656, 106), +(97656, 110), +(97656, 121), +(97656, 116), +(97656, 113), +(97656, 111), +(97656, 126), +(97656, 125), +(97656, 124), +(97656, 109), +(97656, 123), +(97656, 119), +(97656, 112), +(97656, 114), +(97656, 107), +(97656, 108), +(97656, 115), +(97656, 122), +(97656, 120), +(97656, 117), +(97656, 118), +(97657, 106), +(97657, 110), +(97657, 121), +(97657, 116), +(97657, 113), +(97657, 111), +(97657, 126), +(97657, 125), +(97657, 124), +(97657, 109), +(97657, 123), +(97657, 119), +(97657, 112), +(97657, 114), +(97657, 107), +(97657, 108), +(97657, 115), +(97657, 122), +(97657, 120), +(97657, 117), +(97657, 118), +(97658, 106), +(97658, 110), +(97658, 121), +(97658, 116), +(97658, 113), +(97658, 111), +(97658, 126), +(97658, 125), +(97658, 124), +(97658, 109), +(97658, 123), +(97658, 119), +(97658, 112), +(97658, 114), +(97658, 107), +(97658, 108), +(97658, 115), +(97658, 122), +(97658, 120), +(97658, 117), +(97658, 118), +(97659, 106), +(97659, 110), +(97659, 121), +(97659, 116), +(97659, 113), +(97659, 111), +(97659, 126), +(97659, 125), +(97659, 124), +(97659, 109), +(97659, 123), +(97659, 119), +(97659, 112), +(97659, 114), +(97659, 107), +(97659, 108), +(97659, 115), +(97659, 122), +(97659, 120), +(97659, 117), +(97659, 118), +(97661, 106), +(97661, 110), +(97661, 121), +(97661, 116), +(97661, 113), +(97661, 111), +(97661, 126), +(97661, 125), +(97661, 124), +(97661, 109), +(97661, 123), +(97661, 119), +(97661, 112), +(97661, 114), +(97661, 107), +(97661, 108), +(97661, 115), +(97661, 122), +(97661, 120), +(97661, 117), +(97661, 118), +(97663, 106), +(97663, 110), +(97663, 121), +(97663, 116), +(97663, 113), +(97663, 111), +(97663, 126), +(97663, 125), +(97663, 124), +(97663, 109), +(97663, 123), +(97663, 119), +(97663, 112), +(97663, 114), +(97663, 107), +(97663, 108), +(97663, 115), +(97663, 122), +(97663, 120), +(97663, 117), +(97663, 118), +(97664, 106), +(97664, 110), +(97664, 121), +(97664, 116), +(97664, 113), +(97664, 111), +(97664, 126), +(97664, 125), +(97664, 124), +(97664, 109), +(97664, 123), +(97664, 119), +(97664, 112), +(97664, 114), +(97664, 107), +(97664, 108), +(97664, 115), +(97664, 122), +(97664, 120), +(97664, 117), +(97664, 118), +(97665, 106), +(97665, 110), +(97665, 121), +(97665, 116), +(97665, 113), +(97665, 111), +(97665, 126), +(97665, 125), +(97665, 124), +(97665, 109), +(97665, 123), +(97665, 119), +(97665, 112), +(97665, 114), +(97665, 107), +(97665, 108), +(97665, 115), +(97665, 122), +(97665, 120), +(97665, 117), +(97665, 118), +(97666, 106), +(97666, 110), +(97666, 121), +(97666, 116), +(97666, 113), +(97666, 111), +(97666, 126), +(97666, 125), +(97666, 124), +(97666, 109), +(97666, 123), +(97666, 119), +(97666, 112), +(97666, 114), +(97666, 107), +(97666, 108), +(97666, 115), +(97666, 122), +(97666, 120), +(97666, 117), +(97666, 118), +(97668, 106), +(97668, 110), +(97668, 121), +(97668, 116), +(97668, 113), +(97668, 111), +(97668, 126), +(97668, 125), +(97668, 124), +(97668, 109), +(97668, 123), +(97668, 119), +(97668, 112), +(97668, 114), +(97668, 107), +(97668, 108), +(97668, 115), +(97668, 122), +(97668, 120), +(97668, 117), +(97668, 118), +(97670, 106), +(97670, 110), +(97670, 121), +(97670, 116), +(97670, 113), +(97670, 111), +(97670, 126), +(97670, 125), +(97670, 124), +(97670, 109), +(97670, 123), +(97670, 119), +(97670, 112), +(97670, 114), +(97670, 107), +(97670, 108), +(97670, 115), +(97670, 122), +(97670, 120), +(97670, 117), +(97670, 118), +(97671, 106), +(97671, 110), +(97671, 121), +(97671, 116), +(97671, 113), +(97671, 111), +(97671, 126), +(97671, 125), +(97671, 124), +(97671, 109), +(97671, 123), +(97671, 119), +(97671, 112), +(97671, 114), +(97671, 107), +(97671, 108), +(97671, 115), +(97671, 122), +(97671, 120), +(97671, 117), +(97671, 118), +(97672, 106), +(97672, 110), +(97672, 121), +(97672, 116), +(97672, 113), +(97672, 111), +(97672, 126), +(97672, 125), +(97672, 124), +(97672, 109), +(97672, 123), +(97672, 119), +(97672, 112), +(97672, 114), +(97672, 107), +(97672, 108), +(97672, 115), +(97672, 122), +(97672, 120), +(97672, 117), +(97672, 118), +(97673, 106), +(97673, 110), +(97673, 121), +(97673, 116), +(97673, 113), +(97673, 111), +(97673, 126), +(97673, 125), +(97673, 124), +(97673, 109), +(97673, 123), +(97673, 119), +(97673, 112), +(97673, 114), +(97673, 107), +(97673, 108), +(97673, 115), +(97673, 122), +(97673, 120), +(97673, 117), +(97673, 118), +(97674, 106); +INSERT INTO `configuration_branch` (`configurationId`, `branchId`) VALUES +(97674, 110), +(97674, 121), +(97674, 116), +(97674, 113), +(97674, 111), +(97674, 126), +(97674, 125), +(97674, 124), +(97674, 109), +(97674, 123), +(97674, 119), +(97674, 112), +(97674, 114), +(97674, 107), +(97674, 108), +(97674, 115), +(97674, 122), +(97674, 120), +(97674, 117), +(97674, 118), +(97675, 106), +(97675, 110), +(97675, 121), +(97675, 116), +(97675, 113), +(97675, 111), +(97675, 126), +(97675, 125), +(97675, 124), +(97675, 109), +(97675, 123), +(97675, 119), +(97675, 112), +(97675, 114), +(97675, 107), +(97675, 108), +(97675, 115), +(97675, 122), +(97675, 120), +(97675, 117), +(97675, 118), +(97676, 106), +(97676, 110), +(97676, 121), +(97676, 116), +(97676, 113), +(97676, 111), +(97676, 126), +(97676, 125), +(97676, 124), +(97676, 109), +(97676, 123), +(97676, 119), +(97676, 112), +(97676, 114), +(97676, 107), +(97676, 108), +(97676, 115), +(97676, 122), +(97676, 120), +(97676, 117), +(97676, 118), +(97734, 106), +(97734, 110), +(97734, 121), +(97734, 116), +(97734, 113), +(97734, 111), +(97734, 126), +(97734, 125), +(97734, 124), +(97734, 109), +(97734, 123), +(97734, 119), +(97734, 112), +(97734, 114), +(97734, 107), +(97734, 108), +(97734, 115), +(97734, 122), +(97734, 120), +(97734, 117), +(97734, 118), +(97735, 106), +(97735, 110), +(97735, 121), +(97735, 116), +(97735, 113), +(97735, 111), +(97735, 126), +(97735, 125), +(97735, 124), +(97735, 109), +(97735, 123), +(97735, 119), +(97735, 112), +(97735, 114), +(97735, 107), +(97735, 108), +(97735, 115), +(97735, 122), +(97735, 120), +(97735, 117), +(97735, 118), +(97736, 106), +(97736, 110), +(97736, 121), +(97736, 116), +(97736, 113), +(97736, 111), +(97736, 126), +(97736, 125), +(97736, 124), +(97736, 109), +(97736, 123), +(97736, 119), +(97736, 112), +(97736, 114), +(97736, 107), +(97736, 108), +(97736, 115), +(97736, 122), +(97736, 120), +(97736, 117), +(97736, 118), +(97738, 106), +(97738, 110), +(97738, 121), +(97738, 116), +(97738, 113), +(97738, 111), +(97738, 126), +(97738, 125), +(97738, 124), +(97738, 109), +(97738, 123), +(97738, 119), +(97738, 112), +(97738, 114), +(97738, 107), +(97738, 108), +(97738, 115), +(97738, 122), +(97738, 120), +(97738, 117), +(97738, 118), +(97739, 106), +(97739, 110), +(97739, 121), +(97739, 116), +(97739, 113), +(97739, 111), +(97739, 126), +(97739, 125), +(97739, 124), +(97739, 109), +(97739, 123), +(97739, 119), +(97739, 112), +(97739, 114), +(97739, 107), +(97739, 108), +(97739, 115), +(97739, 122), +(97739, 120), +(97739, 117), +(97739, 118), +(97740, 106), +(97740, 110), +(97740, 121), +(97740, 116), +(97740, 113), +(97740, 111), +(97740, 126), +(97740, 125), +(97740, 124), +(97740, 109), +(97740, 123), +(97740, 119), +(97740, 112), +(97740, 114), +(97740, 107), +(97740, 108), +(97740, 115), +(97740, 122), +(97740, 120), +(97740, 117), +(97740, 118), +(97742, 106), +(97742, 110), +(97742, 121), +(97742, 116), +(97742, 113), +(97742, 111), +(97742, 126), +(97742, 125), +(97742, 124), +(97742, 109), +(97742, 123), +(97742, 119), +(97742, 112), +(97742, 114), +(97742, 107), +(97742, 108), +(97742, 115), +(97742, 122), +(97742, 120), +(97742, 117), +(97742, 118), +(97744, 106), +(97744, 110), +(97744, 121), +(97744, 116), +(97744, 113), +(97744, 111), +(97744, 126), +(97744, 125), +(97744, 124), +(97744, 109), +(97744, 123), +(97744, 119), +(97744, 112), +(97744, 114), +(97744, 107), +(97744, 108), +(97744, 115), +(97744, 122), +(97744, 120), +(97744, 117), +(97744, 118), +(97745, 106), +(97745, 110), +(97745, 121), +(97745, 116), +(97745, 113), +(97745, 111), +(97745, 126), +(97745, 125), +(97745, 124), +(97745, 109), +(97745, 123), +(97745, 119), +(97745, 112), +(97745, 114), +(97745, 107), +(97745, 108), +(97745, 115), +(97745, 122), +(97745, 120), +(97745, 117), +(97745, 118), +(97746, 106), +(97746, 110), +(97746, 121), +(97746, 116), +(97746, 113), +(97746, 111), +(97746, 126), +(97746, 125), +(97746, 124), +(97746, 109), +(97746, 123), +(97746, 119), +(97746, 112), +(97746, 114), +(97746, 107), +(97746, 108), +(97746, 115), +(97746, 122), +(97746, 120), +(97746, 117), +(97746, 118), +(97749, 106), +(97749, 110), +(97749, 121), +(97749, 116), +(97749, 113), +(97749, 111), +(97749, 126), +(97749, 125), +(97749, 124), +(97749, 109), +(97749, 123), +(97749, 119), +(97749, 112), +(97749, 114), +(97749, 107), +(97749, 108), +(97749, 115), +(97749, 122), +(97749, 120), +(97749, 117), +(97749, 118), +(97751, 106), +(97751, 110), +(97751, 121), +(97751, 116), +(97751, 113), +(97751, 111), +(97751, 126), +(97751, 125), +(97751, 124), +(97751, 109), +(97751, 123), +(97751, 119), +(97751, 112), +(97751, 114), +(97751, 107), +(97751, 108), +(97751, 115), +(97751, 122), +(97751, 120), +(97751, 117), +(97751, 118), +(97752, 106), +(97752, 110), +(97752, 121), +(97752, 116), +(97752, 113), +(97752, 111), +(97752, 126), +(97752, 125), +(97752, 124), +(97752, 109), +(97752, 123), +(97752, 119), +(97752, 112), +(97752, 114), +(97752, 107), +(97752, 108), +(97752, 115), +(97752, 122), +(97752, 120), +(97752, 117), +(97752, 118), +(97759, 106), +(97759, 110), +(97759, 121), +(97759, 116), +(97759, 113), +(97759, 111), +(97759, 126), +(97759, 125), +(97759, 124), +(97759, 109), +(97759, 123), +(97759, 119), +(97759, 112), +(97759, 114), +(97759, 107), +(97759, 108), +(97759, 115), +(97759, 122), +(97759, 120), +(97759, 117), +(97759, 118), +(97760, 106), +(97760, 110), +(97760, 121), +(97760, 116), +(97760, 113), +(97760, 111), +(97760, 126), +(97760, 125), +(97760, 124), +(97760, 109), +(97760, 123), +(97760, 119), +(97760, 112), +(97760, 114), +(97760, 107), +(97760, 108), +(97760, 115), +(97760, 122), +(97760, 120), +(97760, 117), +(97760, 118), +(97761, 106), +(97761, 110), +(97761, 121), +(97761, 116), +(97761, 113), +(97761, 111), +(97761, 126), +(97761, 125), +(97761, 124), +(97761, 109), +(97761, 123), +(97761, 119), +(97761, 112), +(97761, 114), +(97761, 107), +(97761, 108), +(97761, 115), +(97761, 122), +(97761, 120), +(97761, 117), +(97761, 118), +(97762, 106), +(97762, 110), +(97762, 121), +(97762, 116), +(97762, 113), +(97762, 111), +(97762, 126), +(97762, 125), +(97762, 124), +(97762, 109), +(97762, 123), +(97762, 119), +(97762, 112), +(97762, 114), +(97762, 107), +(97762, 108), +(97762, 115), +(97762, 122), +(97762, 120), +(97762, 117), +(97762, 118), +(97763, 106), +(97763, 110), +(97763, 121), +(97763, 116), +(97763, 113), +(97763, 111), +(97763, 126), +(97763, 125), +(97763, 124), +(97763, 109), +(97763, 123), +(97763, 119), +(97763, 112), +(97763, 114), +(97763, 107), +(97763, 108), +(97763, 115), +(97763, 122), +(97763, 120), +(97763, 117), +(97763, 118), +(97764, 106), +(97764, 110), +(97764, 121), +(97764, 116), +(97764, 113), +(97764, 111), +(97764, 126), +(97764, 125), +(97764, 124), +(97764, 109), +(97764, 123), +(97764, 119), +(97764, 112), +(97764, 114), +(97764, 107), +(97764, 108), +(97764, 115), +(97764, 122), +(97764, 120), +(97764, 117), +(97764, 118), +(97765, 106), +(97765, 110), +(97765, 121), +(97765, 116), +(97765, 113), +(97765, 111), +(97765, 126), +(97765, 125), +(97765, 124), +(97765, 109), +(97765, 123), +(97765, 119), +(97765, 112), +(97765, 114), +(97765, 107), +(97765, 108), +(97765, 115), +(97765, 122), +(97765, 120), +(97765, 117), +(97765, 118), +(97766, 106), +(97766, 110), +(97766, 121), +(97766, 116), +(97766, 113), +(97766, 111), +(97766, 126), +(97766, 125), +(97766, 124), +(97766, 109), +(97766, 123), +(97766, 119), +(97766, 112), +(97766, 114), +(97766, 107), +(97766, 108), +(97766, 115), +(97766, 122), +(97766, 120), +(97766, 117), +(97766, 118), +(97767, 106), +(97767, 110), +(97767, 121), +(97767, 116), +(97767, 113), +(97767, 111), +(97767, 126), +(97767, 125), +(97767, 124), +(97767, 109), +(97767, 123), +(97767, 119), +(97767, 112), +(97767, 114), +(97767, 107), +(97767, 108), +(97767, 115), +(97767, 122), +(97767, 120), +(97767, 117), +(97767, 118), +(97768, 106), +(97768, 110), +(97768, 121), +(97768, 116), +(97768, 113), +(97768, 111), +(97768, 126), +(97768, 125), +(97768, 124), +(97768, 109), +(97768, 123), +(97768, 119), +(97768, 112), +(97768, 114), +(97768, 107), +(97768, 108), +(97768, 115), +(97768, 122), +(97768, 120), +(97768, 117), +(97768, 118), +(97769, 106), +(97769, 110), +(97769, 121), +(97769, 116), +(97769, 113), +(97769, 111), +(97769, 126), +(97769, 125), +(97769, 124), +(97769, 109), +(97769, 123), +(97769, 119), +(97769, 112), +(97769, 114), +(97769, 107), +(97769, 108), +(97769, 115), +(97769, 122), +(97769, 120), +(97769, 117), +(97769, 118), +(97770, 106), +(97770, 110), +(97770, 121), +(97770, 116), +(97770, 113), +(97770, 111), +(97770, 126), +(97770, 125), +(97770, 124), +(97770, 109), +(97770, 123), +(97770, 119), +(97770, 112), +(97770, 114), +(97770, 107), +(97770, 108), +(97770, 115), +(97770, 122), +(97770, 120), +(97770, 117), +(97770, 118), +(97771, 106), +(97771, 110), +(97771, 121), +(97771, 116), +(97771, 113), +(97771, 111), +(97771, 126), +(97771, 125), +(97771, 124), +(97771, 109), +(97771, 123), +(97771, 119), +(97771, 112), +(97771, 114), +(97771, 107), +(97771, 108), +(97771, 115), +(97771, 122), +(97771, 120), +(97771, 117), +(97771, 118), +(97772, 106), +(97772, 110), +(97772, 121), +(97772, 116), +(97772, 113), +(97772, 111), +(97772, 126), +(97772, 125), +(97772, 124), +(97772, 109), +(97772, 123), +(97772, 119), +(97772, 112), +(97772, 114), +(97772, 107), +(97772, 108), +(97772, 115), +(97772, 122), +(97772, 120), +(97772, 117), +(97772, 118), +(97774, 106), +(97774, 110), +(97774, 121), +(97774, 116), +(97774, 113), +(97774, 111), +(97774, 126), +(97774, 125), +(97774, 124), +(97774, 109), +(97774, 123), +(97774, 119), +(97774, 112), +(97774, 114), +(97774, 107), +(97774, 108), +(97774, 115), +(97774, 122), +(97774, 120), +(97774, 117), +(97774, 118), +(97775, 106), +(97775, 110), +(97775, 121), +(97775, 116), +(97775, 113), +(97775, 111), +(97775, 126), +(97775, 125), +(97775, 124), +(97775, 109), +(97775, 123), +(97775, 119), +(97775, 112), +(97775, 114), +(97775, 107), +(97775, 108), +(97775, 115), +(97775, 122), +(97775, 120), +(97775, 117), +(97775, 118), +(97776, 106), +(97776, 110), +(97776, 121), +(97776, 116), +(97776, 113), +(97776, 111), +(97776, 126), +(97776, 125), +(97776, 124), +(97776, 109), +(97776, 123), +(97776, 119), +(97776, 112), +(97776, 114), +(97776, 107), +(97776, 108), +(97776, 115), +(97776, 122), +(97776, 120), +(97776, 117), +(97776, 118), +(97777, 106), +(97777, 110), +(97777, 121), +(97777, 116), +(97777, 113), +(97777, 111), +(97777, 126), +(97777, 125), +(97777, 124), +(97777, 109), +(97777, 123), +(97777, 119), +(97777, 112), +(97777, 114), +(97777, 107), +(97777, 108), +(97777, 115), +(97777, 122), +(97777, 120), +(97777, 117), +(97777, 118), +(97778, 106), +(97778, 110), +(97778, 121), +(97778, 116), +(97778, 113), +(97778, 111), +(97778, 126), +(97778, 125), +(97778, 124), +(97778, 109), +(97778, 123), +(97778, 119), +(97778, 112), +(97778, 114), +(97778, 107), +(97778, 108), +(97778, 115), +(97778, 122), +(97778, 120), +(97778, 117), +(97778, 118), +(97780, 106), +(97780, 110), +(97780, 121), +(97780, 116), +(97780, 113), +(97780, 111), +(97780, 126), +(97780, 125), +(97780, 124), +(97780, 109), +(97780, 123), +(97780, 119), +(97780, 112), +(97780, 114), +(97780, 107), +(97780, 108), +(97780, 115), +(97780, 122), +(97780, 120), +(97780, 117), +(97780, 118), +(97781, 106), +(97781, 110), +(97781, 121), +(97781, 116), +(97781, 113), +(97781, 111), +(97781, 126), +(97781, 125), +(97781, 124), +(97781, 109), +(97781, 123), +(97781, 119), +(97781, 112), +(97781, 114), +(97781, 107), +(97781, 108), +(97781, 115), +(97781, 122), +(97781, 120), +(97781, 117), +(97781, 118), +(97782, 106), +(97782, 110), +(97782, 121), +(97782, 116), +(97782, 113), +(97782, 111), +(97782, 126), +(97782, 125), +(97782, 124), +(97782, 109), +(97782, 123), +(97782, 119), +(97782, 112), +(97782, 114), +(97782, 107), +(97782, 108), +(97782, 115), +(97782, 122), +(97782, 120), +(97782, 117), +(97782, 118), +(97783, 106), +(97783, 110), +(97783, 121), +(97783, 116), +(97783, 113), +(97783, 111), +(97783, 126), +(97783, 125), +(97783, 124), +(97783, 109), +(97783, 123), +(97783, 119), +(97783, 112), +(97783, 114), +(97783, 107), +(97783, 108), +(97783, 115), +(97783, 122), +(97783, 120), +(97783, 117), +(97783, 118), +(97784, 106), +(97784, 110), +(97784, 121), +(97784, 116), +(97784, 113), +(97784, 111), +(97784, 126), +(97784, 125), +(97784, 124), +(97784, 109), +(97784, 123), +(97784, 119), +(97784, 112), +(97784, 114), +(97784, 107), +(97784, 108), +(97784, 115), +(97784, 122), +(97784, 120), +(97784, 117), +(97784, 118), +(97785, 106), +(97785, 110), +(97785, 121), +(97785, 116), +(97785, 113), +(97785, 111), +(97785, 126), +(97785, 125), +(97785, 124), +(97785, 109), +(97785, 123), +(97785, 119), +(97785, 112), +(97785, 114), +(97785, 107), +(97785, 108), +(97785, 115), +(97785, 122), +(97785, 120), +(97785, 117), +(97785, 118), +(97786, 106), +(97786, 110), +(97786, 121), +(97786, 116), +(97786, 113), +(97786, 111), +(97786, 126), +(97786, 125), +(97786, 124), +(97786, 109), +(97786, 123), +(97786, 119), +(97786, 112), +(97786, 114), +(97786, 107), +(97786, 108), +(97786, 115), +(97786, 122), +(97786, 120), +(97786, 117), +(97786, 118), +(97787, 106), +(97787, 110), +(97787, 121), +(97787, 116), +(97787, 113), +(97787, 111), +(97787, 126), +(97787, 125), +(97787, 124), +(97787, 109), +(97787, 123), +(97787, 119), +(97787, 112), +(97787, 114), +(97787, 107), +(97787, 108), +(97787, 115), +(97787, 122), +(97787, 120), +(97787, 117), +(97787, 118), +(97788, 106), +(97788, 110), +(97788, 121), +(97788, 116), +(97788, 113), +(97788, 111), +(97788, 126), +(97788, 125), +(97788, 124), +(97788, 109), +(97788, 123), +(97788, 119), +(97788, 112), +(97788, 114), +(97788, 107), +(97788, 108), +(97788, 115), +(97788, 122), +(97788, 120), +(97788, 117), +(97788, 118), +(97789, 106), +(97789, 110), +(97789, 121), +(97789, 116), +(97789, 113), +(97789, 111), +(97789, 126), +(97789, 125), +(97789, 124), +(97789, 109), +(97789, 123), +(97789, 119), +(97789, 112), +(97789, 114), +(97789, 107), +(97789, 108), +(97789, 115), +(97789, 122), +(97789, 120), +(97789, 117), +(97789, 118), +(97791, 106), +(97791, 110), +(97791, 121), +(97791, 116), +(97791, 113), +(97791, 111), +(97791, 126), +(97791, 125), +(97791, 124), +(97791, 109), +(97791, 123), +(97791, 119), +(97791, 112), +(97791, 114), +(97791, 107), +(97791, 108), +(97791, 115), +(97791, 122), +(97791, 120), +(97791, 117), +(97791, 118), +(97792, 106), +(97792, 110), +(97792, 121), +(97792, 116), +(97792, 113), +(97792, 111), +(97792, 126), +(97792, 125), +(97792, 124), +(97792, 109), +(97792, 123), +(97792, 119), +(97792, 112), +(97792, 114), +(97792, 107), +(97792, 108), +(97792, 115), +(97792, 122), +(97792, 120), +(97792, 117), +(97792, 118), +(97793, 106), +(97793, 110), +(97793, 121), +(97793, 116), +(97793, 113), +(97793, 111), +(97793, 126), +(97793, 125), +(97793, 124), +(97793, 109), +(97793, 123), +(97793, 119), +(97793, 112), +(97793, 114), +(97793, 107), +(97793, 108), +(97793, 115), +(97793, 122), +(97793, 120), +(97793, 117), +(97793, 118), +(97794, 106), +(97794, 110), +(97794, 121), +(97794, 116), +(97794, 113), +(97794, 111), +(97794, 126), +(97794, 125), +(97794, 124), +(97794, 109), +(97794, 123), +(97794, 119), +(97794, 112), +(97794, 114), +(97794, 107), +(97794, 108), +(97794, 115), +(97794, 122), +(97794, 120), +(97794, 117), +(97794, 118), +(97795, 106), +(97795, 110), +(97795, 121), +(97795, 116), +(97795, 113), +(97795, 111), +(97795, 126), +(97795, 125), +(97795, 124), +(97795, 109), +(97795, 123), +(97795, 119), +(97795, 112), +(97795, 114), +(97795, 107), +(97795, 108), +(97795, 115), +(97795, 122), +(97795, 120), +(97795, 117), +(97795, 118), +(97796, 106), +(97796, 110), +(97796, 121), +(97796, 116), +(97796, 113), +(97796, 111), +(97796, 126), +(97796, 125), +(97796, 124), +(97796, 109), +(97796, 123), +(97796, 119), +(97796, 112), +(97796, 114), +(97796, 107), +(97796, 108), +(97796, 115), +(97796, 122), +(97796, 120), +(97796, 117), +(97796, 118), +(97797, 106), +(97797, 110), +(97797, 121), +(97797, 116), +(97797, 113), +(97797, 111), +(97797, 126), +(97797, 125), +(97797, 124), +(97797, 109), +(97797, 123), +(97797, 119), +(97797, 112), +(97797, 114), +(97797, 107), +(97797, 108), +(97797, 115), +(97797, 122), +(97797, 120), +(97797, 117), +(97797, 118), +(97798, 106), +(97798, 110), +(97798, 121), +(97798, 116), +(97798, 113), +(97798, 111), +(97798, 126), +(97798, 125), +(97798, 124), +(97798, 109), +(97798, 123), +(97798, 119), +(97798, 112), +(97798, 114), +(97798, 107), +(97798, 108), +(97798, 115), +(97798, 122), +(97798, 120), +(97798, 117), +(97798, 118), +(97799, 106), +(97799, 110), +(97799, 121), +(97799, 116), +(97799, 113), +(97799, 111), +(97799, 126), +(97799, 125), +(97799, 124), +(97799, 109), +(97799, 123), +(97799, 119), +(97799, 112), +(97799, 114), +(97799, 107), +(97799, 108), +(97799, 115), +(97799, 122), +(97799, 120), +(97799, 117), +(97799, 118), +(97800, 106), +(97800, 110), +(97800, 121), +(97800, 116), +(97800, 113), +(97800, 111), +(97800, 126), +(97800, 125), +(97800, 124), +(97800, 109), +(97800, 123), +(97800, 119), +(97800, 112), +(97800, 114), +(97800, 107), +(97800, 108), +(97800, 115), +(97800, 122), +(97800, 120), +(97800, 117), +(97800, 118), +(97801, 106), +(97801, 110), +(97801, 121), +(97801, 116), +(97801, 113), +(97801, 111), +(97801, 126), +(97801, 125), +(97801, 124), +(97801, 109), +(97801, 123), +(97801, 119), +(97801, 112), +(97801, 114), +(97801, 107), +(97801, 108), +(97801, 115), +(97801, 122), +(97801, 120), +(97801, 117), +(97801, 118), +(97802, 106), +(97802, 110), +(97802, 121), +(97802, 116), +(97802, 113), +(97802, 111), +(97802, 126), +(97802, 125), +(97802, 124), +(97802, 109), +(97802, 123), +(97802, 119), +(97802, 112), +(97802, 114), +(97802, 107), +(97802, 108), +(97802, 115), +(97802, 122), +(97802, 120), +(97802, 117), +(97802, 118), +(97803, 106), +(97803, 110), +(97803, 121), +(97803, 116), +(97803, 113), +(97803, 111), +(97803, 126), +(97803, 125), +(97803, 124), +(97803, 109), +(97803, 123), +(97803, 119), +(97803, 112), +(97803, 114), +(97803, 107), +(97803, 108), +(97803, 115), +(97803, 122), +(97803, 120), +(97803, 117), +(97803, 118), +(97804, 106), +(97804, 110), +(97804, 121), +(97804, 116), +(97804, 113), +(97804, 111), +(97804, 126), +(97804, 125), +(97804, 124), +(97804, 109), +(97804, 123), +(97804, 119), +(97804, 112), +(97804, 114), +(97804, 107), +(97804, 108), +(97804, 115), +(97804, 122), +(97804, 120), +(97804, 117), +(97804, 118), +(97805, 106), +(97805, 110), +(97805, 121), +(97805, 116), +(97805, 113), +(97805, 111), +(97805, 126), +(97805, 125), +(97805, 124), +(97805, 109), +(97805, 123), +(97805, 119), +(97805, 112), +(97805, 114), +(97805, 107), +(97805, 108), +(97805, 115), +(97805, 122), +(97805, 120), +(97805, 117), +(97805, 118), +(97807, 106), +(97807, 110), +(97807, 121), +(97807, 116), +(97807, 113), +(97807, 111), +(97807, 126), +(97807, 125), +(97807, 124), +(97807, 109), +(97807, 123), +(97807, 119), +(97807, 112), +(97807, 114), +(97807, 107), +(97807, 108), +(97807, 115), +(97807, 122), +(97807, 120), +(97807, 117), +(97807, 118), +(97808, 106), +(97808, 110), +(97808, 121), +(97808, 116), +(97808, 113), +(97808, 111), +(97808, 126), +(97808, 125), +(97808, 124), +(97808, 109), +(97808, 123), +(97808, 119), +(97808, 112), +(97808, 114), +(97808, 107), +(97808, 108), +(97808, 115), +(97808, 122), +(97808, 120), +(97808, 117), +(97808, 118), +(97809, 106), +(97809, 110), +(97809, 121), +(97809, 116), +(97809, 113), +(97809, 111), +(97809, 126), +(97809, 125), +(97809, 124), +(97809, 109), +(97809, 123), +(97809, 119), +(97809, 112), +(97809, 114), +(97809, 107), +(97809, 108), +(97809, 115), +(97809, 122), +(97809, 120), +(97809, 117), +(97809, 118), +(97810, 106), +(97810, 110), +(97810, 121), +(97810, 116), +(97810, 113), +(97810, 111), +(97810, 126), +(97810, 125), +(97810, 124), +(97810, 109), +(97810, 123), +(97810, 119), +(97810, 112), +(97810, 114), +(97810, 107), +(97810, 108), +(97810, 115), +(97810, 122), +(97810, 120), +(97810, 117), +(97810, 118), +(97811, 106), +(97811, 110), +(97811, 121), +(97811, 116), +(97811, 113), +(97811, 111), +(97811, 126), +(97811, 125), +(97811, 124), +(97811, 109), +(97811, 123), +(97811, 119), +(97811, 112), +(97811, 114), +(97811, 107), +(97811, 108), +(97811, 115), +(97811, 122), +(97811, 120), +(97811, 117), +(97811, 118), +(97812, 106), +(97812, 110), +(97812, 121), +(97812, 116), +(97812, 113), +(97812, 111), +(97812, 126), +(97812, 125), +(97812, 124), +(97812, 109), +(97812, 123), +(97812, 119), +(97812, 112), +(97812, 114), +(97812, 107), +(97812, 108), +(97812, 115), +(97812, 122), +(97812, 120), +(97812, 117), +(97812, 118), +(97813, 106), +(97813, 110), +(97813, 121), +(97813, 116), +(97813, 113), +(97813, 111), +(97813, 126), +(97813, 125), +(97813, 124), +(97813, 109), +(97813, 123), +(97813, 119), +(97813, 112), +(97813, 114), +(97813, 107), +(97813, 108), +(97813, 115), +(97813, 122), +(97813, 120), +(97813, 117), +(97813, 118), +(97815, 106), +(97815, 110), +(97815, 121), +(97815, 116), +(97815, 113), +(97815, 111), +(97815, 126), +(97815, 125), +(97815, 124), +(97815, 109), +(97815, 123), +(97815, 119), +(97815, 112), +(97815, 114), +(97815, 107), +(97815, 108), +(97815, 115), +(97815, 122), +(97815, 120), +(97815, 117), +(97815, 118), +(97816, 106), +(97816, 110), +(97816, 121), +(97816, 116), +(97816, 113), +(97816, 111), +(97816, 126), +(97816, 125), +(97816, 124), +(97816, 109), +(97816, 123), +(97816, 119), +(97816, 112), +(97816, 114), +(97816, 107), +(97816, 108), +(97816, 115), +(97816, 122), +(97816, 120), +(97816, 117), +(97816, 118), +(97817, 106), +(97817, 110), +(97817, 121), +(97817, 116), +(97817, 113), +(97817, 111), +(97817, 126), +(97817, 125), +(97817, 124), +(97817, 109), +(97817, 123), +(97817, 119), +(97817, 112), +(97817, 114), +(97817, 107), +(97817, 108), +(97817, 115), +(97817, 122), +(97817, 120), +(97817, 117), +(97817, 118), +(97818, 106), +(97818, 110), +(97818, 121), +(97818, 116), +(97818, 113), +(97818, 111), +(97818, 126), +(97818, 125), +(97818, 124), +(97818, 109), +(97818, 123), +(97818, 119), +(97818, 112), +(97818, 114), +(97818, 107), +(97818, 108), +(97818, 115), +(97818, 122), +(97818, 120), +(97818, 117), +(97818, 118), +(97819, 106), +(97819, 110), +(97819, 121), +(97819, 116), +(97819, 113), +(97819, 111), +(97819, 126), +(97819, 125), +(97819, 124), +(97819, 109), +(97819, 123), +(97819, 119), +(97819, 112), +(97819, 114), +(97819, 107), +(97819, 108), +(97819, 115), +(97819, 122), +(97819, 120), +(97819, 117), +(97819, 118), +(97820, 106), +(97820, 110), +(97820, 121), +(97820, 116), +(97820, 113), +(97820, 111), +(97820, 126), +(97820, 125), +(97820, 124), +(97820, 109), +(97820, 123), +(97820, 119), +(97820, 112), +(97820, 114), +(97820, 107), +(97820, 108), +(97820, 115), +(97820, 122), +(97820, 120), +(97820, 117), +(97820, 118), +(97821, 106), +(97821, 110), +(97821, 121), +(97821, 116), +(97821, 113), +(97821, 111), +(97821, 126), +(97821, 125), +(97821, 124), +(97821, 109), +(97821, 123), +(97821, 119), +(97821, 112), +(97821, 114), +(97821, 107), +(97821, 108), +(97821, 115), +(97821, 122), +(97821, 120), +(97821, 117), +(97821, 118), +(97823, 106), +(97823, 110), +(97823, 121), +(97823, 116), +(97823, 113), +(97823, 111), +(97823, 126), +(97823, 125), +(97823, 124), +(97823, 109), +(97823, 123), +(97823, 119), +(97823, 112), +(97823, 114), +(97823, 107), +(97823, 108), +(97823, 115), +(97823, 122), +(97823, 120), +(97823, 117), +(97823, 118), +(97824, 106), +(97824, 110), +(97824, 121), +(97824, 116), +(97824, 113), +(97824, 111), +(97824, 126), +(97824, 125), +(97824, 124), +(97824, 109), +(97824, 123), +(97824, 119), +(97824, 112), +(97824, 114), +(97824, 107), +(97824, 108), +(97824, 115), +(97824, 122), +(97824, 120), +(97824, 117), +(97824, 118), +(97825, 106), +(97825, 110), +(97825, 121), +(97825, 116), +(97825, 113), +(97825, 111), +(97825, 126), +(97825, 125), +(97825, 124), +(97825, 109), +(97825, 123), +(97825, 119), +(97825, 112), +(97825, 114), +(97825, 107), +(97825, 108), +(97825, 115), +(97825, 122), +(97825, 120), +(97825, 117), +(97825, 118), +(97826, 106), +(97826, 110), +(97826, 121), +(97826, 116), +(97826, 113), +(97826, 111), +(97826, 126), +(97826, 125), +(97826, 124), +(97826, 109), +(97826, 123), +(97826, 119), +(97826, 112), +(97826, 114), +(97826, 107), +(97826, 108), +(97826, 115), +(97826, 122), +(97826, 120), +(97826, 117), +(97826, 118), +(97827, 106), +(97827, 110), +(97827, 121), +(97827, 116), +(97827, 113), +(97827, 111), +(97827, 126), +(97827, 125), +(97827, 124), +(97827, 109), +(97827, 123), +(97827, 119), +(97827, 112), +(97827, 114), +(97827, 107), +(97827, 108), +(97827, 115), +(97827, 122), +(97827, 120), +(97827, 117), +(97827, 118), +(97828, 106), +(97828, 110), +(97828, 121), +(97828, 116), +(97828, 113), +(97828, 111), +(97828, 126), +(97828, 125), +(97828, 124), +(97828, 109), +(97828, 123), +(97828, 119), +(97828, 112), +(97828, 114), +(97828, 107), +(97828, 108), +(97828, 115), +(97828, 122), +(97828, 120), +(97828, 117), +(97828, 118), +(97829, 106), +(97829, 110), +(97829, 121), +(97829, 116), +(97829, 113), +(97829, 111), +(97829, 126), +(97829, 125), +(97829, 124), +(97829, 109), +(97829, 123), +(97829, 119), +(97829, 112), +(97829, 114), +(97829, 107), +(97829, 108), +(97829, 115), +(97829, 122), +(97829, 120), +(97829, 117), +(97829, 118), +(97830, 106), +(97830, 110), +(97830, 121), +(97830, 116), +(97830, 113), +(97830, 111), +(97830, 126), +(97830, 125), +(97830, 124), +(97830, 109), +(97830, 123), +(97830, 119), +(97830, 112), +(97830, 114), +(97830, 107), +(97830, 108), +(97830, 115), +(97830, 122), +(97830, 120), +(97830, 117), +(97830, 118), +(97831, 106), +(97831, 110), +(97831, 121), +(97831, 116), +(97831, 113), +(97831, 111), +(97831, 126), +(97831, 125), +(97831, 124), +(97831, 109), +(97831, 123), +(97831, 119), +(97831, 112), +(97831, 114), +(97831, 107), +(97831, 108), +(97831, 115), +(97831, 122), +(97831, 120), +(97831, 117), +(97831, 118), +(97832, 106), +(97832, 110), +(97832, 121), +(97832, 116), +(97832, 113), +(97832, 111), +(97832, 126), +(97832, 125), +(97832, 124), +(97832, 109), +(97832, 123), +(97832, 119), +(97832, 112), +(97832, 114), +(97832, 107), +(97832, 108), +(97832, 115), +(97832, 122), +(97832, 120), +(97832, 117), +(97832, 118), +(97834, 106), +(97834, 110), +(97834, 121), +(97834, 116), +(97834, 113), +(97834, 111), +(97834, 126), +(97834, 125), +(97834, 124), +(97834, 109), +(97834, 123), +(97834, 119), +(97834, 112), +(97834, 114), +(97834, 107), +(97834, 108), +(97834, 115), +(97834, 122), +(97834, 120), +(97834, 117), +(97834, 118), +(97835, 106), +(97835, 110), +(97835, 121), +(97835, 116), +(97835, 113), +(97835, 111), +(97835, 126), +(97835, 125), +(97835, 124), +(97835, 109), +(97835, 123), +(97835, 119), +(97835, 112), +(97835, 114), +(97835, 107), +(97835, 108), +(97835, 115), +(97835, 122), +(97835, 120), +(97835, 117), +(97835, 118), +(97836, 106), +(97836, 110), +(97836, 121), +(97836, 116), +(97836, 113), +(97836, 111), +(97836, 126), +(97836, 125), +(97836, 124), +(97836, 109), +(97836, 123), +(97836, 119), +(97836, 112), +(97836, 114), +(97836, 107), +(97836, 108), +(97836, 115), +(97836, 122), +(97836, 120), +(97836, 117), +(97836, 118), +(97837, 106), +(97837, 110), +(97837, 121), +(97837, 116), +(97837, 113), +(97837, 111), +(97837, 126), +(97837, 125), +(97837, 124), +(97837, 109), +(97837, 123), +(97837, 119), +(97837, 112), +(97837, 114), +(97837, 107), +(97837, 108), +(97837, 115), +(97837, 122), +(97837, 120), +(97837, 117), +(97837, 118), +(97838, 106), +(97838, 110), +(97838, 121), +(97838, 116), +(97838, 113), +(97838, 111), +(97838, 126), +(97838, 125), +(97838, 124), +(97838, 109), +(97838, 123), +(97838, 119), +(97838, 112), +(97838, 114), +(97838, 107), +(97838, 108), +(97838, 115), +(97838, 122), +(97838, 120), +(97838, 117), +(97838, 118), +(97839, 106), +(97839, 110), +(97839, 121), +(97839, 116), +(97839, 113), +(97839, 111), +(97839, 126), +(97839, 125), +(97839, 124), +(97839, 109), +(97839, 123), +(97839, 119), +(97839, 112), +(97839, 114), +(97839, 107), +(97839, 108), +(97839, 115), +(97839, 122), +(97839, 120), +(97839, 117), +(97839, 118), +(97840, 106), +(97840, 110), +(97840, 121), +(97840, 116), +(97840, 113), +(97840, 111), +(97840, 126), +(97840, 125), +(97840, 124), +(97840, 109), +(97840, 123), +(97840, 119), +(97840, 112), +(97840, 114), +(97840, 107), +(97840, 108), +(97840, 115), +(97840, 122), +(97840, 120), +(97840, 117), +(97840, 118), +(97841, 106), +(97841, 110), +(97841, 121), +(97841, 116), +(97841, 113), +(97841, 111), +(97841, 126), +(97841, 125), +(97841, 124), +(97841, 109), +(97841, 123), +(97841, 119), +(97841, 112), +(97841, 114), +(97841, 107), +(97841, 108), +(97841, 115), +(97841, 122), +(97841, 120), +(97841, 117), +(97841, 118), +(97842, 106), +(97842, 110), +(97842, 121), +(97842, 116), +(97842, 113), +(97842, 111), +(97842, 126), +(97842, 125), +(97842, 124), +(97842, 109), +(97842, 123), +(97842, 119), +(97842, 112), +(97842, 114), +(97842, 107), +(97842, 108), +(97842, 115), +(97842, 122), +(97842, 120), +(97842, 117), +(97842, 118), +(97844, 106), +(97844, 110), +(97844, 121), +(97844, 116), +(97844, 113), +(97844, 111), +(97844, 126), +(97844, 125), +(97844, 124), +(97844, 109), +(97844, 123), +(97844, 119), +(97844, 112), +(97844, 114), +(97844, 107), +(97844, 108), +(97844, 115), +(97844, 122), +(97844, 120), +(97844, 117), +(97844, 118), +(97845, 106), +(97845, 110), +(97845, 121), +(97845, 116), +(97845, 113), +(97845, 111), +(97845, 126), +(97845, 125), +(97845, 124), +(97845, 109), +(97845, 123), +(97845, 119), +(97845, 112), +(97845, 114), +(97845, 107), +(97845, 108), +(97845, 115), +(97845, 122), +(97845, 120), +(97845, 117), +(97845, 118), +(97846, 106), +(97846, 110), +(97846, 121), +(97846, 116), +(97846, 113), +(97846, 111), +(97846, 126), +(97846, 125), +(97846, 124), +(97846, 109), +(97846, 123), +(97846, 119), +(97846, 112), +(97846, 114), +(97846, 107), +(97846, 108), +(97846, 115), +(97846, 122), +(97846, 120), +(97846, 117), +(97846, 118), +(97847, 106), +(97847, 110), +(97847, 121), +(97847, 116), +(97847, 113), +(97847, 111), +(97847, 126), +(97847, 125), +(97847, 124), +(97847, 109), +(97847, 123), +(97847, 119), +(97847, 112), +(97847, 114), +(97847, 107), +(97847, 108), +(97847, 115), +(97847, 122), +(97847, 120), +(97847, 117), +(97847, 118), +(97848, 106), +(97848, 110), +(97848, 121), +(97848, 116), +(97848, 113), +(97848, 111), +(97848, 126), +(97848, 125), +(97848, 124), +(97848, 109), +(97848, 123), +(97848, 119), +(97848, 112), +(97848, 114), +(97848, 107), +(97848, 108), +(97848, 115), +(97848, 122), +(97848, 120), +(97848, 117), +(97848, 118), +(97849, 106), +(97849, 110), +(97849, 121), +(97849, 116), +(97849, 113), +(97849, 111), +(97849, 126), +(97849, 125), +(97849, 124), +(97849, 109), +(97849, 123), +(97849, 119), +(97849, 112), +(97849, 114), +(97849, 107), +(97849, 108), +(97849, 115), +(97849, 122), +(97849, 120), +(97849, 117), +(97849, 118), +(97850, 106), +(97850, 110), +(97850, 121), +(97850, 116), +(97850, 113), +(97850, 111), +(97850, 126), +(97850, 125), +(97850, 124), +(97850, 109), +(97850, 123), +(97850, 119), +(97850, 112), +(97850, 114), +(97850, 107), +(97850, 108), +(97850, 115), +(97850, 122), +(97850, 120), +(97850, 117), +(97850, 118), +(97851, 106), +(97851, 110), +(97851, 121), +(97851, 116), +(97851, 113), +(97851, 111), +(97851, 126), +(97851, 125), +(97851, 124), +(97851, 109), +(97851, 123), +(97851, 119), +(97851, 112), +(97851, 114), +(97851, 107), +(97851, 108), +(97851, 115), +(97851, 122), +(97851, 120), +(97851, 117), +(97851, 118), +(97852, 106), +(97852, 110), +(97852, 121), +(97852, 116), +(97852, 113), +(97852, 111), +(97852, 126), +(97852, 125), +(97852, 124), +(97852, 109), +(97852, 123), +(97852, 119), +(97852, 112), +(97852, 114), +(97852, 107), +(97852, 108), +(97852, 115), +(97852, 122), +(97852, 120), +(97852, 117), +(97852, 118), +(97853, 106), +(97853, 110), +(97853, 121), +(97853, 116), +(97853, 113), +(97853, 111), +(97853, 126), +(97853, 125), +(97853, 124), +(97853, 109), +(97853, 123), +(97853, 119), +(97853, 112), +(97853, 114), +(97853, 107), +(97853, 108), +(97853, 115), +(97853, 122), +(97853, 120), +(97853, 117), +(97853, 118), +(97854, 106), +(97854, 110), +(97854, 121), +(97854, 116), +(97854, 113), +(97854, 111), +(97854, 126), +(97854, 125), +(97854, 124), +(97854, 109), +(97854, 123), +(97854, 119), +(97854, 112), +(97854, 114), +(97854, 107), +(97854, 108), +(97854, 115), +(97854, 122), +(97854, 120), +(97854, 117), +(97854, 118), +(97855, 106), +(97855, 110), +(97855, 121), +(97855, 116), +(97855, 113), +(97855, 111), +(97855, 126), +(97855, 125), +(97855, 124), +(97855, 109), +(97855, 123), +(97855, 119), +(97855, 112), +(97855, 114), +(97855, 107), +(97855, 108), +(97855, 115), +(97855, 122), +(97855, 120), +(97855, 117), +(97855, 118), +(97856, 106), +(97856, 110), +(97856, 121), +(97856, 116), +(97856, 113), +(97856, 111), +(97856, 126), +(97856, 125), +(97856, 124), +(97856, 109), +(97856, 123), +(97856, 119), +(97856, 112), +(97856, 114), +(97856, 107), +(97856, 108), +(97856, 115), +(97856, 122), +(97856, 120), +(97856, 117), +(97856, 118), +(97857, 106), +(97857, 110), +(97857, 121), +(97857, 116), +(97857, 113), +(97857, 111), +(97857, 126), +(97857, 125), +(97857, 124), +(97857, 109), +(97857, 123), +(97857, 119), +(97857, 112), +(97857, 114), +(97857, 107), +(97857, 108), +(97857, 115), +(97857, 122), +(97857, 120), +(97857, 117), +(97857, 118), +(97858, 106), +(97858, 110), +(97858, 121), +(97858, 116), +(97858, 113), +(97858, 111), +(97858, 126), +(97858, 125), +(97858, 124), +(97858, 109), +(97858, 123), +(97858, 119), +(97858, 112), +(97858, 114), +(97858, 107), +(97858, 108), +(97858, 115), +(97858, 122), +(97858, 120), +(97858, 117), +(97858, 118), +(97859, 106), +(97859, 110), +(97859, 121), +(97859, 116), +(97859, 113), +(97859, 111), +(97859, 126), +(97859, 125), +(97859, 124), +(97859, 109), +(97859, 123), +(97859, 119), +(97859, 112), +(97859, 114), +(97859, 107), +(97859, 108), +(97859, 115), +(97859, 122), +(97859, 120), +(97859, 117), +(97859, 118), +(97860, 106), +(97860, 110), +(97860, 121), +(97860, 116), +(97860, 113), +(97860, 111), +(97860, 126), +(97860, 125), +(97860, 124), +(97860, 109), +(97860, 123), +(97860, 119), +(97860, 112), +(97860, 114), +(97860, 107), +(97860, 108), +(97860, 115), +(97860, 122), +(97860, 120), +(97860, 117), +(97860, 118), +(97861, 106), +(97861, 110), +(97861, 121), +(97861, 116), +(97861, 113), +(97861, 111), +(97861, 126), +(97861, 125), +(97861, 124), +(97861, 109), +(97861, 123), +(97861, 119), +(97861, 112), +(97861, 114), +(97861, 107), +(97861, 108), +(97861, 115), +(97861, 122), +(97861, 120), +(97861, 117), +(97861, 118), +(97863, 106), +(97863, 110), +(97863, 121), +(97863, 116), +(97863, 113), +(97863, 111), +(97863, 126), +(97863, 125), +(97863, 124), +(97863, 109), +(97863, 123), +(97863, 119), +(97863, 112), +(97863, 114), +(97863, 107), +(97863, 108), +(97863, 115), +(97863, 122), +(97863, 120), +(97863, 117), +(97863, 118), +(97864, 106), +(97864, 110), +(97864, 121), +(97864, 116), +(97864, 113), +(97864, 111), +(97864, 126), +(97864, 125), +(97864, 124), +(97864, 109), +(97864, 123), +(97864, 119), +(97864, 112), +(97864, 114), +(97864, 107), +(97864, 108), +(97864, 115), +(97864, 122), +(97864, 120), +(97864, 117), +(97864, 118), +(97865, 106), +(97865, 110), +(97865, 121), +(97865, 116), +(97865, 113), +(97865, 111), +(97865, 126), +(97865, 125), +(97865, 124), +(97865, 109), +(97865, 123), +(97865, 119), +(97865, 112), +(97865, 114), +(97865, 107), +(97865, 108), +(97865, 115), +(97865, 122), +(97865, 120), +(97865, 117), +(97865, 118), +(97866, 106), +(97866, 110), +(97866, 121), +(97866, 116), +(97866, 113), +(97866, 111), +(97866, 126), +(97866, 125), +(97866, 124), +(97866, 109), +(97866, 123), +(97866, 119), +(97866, 112), +(97866, 114), +(97866, 107), +(97866, 108), +(97866, 115), +(97866, 122), +(97866, 120), +(97866, 117), +(97866, 118), +(97867, 106), +(97867, 110), +(97867, 121), +(97867, 116), +(97867, 113), +(97867, 111), +(97867, 126), +(97867, 125), +(97867, 124), +(97867, 109), +(97867, 123), +(97867, 119), +(97867, 112), +(97867, 114), +(97867, 107), +(97867, 108), +(97867, 115), +(97867, 122), +(97867, 120), +(97867, 117), +(97867, 118), +(97868, 106), +(97868, 110), +(97868, 121), +(97868, 116), +(97868, 113), +(97868, 111), +(97868, 126), +(97868, 125), +(97868, 124), +(97868, 109), +(97868, 123), +(97868, 119), +(97868, 112), +(97868, 114), +(97868, 107), +(97868, 108), +(97868, 115), +(97868, 122), +(97868, 120), +(97868, 117), +(97868, 118), +(97869, 106), +(97869, 110), +(97869, 121), +(97869, 116), +(97869, 113), +(97869, 111), +(97869, 126), +(97869, 125), +(97869, 124), +(97869, 109), +(97869, 123), +(97869, 119), +(97869, 112), +(97869, 114), +(97869, 107), +(97869, 108), +(97869, 115), +(97869, 122), +(97869, 120), +(97869, 117), +(97869, 118), +(97870, 106), +(97870, 110), +(97870, 121), +(97870, 116), +(97870, 113), +(97870, 111), +(97870, 126), +(97870, 125), +(97870, 124), +(97870, 109), +(97870, 123), +(97870, 119), +(97870, 112), +(97870, 114), +(97870, 107), +(97870, 108), +(97870, 115), +(97870, 122), +(97870, 120), +(97870, 117), +(97870, 118), +(97871, 106), +(97871, 110), +(97871, 121), +(97871, 116), +(97871, 113), +(97871, 111), +(97871, 126), +(97871, 125), +(97871, 124), +(97871, 109), +(97871, 123), +(97871, 119), +(97871, 112), +(97871, 114), +(97871, 107), +(97871, 108), +(97871, 115), +(97871, 122), +(97871, 120), +(97871, 117), +(97871, 118), +(97872, 106), +(97872, 110), +(97872, 121), +(97872, 116), +(97872, 113), +(97872, 111), +(97872, 126), +(97872, 125), +(97872, 124), +(97872, 109), +(97872, 123), +(97872, 119), +(97872, 112), +(97872, 114), +(97872, 107), +(97872, 108), +(97872, 115), +(97872, 122), +(97872, 120), +(97872, 117), +(97872, 118), +(97873, 106), +(97873, 110), +(97873, 121), +(97873, 116), +(97873, 113), +(97873, 111), +(97873, 126), +(97873, 125), +(97873, 124), +(97873, 109), +(97873, 123), +(97873, 119), +(97873, 112), +(97873, 114), +(97873, 107), +(97873, 108), +(97873, 115), +(97873, 122), +(97873, 120), +(97873, 117), +(97873, 118), +(97874, 106), +(97874, 110), +(97874, 121), +(97874, 116), +(97874, 113), +(97874, 111), +(97874, 126), +(97874, 125), +(97874, 124), +(97874, 109), +(97874, 123), +(97874, 119), +(97874, 112), +(97874, 114), +(97874, 107), +(97874, 108), +(97874, 115), +(97874, 122), +(97874, 120), +(97874, 117), +(97874, 118), +(97875, 106), +(97875, 110), +(97875, 121), +(97875, 116), +(97875, 113), +(97875, 111), +(97875, 126), +(97875, 125), +(97875, 124), +(97875, 109), +(97875, 123), +(97875, 119), +(97875, 112), +(97875, 114), +(97875, 107), +(97875, 108), +(97875, 115), +(97875, 122), +(97875, 120), +(97875, 117), +(97875, 118), +(97876, 106), +(97876, 110), +(97876, 121), +(97876, 116), +(97876, 113), +(97876, 111), +(97876, 126), +(97876, 125), +(97876, 124), +(97876, 109), +(97876, 123), +(97876, 119), +(97876, 112), +(97876, 114), +(97876, 107), +(97876, 108), +(97876, 115), +(97876, 122), +(97876, 120), +(97876, 117), +(97876, 118), +(97877, 106), +(97877, 110), +(97877, 121), +(97877, 116), +(97877, 113), +(97877, 111), +(97877, 126), +(97877, 125), +(97877, 124), +(97877, 109), +(97877, 123), +(97877, 119), +(97877, 112), +(97877, 114), +(97877, 107), +(97877, 108), +(97877, 115), +(97877, 122), +(97877, 120), +(97877, 117), +(97877, 118), +(97878, 106), +(97878, 110), +(97878, 121), +(97878, 116), +(97878, 113), +(97878, 111), +(97878, 126), +(97878, 125), +(97878, 124), +(97878, 109), +(97878, 123), +(97878, 119), +(97878, 112), +(97878, 114), +(97878, 107), +(97878, 108), +(97878, 115), +(97878, 122), +(97878, 120), +(97878, 117), +(97878, 118), +(97879, 106), +(97879, 110), +(97879, 121), +(97879, 116), +(97879, 113), +(97879, 111), +(97879, 126), +(97879, 125), +(97879, 124), +(97879, 109), +(97879, 123), +(97879, 119), +(97879, 112), +(97879, 114), +(97879, 107), +(97879, 108), +(97879, 115), +(97879, 122), +(97879, 120), +(97879, 117), +(97879, 118), +(97880, 106), +(97880, 110), +(97880, 121), +(97880, 116), +(97880, 113), +(97880, 111), +(97880, 126), +(97880, 125), +(97880, 124), +(97880, 109), +(97880, 123), +(97880, 119), +(97880, 112), +(97880, 114), +(97880, 107), +(97880, 108), +(97880, 115), +(97880, 122), +(97880, 120), +(97880, 117), +(97880, 118), +(97881, 106), +(97881, 110), +(97881, 121), +(97881, 116), +(97881, 113), +(97881, 111), +(97881, 126), +(97881, 125), +(97881, 124), +(97881, 109), +(97881, 123), +(97881, 119), +(97881, 112), +(97881, 114), +(97881, 107), +(97881, 108), +(97881, 115), +(97881, 122), +(97881, 120), +(97881, 117), +(97881, 118), +(97882, 106), +(97882, 110), +(97882, 121), +(97882, 116), +(97882, 113), +(97882, 111), +(97882, 126), +(97882, 125), +(97882, 124), +(97882, 109), +(97882, 123), +(97882, 119), +(97882, 112), +(97882, 114), +(97882, 107), +(97882, 108), +(97882, 115), +(97882, 122), +(97882, 120), +(97882, 117), +(97882, 118), +(97883, 106), +(97883, 110), +(97883, 121), +(97883, 116), +(97883, 113), +(97883, 111), +(97883, 126), +(97883, 125), +(97883, 124), +(97883, 109), +(97883, 123), +(97883, 119), +(97883, 112), +(97883, 114), +(97883, 107), +(97883, 108), +(97883, 115), +(97883, 122), +(97883, 120), +(97883, 117), +(97883, 118), +(97884, 106), +(97884, 110), +(97884, 121), +(97884, 116), +(97884, 113), +(97884, 111), +(97884, 126), +(97884, 125), +(97884, 124), +(97884, 109), +(97884, 123), +(97884, 119), +(97884, 112), +(97884, 114), +(97884, 107), +(97884, 108), +(97884, 115), +(97884, 122), +(97884, 120), +(97884, 117), +(97884, 118), +(97885, 106), +(97885, 110), +(97885, 121), +(97885, 116), +(97885, 113), +(97885, 111), +(97885, 126), +(97885, 125), +(97885, 124), +(97885, 109), +(97885, 123), +(97885, 119), +(97885, 112), +(97885, 114), +(97885, 107), +(97885, 108), +(97885, 115), +(97885, 122), +(97885, 120), +(97885, 117), +(97885, 118), +(97886, 106), +(97886, 110), +(97886, 121), +(97886, 116), +(97886, 113), +(97886, 111), +(97886, 126), +(97886, 125), +(97886, 124), +(97886, 109), +(97886, 123), +(97886, 119), +(97886, 112), +(97886, 114), +(97886, 107), +(97886, 108), +(97886, 115), +(97886, 122), +(97886, 120), +(97886, 117), +(97886, 118), +(97887, 106), +(97887, 110), +(97887, 121), +(97887, 116), +(97887, 113), +(97887, 111), +(97887, 126), +(97887, 125), +(97887, 124), +(97887, 109), +(97887, 123), +(97887, 119), +(97887, 112), +(97887, 114), +(97887, 107), +(97887, 108), +(97887, 115), +(97887, 122), +(97887, 120), +(97887, 117), +(97887, 118), +(97889, 106), +(97889, 110), +(97889, 121), +(97889, 116), +(97889, 113), +(97889, 111), +(97889, 126), +(97889, 125), +(97889, 124), +(97889, 109), +(97889, 123), +(97889, 119), +(97889, 112), +(97889, 114), +(97889, 107), +(97889, 108), +(97889, 115), +(97889, 122), +(97889, 120), +(97889, 117), +(97889, 118), +(97890, 106), +(97890, 110), +(97890, 121), +(97890, 116), +(97890, 113), +(97890, 111), +(97890, 126), +(97890, 125), +(97890, 124), +(97890, 109), +(97890, 123), +(97890, 119), +(97890, 112), +(97890, 114), +(97890, 107), +(97890, 108), +(97890, 115), +(97890, 122), +(97890, 120), +(97890, 117), +(97890, 118), +(97891, 106), +(97891, 110), +(97891, 121), +(97891, 116), +(97891, 113), +(97891, 111), +(97891, 126), +(97891, 125), +(97891, 124), +(97891, 109), +(97891, 123), +(97891, 119), +(97891, 112), +(97891, 114), +(97891, 107), +(97891, 108), +(97891, 115), +(97891, 122), +(97891, 120), +(97891, 117), +(97891, 118), +(97892, 106), +(97892, 110), +(97892, 121), +(97892, 116), +(97892, 113), +(97892, 111), +(97892, 126), +(97892, 125), +(97892, 124), +(97892, 109), +(97892, 123), +(97892, 119), +(97892, 112), +(97892, 114), +(97892, 107), +(97892, 108), +(97892, 115), +(97892, 122), +(97892, 120), +(97892, 117), +(97892, 118), +(97893, 106), +(97893, 110), +(97893, 121), +(97893, 116), +(97893, 113), +(97893, 111), +(97893, 126), +(97893, 125), +(97893, 124), +(97893, 109), +(97893, 123), +(97893, 119), +(97893, 112), +(97893, 114), +(97893, 107), +(97893, 108), +(97893, 115), +(97893, 122), +(97893, 120), +(97893, 117), +(97893, 118), +(97894, 106), +(97894, 110), +(97894, 121), +(97894, 116), +(97894, 113), +(97894, 111), +(97894, 126), +(97894, 125), +(97894, 124), +(97894, 109), +(97894, 123), +(97894, 119), +(97894, 112), +(97894, 114), +(97894, 107), +(97894, 108), +(97894, 115), +(97894, 122), +(97894, 120), +(97894, 117), +(97894, 118), +(97895, 106), +(97895, 110), +(97895, 121), +(97895, 116), +(97895, 113), +(97895, 111), +(97895, 126), +(97895, 125), +(97895, 124), +(97895, 109), +(97895, 123), +(97895, 119), +(97895, 112), +(97895, 114), +(97895, 107), +(97895, 108), +(97895, 115), +(97895, 122), +(97895, 120), +(97895, 117), +(97895, 118), +(97896, 106), +(97896, 110), +(97896, 121), +(97896, 116), +(97896, 113), +(97896, 111), +(97896, 126), +(97896, 125), +(97896, 124), +(97896, 109), +(97896, 123), +(97896, 119), +(97896, 112), +(97896, 114), +(97896, 107), +(97896, 108), +(97896, 115), +(97896, 122), +(97896, 120), +(97896, 117), +(97896, 118), +(97897, 106), +(97897, 110), +(97897, 121), +(97897, 116), +(97897, 113), +(97897, 111), +(97897, 126), +(97897, 125), +(97897, 124), +(97897, 109), +(97897, 123), +(97897, 119), +(97897, 112), +(97897, 114), +(97897, 107), +(97897, 108), +(97897, 115), +(97897, 122), +(97897, 120), +(97897, 117), +(97897, 118), +(97898, 106), +(97898, 110), +(97898, 121), +(97898, 116), +(97898, 113), +(97898, 111), +(97898, 126), +(97898, 125), +(97898, 124), +(97898, 109), +(97898, 123), +(97898, 119), +(97898, 112), +(97898, 114), +(97898, 107), +(97898, 108), +(97898, 115), +(97898, 122), +(97898, 120), +(97898, 117), +(97898, 118), +(97899, 106), +(97899, 110), +(97899, 121), +(97899, 116), +(97899, 113), +(97899, 111), +(97899, 126), +(97899, 125), +(97899, 124), +(97899, 109), +(97899, 123), +(97899, 119), +(97899, 112), +(97899, 114), +(97899, 107), +(97899, 108), +(97899, 115), +(97899, 122), +(97899, 120), +(97899, 117), +(97899, 118), +(97900, 106), +(97900, 110), +(97900, 121), +(97900, 116), +(97900, 113), +(97900, 111), +(97900, 126), +(97900, 125), +(97900, 124), +(97900, 109), +(97900, 123), +(97900, 119), +(97900, 112), +(97900, 114), +(97900, 107), +(97900, 108), +(97900, 115), +(97900, 122), +(97900, 120), +(97900, 117), +(97900, 118), +(97901, 106), +(97901, 110), +(97901, 121), +(97901, 116), +(97901, 113), +(97901, 111), +(97901, 126), +(97901, 125), +(97901, 124), +(97901, 109), +(97901, 123), +(97901, 119), +(97901, 112), +(97901, 114), +(97901, 107), +(97901, 108), +(97901, 115), +(97901, 122), +(97901, 120), +(97901, 117), +(97901, 118), +(97902, 106), +(97902, 110), +(97902, 121), +(97902, 116), +(97902, 113), +(97902, 111), +(97902, 126), +(97902, 125), +(97902, 124), +(97902, 109), +(97902, 123), +(97902, 119), +(97902, 112), +(97902, 114), +(97902, 107), +(97902, 108), +(97902, 115), +(97902, 122), +(97902, 120), +(97902, 117), +(97902, 118), +(97903, 106), +(97903, 110), +(97903, 121), +(97903, 116), +(97903, 113), +(97903, 111), +(97903, 126), +(97903, 125), +(97903, 124), +(97903, 109), +(97903, 123), +(97903, 119), +(97903, 112), +(97903, 114), +(97903, 107), +(97903, 108), +(97903, 115), +(97903, 122), +(97903, 120), +(97903, 117), +(97903, 118), +(97904, 106), +(97904, 110), +(97904, 121), +(97904, 116), +(97904, 113), +(97904, 111), +(97904, 126), +(97904, 125), +(97904, 124), +(97904, 109), +(97904, 123), +(97904, 119), +(97904, 112), +(97904, 114), +(97904, 107), +(97904, 108), +(97904, 115), +(97904, 122), +(97904, 120), +(97904, 117), +(97904, 118), +(97905, 106), +(97905, 110), +(97905, 121), +(97905, 116), +(97905, 113), +(97905, 111), +(97905, 126), +(97905, 125), +(97905, 124), +(97905, 109), +(97905, 123), +(97905, 119), +(97905, 112), +(97905, 114), +(97905, 107), +(97905, 108), +(97905, 115), +(97905, 122), +(97905, 120), +(97905, 117), +(97905, 118), +(97906, 106), +(97906, 110), +(97906, 121), +(97906, 116), +(97906, 113), +(97906, 111), +(97906, 126), +(97906, 125), +(97906, 124), +(97906, 109), +(97906, 123), +(97906, 119), +(97906, 112), +(97906, 114), +(97906, 107), +(97906, 108), +(97906, 115), +(97906, 122), +(97906, 120), +(97906, 117), +(97906, 118), +(97908, 106), +(97908, 110), +(97908, 121), +(97908, 116), +(97908, 113), +(97908, 111), +(97908, 126), +(97908, 125), +(97908, 124), +(97908, 109), +(97908, 123), +(97908, 119), +(97908, 112), +(97908, 114), +(97908, 107), +(97908, 108), +(97908, 115), +(97908, 122), +(97908, 120), +(97908, 117), +(97908, 118), +(97909, 106), +(97909, 110), +(97909, 121), +(97909, 116), +(97909, 113), +(97909, 111), +(97909, 126), +(97909, 125), +(97909, 124), +(97909, 109), +(97909, 123), +(97909, 119), +(97909, 112), +(97909, 114), +(97909, 107), +(97909, 108), +(97909, 115), +(97909, 122), +(97909, 120), +(97909, 117), +(97909, 118), +(97910, 106), +(97910, 110), +(97910, 121), +(97910, 116), +(97910, 113), +(97910, 111), +(97910, 126), +(97910, 125), +(97910, 124), +(97910, 109), +(97910, 123), +(97910, 119), +(97910, 112), +(97910, 114), +(97910, 107), +(97910, 108), +(97910, 115), +(97910, 122), +(97910, 120), +(97910, 117), +(97910, 118), +(97911, 106), +(97911, 110), +(97911, 121), +(97911, 116), +(97911, 113), +(97911, 111), +(97911, 126), +(97911, 125), +(97911, 124), +(97911, 109), +(97911, 123), +(97911, 119), +(97911, 112), +(97911, 114), +(97911, 107), +(97911, 108), +(97911, 115), +(97911, 122), +(97911, 120), +(97911, 117), +(97911, 118), +(97912, 106), +(97912, 110), +(97912, 121), +(97912, 116), +(97912, 113), +(97912, 111), +(97912, 126), +(97912, 125), +(97912, 124), +(97912, 109), +(97912, 123), +(97912, 119), +(97912, 112), +(97912, 114), +(97912, 107), +(97912, 108), +(97912, 115), +(97912, 122), +(97912, 120), +(97912, 117), +(97912, 118), +(97913, 106), +(97913, 110), +(97913, 121), +(97913, 116), +(97913, 113), +(97913, 111), +(97913, 126), +(97913, 125), +(97913, 124), +(97913, 109), +(97913, 123), +(97913, 119), +(97913, 112), +(97913, 114), +(97913, 107), +(97913, 108), +(97913, 115), +(97913, 122), +(97913, 120), +(97913, 117), +(97913, 118), +(97914, 106), +(97914, 110), +(97914, 121), +(97914, 116), +(97914, 113), +(97914, 111), +(97914, 126), +(97914, 125), +(97914, 124), +(97914, 109), +(97914, 123), +(97914, 119), +(97914, 112), +(97914, 114), +(97914, 107), +(97914, 108), +(97914, 115), +(97914, 122), +(97914, 120), +(97914, 117), +(97914, 118), +(97915, 106), +(97915, 110), +(97915, 121), +(97915, 116), +(97915, 113), +(97915, 111), +(97915, 126), +(97915, 125), +(97915, 124), +(97915, 109), +(97915, 123), +(97915, 119), +(97915, 112), +(97915, 114), +(97915, 107), +(97915, 108), +(97915, 115), +(97915, 122), +(97915, 120), +(97915, 117), +(97915, 118), +(97916, 106), +(97916, 110), +(97916, 121), +(97916, 116), +(97916, 113), +(97916, 111), +(97916, 126), +(97916, 125), +(97916, 124), +(97916, 109), +(97916, 123), +(97916, 119), +(97916, 112), +(97916, 114), +(97916, 107), +(97916, 108), +(97916, 115), +(97916, 122), +(97916, 120), +(97916, 117), +(97916, 118), +(97917, 106), +(97917, 110), +(97917, 121), +(97917, 116), +(97917, 113), +(97917, 111), +(97917, 126), +(97917, 125), +(97917, 124), +(97917, 109), +(97917, 123), +(97917, 119), +(97917, 112), +(97917, 114), +(97917, 107), +(97917, 108), +(97917, 115), +(97917, 122), +(97917, 120), +(97917, 117), +(97917, 118), +(97918, 106), +(97918, 110), +(97918, 121), +(97918, 116), +(97918, 113), +(97918, 111), +(97918, 126), +(97918, 125), +(97918, 124), +(97918, 109), +(97918, 123), +(97918, 119), +(97918, 112), +(97918, 114), +(97918, 107), +(97918, 108), +(97918, 115), +(97918, 122), +(97918, 120), +(97918, 117), +(97918, 118), +(97919, 106), +(97919, 110), +(97919, 121), +(97919, 116), +(97919, 113), +(97919, 111), +(97919, 126), +(97919, 125), +(97919, 124), +(97919, 109), +(97919, 123), +(97919, 119), +(97919, 112), +(97919, 114), +(97919, 107), +(97919, 108), +(97919, 115), +(97919, 122), +(97919, 120), +(97919, 117), +(97919, 118), +(97925, 106), +(97925, 110), +(97925, 121), +(97925, 116), +(97925, 113), +(97925, 111), +(97925, 126), +(97925, 125), +(97925, 124), +(97925, 109), +(97925, 123), +(97925, 119), +(97925, 112), +(97925, 114), +(97925, 107), +(97925, 108), +(97925, 115), +(97925, 122), +(97925, 120), +(97925, 117), +(97925, 118), +(97926, 106), +(97926, 110), +(97926, 121), +(97926, 116), +(97926, 113), +(97926, 111), +(97926, 126), +(97926, 125), +(97926, 124), +(97926, 109), +(97926, 123), +(97926, 119), +(97926, 112), +(97926, 114), +(97926, 107), +(97926, 108), +(97926, 115), +(97926, 122), +(97926, 120), +(97926, 117), +(97926, 118), +(97927, 106), +(97927, 110), +(97927, 121), +(97927, 116), +(97927, 113), +(97927, 111), +(97927, 126), +(97927, 125), +(97927, 124), +(97927, 109), +(97927, 123), +(97927, 119), +(97927, 112), +(97927, 114), +(97927, 107), +(97927, 108), +(97927, 115), +(97927, 122), +(97927, 120), +(97927, 117), +(97927, 118), +(97929, 106), +(97929, 110), +(97929, 121), +(97929, 116), +(97929, 113), +(97929, 111), +(97929, 126), +(97929, 125), +(97929, 124), +(97929, 109), +(97929, 123), +(97929, 119), +(97929, 112), +(97929, 114), +(97929, 107), +(97929, 108), +(97929, 115), +(97929, 122), +(97929, 120), +(97929, 117), +(97929, 118), +(97930, 106), +(97930, 110), +(97930, 121), +(97930, 116), +(97930, 113), +(97930, 111), +(97930, 126), +(97930, 125), +(97930, 124), +(97930, 109), +(97930, 123), +(97930, 119), +(97930, 112), +(97930, 114), +(97930, 107), +(97930, 108), +(97930, 115), +(97930, 122), +(97930, 120), +(97930, 117), +(97930, 118), +(97932, 106), +(97932, 110), +(97932, 121), +(97932, 116), +(97932, 113), +(97932, 111), +(97932, 126), +(97932, 125), +(97932, 124), +(97932, 109), +(97932, 123), +(97932, 119), +(97932, 112), +(97932, 114), +(97932, 107), +(97932, 108), +(97932, 115), +(97932, 122), +(97932, 120), +(97932, 117), +(97932, 118), +(97933, 106), +(97933, 110), +(97933, 121), +(97933, 116), +(97933, 113), +(97933, 111), +(97933, 126), +(97933, 125), +(97933, 124), +(97933, 109), +(97933, 123), +(97933, 119), +(97933, 112), +(97933, 114), +(97933, 107), +(97933, 108), +(97933, 115), +(97933, 122), +(97933, 120), +(97933, 117), +(97933, 118), +(97934, 106), +(97934, 110), +(97934, 121), +(97934, 116), +(97934, 113), +(97934, 111), +(97934, 126), +(97934, 125), +(97934, 124), +(97934, 109), +(97934, 123), +(97934, 119), +(97934, 112), +(97934, 114), +(97934, 107), +(97934, 108), +(97934, 115), +(97934, 122), +(97934, 120), +(97934, 117), +(97934, 118), +(97935, 106), +(97935, 110), +(97935, 121), +(97935, 116), +(97935, 113), +(97935, 111), +(97935, 126), +(97935, 125), +(97935, 124), +(97935, 109), +(97935, 123), +(97935, 119), +(97935, 112), +(97935, 114), +(97935, 107), +(97935, 108), +(97935, 115), +(97935, 122), +(97935, 120), +(97935, 117), +(97935, 118), +(97936, 106), +(97936, 110), +(97936, 121), +(97936, 116), +(97936, 113), +(97936, 111), +(97936, 126), +(97936, 125), +(97936, 124), +(97936, 109), +(97936, 123), +(97936, 119), +(97936, 112), +(97936, 114), +(97936, 107), +(97936, 108), +(97936, 115), +(97936, 122), +(97936, 120), +(97936, 117), +(97936, 118), +(97937, 106), +(97937, 110), +(97937, 121), +(97937, 116), +(97937, 113), +(97937, 111), +(97937, 126), +(97937, 125), +(97937, 124), +(97937, 109), +(97937, 123), +(97937, 119), +(97937, 112), +(97937, 114), +(97937, 107), +(97937, 108), +(97937, 115), +(97937, 122), +(97937, 120), +(97937, 117), +(97937, 118), +(97938, 106), +(97938, 110), +(97938, 121), +(97938, 116), +(97938, 113), +(97938, 111), +(97938, 126), +(97938, 125), +(97938, 124), +(97938, 109), +(97938, 123), +(97938, 119), +(97938, 112), +(97938, 114), +(97938, 107), +(97938, 108), +(97938, 115), +(97938, 122), +(97938, 120), +(97938, 117), +(97938, 118), +(97939, 106), +(97939, 110), +(97939, 121), +(97939, 116), +(97939, 113), +(97939, 111), +(97939, 126), +(97939, 125), +(97939, 124), +(97939, 109), +(97939, 123), +(97939, 119), +(97939, 112), +(97939, 114), +(97939, 107), +(97939, 108), +(97939, 115), +(97939, 122), +(97939, 120), +(97939, 117), +(97939, 118), +(97940, 106), +(97940, 110), +(97940, 121), +(97940, 116), +(97940, 113), +(97940, 111), +(97940, 126), +(97940, 125), +(97940, 124), +(97940, 109), +(97940, 123), +(97940, 119), +(97940, 112), +(97940, 114), +(97940, 107), +(97940, 108), +(97940, 115), +(97940, 122), +(97940, 120), +(97940, 117), +(97940, 118), +(97941, 106), +(97941, 110), +(97941, 121), +(97941, 116), +(97941, 113), +(97941, 111), +(97941, 126), +(97941, 125), +(97941, 124), +(97941, 109), +(97941, 123), +(97941, 119), +(97941, 112), +(97941, 114), +(97941, 107), +(97941, 108), +(97941, 115), +(97941, 122), +(97941, 120), +(97941, 117), +(97941, 118), +(97942, 106), +(97942, 110), +(97942, 121), +(97942, 116), +(97942, 113), +(97942, 111), +(97942, 126), +(97942, 125), +(97942, 124), +(97942, 109), +(97942, 123), +(97942, 119), +(97942, 112), +(97942, 114), +(97942, 107), +(97942, 108), +(97942, 115), +(97942, 122), +(97942, 120), +(97942, 117), +(97942, 118), +(97943, 106), +(97943, 110), +(97943, 121), +(97943, 116), +(97943, 113), +(97943, 111), +(97943, 126), +(97943, 125), +(97943, 124), +(97943, 109), +(97943, 123), +(97943, 119), +(97943, 112), +(97943, 114), +(97943, 107), +(97943, 108), +(97943, 115), +(97943, 122), +(97943, 120), +(97943, 117), +(97943, 118), +(97944, 106), +(97944, 110), +(97944, 121), +(97944, 116), +(97944, 113), +(97944, 111), +(97944, 126), +(97944, 125), +(97944, 124), +(97944, 109), +(97944, 123), +(97944, 119), +(97944, 112), +(97944, 114), +(97944, 107), +(97944, 108), +(97944, 115), +(97944, 122), +(97944, 120), +(97944, 117), +(97944, 118), +(97945, 106), +(97945, 110), +(97945, 121), +(97945, 116), +(97945, 113), +(97945, 111), +(97945, 126), +(97945, 125), +(97945, 124), +(97945, 109), +(97945, 123), +(97945, 119), +(97945, 112), +(97945, 114), +(97945, 107), +(97945, 108), +(97945, 115), +(97945, 122), +(97945, 120), +(97945, 117), +(97945, 118), +(97946, 106), +(97946, 110), +(97946, 121), +(97946, 116), +(97946, 113), +(97946, 111), +(97946, 126), +(97946, 125), +(97946, 124), +(97946, 109), +(97946, 123), +(97946, 119), +(97946, 112), +(97946, 114), +(97946, 107), +(97946, 108), +(97946, 115), +(97946, 122), +(97946, 120), +(97946, 117), +(97946, 118), +(97947, 106), +(97947, 110), +(97947, 121), +(97947, 116), +(97947, 113), +(97947, 111), +(97947, 126), +(97947, 125), +(97947, 124), +(97947, 109), +(97947, 123), +(97947, 119), +(97947, 112), +(97947, 114), +(97947, 107), +(97947, 108), +(97947, 115), +(97947, 122), +(97947, 120), +(97947, 117), +(97947, 118), +(97948, 106), +(97948, 110), +(97948, 121), +(97948, 116), +(97948, 113), +(97948, 111), +(97948, 126), +(97948, 125), +(97948, 124), +(97948, 109), +(97948, 123), +(97948, 119), +(97948, 112), +(97948, 114), +(97948, 107), +(97948, 108), +(97948, 115), +(97948, 122), +(97948, 120), +(97948, 117), +(97948, 118), +(97949, 106), +(97949, 110), +(97949, 121), +(97949, 116), +(97949, 113), +(97949, 111), +(97949, 126), +(97949, 125), +(97949, 124), +(97949, 109), +(97949, 123), +(97949, 119), +(97949, 112), +(97949, 114), +(97949, 107), +(97949, 108), +(97949, 115), +(97949, 122), +(97949, 120), +(97949, 117), +(97949, 118), +(97950, 106), +(97950, 110), +(97950, 121), +(97950, 116), +(97950, 113), +(97950, 111), +(97950, 126), +(97950, 125), +(97950, 124), +(97950, 109), +(97950, 123), +(97950, 119), +(97950, 112), +(97950, 114), +(97950, 107), +(97950, 108), +(97950, 115), +(97950, 122), +(97950, 120), +(97950, 117), +(97950, 118), +(97951, 106), +(97951, 110), +(97951, 121), +(97951, 116), +(97951, 113), +(97951, 111), +(97951, 126), +(97951, 125), +(97951, 124), +(97951, 109), +(97951, 123), +(97951, 119), +(97951, 112), +(97951, 114), +(97951, 107), +(97951, 108), +(97951, 115), +(97951, 122), +(97951, 120), +(97951, 117), +(97951, 118), +(97952, 106), +(97952, 110), +(97952, 121), +(97952, 116), +(97952, 113), +(97952, 111), +(97952, 126), +(97952, 125), +(97952, 124), +(97952, 109), +(97952, 123), +(97952, 119), +(97952, 112), +(97952, 114), +(97952, 107), +(97952, 108), +(97952, 115), +(97952, 122), +(97952, 120), +(97952, 117), +(97952, 118), +(97953, 106), +(97953, 110), +(97953, 121), +(97953, 116), +(97953, 113), +(97953, 111), +(97953, 126), +(97953, 125), +(97953, 124), +(97953, 109), +(97953, 123), +(97953, 119), +(97953, 112), +(97953, 114), +(97953, 107), +(97953, 108), +(97953, 115), +(97953, 122), +(97953, 120), +(97953, 117), +(97953, 118), +(97954, 106), +(97954, 110), +(97954, 121), +(97954, 116), +(97954, 113), +(97954, 111), +(97954, 126), +(97954, 125), +(97954, 124), +(97954, 109), +(97954, 123), +(97954, 119), +(97954, 112), +(97954, 114), +(97954, 107), +(97954, 108), +(97954, 115), +(97954, 122), +(97954, 120), +(97954, 117), +(97954, 118), +(97955, 106), +(97955, 110), +(97955, 121), +(97955, 116), +(97955, 113), +(97955, 111), +(97955, 126), +(97955, 125), +(97955, 124), +(97955, 109), +(97955, 123), +(97955, 119), +(97955, 112), +(97955, 114), +(97955, 107), +(97955, 108), +(97955, 115), +(97955, 122), +(97955, 120), +(97955, 117), +(97955, 118), +(97956, 106), +(97956, 110), +(97956, 121), +(97956, 116), +(97956, 113), +(97956, 111), +(97956, 126), +(97956, 125), +(97956, 124), +(97956, 109), +(97956, 123), +(97956, 119), +(97956, 112), +(97956, 114), +(97956, 107), +(97956, 108), +(97956, 115), +(97956, 122), +(97956, 120), +(97956, 117), +(97956, 118), +(97957, 106), +(97957, 110), +(97957, 121), +(97957, 116), +(97957, 113), +(97957, 111), +(97957, 126), +(97957, 125), +(97957, 124), +(97957, 109), +(97957, 123), +(97957, 119), +(97957, 112), +(97957, 114), +(97957, 107), +(97957, 108), +(97957, 115), +(97957, 122), +(97957, 120), +(97957, 117), +(97957, 118), +(97959, 106), +(97959, 110), +(97959, 121), +(97959, 116), +(97959, 113), +(97959, 111), +(97959, 126), +(97959, 125), +(97959, 124), +(97959, 109), +(97959, 123), +(97959, 119), +(97959, 112), +(97959, 114), +(97959, 107), +(97959, 108), +(97959, 115), +(97959, 122), +(97959, 120), +(97959, 117), +(97959, 118), +(97960, 106), +(97960, 110), +(97960, 121); +INSERT INTO `configuration_branch` (`configurationId`, `branchId`) VALUES +(97960, 116), +(97960, 113), +(97960, 111), +(97960, 126), +(97960, 125), +(97960, 124), +(97960, 109), +(97960, 123), +(97960, 119), +(97960, 112), +(97960, 114), +(97960, 107), +(97960, 108), +(97960, 115), +(97960, 122), +(97960, 120), +(97960, 117), +(97960, 118), +(97961, 106), +(97961, 110), +(97961, 121), +(97961, 116), +(97961, 113), +(97961, 111), +(97961, 126), +(97961, 125), +(97961, 124), +(97961, 109), +(97961, 123), +(97961, 119), +(97961, 112), +(97961, 114), +(97961, 107), +(97961, 108), +(97961, 115), +(97961, 122), +(97961, 120), +(97961, 117), +(97961, 118), +(97962, 106), +(97962, 110), +(97962, 121), +(97962, 116), +(97962, 113), +(97962, 111), +(97962, 126), +(97962, 125), +(97962, 124), +(97962, 109), +(97962, 123), +(97962, 119), +(97962, 112), +(97962, 114), +(97962, 107), +(97962, 108), +(97962, 115), +(97962, 122), +(97962, 120), +(97962, 117), +(97962, 118), +(97963, 106), +(97963, 110), +(97963, 121), +(97963, 116), +(97963, 113), +(97963, 111), +(97963, 126), +(97963, 125), +(97963, 124), +(97963, 109), +(97963, 123), +(97963, 119), +(97963, 112), +(97963, 114), +(97963, 107), +(97963, 108), +(97963, 115), +(97963, 122), +(97963, 120), +(97963, 117), +(97963, 118), +(97965, 106), +(97965, 110), +(97965, 121), +(97965, 116), +(97965, 113), +(97965, 111), +(97965, 126), +(97965, 125), +(97965, 124), +(97965, 109), +(97965, 123), +(97965, 119), +(97965, 112), +(97965, 114), +(97965, 107), +(97965, 108), +(97965, 115), +(97965, 122), +(97965, 120), +(97965, 117), +(97965, 118), +(97966, 106), +(97966, 110), +(97966, 121), +(97966, 116), +(97966, 113), +(97966, 111), +(97966, 126), +(97966, 125), +(97966, 124), +(97966, 109), +(97966, 123), +(97966, 119), +(97966, 112), +(97966, 114), +(97966, 107), +(97966, 108), +(97966, 115), +(97966, 122), +(97966, 120), +(97966, 117), +(97966, 118), +(97967, 106), +(97967, 110), +(97967, 121), +(97967, 116), +(97967, 113), +(97967, 111), +(97967, 126), +(97967, 125), +(97967, 124), +(97967, 109), +(97967, 123), +(97967, 119), +(97967, 112), +(97967, 114), +(97967, 107), +(97967, 108), +(97967, 115), +(97967, 122), +(97967, 120), +(97967, 117), +(97967, 118), +(97968, 106), +(97968, 110), +(97968, 121), +(97968, 116), +(97968, 113), +(97968, 111), +(97968, 126), +(97968, 125), +(97968, 124), +(97968, 109), +(97968, 123), +(97968, 119), +(97968, 112), +(97968, 114), +(97968, 107), +(97968, 108), +(97968, 115), +(97968, 122), +(97968, 120), +(97968, 117), +(97968, 118), +(97969, 106), +(97969, 110), +(97969, 121), +(97969, 116), +(97969, 113), +(97969, 111), +(97969, 126), +(97969, 125), +(97969, 124), +(97969, 109), +(97969, 123), +(97969, 119), +(97969, 112), +(97969, 114), +(97969, 107), +(97969, 108), +(97969, 115), +(97969, 122), +(97969, 120), +(97969, 117), +(97969, 118), +(97970, 106), +(97970, 110), +(97970, 121), +(97970, 116), +(97970, 113), +(97970, 111), +(97970, 126), +(97970, 125), +(97970, 124), +(97970, 109), +(97970, 123), +(97970, 119), +(97970, 112), +(97970, 114), +(97970, 107), +(97970, 108), +(97970, 115), +(97970, 122), +(97970, 120), +(97970, 117), +(97970, 118), +(97972, 106), +(97972, 110), +(97972, 121), +(97972, 116), +(97972, 113), +(97972, 111), +(97972, 126), +(97972, 125), +(97972, 124), +(97972, 109), +(97972, 123), +(97972, 119), +(97972, 112), +(97972, 114), +(97972, 107), +(97972, 108), +(97972, 115), +(97972, 122), +(97972, 120), +(97972, 117), +(97972, 118), +(97973, 106), +(97973, 110), +(97973, 121), +(97973, 116), +(97973, 113), +(97973, 111), +(97973, 126), +(97973, 125), +(97973, 124), +(97973, 109), +(97973, 123), +(97973, 119), +(97973, 112), +(97973, 114), +(97973, 107), +(97973, 108), +(97973, 115), +(97973, 122), +(97973, 120), +(97973, 117), +(97973, 118), +(97974, 106), +(97974, 110), +(97974, 121), +(97974, 116), +(97974, 113), +(97974, 111), +(97974, 126), +(97974, 125), +(97974, 124), +(97974, 109), +(97974, 123), +(97974, 119), +(97974, 112), +(97974, 114), +(97974, 107), +(97974, 108), +(97974, 115), +(97974, 122), +(97974, 120), +(97974, 117), +(97974, 118), +(97975, 106), +(97975, 110), +(97975, 121), +(97975, 116), +(97975, 113), +(97975, 111), +(97975, 126), +(97975, 125), +(97975, 124), +(97975, 109), +(97975, 123), +(97975, 119), +(97975, 112), +(97975, 114), +(97975, 107), +(97975, 108), +(97975, 115), +(97975, 122), +(97975, 120), +(97975, 117), +(97975, 118), +(97976, 106), +(97976, 110), +(97976, 121), +(97976, 116), +(97976, 113), +(97976, 111), +(97976, 126), +(97976, 125), +(97976, 124), +(97976, 109), +(97976, 123), +(97976, 119), +(97976, 112), +(97976, 114), +(97976, 107), +(97976, 108), +(97976, 115), +(97976, 122), +(97976, 120), +(97976, 117), +(97976, 118), +(97977, 106), +(97977, 110), +(97977, 121), +(97977, 116), +(97977, 113), +(97977, 111), +(97977, 126), +(97977, 125), +(97977, 124), +(97977, 109), +(97977, 123), +(97977, 119), +(97977, 112), +(97977, 114), +(97977, 107), +(97977, 108), +(97977, 115), +(97977, 122), +(97977, 120), +(97977, 117), +(97977, 118), +(97978, 106), +(97978, 110), +(97978, 121), +(97978, 116), +(97978, 113), +(97978, 111), +(97978, 126), +(97978, 125), +(97978, 124), +(97978, 109), +(97978, 123), +(97978, 119), +(97978, 112), +(97978, 114), +(97978, 107), +(97978, 108), +(97978, 115), +(97978, 122), +(97978, 120), +(97978, 117), +(97978, 118), +(97979, 106), +(97979, 110), +(97979, 121), +(97979, 116), +(97979, 113), +(97979, 111), +(97979, 126), +(97979, 125), +(97979, 124), +(97979, 109), +(97979, 123), +(97979, 119), +(97979, 112), +(97979, 114), +(97979, 107), +(97979, 108), +(97979, 115), +(97979, 122), +(97979, 120), +(97979, 117), +(97979, 118), +(97980, 106), +(97980, 110), +(97980, 121), +(97980, 116), +(97980, 113), +(97980, 111), +(97980, 126), +(97980, 125), +(97980, 124), +(97980, 109), +(97980, 123), +(97980, 119), +(97980, 112), +(97980, 114), +(97980, 107), +(97980, 108), +(97980, 115), +(97980, 122), +(97980, 120), +(97980, 117), +(97980, 118), +(97981, 106), +(97981, 110), +(97981, 121), +(97981, 116), +(97981, 113), +(97981, 111), +(97981, 126), +(97981, 125), +(97981, 124), +(97981, 109), +(97981, 123), +(97981, 119), +(97981, 112), +(97981, 114), +(97981, 107), +(97981, 108), +(97981, 115), +(97981, 122), +(97981, 120), +(97981, 117), +(97981, 118), +(97983, 106), +(97983, 110), +(97983, 121), +(97983, 116), +(97983, 113), +(97983, 111), +(97983, 126), +(97983, 125), +(97983, 124), +(97983, 109), +(97983, 123), +(97983, 119), +(97983, 112), +(97983, 114), +(97983, 107), +(97983, 108), +(97983, 115), +(97983, 122), +(97983, 120), +(97983, 117), +(97983, 118), +(97984, 106), +(97984, 110), +(97984, 121), +(97984, 116), +(97984, 113), +(97984, 111), +(97984, 126), +(97984, 125), +(97984, 124), +(97984, 109), +(97984, 123), +(97984, 119), +(97984, 112), +(97984, 114), +(97984, 107), +(97984, 108), +(97984, 115), +(97984, 122), +(97984, 120), +(97984, 117), +(97984, 118), +(97985, 106), +(97985, 110), +(97985, 121), +(97985, 116), +(97985, 113), +(97985, 111), +(97985, 126), +(97985, 125), +(97985, 124), +(97985, 109), +(97985, 123), +(97985, 119), +(97985, 112), +(97985, 114), +(97985, 107), +(97985, 108), +(97985, 115), +(97985, 122), +(97985, 120), +(97985, 117), +(97985, 118), +(97986, 106), +(97986, 110), +(97986, 121), +(97986, 116), +(97986, 113), +(97986, 111), +(97986, 126), +(97986, 125), +(97986, 124), +(97986, 109), +(97986, 123), +(97986, 119), +(97986, 112), +(97986, 114), +(97986, 107), +(97986, 108), +(97986, 115), +(97986, 122), +(97986, 120), +(97986, 117), +(97986, 118), +(97987, 106), +(97987, 110), +(97987, 121), +(97987, 116), +(97987, 113), +(97987, 111), +(97987, 126), +(97987, 125), +(97987, 124), +(97987, 109), +(97987, 123), +(97987, 119), +(97987, 112), +(97987, 114), +(97987, 107), +(97987, 108), +(97987, 115), +(97987, 122), +(97987, 120), +(97987, 117), +(97987, 118), +(97988, 106), +(97988, 110), +(97988, 121), +(97988, 116), +(97988, 113), +(97988, 111), +(97988, 126), +(97988, 125), +(97988, 124), +(97988, 109), +(97988, 123), +(97988, 119), +(97988, 112), +(97988, 114), +(97988, 107), +(97988, 108), +(97988, 115), +(97988, 122), +(97988, 120), +(97988, 117), +(97988, 118), +(97989, 106), +(97989, 110), +(97989, 121), +(97989, 116), +(97989, 113), +(97989, 111), +(97989, 126), +(97989, 125), +(97989, 124), +(97989, 109), +(97989, 123), +(97989, 119), +(97989, 112), +(97989, 114), +(97989, 107), +(97989, 108), +(97989, 115), +(97989, 122), +(97989, 120), +(97989, 117), +(97989, 118), +(97992, 106), +(97992, 110), +(97992, 121), +(97992, 116), +(97992, 113), +(97992, 111), +(97992, 126), +(97992, 125), +(97992, 124), +(97992, 109), +(97992, 123), +(97992, 119), +(97992, 112), +(97992, 114), +(97992, 107), +(97992, 108), +(97992, 115), +(97992, 122), +(97992, 120), +(97992, 117), +(97992, 118), +(97993, 106), +(97993, 110), +(97993, 121), +(97993, 116), +(97993, 113), +(97993, 111), +(97993, 126), +(97993, 125), +(97993, 124), +(97993, 109), +(97993, 123), +(97993, 119), +(97993, 112), +(97993, 114), +(97993, 107), +(97993, 108), +(97993, 115), +(97993, 122), +(97993, 120), +(97993, 117), +(97993, 118), +(97994, 106), +(97994, 110), +(97994, 121), +(97994, 116), +(97994, 113), +(97994, 111), +(97994, 126), +(97994, 125), +(97994, 124), +(97994, 109), +(97994, 123), +(97994, 119), +(97994, 112), +(97994, 114), +(97994, 107), +(97994, 108), +(97994, 115), +(97994, 122), +(97994, 120), +(97994, 117), +(97994, 118), +(97995, 106), +(97995, 110), +(97995, 121), +(97995, 116), +(97995, 113), +(97995, 111), +(97995, 126), +(97995, 125), +(97995, 124), +(97995, 109), +(97995, 123), +(97995, 119), +(97995, 112), +(97995, 114), +(97995, 107), +(97995, 108), +(97995, 115), +(97995, 122), +(97995, 120), +(97995, 117), +(97995, 118), +(97996, 106), +(97996, 110), +(97996, 121), +(97996, 116), +(97996, 113), +(97996, 111), +(97996, 126), +(97996, 125), +(97996, 124), +(97996, 109), +(97996, 123), +(97996, 119), +(97996, 112), +(97996, 114), +(97996, 107), +(97996, 108), +(97996, 115), +(97996, 122), +(97996, 120), +(97996, 117), +(97996, 118), +(97997, 106), +(97997, 110), +(97997, 121), +(97997, 116), +(97997, 113), +(97997, 111), +(97997, 126), +(97997, 125), +(97997, 124), +(97997, 109), +(97997, 123), +(97997, 119), +(97997, 112), +(97997, 114), +(97997, 107), +(97997, 108), +(97997, 115), +(97997, 122), +(97997, 120), +(97997, 117), +(97997, 118), +(97998, 106), +(97998, 110), +(97998, 121), +(97998, 116), +(97998, 113), +(97998, 111), +(97998, 126), +(97998, 125), +(97998, 124), +(97998, 109), +(97998, 123), +(97998, 119), +(97998, 112), +(97998, 114), +(97998, 107), +(97998, 108), +(97998, 115), +(97998, 122), +(97998, 120), +(97998, 117), +(97998, 118), +(97999, 106), +(97999, 110), +(97999, 121), +(97999, 116), +(97999, 113), +(97999, 111), +(97999, 126), +(97999, 125), +(97999, 124), +(97999, 109), +(97999, 123), +(97999, 119), +(97999, 112), +(97999, 114), +(97999, 107), +(97999, 108), +(97999, 115), +(97999, 122), +(97999, 120), +(97999, 117), +(97999, 118), +(98000, 106), +(98000, 110), +(98000, 121), +(98000, 116), +(98000, 113), +(98000, 111), +(98000, 126), +(98000, 125), +(98000, 124), +(98000, 109), +(98000, 123), +(98000, 119), +(98000, 112), +(98000, 114), +(98000, 107), +(98000, 108), +(98000, 115), +(98000, 122), +(98000, 120), +(98000, 117), +(98000, 118), +(98001, 106), +(98001, 110), +(98001, 121), +(98001, 116), +(98001, 113), +(98001, 111), +(98001, 126), +(98001, 125), +(98001, 124), +(98001, 109), +(98001, 123), +(98001, 119), +(98001, 112), +(98001, 114), +(98001, 107), +(98001, 108), +(98001, 115), +(98001, 122), +(98001, 120), +(98001, 117), +(98001, 118), +(98002, 106), +(98002, 110), +(98002, 121), +(98002, 116), +(98002, 113), +(98002, 111), +(98002, 126), +(98002, 125), +(98002, 124), +(98002, 109), +(98002, 123), +(98002, 119), +(98002, 112), +(98002, 114), +(98002, 107), +(98002, 108), +(98002, 115), +(98002, 122), +(98002, 120), +(98002, 117), +(98002, 118), +(98003, 106), +(98003, 110), +(98003, 121), +(98003, 116), +(98003, 113), +(98003, 111), +(98003, 126), +(98003, 125), +(98003, 124), +(98003, 109), +(98003, 123), +(98003, 119), +(98003, 112), +(98003, 114), +(98003, 107), +(98003, 108), +(98003, 115), +(98003, 122), +(98003, 120), +(98003, 117), +(98003, 118), +(98004, 106), +(98004, 110), +(98004, 121), +(98004, 116), +(98004, 113), +(98004, 111), +(98004, 126), +(98004, 125), +(98004, 124), +(98004, 109), +(98004, 123), +(98004, 119), +(98004, 112), +(98004, 114), +(98004, 107), +(98004, 108), +(98004, 115), +(98004, 122), +(98004, 120), +(98004, 117), +(98004, 118), +(98005, 106), +(98005, 110), +(98005, 121), +(98005, 116), +(98005, 113), +(98005, 111), +(98005, 126), +(98005, 125), +(98005, 124), +(98005, 109), +(98005, 123), +(98005, 119), +(98005, 112), +(98005, 114), +(98005, 107), +(98005, 108), +(98005, 115), +(98005, 122), +(98005, 120), +(98005, 117), +(98005, 118), +(98006, 106), +(98006, 110), +(98006, 121), +(98006, 116), +(98006, 113), +(98006, 111), +(98006, 126), +(98006, 125), +(98006, 124), +(98006, 109), +(98006, 123), +(98006, 119), +(98006, 112), +(98006, 114), +(98006, 107), +(98006, 108), +(98006, 115), +(98006, 122), +(98006, 120), +(98006, 117), +(98006, 118), +(98007, 106), +(98007, 110), +(98007, 121), +(98007, 116), +(98007, 113), +(98007, 111), +(98007, 126), +(98007, 125), +(98007, 124), +(98007, 109), +(98007, 123), +(98007, 119), +(98007, 112), +(98007, 114), +(98007, 107), +(98007, 108), +(98007, 115), +(98007, 122), +(98007, 120), +(98007, 117), +(98007, 118), +(98008, 106), +(98008, 110), +(98008, 121), +(98008, 116), +(98008, 113), +(98008, 111), +(98008, 126), +(98008, 125), +(98008, 124), +(98008, 109), +(98008, 123), +(98008, 119), +(98008, 112), +(98008, 114), +(98008, 107), +(98008, 108), +(98008, 115), +(98008, 122), +(98008, 120), +(98008, 117), +(98008, 118), +(98009, 106), +(98009, 110), +(98009, 121), +(98009, 116), +(98009, 113), +(98009, 111), +(98009, 126), +(98009, 125), +(98009, 124), +(98009, 109), +(98009, 123), +(98009, 119), +(98009, 112), +(98009, 114), +(98009, 107), +(98009, 108), +(98009, 115), +(98009, 122), +(98009, 120), +(98009, 117), +(98009, 118), +(98010, 106), +(98010, 110), +(98010, 121), +(98010, 116), +(98010, 113), +(98010, 111), +(98010, 126), +(98010, 125), +(98010, 124), +(98010, 109), +(98010, 123), +(98010, 119), +(98010, 112), +(98010, 114), +(98010, 107), +(98010, 108), +(98010, 115), +(98010, 122), +(98010, 120), +(98010, 117), +(98010, 118), +(98011, 106), +(98011, 110), +(98011, 121), +(98011, 116), +(98011, 113), +(98011, 111), +(98011, 126), +(98011, 125), +(98011, 124), +(98011, 109), +(98011, 123), +(98011, 119), +(98011, 112), +(98011, 114), +(98011, 107), +(98011, 108), +(98011, 115), +(98011, 122), +(98011, 120), +(98011, 117), +(98011, 118), +(98012, 106), +(98012, 110), +(98012, 121), +(98012, 116), +(98012, 113), +(98012, 111), +(98012, 126), +(98012, 125), +(98012, 124), +(98012, 109), +(98012, 123), +(98012, 119), +(98012, 112), +(98012, 114), +(98012, 107), +(98012, 108), +(98012, 115), +(98012, 122), +(98012, 120), +(98012, 117), +(98012, 118), +(98013, 106), +(98013, 110), +(98013, 121), +(98013, 116), +(98013, 113), +(98013, 111), +(98013, 126), +(98013, 125), +(98013, 124), +(98013, 109), +(98013, 123), +(98013, 119), +(98013, 112), +(98013, 114), +(98013, 107), +(98013, 108), +(98013, 115), +(98013, 122), +(98013, 120), +(98013, 117), +(98013, 118), +(98015, 106), +(98015, 110), +(98015, 121), +(98015, 116), +(98015, 113), +(98015, 111), +(98015, 126), +(98015, 125), +(98015, 124), +(98015, 109), +(98015, 123), +(98015, 119), +(98015, 112), +(98015, 114), +(98015, 107), +(98015, 108), +(98015, 115), +(98015, 122), +(98015, 120), +(98015, 117), +(98015, 118), +(98016, 106), +(98016, 110), +(98016, 121), +(98016, 116), +(98016, 113), +(98016, 111), +(98016, 126), +(98016, 125), +(98016, 124), +(98016, 109), +(98016, 123), +(98016, 119), +(98016, 112), +(98016, 114), +(98016, 107), +(98016, 108), +(98016, 115), +(98016, 122), +(98016, 120), +(98016, 117), +(98016, 118), +(98017, 106), +(98017, 110), +(98017, 121), +(98017, 116), +(98017, 113), +(98017, 111), +(98017, 126), +(98017, 125), +(98017, 124), +(98017, 109), +(98017, 123), +(98017, 119), +(98017, 112), +(98017, 114), +(98017, 107), +(98017, 108), +(98017, 115), +(98017, 122), +(98017, 120), +(98017, 117), +(98017, 118), +(98018, 106), +(98018, 110), +(98018, 121), +(98018, 116), +(98018, 113), +(98018, 111), +(98018, 126), +(98018, 125), +(98018, 124), +(98018, 109), +(98018, 123), +(98018, 119), +(98018, 112), +(98018, 114), +(98018, 107), +(98018, 108), +(98018, 115), +(98018, 122), +(98018, 120), +(98018, 117), +(98018, 118), +(98019, 106), +(98019, 110), +(98019, 121), +(98019, 116), +(98019, 113), +(98019, 111), +(98019, 126), +(98019, 125), +(98019, 124), +(98019, 109), +(98019, 123), +(98019, 119), +(98019, 112), +(98019, 114), +(98019, 107), +(98019, 108), +(98019, 115), +(98019, 122), +(98019, 120), +(98019, 117), +(98019, 118), +(98020, 106), +(98020, 110), +(98020, 121), +(98020, 116), +(98020, 113), +(98020, 111), +(98020, 126), +(98020, 125), +(98020, 124), +(98020, 109), +(98020, 123), +(98020, 119), +(98020, 112), +(98020, 114), +(98020, 107), +(98020, 108), +(98020, 115), +(98020, 122), +(98020, 120), +(98020, 117), +(98020, 118), +(98021, 106), +(98021, 110), +(98021, 121), +(98021, 116), +(98021, 113), +(98021, 111), +(98021, 126), +(98021, 125), +(98021, 124), +(98021, 109), +(98021, 123), +(98021, 119), +(98021, 112), +(98021, 114), +(98021, 107), +(98021, 108), +(98021, 115), +(98021, 122), +(98021, 120), +(98021, 117), +(98021, 118), +(98022, 106), +(98022, 110), +(98022, 121), +(98022, 116), +(98022, 113), +(98022, 111), +(98022, 126), +(98022, 125), +(98022, 124), +(98022, 109), +(98022, 123), +(98022, 119), +(98022, 112), +(98022, 114), +(98022, 107), +(98022, 108), +(98022, 115), +(98022, 122), +(98022, 120), +(98022, 117), +(98022, 118), +(98023, 106), +(98023, 110), +(98023, 121), +(98023, 116), +(98023, 113), +(98023, 111), +(98023, 126), +(98023, 125), +(98023, 124), +(98023, 109), +(98023, 123), +(98023, 119), +(98023, 112), +(98023, 114), +(98023, 107), +(98023, 108), +(98023, 115), +(98023, 122), +(98023, 120), +(98023, 117), +(98023, 118), +(98024, 106), +(98024, 110), +(98024, 121), +(98024, 116), +(98024, 113), +(98024, 111), +(98024, 126), +(98024, 125), +(98024, 124), +(98024, 109), +(98024, 123), +(98024, 119), +(98024, 112), +(98024, 114), +(98024, 107), +(98024, 108), +(98024, 115), +(98024, 122), +(98024, 120), +(98024, 117), +(98024, 118), +(98025, 106), +(98025, 110), +(98025, 121), +(98025, 116), +(98025, 113), +(98025, 111), +(98025, 126), +(98025, 125), +(98025, 124), +(98025, 109), +(98025, 123), +(98025, 119), +(98025, 112), +(98025, 114), +(98025, 107), +(98025, 108), +(98025, 115), +(98025, 122), +(98025, 120), +(98025, 117), +(98025, 118), +(98026, 106), +(98026, 110), +(98026, 121), +(98026, 116), +(98026, 113), +(98026, 111), +(98026, 126), +(98026, 125), +(98026, 124), +(98026, 109), +(98026, 123), +(98026, 119), +(98026, 112), +(98026, 114), +(98026, 107), +(98026, 108), +(98026, 115), +(98026, 122), +(98026, 120), +(98026, 117), +(98026, 118), +(98027, 106), +(98027, 110), +(98027, 121), +(98027, 116), +(98027, 113), +(98027, 111), +(98027, 126), +(98027, 125), +(98027, 124), +(98027, 109), +(98027, 123), +(98027, 119), +(98027, 112), +(98027, 114), +(98027, 107), +(98027, 108), +(98027, 115), +(98027, 122), +(98027, 120), +(98027, 117), +(98027, 118), +(98028, 106), +(98028, 110), +(98028, 121), +(98028, 116), +(98028, 113), +(98028, 111), +(98028, 126), +(98028, 125), +(98028, 124), +(98028, 109), +(98028, 123), +(98028, 119), +(98028, 112), +(98028, 114), +(98028, 107), +(98028, 108), +(98028, 115), +(98028, 122), +(98028, 120), +(98028, 117), +(98028, 118), +(98373, 106), +(98373, 110), +(98373, 121), +(98373, 116), +(98373, 113), +(98373, 111), +(98373, 126), +(98373, 125), +(98373, 124), +(98373, 109), +(98373, 123), +(98373, 119), +(98373, 112), +(98373, 114), +(98373, 107), +(98373, 108), +(98373, 115), +(98373, 122), +(98373, 120), +(98373, 117), +(98373, 118), +(98374, 106), +(98374, 110), +(98374, 121), +(98374, 116), +(98374, 113), +(98374, 111), +(98374, 126), +(98374, 125), +(98374, 124), +(98374, 109), +(98374, 123), +(98374, 119), +(98374, 112), +(98374, 114), +(98374, 107), +(98374, 108), +(98374, 115), +(98374, 122), +(98374, 120), +(98374, 117), +(98374, 118), +(98375, 106), +(98375, 110), +(98375, 121), +(98375, 116), +(98375, 113), +(98375, 111), +(98375, 126), +(98375, 125), +(98375, 124), +(98375, 109), +(98375, 123), +(98375, 119), +(98375, 112), +(98375, 114), +(98375, 107), +(98375, 108), +(98375, 115), +(98375, 122), +(98375, 120), +(98375, 117), +(98375, 118), +(98376, 106), +(98376, 110), +(98376, 121), +(98376, 116), +(98376, 113), +(98376, 111), +(98376, 126), +(98376, 125), +(98376, 124), +(98376, 109), +(98376, 123), +(98376, 119), +(98376, 112), +(98376, 114), +(98376, 107), +(98376, 108), +(98376, 115), +(98376, 122), +(98376, 120), +(98376, 117), +(98376, 118), +(98377, 106), +(98377, 110), +(98377, 121), +(98377, 116), +(98377, 113), +(98377, 111), +(98377, 126), +(98377, 125), +(98377, 124), +(98377, 109), +(98377, 123), +(98377, 119), +(98377, 112), +(98377, 114), +(98377, 107), +(98377, 108), +(98377, 115), +(98377, 122), +(98377, 120), +(98377, 117), +(98377, 118), +(98378, 106), +(98378, 110), +(98378, 121), +(98378, 116), +(98378, 113), +(98378, 111), +(98378, 126), +(98378, 125), +(98378, 124), +(98378, 109), +(98378, 123), +(98378, 119), +(98378, 112), +(98378, 114), +(98378, 107), +(98378, 108), +(98378, 115), +(98378, 122), +(98378, 120), +(98378, 117), +(98378, 118), +(98379, 106), +(98379, 110), +(98379, 121), +(98379, 116), +(98379, 113), +(98379, 111), +(98379, 126), +(98379, 125), +(98379, 124), +(98379, 109), +(98379, 123), +(98379, 119), +(98379, 112), +(98379, 114), +(98379, 107), +(98379, 108), +(98379, 115), +(98379, 122), +(98379, 120), +(98379, 117), +(98379, 118), +(98380, 106), +(98380, 110), +(98380, 121), +(98380, 116), +(98380, 113), +(98380, 111), +(98380, 126), +(98380, 125), +(98380, 124), +(98380, 109), +(98380, 123), +(98380, 119), +(98380, 112), +(98380, 114), +(98380, 107), +(98380, 108), +(98380, 115), +(98380, 122), +(98380, 120), +(98380, 117), +(98380, 118), +(98381, 106), +(98381, 110), +(98381, 121), +(98381, 116), +(98381, 113), +(98381, 111), +(98381, 126), +(98381, 125), +(98381, 124), +(98381, 109), +(98381, 123), +(98381, 119), +(98381, 112), +(98381, 114), +(98381, 107), +(98381, 108), +(98381, 115), +(98381, 122), +(98381, 120), +(98381, 117), +(98381, 118), +(98382, 106), +(98382, 110), +(98382, 121), +(98382, 116), +(98382, 113), +(98382, 111), +(98382, 126), +(98382, 125), +(98382, 124), +(98382, 109), +(98382, 123), +(98382, 119), +(98382, 112), +(98382, 114), +(98382, 107), +(98382, 108), +(98382, 115), +(98382, 122), +(98382, 120), +(98382, 117), +(98382, 118), +(98384, 106), +(98384, 110), +(98384, 121), +(98384, 116), +(98384, 113), +(98384, 111), +(98384, 126), +(98384, 125), +(98384, 124), +(98384, 109), +(98384, 123), +(98384, 119), +(98384, 112), +(98384, 114), +(98384, 107), +(98384, 108), +(98384, 115), +(98384, 122), +(98384, 120), +(98384, 117), +(98384, 118), +(98385, 106), +(98385, 110), +(98385, 121), +(98385, 116), +(98385, 113), +(98385, 111), +(98385, 126), +(98385, 125), +(98385, 124), +(98385, 109), +(98385, 123), +(98385, 119), +(98385, 112), +(98385, 114), +(98385, 107), +(98385, 108), +(98385, 115), +(98385, 122), +(98385, 120), +(98385, 117), +(98385, 118), +(98386, 106), +(98386, 110), +(98386, 121), +(98386, 116), +(98386, 113), +(98386, 111), +(98386, 126), +(98386, 125), +(98386, 124), +(98386, 109), +(98386, 123), +(98386, 119), +(98386, 112), +(98386, 114), +(98386, 107), +(98386, 108), +(98386, 115), +(98386, 122), +(98386, 120), +(98386, 117), +(98386, 118), +(98387, 106), +(98387, 110), +(98387, 121), +(98387, 116), +(98387, 113), +(98387, 111), +(98387, 126), +(98387, 125), +(98387, 124), +(98387, 109), +(98387, 123), +(98387, 119), +(98387, 112), +(98387, 114), +(98387, 107), +(98387, 108), +(98387, 115), +(98387, 122), +(98387, 120), +(98387, 117), +(98387, 118), +(98388, 106), +(98388, 110), +(98388, 121), +(98388, 116), +(98388, 113), +(98388, 111), +(98388, 126), +(98388, 125), +(98388, 124), +(98388, 109), +(98388, 123), +(98388, 119), +(98388, 112), +(98388, 114), +(98388, 107), +(98388, 108), +(98388, 115), +(98388, 122), +(98388, 120), +(98388, 117), +(98388, 118), +(98389, 106), +(98389, 110), +(98389, 121), +(98389, 116), +(98389, 113), +(98389, 111), +(98389, 126), +(98389, 125), +(98389, 124), +(98389, 109), +(98389, 123), +(98389, 119), +(98389, 112), +(98389, 114), +(98389, 107), +(98389, 108), +(98389, 115), +(98389, 122), +(98389, 120), +(98389, 117), +(98389, 118), +(98390, 106), +(98390, 110), +(98390, 121), +(98390, 116), +(98390, 113), +(98390, 111), +(98390, 126), +(98390, 125), +(98390, 124), +(98390, 109), +(98390, 123), +(98390, 119), +(98390, 112), +(98390, 114), +(98390, 107), +(98390, 108), +(98390, 115), +(98390, 122), +(98390, 120), +(98390, 117), +(98390, 118), +(98391, 106), +(98391, 110), +(98391, 121), +(98391, 116), +(98391, 113), +(98391, 111), +(98391, 126), +(98391, 125), +(98391, 124), +(98391, 109), +(98391, 123), +(98391, 119), +(98391, 112), +(98391, 114), +(98391, 107), +(98391, 108), +(98391, 115), +(98391, 122), +(98391, 120), +(98391, 117), +(98391, 118), +(98392, 106), +(98392, 110), +(98392, 121), +(98392, 116), +(98392, 113), +(98392, 111), +(98392, 126), +(98392, 125), +(98392, 124), +(98392, 109), +(98392, 123), +(98392, 119), +(98392, 112), +(98392, 114), +(98392, 107), +(98392, 108), +(98392, 115), +(98392, 122), +(98392, 120), +(98392, 117), +(98392, 118), +(98393, 106), +(98393, 110), +(98393, 121), +(98393, 116), +(98393, 113), +(98393, 111), +(98393, 126), +(98393, 125), +(98393, 124), +(98393, 109), +(98393, 123), +(98393, 119), +(98393, 112), +(98393, 114), +(98393, 107), +(98393, 108), +(98393, 115), +(98393, 122), +(98393, 120), +(98393, 117), +(98393, 118), +(98394, 106), +(98394, 110), +(98394, 121), +(98394, 116), +(98394, 113), +(98394, 111), +(98394, 126), +(98394, 125), +(98394, 124), +(98394, 109), +(98394, 123), +(98394, 119), +(98394, 112), +(98394, 114), +(98394, 107), +(98394, 108), +(98394, 115), +(98394, 122), +(98394, 120), +(98394, 117), +(98394, 118), +(98395, 106), +(98395, 110), +(98395, 121), +(98395, 116), +(98395, 113), +(98395, 111), +(98395, 126), +(98395, 125), +(98395, 124), +(98395, 109), +(98395, 123), +(98395, 119), +(98395, 112), +(98395, 114), +(98395, 107), +(98395, 108), +(98395, 115), +(98395, 122), +(98395, 120), +(98395, 117), +(98395, 118), +(98396, 106), +(98396, 110), +(98396, 121), +(98396, 116), +(98396, 113), +(98396, 111), +(98396, 126), +(98396, 125), +(98396, 124), +(98396, 109), +(98396, 123), +(98396, 119), +(98396, 112), +(98396, 114), +(98396, 107), +(98396, 108), +(98396, 115), +(98396, 122), +(98396, 120), +(98396, 117), +(98396, 118), +(98397, 106), +(98397, 110), +(98397, 121), +(98397, 116), +(98397, 113), +(98397, 111), +(98397, 126), +(98397, 125), +(98397, 124), +(98397, 109), +(98397, 123), +(98397, 119), +(98397, 112), +(98397, 114), +(98397, 107), +(98397, 108), +(98397, 115), +(98397, 122), +(98397, 120), +(98397, 117), +(98397, 118), +(98398, 106), +(98398, 110), +(98398, 121), +(98398, 116), +(98398, 113), +(98398, 111), +(98398, 126), +(98398, 125), +(98398, 124), +(98398, 109), +(98398, 123), +(98398, 119), +(98398, 112), +(98398, 114), +(98398, 107), +(98398, 108), +(98398, 115), +(98398, 122), +(98398, 120), +(98398, 117), +(98398, 118), +(98399, 106), +(98399, 110), +(98399, 121), +(98399, 116), +(98399, 113), +(98399, 111), +(98399, 126), +(98399, 125), +(98399, 124), +(98399, 109), +(98399, 123), +(98399, 119), +(98399, 112), +(98399, 114), +(98399, 107), +(98399, 108), +(98399, 115), +(98399, 122), +(98399, 120), +(98399, 117), +(98399, 118), +(98400, 106), +(98400, 110), +(98400, 121), +(98400, 116), +(98400, 113), +(98400, 111), +(98400, 126), +(98400, 125), +(98400, 124), +(98400, 109), +(98400, 123), +(98400, 119), +(98400, 112), +(98400, 114), +(98400, 107), +(98400, 108), +(98400, 115), +(98400, 122), +(98400, 120), +(98400, 117), +(98400, 118), +(98401, 106), +(98401, 110), +(98401, 121), +(98401, 116), +(98401, 113), +(98401, 111), +(98401, 126), +(98401, 125), +(98401, 124), +(98401, 109), +(98401, 123), +(98401, 119), +(98401, 112), +(98401, 114), +(98401, 107), +(98401, 108), +(98401, 115), +(98401, 122), +(98401, 120), +(98401, 117), +(98401, 118), +(98402, 106), +(98402, 110), +(98402, 121), +(98402, 116), +(98402, 113), +(98402, 111), +(98402, 126), +(98402, 125), +(98402, 124), +(98402, 109), +(98402, 123), +(98402, 119), +(98402, 112), +(98402, 114), +(98402, 107), +(98402, 108), +(98402, 115), +(98402, 122), +(98402, 120), +(98402, 117), +(98402, 118), +(98403, 106), +(98403, 110), +(98403, 121), +(98403, 116), +(98403, 113), +(98403, 111), +(98403, 126), +(98403, 125), +(98403, 124), +(98403, 109), +(98403, 123), +(98403, 119), +(98403, 112), +(98403, 114), +(98403, 107), +(98403, 108), +(98403, 115), +(98403, 122), +(98403, 120), +(98403, 117), +(98403, 118), +(98404, 106), +(98404, 110), +(98404, 121), +(98404, 116), +(98404, 113), +(98404, 111), +(98404, 126), +(98404, 125), +(98404, 124), +(98404, 109), +(98404, 123), +(98404, 119), +(98404, 112), +(98404, 114), +(98404, 107), +(98404, 108), +(98404, 115), +(98404, 122), +(98404, 120), +(98404, 117), +(98404, 118), +(98405, 106), +(98405, 110), +(98405, 121), +(98405, 116), +(98405, 113), +(98405, 111), +(98405, 126), +(98405, 125), +(98405, 124), +(98405, 109), +(98405, 123), +(98405, 119), +(98405, 112), +(98405, 114), +(98405, 107), +(98405, 108), +(98405, 115), +(98405, 122), +(98405, 120), +(98405, 117), +(98405, 118), +(98406, 106), +(98406, 110), +(98406, 121), +(98406, 116), +(98406, 113), +(98406, 111), +(98406, 126), +(98406, 125), +(98406, 124), +(98406, 109), +(98406, 123), +(98406, 119), +(98406, 112), +(98406, 114), +(98406, 107), +(98406, 108), +(98406, 115), +(98406, 122), +(98406, 120), +(98406, 117), +(98406, 118), +(98407, 106), +(98407, 110), +(98407, 121), +(98407, 116), +(98407, 113), +(98407, 111), +(98407, 126), +(98407, 125), +(98407, 124), +(98407, 109), +(98407, 123), +(98407, 119), +(98407, 112), +(98407, 114), +(98407, 107), +(98407, 108), +(98407, 115), +(98407, 122), +(98407, 120), +(98407, 117), +(98407, 118), +(98408, 106), +(98408, 110), +(98408, 121), +(98408, 116), +(98408, 113), +(98408, 111), +(98408, 126), +(98408, 125), +(98408, 124), +(98408, 109), +(98408, 123), +(98408, 119), +(98408, 112), +(98408, 114), +(98408, 107), +(98408, 108), +(98408, 115), +(98408, 122), +(98408, 120), +(98408, 117), +(98408, 118), +(98409, 106), +(98409, 110), +(98409, 121), +(98409, 116), +(98409, 113), +(98409, 111), +(98409, 126), +(98409, 125), +(98409, 124), +(98409, 109), +(98409, 123), +(98409, 119), +(98409, 112), +(98409, 114), +(98409, 107), +(98409, 108), +(98409, 115), +(98409, 122), +(98409, 120), +(98409, 117), +(98409, 118), +(98410, 106), +(98410, 110), +(98410, 121), +(98410, 116), +(98410, 113), +(98410, 111), +(98410, 126), +(98410, 125), +(98410, 124), +(98410, 109), +(98410, 123), +(98410, 119), +(98410, 112), +(98410, 114), +(98410, 107), +(98410, 108), +(98410, 115), +(98410, 122), +(98410, 120), +(98410, 117), +(98410, 118), +(98411, 106), +(98411, 110), +(98411, 121), +(98411, 116), +(98411, 113), +(98411, 111), +(98411, 126), +(98411, 125), +(98411, 124), +(98411, 109), +(98411, 123), +(98411, 119), +(98411, 112), +(98411, 114), +(98411, 107), +(98411, 108), +(98411, 115), +(98411, 122), +(98411, 120), +(98411, 117), +(98411, 118), +(98412, 106), +(98412, 110), +(98412, 121), +(98412, 116), +(98412, 113), +(98412, 111), +(98412, 126), +(98412, 125), +(98412, 124), +(98412, 109), +(98412, 123), +(98412, 119), +(98412, 112), +(98412, 114), +(98412, 107), +(98412, 108), +(98412, 115), +(98412, 122), +(98412, 120), +(98412, 117), +(98412, 118), +(98414, 106), +(98414, 110), +(98414, 121), +(98414, 116), +(98414, 113), +(98414, 111), +(98414, 126), +(98414, 125), +(98414, 124), +(98414, 109), +(98414, 123), +(98414, 119), +(98414, 112), +(98414, 114), +(98414, 107), +(98414, 108), +(98414, 115), +(98414, 122), +(98414, 120), +(98414, 117), +(98414, 118), +(98417, 106), +(98417, 110), +(98417, 121), +(98417, 116), +(98417, 113), +(98417, 111), +(98417, 126), +(98417, 125), +(98417, 124), +(98417, 109), +(98417, 123), +(98417, 119), +(98417, 112), +(98417, 114), +(98417, 107), +(98417, 108), +(98417, 115), +(98417, 122), +(98417, 120), +(98417, 117), +(98417, 118), +(98418, 106), +(98418, 110), +(98418, 121), +(98418, 116), +(98418, 113), +(98418, 111), +(98418, 126), +(98418, 125), +(98418, 124), +(98418, 109), +(98418, 123), +(98418, 119), +(98418, 112), +(98418, 114), +(98418, 107), +(98418, 108), +(98418, 115), +(98418, 122), +(98418, 120), +(98418, 117), +(98418, 118), +(98419, 106), +(98419, 110), +(98419, 121), +(98419, 116), +(98419, 113), +(98419, 111), +(98419, 126), +(98419, 125), +(98419, 124), +(98419, 109), +(98419, 123), +(98419, 119), +(98419, 112), +(98419, 114), +(98419, 107), +(98419, 108), +(98419, 115), +(98419, 122), +(98419, 120), +(98419, 117), +(98419, 118), +(98420, 106), +(98420, 110), +(98420, 121), +(98420, 116), +(98420, 113), +(98420, 111), +(98420, 126), +(98420, 125), +(98420, 124), +(98420, 109), +(98420, 123), +(98420, 119), +(98420, 112), +(98420, 114), +(98420, 107), +(98420, 108), +(98420, 115), +(98420, 122), +(98420, 120), +(98420, 117), +(98420, 118), +(98421, 106), +(98421, 110), +(98421, 121), +(98421, 116), +(98421, 113), +(98421, 111), +(98421, 126), +(98421, 125), +(98421, 124), +(98421, 109), +(98421, 123), +(98421, 119), +(98421, 112), +(98421, 114), +(98421, 107), +(98421, 108), +(98421, 115), +(98421, 122), +(98421, 120), +(98421, 117), +(98421, 118), +(98422, 106), +(98422, 110), +(98422, 121), +(98422, 116), +(98422, 113), +(98422, 111), +(98422, 126), +(98422, 125), +(98422, 124), +(98422, 109), +(98422, 123), +(98422, 119), +(98422, 112), +(98422, 114), +(98422, 107), +(98422, 108), +(98422, 115), +(98422, 122), +(98422, 120), +(98422, 117), +(98422, 118), +(98423, 106), +(98423, 110), +(98423, 121), +(98423, 116), +(98423, 113), +(98423, 111), +(98423, 126), +(98423, 125), +(98423, 124), +(98423, 109), +(98423, 123), +(98423, 119), +(98423, 112), +(98423, 114), +(98423, 107), +(98423, 108), +(98423, 115), +(98423, 122), +(98423, 120), +(98423, 117), +(98423, 118), +(98424, 106), +(98424, 110), +(98424, 121), +(98424, 116), +(98424, 113), +(98424, 111), +(98424, 126), +(98424, 125), +(98424, 124), +(98424, 109), +(98424, 123), +(98424, 119), +(98424, 112), +(98424, 114), +(98424, 107), +(98424, 108), +(98424, 115), +(98424, 122), +(98424, 120), +(98424, 117), +(98424, 118), +(98425, 106), +(98425, 110), +(98425, 121), +(98425, 116), +(98425, 113), +(98425, 111), +(98425, 126), +(98425, 125), +(98425, 124), +(98425, 109), +(98425, 123), +(98425, 119), +(98425, 112), +(98425, 114), +(98425, 107), +(98425, 108), +(98425, 115), +(98425, 122), +(98425, 120), +(98425, 117), +(98425, 118), +(98426, 106), +(98426, 110), +(98426, 121), +(98426, 116), +(98426, 113), +(98426, 111), +(98426, 126), +(98426, 125), +(98426, 124), +(98426, 109), +(98426, 123), +(98426, 119), +(98426, 112), +(98426, 114), +(98426, 107), +(98426, 108), +(98426, 115), +(98426, 122), +(98426, 120), +(98426, 117), +(98426, 118), +(98427, 106), +(98427, 110), +(98427, 121), +(98427, 116), +(98427, 113), +(98427, 111), +(98427, 126), +(98427, 125), +(98427, 124), +(98427, 109), +(98427, 123), +(98427, 119), +(98427, 112), +(98427, 114), +(98427, 107), +(98427, 108), +(98427, 115), +(98427, 122), +(98427, 120), +(98427, 117), +(98427, 118), +(98429, 106), +(98429, 110), +(98429, 121), +(98429, 116), +(98429, 113), +(98429, 111), +(98429, 126), +(98429, 125), +(98429, 124), +(98429, 109), +(98429, 123), +(98429, 119), +(98429, 112), +(98429, 114), +(98429, 107), +(98429, 108), +(98429, 115), +(98429, 122), +(98429, 120), +(98429, 117), +(98429, 118), +(98430, 106), +(98430, 110), +(98430, 121), +(98430, 116), +(98430, 113), +(98430, 111), +(98430, 126), +(98430, 125), +(98430, 124), +(98430, 109), +(98430, 123), +(98430, 119), +(98430, 112), +(98430, 114), +(98430, 107), +(98430, 108), +(98430, 115), +(98430, 122), +(98430, 120), +(98430, 117), +(98430, 118), +(98431, 106), +(98431, 110), +(98431, 121), +(98431, 116), +(98431, 113), +(98431, 111), +(98431, 126), +(98431, 125), +(98431, 124), +(98431, 109), +(98431, 123), +(98431, 119), +(98431, 112), +(98431, 114), +(98431, 107), +(98431, 108), +(98431, 115), +(98431, 122), +(98431, 120), +(98431, 117), +(98431, 118), +(98432, 106), +(98432, 110), +(98432, 121), +(98432, 116), +(98432, 113), +(98432, 111), +(98432, 126), +(98432, 125), +(98432, 124), +(98432, 109), +(98432, 123), +(98432, 119), +(98432, 112), +(98432, 114), +(98432, 107), +(98432, 108), +(98432, 115), +(98432, 122), +(98432, 120), +(98432, 117), +(98432, 118), +(98433, 106), +(98433, 110), +(98433, 121), +(98433, 116), +(98433, 113), +(98433, 111), +(98433, 126), +(98433, 125), +(98433, 124), +(98433, 109), +(98433, 123), +(98433, 119), +(98433, 112), +(98433, 114), +(98433, 107), +(98433, 108), +(98433, 115), +(98433, 122), +(98433, 120), +(98433, 117), +(98433, 118), +(98434, 106), +(98434, 110), +(98434, 121), +(98434, 116), +(98434, 113), +(98434, 111), +(98434, 126), +(98434, 125), +(98434, 124), +(98434, 109), +(98434, 123), +(98434, 119), +(98434, 112), +(98434, 114), +(98434, 107), +(98434, 108), +(98434, 115), +(98434, 122), +(98434, 120), +(98434, 117), +(98434, 118), +(98435, 106), +(98435, 110), +(98435, 121), +(98435, 116), +(98435, 113), +(98435, 111), +(98435, 126), +(98435, 125), +(98435, 124), +(98435, 109), +(98435, 123), +(98435, 119), +(98435, 112), +(98435, 114), +(98435, 107), +(98435, 108), +(98435, 115), +(98435, 122), +(98435, 120), +(98435, 117), +(98435, 118), +(98436, 106), +(98436, 110), +(98436, 121), +(98436, 116), +(98436, 113), +(98436, 111), +(98436, 126), +(98436, 125), +(98436, 124), +(98436, 109), +(98436, 123), +(98436, 119), +(98436, 112), +(98436, 114), +(98436, 107), +(98436, 108), +(98436, 115), +(98436, 122), +(98436, 120), +(98436, 117), +(98436, 118), +(98437, 106), +(98437, 110), +(98437, 121), +(98437, 116), +(98437, 113), +(98437, 111), +(98437, 126), +(98437, 125), +(98437, 124), +(98437, 109), +(98437, 123), +(98437, 119), +(98437, 112), +(98437, 114), +(98437, 107), +(98437, 108), +(98437, 115), +(98437, 122), +(98437, 120), +(98437, 117), +(98437, 118), +(98438, 106), +(98438, 110), +(98438, 121), +(98438, 116), +(98438, 113), +(98438, 111), +(98438, 126), +(98438, 125), +(98438, 124), +(98438, 109), +(98438, 123), +(98438, 119), +(98438, 112), +(98438, 114), +(98438, 107), +(98438, 108), +(98438, 115), +(98438, 122), +(98438, 120), +(98438, 117), +(98438, 118), +(98439, 106), +(98439, 110), +(98439, 121), +(98439, 116), +(98439, 113), +(98439, 111), +(98439, 126), +(98439, 125), +(98439, 124), +(98439, 109), +(98439, 123), +(98439, 119), +(98439, 112), +(98439, 114), +(98439, 107), +(98439, 108), +(98439, 115), +(98439, 122), +(98439, 120), +(98439, 117), +(98439, 118), +(98440, 106), +(98440, 110), +(98440, 121), +(98440, 116), +(98440, 113), +(98440, 111), +(98440, 126), +(98440, 125), +(98440, 124), +(98440, 109), +(98440, 123), +(98440, 119), +(98440, 112), +(98440, 114), +(98440, 107), +(98440, 108), +(98440, 115), +(98440, 122), +(98440, 120), +(98440, 117), +(98440, 118), +(98441, 106), +(98441, 110), +(98441, 121), +(98441, 116), +(98441, 113), +(98441, 111), +(98441, 126), +(98441, 125), +(98441, 124), +(98441, 109), +(98441, 123), +(98441, 119), +(98441, 112), +(98441, 114), +(98441, 107), +(98441, 108), +(98441, 115), +(98441, 122), +(98441, 120), +(98441, 117), +(98441, 118), +(98442, 106), +(98442, 110), +(98442, 121), +(98442, 116), +(98442, 113), +(98442, 111), +(98442, 126), +(98442, 125), +(98442, 124), +(98442, 109), +(98442, 123), +(98442, 119), +(98442, 112), +(98442, 114), +(98442, 107), +(98442, 108), +(98442, 115), +(98442, 122), +(98442, 120), +(98442, 117), +(98442, 118), +(98443, 106), +(98443, 110), +(98443, 121), +(98443, 116), +(98443, 113), +(98443, 111), +(98443, 126), +(98443, 125), +(98443, 124), +(98443, 109), +(98443, 123), +(98443, 119), +(98443, 112), +(98443, 114), +(98443, 107), +(98443, 108), +(98443, 115), +(98443, 122), +(98443, 120), +(98443, 117), +(98443, 118), +(98444, 106), +(98444, 110), +(98444, 121), +(98444, 116), +(98444, 113), +(98444, 111), +(98444, 126), +(98444, 125), +(98444, 124), +(98444, 109), +(98444, 123), +(98444, 119), +(98444, 112), +(98444, 114), +(98444, 107), +(98444, 108), +(98444, 115), +(98444, 122), +(98444, 120), +(98444, 117), +(98444, 118), +(98445, 106), +(98445, 110), +(98445, 121), +(98445, 116), +(98445, 113), +(98445, 111), +(98445, 126), +(98445, 125), +(98445, 124), +(98445, 109), +(98445, 123), +(98445, 119), +(98445, 112), +(98445, 114), +(98445, 107), +(98445, 108), +(98445, 115), +(98445, 122), +(98445, 120), +(98445, 117), +(98445, 118), +(98447, 106), +(98447, 110), +(98447, 121), +(98447, 116), +(98447, 113), +(98447, 111), +(98447, 126), +(98447, 125), +(98447, 124), +(98447, 109), +(98447, 123), +(98447, 119), +(98447, 112), +(98447, 114), +(98447, 107), +(98447, 108), +(98447, 115), +(98447, 122), +(98447, 120), +(98447, 117), +(98447, 118), +(98451, 106), +(98451, 110), +(98451, 121), +(98451, 116), +(98451, 113), +(98451, 111), +(98451, 126), +(98451, 125), +(98451, 124), +(98451, 109), +(98451, 123), +(98451, 119), +(98451, 112), +(98451, 114), +(98451, 107), +(98451, 108), +(98451, 115), +(98451, 122), +(98451, 120), +(98451, 117), +(98451, 118), +(98452, 106), +(98452, 110), +(98452, 121), +(98452, 116), +(98452, 113), +(98452, 111), +(98452, 126), +(98452, 125), +(98452, 124), +(98452, 109), +(98452, 123), +(98452, 119), +(98452, 112), +(98452, 114), +(98452, 107), +(98452, 108), +(98452, 115), +(98452, 122), +(98452, 120), +(98452, 117), +(98452, 118), +(98453, 106), +(98453, 110), +(98453, 121), +(98453, 116), +(98453, 113), +(98453, 111), +(98453, 126), +(98453, 125), +(98453, 124), +(98453, 109), +(98453, 123), +(98453, 119), +(98453, 112), +(98453, 114), +(98453, 107), +(98453, 108), +(98453, 115), +(98453, 122), +(98453, 120), +(98453, 117), +(98453, 118), +(98454, 106), +(98454, 110), +(98454, 121), +(98454, 116), +(98454, 113), +(98454, 111), +(98454, 126), +(98454, 125), +(98454, 124), +(98454, 109), +(98454, 123), +(98454, 119), +(98454, 112), +(98454, 114), +(98454, 107), +(98454, 108), +(98454, 115), +(98454, 122), +(98454, 120), +(98454, 117), +(98454, 118), +(98455, 106), +(98455, 110), +(98455, 121), +(98455, 116), +(98455, 113), +(98455, 111), +(98455, 126), +(98455, 125), +(98455, 124), +(98455, 109), +(98455, 123), +(98455, 119), +(98455, 112), +(98455, 114), +(98455, 107), +(98455, 108), +(98455, 115), +(98455, 122), +(98455, 120), +(98455, 117), +(98455, 118), +(98456, 106), +(98456, 110), +(98456, 121), +(98456, 116), +(98456, 113), +(98456, 111), +(98456, 126), +(98456, 125), +(98456, 124), +(98456, 109), +(98456, 123), +(98456, 119), +(98456, 112), +(98456, 114), +(98456, 107), +(98456, 108), +(98456, 115), +(98456, 122), +(98456, 120), +(98456, 117), +(98456, 118), +(98457, 106), +(98457, 110), +(98457, 121), +(98457, 116), +(98457, 113), +(98457, 111), +(98457, 126), +(98457, 125), +(98457, 124), +(98457, 109), +(98457, 123), +(98457, 119), +(98457, 112), +(98457, 114), +(98457, 107), +(98457, 108), +(98457, 115), +(98457, 122), +(98457, 120), +(98457, 117), +(98457, 118), +(98458, 106), +(98458, 110), +(98458, 121), +(98458, 116), +(98458, 113), +(98458, 111), +(98458, 126), +(98458, 125), +(98458, 124), +(98458, 109), +(98458, 123), +(98458, 119), +(98458, 112), +(98458, 114), +(98458, 107), +(98458, 108), +(98458, 115), +(98458, 122), +(98458, 120), +(98458, 117), +(98458, 118), +(98459, 106), +(98459, 110), +(98459, 121), +(98459, 116), +(98459, 113), +(98459, 111), +(98459, 126), +(98459, 125), +(98459, 124), +(98459, 109), +(98459, 123), +(98459, 119), +(98459, 112), +(98459, 114), +(98459, 107), +(98459, 108), +(98459, 115), +(98459, 122), +(98459, 120), +(98459, 117), +(98459, 118), +(98460, 106), +(98460, 110), +(98460, 121), +(98460, 116), +(98460, 113), +(98460, 111), +(98460, 126), +(98460, 125), +(98460, 124), +(98460, 109), +(98460, 123), +(98460, 119), +(98460, 112), +(98460, 114), +(98460, 107), +(98460, 108), +(98460, 115), +(98460, 122), +(98460, 120), +(98460, 117), +(98460, 118), +(98462, 106), +(98462, 110), +(98462, 121), +(98462, 116), +(98462, 113), +(98462, 111), +(98462, 126), +(98462, 125), +(98462, 124), +(98462, 109), +(98462, 123), +(98462, 119), +(98462, 112), +(98462, 114), +(98462, 107), +(98462, 108), +(98462, 115), +(98462, 122), +(98462, 120), +(98462, 117), +(98462, 118), +(98463, 106), +(98463, 110), +(98463, 121), +(98463, 116), +(98463, 113), +(98463, 111), +(98463, 126), +(98463, 125), +(98463, 124), +(98463, 109), +(98463, 123), +(98463, 119), +(98463, 112), +(98463, 114), +(98463, 107), +(98463, 108), +(98463, 115), +(98463, 122), +(98463, 120), +(98463, 117), +(98463, 118), +(98464, 106), +(98464, 110), +(98464, 121), +(98464, 116), +(98464, 113), +(98464, 111), +(98464, 126), +(98464, 125), +(98464, 124), +(98464, 109), +(98464, 123), +(98464, 119), +(98464, 112), +(98464, 114), +(98464, 107), +(98464, 108), +(98464, 115), +(98464, 122), +(98464, 120), +(98464, 117), +(98464, 118), +(98465, 106), +(98465, 110), +(98465, 121), +(98465, 116), +(98465, 113), +(98465, 111), +(98465, 126), +(98465, 125), +(98465, 124), +(98465, 109), +(98465, 123), +(98465, 119), +(98465, 112), +(98465, 114), +(98465, 107), +(98465, 108), +(98465, 115), +(98465, 122), +(98465, 120), +(98465, 117), +(98465, 118), +(98466, 106), +(98466, 110), +(98466, 121), +(98466, 116), +(98466, 113), +(98466, 111), +(98466, 126), +(98466, 125), +(98466, 124), +(98466, 109), +(98466, 123), +(98466, 119), +(98466, 112), +(98466, 114), +(98466, 107), +(98466, 108), +(98466, 115), +(98466, 122), +(98466, 120), +(98466, 117), +(98466, 118), +(98467, 106), +(98467, 110), +(98467, 121), +(98467, 116), +(98467, 113), +(98467, 111), +(98467, 126), +(98467, 125), +(98467, 124), +(98467, 109), +(98467, 123), +(98467, 119), +(98467, 112), +(98467, 114), +(98467, 107), +(98467, 108), +(98467, 115), +(98467, 122), +(98467, 120), +(98467, 117), +(98467, 118), +(98468, 106), +(98468, 110), +(98468, 121), +(98468, 116), +(98468, 113), +(98468, 111), +(98468, 126), +(98468, 125), +(98468, 124), +(98468, 109), +(98468, 123), +(98468, 119), +(98468, 112), +(98468, 114), +(98468, 107), +(98468, 108), +(98468, 115), +(98468, 122), +(98468, 120), +(98468, 117), +(98468, 118), +(98469, 106), +(98469, 110), +(98469, 121), +(98469, 116), +(98469, 113), +(98469, 111), +(98469, 126), +(98469, 125), +(98469, 124), +(98469, 109), +(98469, 123), +(98469, 119), +(98469, 112), +(98469, 114), +(98469, 107), +(98469, 108), +(98469, 115), +(98469, 122), +(98469, 120), +(98469, 117), +(98469, 118), +(98470, 106), +(98470, 110), +(98470, 121), +(98470, 116), +(98470, 113), +(98470, 111), +(98470, 126), +(98470, 125), +(98470, 124), +(98470, 109), +(98470, 123), +(98470, 119), +(98470, 112), +(98470, 114), +(98470, 107), +(98470, 108), +(98470, 115), +(98470, 122), +(98470, 120), +(98470, 117), +(98470, 118), +(98471, 106), +(98471, 110), +(98471, 121), +(98471, 116), +(98471, 113), +(98471, 111), +(98471, 126), +(98471, 125), +(98471, 124), +(98471, 109), +(98471, 123), +(98471, 119), +(98471, 112), +(98471, 114), +(98471, 107), +(98471, 108), +(98471, 115), +(98471, 122), +(98471, 120), +(98471, 117), +(98471, 118), +(98472, 106), +(98472, 110), +(98472, 121), +(98472, 116), +(98472, 113), +(98472, 111), +(98472, 126), +(98472, 125), +(98472, 124), +(98472, 109), +(98472, 123), +(98472, 119), +(98472, 112), +(98472, 114), +(98472, 107), +(98472, 108), +(98472, 115), +(98472, 122), +(98472, 120), +(98472, 117), +(98472, 118), +(98473, 106), +(98473, 110), +(98473, 121), +(98473, 116), +(98473, 113), +(98473, 111), +(98473, 126), +(98473, 125), +(98473, 124), +(98473, 109), +(98473, 123), +(98473, 119), +(98473, 112), +(98473, 114), +(98473, 107), +(98473, 108), +(98473, 115), +(98473, 122), +(98473, 120), +(98473, 117), +(98473, 118), +(98474, 106), +(98474, 110), +(98474, 121), +(98474, 116), +(98474, 113), +(98474, 111), +(98474, 126), +(98474, 125), +(98474, 124), +(98474, 109), +(98474, 123), +(98474, 119), +(98474, 112), +(98474, 114), +(98474, 107), +(98474, 108), +(98474, 115), +(98474, 122), +(98474, 120), +(98474, 117), +(98474, 118), +(98475, 106), +(98475, 110), +(98475, 121), +(98475, 116), +(98475, 113), +(98475, 111), +(98475, 126), +(98475, 125), +(98475, 124), +(98475, 109), +(98475, 123), +(98475, 119), +(98475, 112), +(98475, 114), +(98475, 107), +(98475, 108), +(98475, 115), +(98475, 122), +(98475, 120), +(98475, 117), +(98475, 118), +(98476, 106), +(98476, 110), +(98476, 121), +(98476, 116), +(98476, 113), +(98476, 111), +(98476, 126), +(98476, 125), +(98476, 124), +(98476, 109), +(98476, 123), +(98476, 119), +(98476, 112), +(98476, 114), +(98476, 107), +(98476, 108), +(98476, 115), +(98476, 122), +(98476, 120), +(98476, 117), +(98476, 118), +(98477, 106), +(98477, 110), +(98477, 121), +(98477, 116), +(98477, 113), +(98477, 111), +(98477, 126), +(98477, 125), +(98477, 124), +(98477, 109), +(98477, 123), +(98477, 119), +(98477, 112), +(98477, 114), +(98477, 107), +(98477, 108), +(98477, 115), +(98477, 122), +(98477, 120), +(98477, 117), +(98477, 118), +(98478, 106), +(98478, 110), +(98478, 121), +(98478, 116), +(98478, 113), +(98478, 111), +(98478, 126), +(98478, 125), +(98478, 124), +(98478, 109), +(98478, 123), +(98478, 119), +(98478, 112), +(98478, 114), +(98478, 107), +(98478, 108), +(98478, 115), +(98478, 122), +(98478, 120), +(98478, 117), +(98478, 118), +(98479, 106), +(98479, 110), +(98479, 121), +(98479, 116), +(98479, 113), +(98479, 111), +(98479, 126), +(98479, 125), +(98479, 124), +(98479, 109), +(98479, 123), +(98479, 119), +(98479, 112), +(98479, 114), +(98479, 107), +(98479, 108), +(98479, 115), +(98479, 122), +(98479, 120), +(98479, 117), +(98479, 118), +(98480, 106), +(98480, 110), +(98480, 121), +(98480, 116), +(98480, 113), +(98480, 111), +(98480, 126), +(98480, 125), +(98480, 124), +(98480, 109), +(98480, 123), +(98480, 119), +(98480, 112), +(98480, 114), +(98480, 107), +(98480, 108), +(98480, 115), +(98480, 122), +(98480, 120), +(98480, 117), +(98480, 118), +(98481, 106), +(98481, 110), +(98481, 121), +(98481, 116), +(98481, 113), +(98481, 111), +(98481, 126), +(98481, 125), +(98481, 124), +(98481, 109), +(98481, 123), +(98481, 119), +(98481, 112), +(98481, 114), +(98481, 107), +(98481, 108), +(98481, 115), +(98481, 122), +(98481, 120), +(98481, 117), +(98481, 118), +(98482, 106), +(98482, 110), +(98482, 121), +(98482, 116), +(98482, 113), +(98482, 111), +(98482, 126), +(98482, 125), +(98482, 124), +(98482, 109), +(98482, 123), +(98482, 119), +(98482, 112), +(98482, 114), +(98482, 107), +(98482, 108), +(98482, 115), +(98482, 122), +(98482, 120), +(98482, 117), +(98482, 118), +(98483, 106), +(98483, 110), +(98483, 121), +(98483, 116), +(98483, 113), +(98483, 111), +(98483, 126), +(98483, 125), +(98483, 124), +(98483, 109), +(98483, 123), +(98483, 119), +(98483, 112), +(98483, 114), +(98483, 107), +(98483, 108), +(98483, 115), +(98483, 122), +(98483, 120), +(98483, 117), +(98483, 118), +(98484, 106), +(98484, 110), +(98484, 121), +(98484, 116), +(98484, 113), +(98484, 111), +(98484, 126), +(98484, 125), +(98484, 124), +(98484, 109), +(98484, 123), +(98484, 119), +(98484, 112), +(98484, 114), +(98484, 107), +(98484, 108), +(98484, 115), +(98484, 122), +(98484, 120), +(98484, 117), +(98484, 118), +(98485, 106), +(98485, 110), +(98485, 121), +(98485, 116), +(98485, 113), +(98485, 111), +(98485, 126), +(98485, 125), +(98485, 124), +(98485, 109), +(98485, 123), +(98485, 119), +(98485, 112), +(98485, 114), +(98485, 107), +(98485, 108), +(98485, 115), +(98485, 122), +(98485, 120), +(98485, 117), +(98485, 118), +(98486, 106), +(98486, 110), +(98486, 121), +(98486, 116), +(98486, 113), +(98486, 111), +(98486, 126), +(98486, 125), +(98486, 124), +(98486, 109), +(98486, 123), +(98486, 119), +(98486, 112), +(98486, 114), +(98486, 107), +(98486, 108), +(98486, 115), +(98486, 122), +(98486, 120), +(98486, 117), +(98486, 118), +(98487, 106), +(98487, 110), +(98487, 121), +(98487, 116), +(98487, 113), +(98487, 111), +(98487, 126), +(98487, 125), +(98487, 124), +(98487, 109), +(98487, 123), +(98487, 119), +(98487, 112), +(98487, 114), +(98487, 107), +(98487, 108), +(98487, 115), +(98487, 122), +(98487, 120), +(98487, 117), +(98487, 118), +(98488, 106), +(98488, 110), +(98488, 121), +(98488, 116), +(98488, 113), +(98488, 111), +(98488, 126), +(98488, 125), +(98488, 124), +(98488, 109), +(98488, 123), +(98488, 119), +(98488, 112), +(98488, 114), +(98488, 107), +(98488, 108), +(98488, 115), +(98488, 122), +(98488, 120), +(98488, 117), +(98488, 118), +(98490, 106), +(98490, 110), +(98490, 121), +(98490, 116), +(98490, 113), +(98490, 111), +(98490, 126), +(98490, 125), +(98490, 124), +(98490, 109), +(98490, 123), +(98490, 119), +(98490, 112), +(98490, 114), +(98490, 107), +(98490, 108), +(98490, 115), +(98490, 122), +(98490, 120), +(98490, 117), +(98490, 118), +(98491, 106), +(98491, 110), +(98491, 121), +(98491, 116), +(98491, 113), +(98491, 111), +(98491, 126), +(98491, 125), +(98491, 124), +(98491, 109), +(98491, 123), +(98491, 119), +(98491, 112), +(98491, 114), +(98491, 107), +(98491, 108), +(98491, 115), +(98491, 122), +(98491, 120), +(98491, 117), +(98491, 118), +(98492, 106), +(98492, 110), +(98492, 121), +(98492, 116), +(98492, 113), +(98492, 111), +(98492, 126), +(98492, 125), +(98492, 124), +(98492, 109), +(98492, 123), +(98492, 119), +(98492, 112), +(98492, 114), +(98492, 107), +(98492, 108), +(98492, 115), +(98492, 122), +(98492, 120), +(98492, 117), +(98492, 118), +(98493, 106), +(98493, 110), +(98493, 121), +(98493, 116), +(98493, 113), +(98493, 111), +(98493, 126), +(98493, 125), +(98493, 124), +(98493, 109), +(98493, 123), +(98493, 119), +(98493, 112), +(98493, 114), +(98493, 107), +(98493, 108), +(98493, 115), +(98493, 122), +(98493, 120), +(98493, 117), +(98493, 118), +(98494, 106), +(98494, 110), +(98494, 121), +(98494, 116), +(98494, 113), +(98494, 111), +(98494, 126), +(98494, 125), +(98494, 124), +(98494, 109), +(98494, 123), +(98494, 119), +(98494, 112), +(98494, 114), +(98494, 107), +(98494, 108), +(98494, 115), +(98494, 122), +(98494, 120), +(98494, 117), +(98494, 118), +(98495, 106), +(98495, 110), +(98495, 121), +(98495, 116), +(98495, 113), +(98495, 111), +(98495, 126), +(98495, 125), +(98495, 124), +(98495, 109), +(98495, 123), +(98495, 119), +(98495, 112), +(98495, 114), +(98495, 107), +(98495, 108), +(98495, 115), +(98495, 122), +(98495, 120), +(98495, 117), +(98495, 118), +(98496, 106), +(98496, 110), +(98496, 121), +(98496, 116), +(98496, 113), +(98496, 111), +(98496, 126), +(98496, 125), +(98496, 124), +(98496, 109), +(98496, 123), +(98496, 119), +(98496, 112), +(98496, 114), +(98496, 107), +(98496, 108), +(98496, 115), +(98496, 122), +(98496, 120), +(98496, 117), +(98496, 118), +(98497, 106), +(98497, 110), +(98497, 121), +(98497, 116), +(98497, 113), +(98497, 111), +(98497, 126), +(98497, 125), +(98497, 124), +(98497, 109), +(98497, 123), +(98497, 119), +(98497, 112), +(98497, 114), +(98497, 107), +(98497, 108), +(98497, 115), +(98497, 122), +(98497, 120), +(98497, 117), +(98497, 118), +(98498, 106), +(98498, 110), +(98498, 121), +(98498, 116), +(98498, 113), +(98498, 111), +(98498, 126), +(98498, 125), +(98498, 124), +(98498, 109), +(98498, 123), +(98498, 119), +(98498, 112), +(98498, 114), +(98498, 107), +(98498, 108), +(98498, 115), +(98498, 122), +(98498, 120), +(98498, 117), +(98498, 118), +(98499, 106), +(98499, 110), +(98499, 121), +(98499, 116), +(98499, 113), +(98499, 111), +(98499, 126), +(98499, 125), +(98499, 124), +(98499, 109), +(98499, 123), +(98499, 119), +(98499, 112), +(98499, 114), +(98499, 107), +(98499, 108), +(98499, 115), +(98499, 122), +(98499, 120), +(98499, 117), +(98499, 118), +(98500, 106), +(98500, 110), +(98500, 121), +(98500, 116), +(98500, 113), +(98500, 111), +(98500, 126), +(98500, 125), +(98500, 124), +(98500, 109), +(98500, 123), +(98500, 119), +(98500, 112), +(98500, 114), +(98500, 107), +(98500, 108), +(98500, 115), +(98500, 122), +(98500, 120), +(98500, 117), +(98500, 118), +(98501, 106), +(98501, 110), +(98501, 121), +(98501, 116), +(98501, 113), +(98501, 111), +(98501, 126), +(98501, 125), +(98501, 124), +(98501, 109), +(98501, 123), +(98501, 119), +(98501, 112), +(98501, 114), +(98501, 107), +(98501, 108), +(98501, 115), +(98501, 122), +(98501, 120), +(98501, 117), +(98501, 118), +(98502, 106), +(98502, 110), +(98502, 121), +(98502, 116), +(98502, 113), +(98502, 111), +(98502, 126), +(98502, 125), +(98502, 124), +(98502, 109), +(98502, 123), +(98502, 119), +(98502, 112), +(98502, 114), +(98502, 107), +(98502, 108), +(98502, 115), +(98502, 122), +(98502, 120), +(98502, 117), +(98502, 118), +(98503, 106), +(98503, 110), +(98503, 121), +(98503, 116), +(98503, 113), +(98503, 111), +(98503, 126), +(98503, 125), +(98503, 124), +(98503, 109), +(98503, 123), +(98503, 119), +(98503, 112), +(98503, 114), +(98503, 107), +(98503, 108), +(98503, 115), +(98503, 122), +(98503, 120), +(98503, 117), +(98503, 118), +(98504, 106), +(98504, 110), +(98504, 121), +(98504, 116), +(98504, 113), +(98504, 111), +(98504, 126), +(98504, 125), +(98504, 124), +(98504, 109), +(98504, 123), +(98504, 119), +(98504, 112), +(98504, 114), +(98504, 107), +(98504, 108), +(98504, 115), +(98504, 122), +(98504, 120), +(98504, 117), +(98504, 118), +(98505, 106), +(98505, 110), +(98505, 121), +(98505, 116), +(98505, 113), +(98505, 111), +(98505, 126), +(98505, 125), +(98505, 124), +(98505, 109), +(98505, 123), +(98505, 119), +(98505, 112), +(98505, 114), +(98505, 107), +(98505, 108), +(98505, 115), +(98505, 122), +(98505, 120), +(98505, 117), +(98505, 118), +(98506, 106), +(98506, 110), +(98506, 121), +(98506, 116), +(98506, 113), +(98506, 111), +(98506, 126), +(98506, 125), +(98506, 124), +(98506, 109), +(98506, 123), +(98506, 119), +(98506, 112), +(98506, 114), +(98506, 107), +(98506, 108), +(98506, 115), +(98506, 122), +(98506, 120), +(98506, 117), +(98506, 118), +(98507, 106), +(98507, 110), +(98507, 121), +(98507, 116), +(98507, 113), +(98507, 111), +(98507, 126), +(98507, 125), +(98507, 124), +(98507, 109), +(98507, 123), +(98507, 119), +(98507, 112), +(98507, 114), +(98507, 107), +(98507, 108), +(98507, 115), +(98507, 122), +(98507, 120), +(98507, 117), +(98507, 118), +(98508, 106), +(98508, 110), +(98508, 121), +(98508, 116), +(98508, 113), +(98508, 111), +(98508, 126), +(98508, 125), +(98508, 124), +(98508, 109), +(98508, 123), +(98508, 119), +(98508, 112), +(98508, 114), +(98508, 107), +(98508, 108), +(98508, 115), +(98508, 122), +(98508, 120), +(98508, 117), +(98508, 118), +(98509, 106), +(98509, 110), +(98509, 121), +(98509, 116), +(98509, 113), +(98509, 111), +(98509, 126), +(98509, 125), +(98509, 124), +(98509, 109), +(98509, 123), +(98509, 119), +(98509, 112), +(98509, 114), +(98509, 107), +(98509, 108), +(98509, 115), +(98509, 122), +(98509, 120), +(98509, 117), +(98509, 118), +(98510, 106), +(98510, 110), +(98510, 121), +(98510, 116), +(98510, 113), +(98510, 111), +(98510, 126), +(98510, 125), +(98510, 124), +(98510, 109), +(98510, 123), +(98510, 119), +(98510, 112), +(98510, 114), +(98510, 107), +(98510, 108), +(98510, 115), +(98510, 122), +(98510, 120), +(98510, 117), +(98510, 118), +(98511, 106), +(98511, 110), +(98511, 121), +(98511, 116), +(98511, 113), +(98511, 111), +(98511, 126), +(98511, 125), +(98511, 124), +(98511, 109), +(98511, 123), +(98511, 119), +(98511, 112), +(98511, 114), +(98511, 107), +(98511, 108), +(98511, 115), +(98511, 122), +(98511, 120), +(98511, 117), +(98511, 118), +(98512, 106), +(98512, 110), +(98512, 121), +(98512, 116), +(98512, 113), +(98512, 111), +(98512, 126), +(98512, 125), +(98512, 124), +(98512, 109), +(98512, 123), +(98512, 119), +(98512, 112), +(98512, 114), +(98512, 107), +(98512, 108), +(98512, 115), +(98512, 122), +(98512, 120), +(98512, 117), +(98512, 118), +(98513, 106), +(98513, 110), +(98513, 121), +(98513, 116), +(98513, 113), +(98513, 111), +(98513, 126), +(98513, 125), +(98513, 124), +(98513, 109), +(98513, 123), +(98513, 119), +(98513, 112), +(98513, 114), +(98513, 107), +(98513, 108), +(98513, 115), +(98513, 122), +(98513, 120), +(98513, 117), +(98513, 118), +(98514, 106), +(98514, 110), +(98514, 121), +(98514, 116), +(98514, 113), +(98514, 111), +(98514, 126), +(98514, 125), +(98514, 124), +(98514, 109), +(98514, 123), +(98514, 119), +(98514, 112), +(98514, 114), +(98514, 107), +(98514, 108), +(98514, 115), +(98514, 122), +(98514, 120), +(98514, 117), +(98514, 118), +(98515, 106), +(98515, 110), +(98515, 121), +(98515, 116), +(98515, 113), +(98515, 111), +(98515, 126), +(98515, 125), +(98515, 124), +(98515, 109), +(98515, 123), +(98515, 119), +(98515, 112), +(98515, 114), +(98515, 107), +(98515, 108), +(98515, 115), +(98515, 122), +(98515, 120), +(98515, 117), +(98515, 118), +(98517, 106), +(98517, 110), +(98517, 121), +(98517, 116), +(98517, 113), +(98517, 111), +(98517, 126), +(98517, 125), +(98517, 124), +(98517, 109), +(98517, 123), +(98517, 119), +(98517, 112), +(98517, 114), +(98517, 107), +(98517, 108), +(98517, 115), +(98517, 122), +(98517, 120), +(98517, 117), +(98517, 118), +(98518, 106), +(98518, 110), +(98518, 121), +(98518, 116), +(98518, 113), +(98518, 111), +(98518, 126), +(98518, 125), +(98518, 124), +(98518, 109), +(98518, 123), +(98518, 119), +(98518, 112), +(98518, 114), +(98518, 107), +(98518, 108), +(98518, 115), +(98518, 122), +(98518, 120), +(98518, 117), +(98518, 118), +(98520, 106), +(98520, 110), +(98520, 121), +(98520, 116), +(98520, 113), +(98520, 111), +(98520, 126), +(98520, 125), +(98520, 124), +(98520, 109), +(98520, 123), +(98520, 119), +(98520, 112), +(98520, 114), +(98520, 107), +(98520, 108), +(98520, 115), +(98520, 122), +(98520, 120), +(98520, 117), +(98520, 118), +(98521, 106), +(98521, 110), +(98521, 121), +(98521, 116), +(98521, 113); +INSERT INTO `configuration_branch` (`configurationId`, `branchId`) VALUES +(98521, 111), +(98521, 126), +(98521, 125), +(98521, 124), +(98521, 109), +(98521, 123), +(98521, 119), +(98521, 112), +(98521, 114), +(98521, 107), +(98521, 108), +(98521, 115), +(98521, 122), +(98521, 120), +(98521, 117), +(98521, 118), +(98524, 106), +(98524, 110), +(98524, 121), +(98524, 116), +(98524, 113), +(98524, 111), +(98524, 126), +(98524, 125), +(98524, 124), +(98524, 109), +(98524, 123), +(98524, 119), +(98524, 112), +(98524, 114), +(98524, 107), +(98524, 108), +(98524, 115), +(98524, 122), +(98524, 120), +(98524, 117), +(98524, 118), +(98526, 106), +(98526, 110), +(98526, 121), +(98526, 116), +(98526, 113), +(98526, 111), +(98526, 126), +(98526, 125), +(98526, 124), +(98526, 109), +(98526, 123), +(98526, 119), +(98526, 112), +(98526, 114), +(98526, 107), +(98526, 108), +(98526, 115), +(98526, 122), +(98526, 120), +(98526, 117), +(98526, 118), +(98527, 106), +(98527, 110), +(98527, 121), +(98527, 116), +(98527, 113), +(98527, 111), +(98527, 126), +(98527, 125), +(98527, 124), +(98527, 109), +(98527, 123), +(98527, 119), +(98527, 112), +(98527, 114), +(98527, 107), +(98527, 108), +(98527, 115), +(98527, 122), +(98527, 120), +(98527, 117), +(98527, 118), +(98531, 106), +(98531, 110), +(98531, 121), +(98531, 116), +(98531, 113), +(98531, 111), +(98531, 126), +(98531, 125), +(98531, 124), +(98531, 109), +(98531, 123), +(98531, 119), +(98531, 112), +(98531, 114), +(98531, 107), +(98531, 108), +(98531, 115), +(98531, 122), +(98531, 120), +(98531, 117), +(98531, 118), +(98532, 106), +(98532, 110), +(98532, 121), +(98532, 116), +(98532, 113), +(98532, 111), +(98532, 126), +(98532, 125), +(98532, 124), +(98532, 109), +(98532, 123), +(98532, 119), +(98532, 112), +(98532, 114), +(98532, 107), +(98532, 108), +(98532, 115), +(98532, 122), +(98532, 120), +(98532, 117), +(98532, 118), +(98533, 106), +(98533, 110), +(98533, 121), +(98533, 116), +(98533, 113), +(98533, 111), +(98533, 126), +(98533, 125), +(98533, 124), +(98533, 109), +(98533, 123), +(98533, 119), +(98533, 112), +(98533, 114), +(98533, 107), +(98533, 108), +(98533, 115), +(98533, 122), +(98533, 120), +(98533, 117), +(98533, 118), +(98534, 106), +(98534, 110), +(98534, 121), +(98534, 116), +(98534, 113), +(98534, 111), +(98534, 126), +(98534, 125), +(98534, 124), +(98534, 109), +(98534, 123), +(98534, 119), +(98534, 112), +(98534, 114), +(98534, 107), +(98534, 108), +(98534, 115), +(98534, 122), +(98534, 120), +(98534, 117), +(98534, 118), +(98535, 106), +(98535, 110), +(98535, 121), +(98535, 116), +(98535, 113), +(98535, 111), +(98535, 126), +(98535, 125), +(98535, 124), +(98535, 109), +(98535, 123), +(98535, 119), +(98535, 112), +(98535, 114), +(98535, 107), +(98535, 108), +(98535, 115), +(98535, 122), +(98535, 120), +(98535, 117), +(98535, 118), +(98536, 106), +(98536, 110), +(98536, 121), +(98536, 116), +(98536, 113), +(98536, 111), +(98536, 126), +(98536, 125), +(98536, 124), +(98536, 109), +(98536, 123), +(98536, 119), +(98536, 112), +(98536, 114), +(98536, 107), +(98536, 108), +(98536, 115), +(98536, 122), +(98536, 120), +(98536, 117), +(98536, 118), +(98537, 106), +(98537, 110), +(98537, 121), +(98537, 116), +(98537, 113), +(98537, 111), +(98537, 126), +(98537, 125), +(98537, 124), +(98537, 109), +(98537, 123), +(98537, 119), +(98537, 112), +(98537, 114), +(98537, 107), +(98537, 108), +(98537, 115), +(98537, 122), +(98537, 120), +(98537, 117), +(98537, 118), +(98538, 106), +(98538, 110), +(98538, 121), +(98538, 116), +(98538, 113), +(98538, 111), +(98538, 126), +(98538, 125), +(98538, 124), +(98538, 109), +(98538, 123), +(98538, 119), +(98538, 112), +(98538, 114), +(98538, 107), +(98538, 108), +(98538, 115), +(98538, 122), +(98538, 120), +(98538, 117), +(98538, 118), +(98539, 106), +(98539, 110), +(98539, 121), +(98539, 116), +(98539, 113), +(98539, 111), +(98539, 126), +(98539, 125), +(98539, 124), +(98539, 109), +(98539, 123), +(98539, 119), +(98539, 112), +(98539, 114), +(98539, 107), +(98539, 108), +(98539, 115), +(98539, 122), +(98539, 120), +(98539, 117), +(98539, 118), +(98540, 106), +(98540, 110), +(98540, 121), +(98540, 116), +(98540, 113), +(98540, 111), +(98540, 126), +(98540, 125), +(98540, 124), +(98540, 109), +(98540, 123), +(98540, 119), +(98540, 112), +(98540, 114), +(98540, 107), +(98540, 108), +(98540, 115), +(98540, 122), +(98540, 120), +(98540, 117), +(98540, 118), +(98541, 106), +(98541, 110), +(98541, 121), +(98541, 116), +(98541, 113), +(98541, 111), +(98541, 126), +(98541, 125), +(98541, 124), +(98541, 109), +(98541, 123), +(98541, 119), +(98541, 112), +(98541, 114), +(98541, 107), +(98541, 108), +(98541, 115), +(98541, 122), +(98541, 120), +(98541, 117), +(98541, 118), +(98542, 106), +(98542, 110), +(98542, 121), +(98542, 116), +(98542, 113), +(98542, 111), +(98542, 126), +(98542, 125), +(98542, 124), +(98542, 109), +(98542, 123), +(98542, 119), +(98542, 112), +(98542, 114), +(98542, 107), +(98542, 108), +(98542, 115), +(98542, 122), +(98542, 120), +(98542, 117), +(98542, 118), +(98543, 106), +(98543, 110), +(98543, 121), +(98543, 116), +(98543, 113), +(98543, 111), +(98543, 126), +(98543, 125), +(98543, 124), +(98543, 109), +(98543, 123), +(98543, 119), +(98543, 112), +(98543, 114), +(98543, 107), +(98543, 108), +(98543, 115), +(98543, 122), +(98543, 120), +(98543, 117), +(98543, 118), +(98544, 106), +(98544, 110), +(98544, 121), +(98544, 116), +(98544, 113), +(98544, 111), +(98544, 126), +(98544, 125), +(98544, 124), +(98544, 109), +(98544, 123), +(98544, 119), +(98544, 112), +(98544, 114), +(98544, 107), +(98544, 108), +(98544, 115), +(98544, 122), +(98544, 120), +(98544, 117), +(98544, 118), +(98545, 106), +(98545, 110), +(98545, 121), +(98545, 116), +(98545, 113), +(98545, 111), +(98545, 126), +(98545, 125), +(98545, 124), +(98545, 109), +(98545, 123), +(98545, 119), +(98545, 112), +(98545, 114), +(98545, 107), +(98545, 108), +(98545, 115), +(98545, 122), +(98545, 120), +(98545, 117), +(98545, 118), +(98546, 106), +(98546, 110), +(98546, 121), +(98546, 116), +(98546, 113), +(98546, 111), +(98546, 126), +(98546, 125), +(98546, 124), +(98546, 109), +(98546, 123), +(98546, 119), +(98546, 112), +(98546, 114), +(98546, 107), +(98546, 108), +(98546, 115), +(98546, 122), +(98546, 120), +(98546, 117), +(98546, 118), +(98547, 106), +(98547, 110), +(98547, 121), +(98547, 116), +(98547, 113), +(98547, 111), +(98547, 126), +(98547, 125), +(98547, 124), +(98547, 109), +(98547, 123), +(98547, 119), +(98547, 112), +(98547, 114), +(98547, 107), +(98547, 108), +(98547, 115), +(98547, 122), +(98547, 120), +(98547, 117), +(98547, 118), +(98548, 106), +(98548, 110), +(98548, 121), +(98548, 116), +(98548, 113), +(98548, 111), +(98548, 126), +(98548, 125), +(98548, 124), +(98548, 109), +(98548, 123), +(98548, 119), +(98548, 112), +(98548, 114), +(98548, 107), +(98548, 108), +(98548, 115), +(98548, 122), +(98548, 120), +(98548, 117), +(98548, 118), +(98549, 106), +(98549, 110), +(98549, 121), +(98549, 116), +(98549, 113), +(98549, 111), +(98549, 126), +(98549, 125), +(98549, 124), +(98549, 109), +(98549, 123), +(98549, 119), +(98549, 112), +(98549, 114), +(98549, 107), +(98549, 108), +(98549, 115), +(98549, 122), +(98549, 120), +(98549, 117), +(98549, 118), +(98550, 106), +(98550, 110), +(98550, 121), +(98550, 116), +(98550, 113), +(98550, 111), +(98550, 126), +(98550, 125), +(98550, 124), +(98550, 109), +(98550, 123), +(98550, 119), +(98550, 112), +(98550, 114), +(98550, 107), +(98550, 108), +(98550, 115), +(98550, 122), +(98550, 120), +(98550, 117), +(98550, 118), +(98551, 106), +(98551, 110), +(98551, 121), +(98551, 116), +(98551, 113), +(98551, 111), +(98551, 126), +(98551, 125), +(98551, 124), +(98551, 109), +(98551, 123), +(98551, 119), +(98551, 112), +(98551, 114), +(98551, 107), +(98551, 108), +(98551, 115), +(98551, 122), +(98551, 120), +(98551, 117), +(98551, 118), +(98552, 106), +(98552, 110), +(98552, 121), +(98552, 116), +(98552, 113), +(98552, 111), +(98552, 126), +(98552, 125), +(98552, 124), +(98552, 109), +(98552, 123), +(98552, 119), +(98552, 112), +(98552, 114), +(98552, 107), +(98552, 108), +(98552, 115), +(98552, 122), +(98552, 120), +(98552, 117), +(98552, 118), +(98553, 106), +(98553, 110), +(98553, 121), +(98553, 116), +(98553, 113), +(98553, 111), +(98553, 126), +(98553, 125), +(98553, 124), +(98553, 109), +(98553, 123), +(98553, 119), +(98553, 112), +(98553, 114), +(98553, 107), +(98553, 108), +(98553, 115), +(98553, 122), +(98553, 120), +(98553, 117), +(98553, 118), +(98554, 106), +(98554, 110), +(98554, 121), +(98554, 116), +(98554, 113), +(98554, 111), +(98554, 126), +(98554, 125), +(98554, 124), +(98554, 109), +(98554, 123), +(98554, 119), +(98554, 112), +(98554, 114), +(98554, 107), +(98554, 108), +(98554, 115), +(98554, 122), +(98554, 120), +(98554, 117), +(98554, 118), +(98555, 106), +(98555, 110), +(98555, 121), +(98555, 116), +(98555, 113), +(98555, 111), +(98555, 126), +(98555, 125), +(98555, 124), +(98555, 109), +(98555, 123), +(98555, 119), +(98555, 112), +(98555, 114), +(98555, 107), +(98555, 108), +(98555, 115), +(98555, 122), +(98555, 120), +(98555, 117), +(98555, 118), +(98556, 106), +(98556, 110), +(98556, 121), +(98556, 116), +(98556, 113), +(98556, 111), +(98556, 126), +(98556, 125), +(98556, 124), +(98556, 109), +(98556, 123), +(98556, 119), +(98556, 112), +(98556, 114), +(98556, 107), +(98556, 108), +(98556, 115), +(98556, 122), +(98556, 120), +(98556, 117), +(98556, 118), +(98557, 106), +(98557, 110), +(98557, 121), +(98557, 116), +(98557, 113), +(98557, 111), +(98557, 126), +(98557, 125), +(98557, 124), +(98557, 109), +(98557, 123), +(98557, 119), +(98557, 112), +(98557, 114), +(98557, 107), +(98557, 108), +(98557, 115), +(98557, 122), +(98557, 120), +(98557, 117), +(98557, 118), +(98558, 106), +(98558, 110), +(98558, 121), +(98558, 116), +(98558, 113), +(98558, 111), +(98558, 126), +(98558, 125), +(98558, 124), +(98558, 109), +(98558, 123), +(98558, 119), +(98558, 112), +(98558, 114), +(98558, 107), +(98558, 108), +(98558, 115), +(98558, 122), +(98558, 120), +(98558, 117), +(98558, 118), +(98559, 106), +(98559, 110), +(98559, 121), +(98559, 116), +(98559, 113), +(98559, 111), +(98559, 126), +(98559, 125), +(98559, 124), +(98559, 109), +(98559, 123), +(98559, 119), +(98559, 112), +(98559, 114), +(98559, 107), +(98559, 108), +(98559, 115), +(98559, 122), +(98559, 120), +(98559, 117), +(98559, 118), +(98560, 106), +(98560, 110), +(98560, 121), +(98560, 116), +(98560, 113), +(98560, 111), +(98560, 126), +(98560, 125), +(98560, 124), +(98560, 109), +(98560, 123), +(98560, 119), +(98560, 112), +(98560, 114), +(98560, 107), +(98560, 108), +(98560, 115), +(98560, 122), +(98560, 120), +(98560, 117), +(98560, 118), +(98561, 106), +(98561, 110), +(98561, 121), +(98561, 116), +(98561, 113), +(98561, 111), +(98561, 126), +(98561, 125), +(98561, 124), +(98561, 109), +(98561, 123), +(98561, 119), +(98561, 112), +(98561, 114), +(98561, 107), +(98561, 108), +(98561, 115), +(98561, 122), +(98561, 120), +(98561, 117), +(98561, 118), +(98562, 106), +(98562, 110), +(98562, 121), +(98562, 116), +(98562, 113), +(98562, 111), +(98562, 126), +(98562, 125), +(98562, 124), +(98562, 109), +(98562, 123), +(98562, 119), +(98562, 112), +(98562, 114), +(98562, 107), +(98562, 108), +(98562, 115), +(98562, 122), +(98562, 120), +(98562, 117), +(98562, 118), +(98563, 106), +(98563, 110), +(98563, 121), +(98563, 116), +(98563, 113), +(98563, 111), +(98563, 126), +(98563, 125), +(98563, 124), +(98563, 109), +(98563, 123), +(98563, 119), +(98563, 112), +(98563, 114), +(98563, 107), +(98563, 108), +(98563, 115), +(98563, 122), +(98563, 120), +(98563, 117), +(98563, 118), +(98564, 106), +(98564, 110), +(98564, 121), +(98564, 116), +(98564, 113), +(98564, 111), +(98564, 126), +(98564, 125), +(98564, 124), +(98564, 109), +(98564, 123), +(98564, 119), +(98564, 112), +(98564, 114), +(98564, 107), +(98564, 108), +(98564, 115), +(98564, 122), +(98564, 120), +(98564, 117), +(98564, 118), +(98565, 106), +(98565, 110), +(98565, 121), +(98565, 116), +(98565, 113), +(98565, 111), +(98565, 126), +(98565, 125), +(98565, 124), +(98565, 109), +(98565, 123), +(98565, 119), +(98565, 112), +(98565, 114), +(98565, 107), +(98565, 108), +(98565, 115), +(98565, 122), +(98565, 120), +(98565, 117), +(98565, 118), +(98566, 106), +(98566, 110), +(98566, 121), +(98566, 116), +(98566, 113), +(98566, 111), +(98566, 126), +(98566, 125), +(98566, 124), +(98566, 109), +(98566, 123), +(98566, 119), +(98566, 112), +(98566, 114), +(98566, 107), +(98566, 108), +(98566, 115), +(98566, 122), +(98566, 120), +(98566, 117), +(98566, 118), +(98567, 106), +(98567, 110), +(98567, 121), +(98567, 116), +(98567, 113), +(98567, 111), +(98567, 126), +(98567, 125), +(98567, 124), +(98567, 109), +(98567, 123), +(98567, 119), +(98567, 112), +(98567, 114), +(98567, 107), +(98567, 108), +(98567, 115), +(98567, 122), +(98567, 120), +(98567, 117), +(98567, 118), +(98568, 106), +(98568, 110), +(98568, 121), +(98568, 116), +(98568, 113), +(98568, 111), +(98568, 126), +(98568, 125), +(98568, 124), +(98568, 109), +(98568, 123), +(98568, 119), +(98568, 112), +(98568, 114), +(98568, 107), +(98568, 108), +(98568, 115), +(98568, 122), +(98568, 120), +(98568, 117), +(98568, 118), +(98569, 106), +(98569, 110), +(98569, 121), +(98569, 116), +(98569, 113), +(98569, 111), +(98569, 126), +(98569, 125), +(98569, 124), +(98569, 109), +(98569, 123), +(98569, 119), +(98569, 112), +(98569, 114), +(98569, 107), +(98569, 108), +(98569, 115), +(98569, 122), +(98569, 120), +(98569, 117), +(98569, 118), +(98570, 106), +(98570, 110), +(98570, 121), +(98570, 116), +(98570, 113), +(98570, 111), +(98570, 126), +(98570, 125), +(98570, 124), +(98570, 109), +(98570, 123), +(98570, 119), +(98570, 112), +(98570, 114), +(98570, 107), +(98570, 108), +(98570, 115), +(98570, 122), +(98570, 120), +(98570, 117), +(98570, 118), +(98571, 106), +(98571, 110), +(98571, 121), +(98571, 116), +(98571, 113), +(98571, 111), +(98571, 126), +(98571, 125), +(98571, 124), +(98571, 109), +(98571, 123), +(98571, 119), +(98571, 112), +(98571, 114), +(98571, 107), +(98571, 108), +(98571, 115), +(98571, 122), +(98571, 120), +(98571, 117), +(98571, 118), +(98572, 106), +(98572, 110), +(98572, 121), +(98572, 116), +(98572, 113), +(98572, 111), +(98572, 126), +(98572, 125), +(98572, 124), +(98572, 109), +(98572, 123), +(98572, 119), +(98572, 112), +(98572, 114), +(98572, 107), +(98572, 108), +(98572, 115), +(98572, 122), +(98572, 120), +(98572, 117), +(98572, 118), +(98573, 106), +(98573, 110), +(98573, 121), +(98573, 116), +(98573, 113), +(98573, 111), +(98573, 126), +(98573, 125), +(98573, 124), +(98573, 109), +(98573, 123), +(98573, 119), +(98573, 112), +(98573, 114), +(98573, 107), +(98573, 108), +(98573, 115), +(98573, 122), +(98573, 120), +(98573, 117), +(98573, 118), +(98574, 106), +(98574, 110), +(98574, 121), +(98574, 116), +(98574, 113), +(98574, 111), +(98574, 126), +(98574, 125), +(98574, 124), +(98574, 109), +(98574, 123), +(98574, 119), +(98574, 112), +(98574, 114), +(98574, 107), +(98574, 108), +(98574, 115), +(98574, 122), +(98574, 120), +(98574, 117), +(98574, 118), +(98575, 106), +(98575, 110), +(98575, 121), +(98575, 116), +(98575, 113), +(98575, 111), +(98575, 126), +(98575, 125), +(98575, 124), +(98575, 109), +(98575, 123), +(98575, 119), +(98575, 112), +(98575, 114), +(98575, 107), +(98575, 108), +(98575, 115), +(98575, 122), +(98575, 120), +(98575, 117), +(98575, 118), +(98576, 106), +(98576, 110), +(98576, 121), +(98576, 116), +(98576, 113), +(98576, 111), +(98576, 126), +(98576, 125), +(98576, 124), +(98576, 109), +(98576, 123), +(98576, 119), +(98576, 112), +(98576, 114), +(98576, 107), +(98576, 108), +(98576, 115), +(98576, 122), +(98576, 120), +(98576, 117), +(98576, 118), +(98577, 106), +(98577, 110), +(98577, 121), +(98577, 116), +(98577, 113), +(98577, 111), +(98577, 126), +(98577, 125), +(98577, 124), +(98577, 109), +(98577, 123), +(98577, 119), +(98577, 112), +(98577, 114), +(98577, 107), +(98577, 108), +(98577, 115), +(98577, 122), +(98577, 120), +(98577, 117), +(98577, 118), +(98578, 106), +(98578, 110), +(98578, 121), +(98578, 116), +(98578, 113), +(98578, 111), +(98578, 126), +(98578, 125), +(98578, 124), +(98578, 109), +(98578, 123), +(98578, 119), +(98578, 112), +(98578, 114), +(98578, 107), +(98578, 108), +(98578, 115), +(98578, 122), +(98578, 120), +(98578, 117), +(98578, 118), +(98579, 106), +(98579, 110), +(98579, 121), +(98579, 116), +(98579, 113), +(98579, 111), +(98579, 126), +(98579, 125), +(98579, 124), +(98579, 109), +(98579, 123), +(98579, 119), +(98579, 112), +(98579, 114), +(98579, 107), +(98579, 108), +(98579, 115), +(98579, 122), +(98579, 120), +(98579, 117), +(98579, 118), +(98581, 106), +(98581, 110), +(98581, 121), +(98581, 116), +(98581, 113), +(98581, 111), +(98581, 126), +(98581, 125), +(98581, 124), +(98581, 109), +(98581, 123), +(98581, 119), +(98581, 112), +(98581, 114), +(98581, 107), +(98581, 108), +(98581, 115), +(98581, 122), +(98581, 120), +(98581, 117), +(98581, 118), +(98582, 106), +(98582, 110), +(98582, 121), +(98582, 116), +(98582, 113), +(98582, 111), +(98582, 126), +(98582, 125), +(98582, 124), +(98582, 109), +(98582, 123), +(98582, 119), +(98582, 112), +(98582, 114), +(98582, 107), +(98582, 108), +(98582, 115), +(98582, 122), +(98582, 120), +(98582, 117), +(98582, 118), +(98583, 106), +(98583, 110), +(98583, 121), +(98583, 116), +(98583, 113), +(98583, 111), +(98583, 126), +(98583, 125), +(98583, 124), +(98583, 109), +(98583, 123), +(98583, 119), +(98583, 112), +(98583, 114), +(98583, 107), +(98583, 108), +(98583, 115), +(98583, 122), +(98583, 120), +(98583, 117), +(98583, 118), +(98584, 106), +(98584, 110), +(98584, 121), +(98584, 116), +(98584, 113), +(98584, 111), +(98584, 126), +(98584, 125), +(98584, 124), +(98584, 109), +(98584, 123), +(98584, 119), +(98584, 112), +(98584, 114), +(98584, 107), +(98584, 108), +(98584, 115), +(98584, 122), +(98584, 120), +(98584, 117), +(98584, 118), +(98585, 106), +(98585, 110), +(98585, 121), +(98585, 116), +(98585, 113), +(98585, 111), +(98585, 126), +(98585, 125), +(98585, 124), +(98585, 109), +(98585, 123), +(98585, 119), +(98585, 112), +(98585, 114), +(98585, 107), +(98585, 108), +(98585, 115), +(98585, 122), +(98585, 120), +(98585, 117), +(98585, 118), +(98586, 106), +(98586, 110), +(98586, 121), +(98586, 116), +(98586, 113), +(98586, 111), +(98586, 126), +(98586, 125), +(98586, 124), +(98586, 109), +(98586, 123), +(98586, 119), +(98586, 112), +(98586, 114), +(98586, 107), +(98586, 108), +(98586, 115), +(98586, 122), +(98586, 120), +(98586, 117), +(98586, 118), +(98587, 106), +(98587, 110), +(98587, 121), +(98587, 116), +(98587, 113), +(98587, 111), +(98587, 126), +(98587, 125), +(98587, 124), +(98587, 109), +(98587, 123), +(98587, 119), +(98587, 112), +(98587, 114), +(98587, 107), +(98587, 108), +(98587, 115), +(98587, 122), +(98587, 120), +(98587, 117), +(98587, 118), +(98588, 106), +(98588, 110), +(98588, 121), +(98588, 116), +(98588, 113), +(98588, 111), +(98588, 126), +(98588, 125), +(98588, 124), +(98588, 109), +(98588, 123), +(98588, 119), +(98588, 112), +(98588, 114), +(98588, 107), +(98588, 108), +(98588, 115), +(98588, 122), +(98588, 120), +(98588, 117), +(98588, 118), +(98589, 106), +(98589, 110), +(98589, 121), +(98589, 116), +(98589, 113), +(98589, 111), +(98589, 126), +(98589, 125), +(98589, 124), +(98589, 109), +(98589, 123), +(98589, 119), +(98589, 112), +(98589, 114), +(98589, 107), +(98589, 108), +(98589, 115), +(98589, 122), +(98589, 120), +(98589, 117), +(98589, 118), +(98590, 106), +(98590, 110), +(98590, 121), +(98590, 116), +(98590, 113), +(98590, 111), +(98590, 126), +(98590, 125), +(98590, 124), +(98590, 109), +(98590, 123), +(98590, 119), +(98590, 112), +(98590, 114), +(98590, 107), +(98590, 108), +(98590, 115), +(98590, 122), +(98590, 120), +(98590, 117), +(98590, 118), +(98591, 106), +(98591, 110), +(98591, 121), +(98591, 116), +(98591, 113), +(98591, 111), +(98591, 126), +(98591, 125), +(98591, 124), +(98591, 109), +(98591, 123), +(98591, 119), +(98591, 112), +(98591, 114), +(98591, 107), +(98591, 108), +(98591, 115), +(98591, 122), +(98591, 120), +(98591, 117), +(98591, 118), +(98592, 106), +(98592, 110), +(98592, 121), +(98592, 116), +(98592, 113), +(98592, 111), +(98592, 126), +(98592, 125), +(98592, 124), +(98592, 109), +(98592, 123), +(98592, 119), +(98592, 112), +(98592, 114), +(98592, 107), +(98592, 108), +(98592, 115), +(98592, 122), +(98592, 120), +(98592, 117), +(98592, 118), +(98593, 106), +(98593, 110), +(98593, 121), +(98593, 116), +(98593, 113), +(98593, 111), +(98593, 126), +(98593, 125), +(98593, 124), +(98593, 109), +(98593, 123), +(98593, 119), +(98593, 112), +(98593, 114), +(98593, 107), +(98593, 108), +(98593, 115), +(98593, 122), +(98593, 120), +(98593, 117), +(98593, 118), +(98594, 106), +(98594, 110), +(98594, 121), +(98594, 116), +(98594, 113), +(98594, 111), +(98594, 126), +(98594, 125), +(98594, 124), +(98594, 109), +(98594, 123), +(98594, 119), +(98594, 112), +(98594, 114), +(98594, 107), +(98594, 108), +(98594, 115), +(98594, 122), +(98594, 120), +(98594, 117), +(98594, 118), +(98595, 106), +(98595, 110), +(98595, 121), +(98595, 116), +(98595, 113), +(98595, 111), +(98595, 126), +(98595, 125), +(98595, 124), +(98595, 109), +(98595, 123), +(98595, 119), +(98595, 112), +(98595, 114), +(98595, 107), +(98595, 108), +(98595, 115), +(98595, 122), +(98595, 120), +(98595, 117), +(98595, 118), +(98596, 106), +(98596, 110), +(98596, 121), +(98596, 116), +(98596, 113), +(98596, 111), +(98596, 126), +(98596, 125), +(98596, 124), +(98596, 109), +(98596, 123), +(98596, 119), +(98596, 112), +(98596, 114), +(98596, 107), +(98596, 108), +(98596, 115), +(98596, 122), +(98596, 120), +(98596, 117), +(98596, 118), +(98597, 106), +(98597, 110), +(98597, 121), +(98597, 116), +(98597, 113), +(98597, 111), +(98597, 126), +(98597, 125), +(98597, 124), +(98597, 109), +(98597, 123), +(98597, 119), +(98597, 112), +(98597, 114), +(98597, 107), +(98597, 108), +(98597, 115), +(98597, 122), +(98597, 120), +(98597, 117), +(98597, 118), +(98598, 106), +(98598, 110), +(98598, 121), +(98598, 116), +(98598, 113), +(98598, 111), +(98598, 126), +(98598, 125), +(98598, 124), +(98598, 109), +(98598, 123), +(98598, 119), +(98598, 112), +(98598, 114), +(98598, 107), +(98598, 108), +(98598, 115), +(98598, 122), +(98598, 120), +(98598, 117), +(98598, 118), +(98599, 106), +(98599, 110), +(98599, 121), +(98599, 116), +(98599, 113), +(98599, 111), +(98599, 126), +(98599, 125), +(98599, 124), +(98599, 109), +(98599, 123), +(98599, 119), +(98599, 112), +(98599, 114), +(98599, 107), +(98599, 108), +(98599, 115), +(98599, 122), +(98599, 120), +(98599, 117), +(98599, 118), +(98600, 106), +(98600, 110), +(98600, 121), +(98600, 116), +(98600, 113), +(98600, 111), +(98600, 126), +(98600, 125), +(98600, 124), +(98600, 109), +(98600, 123), +(98600, 119), +(98600, 112), +(98600, 114), +(98600, 107), +(98600, 108), +(98600, 115), +(98600, 122), +(98600, 120), +(98600, 117), +(98600, 118), +(98601, 106), +(98601, 110), +(98601, 121), +(98601, 116), +(98601, 113), +(98601, 111), +(98601, 126), +(98601, 125), +(98601, 124), +(98601, 109), +(98601, 123), +(98601, 119), +(98601, 112), +(98601, 114), +(98601, 107), +(98601, 108), +(98601, 115), +(98601, 122), +(98601, 120), +(98601, 117), +(98601, 118), +(98602, 106), +(98602, 110), +(98602, 121), +(98602, 116), +(98602, 113), +(98602, 111), +(98602, 126), +(98602, 125), +(98602, 124), +(98602, 109), +(98602, 123), +(98602, 119), +(98602, 112), +(98602, 114), +(98602, 107), +(98602, 108), +(98602, 115), +(98602, 122), +(98602, 120), +(98602, 117), +(98602, 118), +(98603, 106), +(98603, 110), +(98603, 121), +(98603, 116), +(98603, 113), +(98603, 111), +(98603, 126), +(98603, 125), +(98603, 124), +(98603, 109), +(98603, 123), +(98603, 119), +(98603, 112), +(98603, 114), +(98603, 107), +(98603, 108), +(98603, 115), +(98603, 122), +(98603, 120), +(98603, 117), +(98603, 118), +(98604, 106), +(98604, 110), +(98604, 121), +(98604, 116), +(98604, 113), +(98604, 111), +(98604, 126), +(98604, 125), +(98604, 124), +(98604, 109), +(98604, 123), +(98604, 119), +(98604, 112), +(98604, 114), +(98604, 107), +(98604, 108), +(98604, 115), +(98604, 122), +(98604, 120), +(98604, 117), +(98604, 118), +(98605, 106), +(98605, 110), +(98605, 121), +(98605, 116), +(98605, 113), +(98605, 111), +(98605, 126), +(98605, 125), +(98605, 124), +(98605, 109), +(98605, 123), +(98605, 119), +(98605, 112), +(98605, 114), +(98605, 107), +(98605, 108), +(98605, 115), +(98605, 122), +(98605, 120), +(98605, 117), +(98605, 118), +(98606, 106), +(98606, 110), +(98606, 121), +(98606, 116), +(98606, 113), +(98606, 111), +(98606, 126), +(98606, 125), +(98606, 124), +(98606, 109), +(98606, 123), +(98606, 119), +(98606, 112), +(98606, 114), +(98606, 107), +(98606, 108), +(98606, 115), +(98606, 122), +(98606, 120), +(98606, 117), +(98606, 118), +(98607, 106), +(98607, 110), +(98607, 121), +(98607, 116), +(98607, 113), +(98607, 111), +(98607, 126), +(98607, 125), +(98607, 124), +(98607, 109), +(98607, 123), +(98607, 119), +(98607, 112), +(98607, 114), +(98607, 107), +(98607, 108), +(98607, 115), +(98607, 122), +(98607, 120), +(98607, 117), +(98607, 118), +(98608, 106), +(98608, 110), +(98608, 121), +(98608, 116), +(98608, 113), +(98608, 111), +(98608, 126), +(98608, 125), +(98608, 124), +(98608, 109), +(98608, 123), +(98608, 119), +(98608, 112), +(98608, 114), +(98608, 107), +(98608, 108), +(98608, 115), +(98608, 122), +(98608, 120), +(98608, 117), +(98608, 118), +(98609, 110), +(98610, 121), +(98611, 116), +(98613, 116), +(98614, 113), +(98615, 111), +(98616, 126), +(98617, 125), +(98618, 124), +(98619, 109), +(98620, 123), +(98621, 123), +(98622, 123), +(98623, 123), +(98624, 119), +(98625, 114), +(98626, 107), +(98629, 107), +(98629, 108), +(98632, 107), +(98632, 108), +(98633, 107), +(98633, 108), +(98634, 107), +(98634, 108), +(98644, 107), +(98644, 108), +(98646, 107), +(98646, 108), +(98648, 107), +(98648, 108), +(98649, 107), +(98649, 108), +(98650, 107), +(98650, 108), +(98653, 107), +(98653, 108), +(98654, 107), +(98654, 108), +(98656, 107), +(98656, 108), +(98657, 107), +(98657, 108), +(98659, 107), +(98659, 108), +(98661, 107), +(98661, 108), +(98662, 107), +(98662, 108), +(98663, 107), +(98663, 108), +(98664, 107), +(98664, 108), +(98665, 107), +(98665, 108), +(98666, 108), +(98667, 115), +(98668, 122), +(98669, 120), +(98670, 120), +(98671, 117), +(98673, 117), +(98674, 117), +(98675, 118), +(99195, 127), +(99195, 128), +(99198, 127), +(99198, 128), +(99200, 127), +(99200, 128), +(99201, 127), +(99201, 128), +(99202, 127), +(99202, 128), +(99204, 127), +(99204, 128), +(99205, 127), +(99205, 128), +(99207, 127), +(99207, 128), +(99208, 127), +(99208, 128), +(99212, 127), +(99212, 128), +(99218, 127), +(99218, 128), +(99219, 127), +(99219, 128), +(99220, 127), +(99220, 128), +(99221, 127), +(99221, 128), +(99222, 127), +(99222, 128), +(99223, 127), +(99223, 128), +(99224, 127), +(99224, 128), +(99225, 127), +(99225, 128), +(99226, 127), +(99226, 128), +(99228, 127), +(99228, 128), +(99229, 127), +(99229, 128), +(99230, 127), +(99230, 128), +(99232, 127), +(99232, 128), +(99233, 127), +(99233, 128), +(99234, 127), +(99234, 128), +(99235, 127), +(99235, 128), +(99236, 127), +(99236, 128), +(99237, 127), +(99237, 128), +(99238, 127), +(99238, 128), +(99239, 127), +(99239, 128), +(99240, 127), +(99240, 128), +(99241, 127), +(99241, 128), +(99242, 127), +(99242, 128), +(99243, 127), +(99243, 128), +(99244, 127), +(99244, 128), +(99245, 127), +(99245, 128), +(99246, 127), +(99246, 128), +(99247, 127), +(99247, 128), +(99249, 127), +(99249, 128), +(99250, 127), +(99250, 128), +(99251, 127), +(99251, 128), +(99252, 127), +(99252, 128), +(99253, 127), +(99253, 128), +(99254, 127), +(99254, 128), +(99255, 127), +(99255, 128), +(99256, 127), +(99256, 128), +(99257, 127), +(99257, 128), +(99258, 127), +(99258, 128), +(99259, 127), +(99259, 128), +(99261, 127), +(99261, 128), +(99262, 127), +(99262, 128), +(99263, 127), +(99263, 128), +(99270, 127), +(99270, 128), +(99271, 127), +(99271, 128), +(99272, 127), +(99272, 128), +(99273, 127), +(99273, 128), +(99274, 127), +(99274, 128), +(99276, 127), +(99276, 128), +(99277, 127), +(99277, 128), +(99278, 127), +(99278, 128), +(99279, 127), +(99279, 128), +(99280, 127), +(99280, 128), +(99281, 127), +(99281, 128), +(99282, 127), +(99282, 128), +(99283, 127), +(99283, 128), +(99284, 127), +(99284, 128), +(99285, 127), +(99285, 128), +(99286, 127), +(99286, 128), +(99287, 127), +(99287, 128), +(99288, 127), +(99288, 128), +(99289, 127), +(99289, 128), +(99290, 127), +(99290, 128), +(99291, 127), +(99291, 128), +(99292, 127), +(99292, 128), +(99293, 127), +(99293, 128), +(99294, 127), +(99294, 128), +(99295, 127), +(99295, 128), +(99296, 127), +(99296, 128), +(99297, 127), +(99297, 128), +(99298, 127), +(99298, 128), +(99299, 127), +(99299, 128), +(99300, 127), +(99300, 128), +(99301, 127), +(99301, 128), +(99302, 127), +(99302, 128), +(99303, 127), +(99303, 128), +(99304, 127), +(99304, 128), +(99305, 127), +(99305, 128), +(99306, 127), +(99306, 128), +(99307, 127), +(99307, 128), +(99308, 127), +(99308, 128), +(99309, 127), +(99309, 128), +(99310, 127), +(99310, 128), +(99311, 127), +(99311, 128), +(99312, 127), +(99312, 128), +(99313, 127), +(99313, 128), +(99318, 127), +(99318, 128), +(99319, 127), +(99319, 128), +(99320, 127), +(99320, 128), +(99321, 127), +(99321, 128), +(99322, 127), +(99322, 128), +(99323, 127), +(99323, 128), +(99324, 127), +(99324, 128), +(99325, 127), +(99325, 128), +(99326, 127), +(99326, 128), +(99327, 127), +(99327, 128), +(99329, 127), +(99329, 128), +(99330, 127), +(99330, 128), +(99331, 127), +(99331, 128), +(99332, 127), +(99332, 128), +(99333, 127), +(99333, 128), +(99334, 127), +(99334, 128), +(99335, 127), +(99335, 128), +(99336, 127), +(99336, 128), +(99337, 127), +(99337, 128), +(99338, 127), +(99338, 128), +(99339, 127), +(99339, 128), +(99340, 127), +(99340, 128), +(99341, 127), +(99341, 128), +(99342, 127), +(99342, 128), +(99343, 127), +(99343, 128), +(99344, 127), +(99344, 128), +(99345, 127), +(99345, 128), +(99346, 127), +(99346, 128), +(99347, 127), +(99347, 128), +(99348, 127), +(99348, 128), +(99349, 127), +(99349, 128), +(99350, 127), +(99350, 128), +(99351, 127), +(99351, 128), +(99352, 127), +(99352, 128), +(99353, 127), +(99353, 128), +(99354, 127), +(99354, 128), +(99355, 127), +(99355, 128), +(99356, 127), +(99356, 128), +(99357, 127), +(99357, 128), +(99358, 127), +(99358, 128), +(99359, 127), +(99359, 128), +(99360, 127), +(99360, 128), +(99361, 127), +(99361, 128), +(99362, 127), +(99362, 128), +(99363, 127), +(99363, 128), +(99364, 127), +(99364, 128), +(99365, 127), +(99365, 128), +(99366, 127), +(99366, 128), +(99367, 127), +(99367, 128), +(99368, 127), +(99368, 128), +(99369, 127), +(99369, 128), +(99370, 127), +(99370, 128), +(99371, 127), +(99371, 128), +(99372, 127), +(99372, 128), +(99373, 127), +(99373, 128), +(99374, 127), +(99374, 128), +(99375, 127), +(99375, 128), +(99376, 127), +(99376, 128), +(99377, 127), +(99377, 128), +(99378, 127), +(99378, 128), +(99379, 127), +(99379, 128), +(99380, 127), +(99380, 128), +(99381, 127), +(99381, 128), +(99382, 127), +(99382, 128), +(99383, 127), +(99383, 128), +(99384, 127), +(99384, 128), +(99385, 127), +(99385, 128), +(99386, 127), +(99386, 128), +(99387, 127), +(99387, 128), +(99388, 127), +(99388, 128), +(99389, 127), +(99389, 128), +(99390, 127), +(99390, 128), +(99391, 127), +(99391, 128), +(99392, 127), +(99392, 128), +(99393, 127), +(99393, 128), +(99394, 127), +(99394, 128), +(99395, 127), +(99395, 128), +(99396, 127), +(99396, 128), +(99397, 127), +(99397, 128), +(99398, 127), +(99398, 128), +(99399, 127), +(99399, 128), +(99400, 127), +(99400, 128), +(99401, 127), +(99401, 128), +(99402, 127), +(99402, 128), +(99403, 127), +(99403, 128), +(99404, 127), +(99404, 128), +(99405, 127), +(99405, 128), +(99406, 127), +(99406, 128), +(99407, 127), +(99407, 128), +(99408, 127), +(99408, 128), +(99409, 127), +(99409, 128), +(99410, 127), +(99410, 128), +(99411, 127), +(99411, 128), +(99412, 127), +(99412, 128), +(99413, 127), +(99413, 128), +(99414, 127), +(99414, 128), +(99415, 127), +(99415, 128), +(99418, 127), +(99418, 128), +(99419, 127), +(99419, 128), +(99420, 127), +(99420, 128), +(99421, 127), +(99421, 128), +(99422, 127), +(99422, 128), +(99423, 127), +(99423, 128), +(99424, 127), +(99424, 128), +(99425, 127), +(99425, 128), +(99426, 127), +(99426, 128), +(99427, 127), +(99427, 128), +(99428, 127), +(99428, 128), +(99429, 127), +(99429, 128), +(99430, 127), +(99430, 128), +(99431, 127), +(99431, 128), +(99432, 127), +(99432, 128), +(99433, 127), +(99433, 128), +(99434, 127), +(99434, 128), +(99435, 127), +(99435, 128), +(99436, 127), +(99436, 128), +(99437, 127), +(99437, 128), +(99438, 127), +(99438, 128), +(99439, 127), +(99439, 128), +(99440, 127), +(99440, 128), +(99441, 127), +(99441, 128), +(99442, 128), +(99444, 128), +(99445, 128), +(99447, 128), +(99448, 128), +(99449, 128), +(99450, 128), +(99451, 128), +(99452, 128), +(99453, 128), +(99454, 128), +(99455, 128), +(99456, 128), +(100115, 129), +(100117, 129), +(100119, 129), +(100121, 129), +(100123, 129), +(100125, 129), +(100127, 129), +(100129, 129), +(100131, 129), +(100133, 129), +(100134, 129), +(100135, 129), +(100148, 129), +(100149, 129), +(100150, 129), +(100151, 129), +(100152, 129), +(100153, 129), +(100154, 129), +(100155, 129), +(100156, 129), +(100157, 129), +(100159, 129), +(100160, 129), +(100160, 130), +(100161, 129), +(100161, 130), +(100162, 129), +(100162, 130), +(100163, 129), +(100163, 130), +(100164, 129), +(100164, 130), +(100167, 129), +(100167, 130), +(100169, 129), +(100169, 130), +(100171, 129), +(100171, 130), +(100172, 129), +(100172, 130), +(100173, 129), +(100173, 130), +(100175, 129), +(100175, 130), +(100176, 129), +(100176, 130), +(100177, 129), +(100177, 130), +(100178, 129), +(100178, 130), +(100179, 129), +(100179, 130), +(100181, 129), +(100181, 130), +(100184, 129), +(100184, 130), +(100185, 129), +(100185, 130), +(100186, 129), +(100186, 130), +(100187, 129), +(100187, 130), +(100188, 129), +(100188, 130), +(100190, 129), +(100190, 130), +(100191, 129), +(100191, 130), +(100192, 129), +(100192, 130), +(100193, 129), +(100193, 130), +(100194, 129), +(100194, 130), +(100195, 129), +(100195, 130), +(100205, 129), +(100205, 131), +(100205, 130), +(100206, 129), +(100206, 130), +(100207, 129), +(100207, 130), +(100208, 129), +(100208, 130), +(100209, 129), +(100209, 130), +(100210, 129), +(100210, 130), +(100211, 129), +(100211, 130), +(100212, 129), +(100212, 130), +(100213, 129), +(100213, 130), +(100214, 129), +(100214, 130), +(100215, 129), +(100215, 130), +(100216, 129), +(100216, 130), +(100217, 129), +(100217, 131), +(100217, 130), +(100218, 129), +(100218, 131), +(100218, 130), +(100219, 129), +(100219, 131), +(100219, 130), +(100220, 129), +(100220, 131), +(100220, 130), +(100221, 129), +(100221, 131), +(100221, 130), +(100222, 129), +(100222, 131), +(100222, 130), +(100223, 129), +(100223, 131), +(100223, 130), +(100224, 129), +(100224, 131), +(100224, 130), +(100225, 129), +(100225, 131), +(100225, 130), +(100226, 129), +(100226, 131), +(100226, 130), +(100227, 129), +(100227, 131), +(100227, 130), +(100228, 129), +(100228, 131), +(100228, 130), +(100230, 129), +(100230, 131), +(100230, 130), +(100231, 129), +(100231, 131), +(100231, 130), +(100232, 129), +(100232, 131), +(100232, 130), +(100233, 129), +(100233, 131), +(100233, 130), +(100234, 129), +(100234, 131), +(100234, 130), +(100235, 129), +(100235, 131), +(100235, 130), +(100236, 129), +(100236, 131), +(100236, 130), +(100237, 129), +(100237, 131), +(100237, 130), +(100238, 129), +(100238, 131), +(100238, 130), +(100239, 129), +(100239, 131), +(100239, 130), +(100240, 129), +(100240, 131), +(100240, 130), +(100241, 129), +(100241, 131), +(100241, 130), +(100243, 129), +(100243, 131), +(100243, 130), +(100244, 129), +(100244, 131), +(100244, 130), +(100245, 129), +(100245, 131), +(100245, 130), +(100246, 129), +(100246, 131), +(100246, 130), +(100247, 129), +(100247, 131), +(100247, 130), +(100248, 129), +(100248, 131), +(100248, 130), +(100249, 129), +(100249, 131), +(100249, 130), +(100250, 129), +(100250, 131), +(100250, 130), +(100251, 129), +(100251, 131), +(100251, 130), +(100252, 129), +(100252, 131), +(100252, 130), +(100253, 129), +(100253, 131), +(100253, 130), +(100254, 129), +(100254, 131), +(100254, 130), +(100255, 129), +(100255, 131), +(100255, 130), +(100256, 129), +(100256, 132), +(100256, 131), +(100256, 130), +(100257, 129), +(100257, 132), +(100257, 131), +(100257, 130), +(100258, 129), +(100258, 132), +(100258, 131), +(100258, 130), +(100259, 129), +(100259, 132), +(100259, 131), +(100259, 130), +(100260, 129), +(100260, 132), +(100260, 131), +(100260, 130), +(100261, 129), +(100261, 132), +(100261, 131), +(100261, 130), +(100262, 129), +(100262, 132), +(100262, 131), +(100262, 130), +(100263, 129), +(100263, 132), +(100263, 131), +(100263, 130), +(100264, 129), +(100264, 132), +(100264, 131), +(100264, 130), +(100265, 129), +(100265, 132), +(100265, 131), +(100265, 130), +(100267, 129), +(100267, 132), +(100267, 131), +(100267, 130), +(100268, 129), +(100268, 132), +(100268, 131), +(100268, 130), +(100269, 129), +(100269, 132), +(100269, 131), +(100269, 130), +(100270, 129), +(100270, 132), +(100270, 131), +(100270, 130), +(100271, 129), +(100271, 132), +(100271, 131), +(100271, 130), +(100272, 129), +(100272, 132), +(100272, 131), +(100272, 130), +(100273, 129), +(100273, 132), +(100273, 131), +(100273, 130), +(100274, 129), +(100274, 132), +(100274, 131), +(100274, 130), +(100275, 129), +(100275, 132), +(100275, 131), +(100275, 130), +(100276, 129), +(100276, 132), +(100276, 131), +(100276, 130), +(100277, 129), +(100277, 132), +(100277, 131), +(100277, 130), +(100278, 129), +(100278, 132), +(100278, 131), +(100278, 130), +(100279, 129), +(100279, 132), +(100279, 131), +(100279, 130), +(100280, 129), +(100280, 132), +(100280, 131), +(100280, 130), +(100281, 129), +(100281, 132), +(100281, 131), +(100281, 130), +(100282, 129), +(100282, 132), +(100282, 131), +(100282, 130), +(100283, 129), +(100283, 132), +(100283, 131), +(100283, 130), +(100284, 129), +(100284, 132), +(100284, 131), +(100284, 130), +(100285, 129), +(100285, 132), +(100285, 131), +(100285, 130), +(100286, 129), +(100286, 132), +(100286, 131), +(100286, 130), +(100287, 129), +(100287, 132), +(100287, 131), +(100287, 130), +(100288, 129), +(100288, 132), +(100288, 131), +(100288, 130), +(100289, 129), +(100289, 132), +(100289, 131), +(100289, 130), +(100290, 129), +(100290, 132), +(100290, 131), +(100290, 130), +(100291, 129), +(100291, 132), +(100291, 131), +(100291, 130), +(100292, 129), +(100292, 132), +(100292, 131), +(100292, 130), +(100293, 129), +(100293, 132), +(100293, 131), +(100293, 130), +(100295, 129), +(100295, 132), +(100295, 131), +(100295, 130), +(100296, 129), +(100296, 132), +(100296, 131), +(100296, 130), +(100297, 129), +(100297, 132), +(100297, 131), +(100297, 130), +(100298, 129), +(100298, 132), +(100298, 131), +(100298, 130), +(100299, 129), +(100299, 132), +(100299, 131), +(100299, 130), +(100300, 129), +(100300, 132), +(100300, 131), +(100300, 130), +(100301, 129), +(100301, 132), +(100301, 131), +(100301, 130), +(100302, 129), +(100302, 132), +(100302, 131), +(100302, 130), +(100303, 129), +(100303, 132), +(100303, 131), +(100303, 130), +(100304, 129), +(100304, 132), +(100304, 131), +(100304, 130), +(100307, 129), +(100307, 132), +(100307, 131), +(100307, 130), +(100308, 129), +(100308, 132), +(100308, 131), +(100308, 130), +(100309, 129), +(100309, 132), +(100309, 131), +(100309, 130), +(100310, 129), +(100310, 132), +(100310, 131), +(100310, 130), +(100311, 129), +(100311, 132), +(100311, 131), +(100311, 130), +(100312, 129), +(100312, 132), +(100312, 131), +(100312, 130), +(100313, 129), +(100313, 132), +(100313, 131), +(100313, 130), +(100314, 129), +(100314, 132), +(100314, 131), +(100314, 130), +(100315, 129), +(100315, 132), +(100315, 131), +(100315, 130), +(100316, 129), +(100316, 132), +(100316, 131), +(100316, 130), +(100317, 129), +(100317, 132), +(100317, 131), +(100317, 130), +(100318, 129), +(100318, 132), +(100318, 131), +(100318, 130), +(100319, 129), +(100319, 132), +(100319, 131), +(100319, 130), +(100320, 129), +(100320, 132), +(100320, 131), +(100320, 130), +(100322, 129), +(100322, 132), +(100322, 131), +(100322, 130), +(100324, 129), +(100324, 132), +(100324, 131), +(100324, 130), +(100325, 129), +(100325, 132), +(100325, 131), +(100325, 130), +(100327, 129), +(100327, 132), +(100327, 131), +(100327, 130), +(100328, 129), +(100328, 132), +(100328, 131), +(100328, 130), +(100329, 129), +(100329, 132), +(100329, 131), +(100329, 130), +(100330, 129), +(100330, 132), +(100330, 131), +(100330, 130), +(100331, 129), +(100331, 132), +(100331, 131), +(100331, 130), +(100332, 129), +(100332, 132), +(100332, 131), +(100332, 130), +(100333, 129), +(100333, 132), +(100333, 131), +(100333, 130), +(100334, 129), +(100334, 132), +(100334, 131), +(100334, 130), +(100335, 129), +(100335, 132), +(100335, 131), +(100335, 130), +(100336, 129), +(100336, 132), +(100336, 131), +(100336, 130), +(100337, 129), +(100337, 132), +(100337, 131), +(100337, 130), +(100338, 129), +(100338, 132), +(100338, 131), +(100338, 130), +(100340, 129), +(100340, 132), +(100340, 131), +(100340, 130), +(100341, 129), +(100341, 132), +(100341, 131), +(100341, 130), +(100342, 129), +(100342, 132), +(100342, 131), +(100342, 130), +(100343, 129), +(100343, 132), +(100343, 131), +(100343, 130), +(100344, 129), +(100344, 132), +(100344, 131), +(100344, 130), +(100345, 129), +(100345, 132), +(100345, 131), +(100345, 130), +(100346, 129), +(100346, 132), +(100346, 131), +(100346, 130), +(100347, 129), +(100347, 132), +(100347, 131), +(100347, 130), +(100349, 129), +(100349, 132), +(100349, 131), +(100349, 130), +(100350, 129), +(100350, 132), +(100350, 131), +(100350, 130), +(100351, 129), +(100351, 132), +(100351, 131), +(100351, 130), +(100352, 129), +(100352, 132), +(100352, 131), +(100352, 130), +(100353, 129), +(100353, 132), +(100353, 131), +(100353, 130), +(100354, 129), +(100354, 132), +(100354, 131), +(100354, 130), +(100355, 129), +(100355, 132), +(100355, 131), +(100355, 130), +(100356, 129), +(100356, 132), +(100356, 131), +(100356, 130), +(100357, 129), +(100357, 132), +(100357, 131), +(100357, 130), +(100358, 129), +(100358, 132), +(100358, 131), +(100358, 130), +(100360, 129), +(100360, 132), +(100360, 131), +(100360, 130), +(100366, 129), +(100366, 132), +(100366, 131), +(100366, 130), +(100367, 129), +(100367, 132), +(100367, 131), +(100367, 130), +(100368, 129), +(100368, 132), +(100368, 131), +(100368, 130), +(100369, 129), +(100369, 132), +(100369, 131), +(100369, 130), +(100370, 129), +(100370, 132), +(100370, 131), +(100370, 130), +(100371, 129), +(100371, 132), +(100371, 131), +(100371, 130), +(100372, 129), +(100372, 132), +(100372, 131), +(100372, 130), +(100373, 129), +(100373, 132), +(100373, 131), +(100373, 130), +(100374, 129), +(100374, 132), +(100374, 131), +(100374, 130), +(100375, 129), +(100375, 132), +(100375, 131), +(100375, 130), +(100376, 129), +(100376, 132), +(100376, 131), +(100376, 130), +(100377, 129), +(100377, 132), +(100377, 131), +(100377, 130), +(100378, 129), +(100378, 132), +(100378, 131), +(100378, 130), +(100379, 129), +(100379, 132), +(100379, 131), +(100379, 130), +(100380, 129), +(100380, 132), +(100380, 131), +(100380, 130), +(100381, 129), +(100381, 132), +(100381, 131), +(100381, 130), +(100382, 129), +(100382, 132), +(100382, 131), +(100382, 130), +(100383, 129), +(100383, 132), +(100383, 131), +(100383, 130), +(100384, 129), +(100384, 132), +(100384, 131), +(100384, 130), +(100385, 129), +(100385, 132), +(100385, 131), +(100385, 130), +(100386, 129), +(100386, 132), +(100386, 131), +(100386, 130), +(100387, 129), +(100387, 132), +(100387, 131), +(100387, 130), +(100388, 129), +(100388, 132), +(100388, 131), +(100388, 130), +(100389, 129), +(100389, 132), +(100389, 131), +(100389, 130), +(100390, 129), +(100390, 132), +(100390, 131), +(100390, 130), +(100392, 129), +(100392, 132), +(100392, 131), +(100392, 130), +(100393, 129), +(100393, 132), +(100393, 131), +(100393, 130), +(100394, 129), +(100394, 132), +(100394, 131), +(100394, 130), +(100395, 129), +(100395, 132), +(100395, 131), +(100395, 130), +(100396, 129), +(100396, 132), +(100396, 131), +(100396, 130), +(100397, 129), +(100397, 132), +(100397, 131), +(100397, 130), +(100398, 129), +(100398, 132), +(100398, 131), +(100398, 130), +(100399, 129), +(100399, 132), +(100399, 131), +(100399, 130), +(100400, 129), +(100400, 132), +(100400, 131), +(100400, 130), +(100401, 129), +(100401, 132), +(100401, 131), +(100401, 130), +(100402, 129), +(100402, 132), +(100402, 131), +(100402, 130), +(100403, 129), +(100403, 132), +(100403, 131), +(100403, 130), +(100404, 129), +(100404, 132), +(100404, 131), +(100404, 130), +(100405, 129), +(100405, 132), +(100405, 131), +(100405, 130), +(100406, 129), +(100406, 132), +(100406, 131), +(100406, 130), +(100407, 129), +(100407, 132), +(100407, 131), +(100407, 130), +(100408, 129), +(100408, 132), +(100408, 131), +(100408, 130), +(100409, 129), +(100409, 132), +(100409, 131), +(100409, 130), +(100410, 129), +(100410, 132), +(100410, 131), +(100410, 130), +(100411, 129), +(100411, 132), +(100411, 131), +(100411, 130), +(100412, 129), +(100412, 132), +(100412, 131), +(100412, 130), +(100413, 129), +(100413, 132), +(100413, 131), +(100413, 130), +(100414, 129), +(100414, 132), +(100414, 131), +(100414, 130), +(100415, 129), +(100415, 132), +(100415, 131), +(100415, 130), +(100416, 129), +(100416, 132), +(100416, 131), +(100416, 130), +(100417, 132), +(100601, 133), +(100607, 133), +(100607, 134), +(100609, 133), +(100609, 134), +(100613, 133), +(100613, 134), +(100614, 133), +(100614, 134), +(100616, 133), +(100616, 134), +(100621, 133), +(100621, 134), +(100625, 133), +(100625, 134), +(100629, 133), +(100629, 134), +(100630, 133), +(100630, 134), +(100632, 133), +(100632, 134), +(100666, 133), +(100666, 134), +(100672, 133), +(100672, 134), +(100673, 133), +(100673, 134), +(100675, 133), +(100675, 134), +(100676, 133), +(100676, 134), +(100677, 133), +(100677, 134), +(100678, 133), +(100678, 134), +(100679, 133), +(100679, 134), +(100680, 133), +(100680, 134), +(100681, 133), +(100681, 134), +(100682, 133), +(100682, 134), +(100683, 133), +(100683, 134), +(100684, 133), +(100684, 134), +(100685, 133), +(100685, 134), +(100686, 133), +(100686, 134), +(100687, 133), +(100687, 134), +(100692, 133), +(100692, 134), +(100693, 133), +(100693, 134), +(100695, 133), +(100695, 134), +(100696, 133), +(100696, 134), +(100697, 133), +(100697, 134), +(100698, 133), +(100698, 134), +(100700, 133), +(100700, 134), +(100701, 133), +(100701, 134), +(100702, 133), +(100702, 134), +(100703, 133), +(100703, 135), +(100703, 134), +(100707, 133), +(100707, 135), +(100707, 134), +(100708, 133), +(100708, 135), +(100708, 134), +(100711, 133), +(100711, 135), +(100711, 134), +(100713, 133), +(100713, 135), +(100713, 134), +(100714, 133), +(100714, 135), +(100714, 134), +(100716, 133), +(100716, 135), +(100716, 134), +(100717, 133), +(100717, 135), +(100717, 134), +(100718, 133), +(100718, 135), +(100718, 134), +(100720, 133), +(100720, 135), +(100720, 134), +(100721, 133), +(100721, 135), +(100721, 134), +(100722, 133), +(100722, 135), +(100722, 134), +(100723, 133), +(100723, 135), +(100723, 134), +(100724, 133), +(100724, 135), +(100724, 134), +(100725, 133), +(100725, 135), +(100725, 134), +(100733, 133), +(100733, 135), +(100733, 134), +(100734, 133), +(100734, 135), +(100734, 134), +(100735, 133), +(100735, 135), +(100735, 134), +(100736, 133), +(100736, 135), +(100736, 134), +(100737, 133), +(100737, 135), +(100737, 134), +(100738, 133), +(100738, 135), +(100738, 134), +(100739, 133), +(100739, 135), +(100739, 134), +(100740, 133), +(100740, 135), +(100740, 134), +(100741, 133), +(100741, 135), +(100741, 134), +(100742, 133), +(100742, 135), +(100742, 134), +(100743, 133), +(100743, 135), +(100743, 134), +(100744, 133), +(100744, 135), +(100744, 134), +(100745, 133), +(100745, 135), +(100745, 134), +(100746, 133), +(100746, 135), +(100746, 134), +(100747, 133), +(100747, 135), +(100747, 134), +(100748, 133), +(100748, 135), +(100748, 134), +(100749, 133), +(100749, 135), +(100749, 134), +(100750, 133), +(100750, 135), +(100750, 134), +(100751, 133), +(100751, 135), +(100751, 134), +(100752, 133), +(100752, 135), +(100752, 134), +(100753, 133), +(100753, 135), +(100753, 134), +(100755, 133), +(100755, 135), +(100755, 134), +(100756, 133), +(100756, 135), +(100756, 134), +(100757, 133), +(100757, 135), +(100757, 134), +(100758, 133), +(100758, 135), +(100758, 134), +(100759, 133), +(100759, 135), +(100759, 134), +(100760, 133), +(100760, 135), +(100760, 134), +(100761, 133), +(100761, 135), +(100761, 134), +(100762, 133), +(100762, 135), +(100762, 134), +(100763, 133), +(100763, 135), +(100763, 134), +(100764, 133), +(100764, 135), +(100764, 134), +(100765, 133), +(100765, 135), +(100765, 134), +(100767, 133), +(100767, 135), +(100767, 134), +(100769, 133), +(100769, 135), +(100769, 134), +(100770, 133), +(100770, 135), +(100770, 134), +(100771, 133), +(100771, 135), +(100771, 134), +(100772, 133), +(100772, 135), +(100772, 134), +(100773, 133), +(100773, 135), +(100773, 134), +(100774, 133), +(100774, 135), +(100774, 134), +(100775, 133), +(100775, 135), +(100775, 134), +(100776, 133), +(100776, 135), +(100776, 134), +(100777, 133), +(100777, 135), +(100777, 134), +(100778, 133), +(100778, 135), +(100778, 134), +(100779, 133), +(100779, 135), +(100779, 134), +(100780, 133), +(100780, 135), +(100780, 134), +(100781, 133), +(100781, 135), +(100781, 134), +(100782, 133), +(100782, 135), +(100782, 134), +(100783, 133), +(100783, 135), +(100783, 134), +(100784, 133), +(100784, 135), +(100784, 134), +(100785, 133), +(100785, 135), +(100785, 134), +(100786, 133), +(100786, 135), +(100786, 134), +(100787, 133), +(100787, 135), +(100787, 134), +(100788, 133), +(100788, 135), +(100788, 134), +(100789, 133), +(100789, 135), +(100789, 134), +(100790, 133), +(100790, 135), +(100790, 134), +(100791, 133), +(100791, 135), +(100791, 134), +(100792, 133), +(100792, 135), +(100792, 134), +(100793, 133), +(100793, 135), +(100793, 134), +(100794, 133), +(100794, 135), +(100794, 134), +(100795, 133), +(100795, 135), +(100795, 134), +(100796, 133), +(100796, 135), +(100796, 134), +(100797, 133), +(100797, 135), +(100797, 134), +(100798, 133), +(100798, 135), +(100798, 134), +(100799, 133), +(100799, 135), +(100799, 134), +(100800, 133), +(100800, 135), +(100800, 134), +(100801, 133), +(100801, 135), +(100801, 134), +(100802, 133), +(100802, 135), +(100802, 134), +(100803, 133), +(100803, 135), +(100803, 134), +(100804, 133), +(100804, 135), +(100804, 134), +(100805, 133), +(100805, 135), +(100805, 134), +(100806, 133), +(100806, 135), +(100806, 134), +(100807, 133), +(100807, 135), +(100807, 134), +(100808, 133), +(100808, 135), +(100808, 134), +(100809, 133), +(100809, 135), +(100809, 134), +(100810, 133), +(100810, 135), +(100810, 134), +(100811, 133), +(100811, 135), +(100811, 134), +(100812, 133), +(100812, 135), +(100812, 134), +(100813, 133), +(100813, 135), +(100813, 134), +(100814, 133), +(100814, 135), +(100814, 134), +(100815, 133), +(100815, 135), +(100815, 134), +(100816, 133), +(100816, 135), +(100816, 134), +(100817, 133), +(100817, 135), +(100817, 134), +(100818, 133), +(100818, 135), +(100818, 134), +(100819, 133), +(100819, 135), +(100819, 134), +(100820, 133), +(100820, 135), +(100820, 134), +(100821, 133), +(100821, 135), +(100821, 134), +(100822, 133), +(100822, 135), +(100822, 134), +(100823, 133), +(100823, 135), +(100823, 134), +(100824, 133), +(100824, 135), +(100824, 134), +(100825, 133), +(100825, 135), +(100825, 134), +(100826, 133), +(100826, 135), +(100826, 134), +(100827, 133), +(100827, 135), +(100827, 134), +(100828, 133), +(100828, 135), +(100828, 134), +(100829, 133), +(100829, 135), +(100829, 134), +(100830, 133), +(100830, 135), +(100830, 134), +(100831, 133), +(100831, 135), +(100831, 134), +(100832, 133), +(100832, 135), +(100832, 134), +(100833, 133), +(100833, 135), +(100833, 134), +(100834, 133), +(100834, 135), +(100834, 134), +(100835, 133), +(100835, 135), +(100835, 134), +(100836, 133), +(100836, 135), +(100836, 134), +(100837, 133), +(100837, 135), +(100837, 134), +(100838, 133), +(100838, 135), +(100838, 134), +(100839, 133), +(100839, 135), +(100839, 134), +(100840, 133), +(100840, 135), +(100840, 134), +(100841, 133), +(100841, 135), +(100841, 134), +(100842, 133), +(100842, 135), +(100842, 134), +(100843, 133), +(100843, 135), +(100843, 134), +(100844, 133), +(100844, 135), +(100844, 134), +(100845, 133), +(100845, 135), +(100845, 134), +(100846, 133), +(100846, 135), +(100846, 134), +(100847, 133), +(100847, 135), +(100847, 134), +(100848, 133), +(100848, 135), +(100848, 134), +(100849, 133), +(100849, 135), +(100849, 134), +(100851, 133), +(100851, 135), +(100851, 134), +(100852, 135), +(100859, 135), +(100860, 135), +(100861, 135), +(100862, 135), +(100863, 135), +(100864, 135), +(100865, 135), +(100866, 135), +(100867, 135), +(100868, 135), +(100869, 135), +(100870, 135), +(100871, 135), +(100872, 135), +(100873, 134), +(100877, 134), +(100882, 134), +(100884, 134), +(100888, 134), +(100891, 134), +(100893, 134), +(100894, 134), +(100895, 134), +(100896, 134), +(100897, 134), +(100898, 134), +(100899, 134), +(100900, 134), +(100901, 134), +(100902, 134), +(100903, 134), +(100905, 134), +(100906, 134), +(100908, 134), +(100909, 134), +(100910, 134), +(100911, 134), +(100912, 134), +(100913, 134), +(100915, 134), +(100918, 134), +(100919, 134), +(100920, 134), +(100924, 134), +(100925, 134), +(100926, 134), +(100927, 134), +(100930, 134), +(100931, 134), +(100932, 134), +(100937, 134), +(100942, 134), +(100943, 134), +(100946, 134), +(100947, 134), +(100948, 134), +(100949, 134), +(100950, 134), +(100951, 134), +(100953, 134), +(100954, 134), +(100955, 134), +(100956, 134), +(100959, 134), +(100960, 134), +(100961, 134), +(100962, 134), +(100967, 134), +(100970, 134), +(100971, 134), +(100973, 134), +(100974, 134), +(100978, 134), +(100979, 134), +(100980, 134), +(100981, 134), +(100983, 134), +(100984, 134), +(100985, 134), +(100986, 134), +(100987, 134), +(100988, 134), +(100992, 134), +(100993, 134), +(100994, 134), +(100996, 134), +(100997, 134), +(100998, 134), +(100999, 134), +(101000, 134), +(101002, 134), +(101008, 134), +(101009, 134), +(101010, 134), +(101011, 134), +(101012, 134), +(101013, 134), +(101015, 134), +(101016, 134), +(101021, 134), +(101022, 134), +(101023, 134), +(101024, 134), +(101025, 134), +(101026, 134), +(101027, 134), +(101028, 134), +(101029, 134), +(101031, 134), +(101032, 134), +(101033, 134), +(101034, 134), +(101035, 134), +(101036, 134), +(101037, 134), +(101038, 134), +(101039, 134), +(101040, 134), +(101041, 134), +(101042, 134), +(101043, 134), +(101044, 134), +(101045, 134), +(101046, 134), +(101047, 134), +(101048, 134), +(101052, 134), +(101053, 134), +(101054, 134), +(101057, 134), +(101062, 134), +(101063, 134), +(101064, 134), +(101065, 134), +(101066, 134), +(101067, 134), +(101070, 134), +(101071, 134), +(101072, 134), +(101074, 134), +(101075, 134), +(101076, 134), +(101077, 134), +(101078, 134), +(101079, 134), +(101080, 134), +(101081, 134), +(101082, 134), +(101089, 134), +(101090, 134), +(101094, 134), +(101095, 134), +(101096, 134), +(101102, 134), +(101104, 134), +(101105, 134), +(101106, 134), +(101107, 134), +(101108, 134), +(101109, 134), +(101110, 134), +(101111, 134), +(101112, 134), +(101113, 134), +(101114, 134), +(101115, 134), +(101116, 134), +(101117, 134), +(101118, 134), +(101119, 134), +(101120, 134), +(101121, 134), +(101122, 134), +(101123, 134), +(101124, 134), +(101125, 134), +(101126, 134), +(101127, 134), +(101128, 134), +(101129, 134), +(101130, 134), +(101131, 134), +(101132, 134), +(101134, 134), +(101135, 134), +(101136, 134), +(101137, 134), +(101138, 134), +(101139, 134), +(101140, 134), +(101141, 134), +(101142, 134), +(101143, 134), +(101144, 134), +(101145, 134), +(101146, 134), +(101147, 134), +(101148, 134), +(101149, 134), +(101150, 134), +(101151, 134), +(101152, 134), +(101153, 134), +(101154, 134), +(101156, 134), +(101157, 134), +(101158, 134), +(101159, 134), +(101161, 134), +(101162, 134), +(101163, 134), +(101164, 134), +(101165, 134), +(101166, 134), +(101167, 134), +(101168, 134), +(101169, 134), +(101170, 134), +(101171, 134), +(101172, 134), +(101173, 134), +(101174, 134), +(101175, 134), +(101176, 134), +(101177, 134), +(101178, 134), +(101179, 134), +(101180, 134), +(101181, 134), +(101182, 134), +(101183, 134), +(101184, 134), +(101185, 134), +(101186, 134), +(101188, 134), +(101189, 134), +(101192, 134), +(101193, 134), +(101194, 134), +(101195, 134), +(101196, 134), +(101197, 134), +(101198, 134), +(101199, 134), +(101200, 134), +(101201, 134), +(101202, 134), +(101203, 134), +(101204, 134), +(101205, 134), +(101206, 134), +(101677, 136), +(101679, 136), +(101679, 137), +(101679, 138), +(101679, 139), +(101679, 140), +(101679, 141), +(101681, 136), +(101681, 137), +(101681, 138), +(101681, 139), +(101681, 140), +(101681, 141), +(101683, 136), +(101683, 137), +(101683, 138), +(101683, 139), +(101683, 140), +(101683, 141), +(101685, 136), +(101685, 137), +(101685, 138), +(101685, 139), +(101685, 140), +(101685, 141), +(101689, 136), +(101689, 137), +(101689, 138), +(101689, 139), +(101689, 140), +(101689, 141), +(101692, 136), +(101692, 137), +(101692, 138), +(101692, 139), +(101692, 140), +(101692, 141), +(101694, 136), +(101694, 137), +(101694, 138), +(101694, 139), +(101694, 140), +(101694, 141), +(101695, 136), +(101695, 137), +(101695, 138), +(101695, 139), +(101695, 140), +(101695, 141), +(101696, 136), +(101696, 137), +(101696, 138), +(101696, 139), +(101696, 140), +(101696, 141), +(101697, 136), +(101697, 137), +(101697, 138), +(101697, 139), +(101697, 140), +(101697, 141), +(101698, 136), +(101698, 137), +(101698, 138), +(101698, 139), +(101698, 140), +(101698, 141), +(101704, 136), +(101704, 137), +(101704, 138), +(101704, 139), +(101704, 140), +(101704, 141), +(101706, 136), +(101706, 137), +(101706, 138), +(101706, 139), +(101706, 140), +(101706, 141), +(101708, 136), +(101708, 137), +(101708, 138), +(101708, 139), +(101708, 140), +(101708, 141), +(101709, 136), +(101709, 137), +(101709, 138), +(101709, 139), +(101709, 140), +(101709, 141), +(101710, 136), +(101710, 137), +(101710, 138), +(101710, 139), +(101710, 140), +(101710, 141), +(101712, 136), +(101712, 137), +(101712, 138), +(101712, 139), +(101712, 140), +(101712, 141), +(101713, 136), +(101713, 137), +(101713, 138), +(101713, 139), +(101713, 140), +(101713, 141), +(101714, 136), +(101714, 137), +(101714, 138), +(101714, 139), +(101714, 140), +(101714, 141), +(101715, 136), +(101715, 137), +(101715, 138), +(101715, 139), +(101715, 140), +(101715, 141), +(101716, 136), +(101716, 137), +(101716, 138), +(101716, 139), +(101716, 140), +(101716, 141), +(101717, 136), +(101717, 137), +(101717, 138), +(101717, 139), +(101717, 140), +(101717, 141), +(101719, 136), +(101719, 137), +(101719, 138), +(101719, 139), +(101719, 140), +(101719, 141), +(101720, 136), +(101720, 137), +(101720, 138), +(101720, 139), +(101720, 140), +(101720, 141), +(101724, 136), +(101724, 137), +(101724, 138), +(101724, 139), +(101724, 140), +(101724, 141), +(101726, 136), +(101726, 137), +(101726, 138), +(101726, 139), +(101726, 140), +(101726, 141), +(101728, 136), +(101728, 137), +(101728, 138), +(101728, 139), +(101728, 140), +(101728, 141), +(101729, 136), +(101729, 137), +(101729, 138), +(101729, 139), +(101729, 140), +(101729, 141), +(101751, 136), +(101751, 137), +(101751, 138), +(101751, 139), +(101751, 140), +(101751, 141), +(101752, 136), +(101752, 137), +(101752, 138), +(101752, 139), +(101752, 140), +(101752, 141), +(101753, 136), +(101753, 137), +(101753, 138), +(101753, 139), +(101753, 140), +(101753, 141), +(101754, 136), +(101754, 137), +(101754, 138), +(101754, 139), +(101754, 140), +(101754, 141), +(101765, 136), +(101765, 137), +(101765, 138), +(101765, 139), +(101765, 140), +(101765, 141), +(101766, 136), +(101766, 137), +(101766, 138), +(101766, 139), +(101766, 140), +(101766, 141), +(101767, 136), +(101767, 137), +(101767, 138), +(101767, 139), +(101767, 140), +(101767, 141), +(101769, 136), +(101769, 137), +(101769, 138), +(101769, 139), +(101769, 140), +(101769, 141), +(101770, 136), +(101770, 137), +(101770, 138), +(101770, 139), +(101770, 140), +(101770, 141), +(101773, 136), +(101773, 137), +(101773, 138), +(101773, 139), +(101773, 140), +(101773, 141), +(101773, 142), +(101774, 136), +(101774, 137), +(101774, 138), +(101774, 139), +(101774, 140), +(101774, 141), +(101774, 142), +(101775, 136), +(101775, 137), +(101775, 138), +(101775, 139), +(101775, 140), +(101775, 141), +(101775, 142), +(101776, 136), +(101776, 137), +(101776, 138), +(101776, 139), +(101776, 140), +(101776, 141), +(101777, 136), +(101777, 137), +(101777, 138), +(101777, 139), +(101777, 140), +(101777, 141), +(101777, 142), +(101779, 136), +(101779, 137), +(101779, 138), +(101779, 139), +(101779, 140), +(101779, 141), +(101779, 142), +(101780, 136), +(101780, 137), +(101780, 138), +(101780, 139), +(101780, 140), +(101780, 141), +(101780, 142), +(101781, 136), +(101781, 137), +(101781, 138), +(101781, 139), +(101781, 140), +(101781, 141), +(101781, 142), +(101783, 136), +(101783, 137), +(101783, 138), +(101783, 139), +(101783, 140), +(101783, 141), +(101783, 142), +(101785, 136), +(101785, 137), +(101785, 138), +(101785, 139), +(101785, 140), +(101785, 141), +(101785, 142), +(101787, 136), +(101787, 137), +(101787, 138), +(101787, 139), +(101787, 140), +(101787, 141); +INSERT INTO `configuration_branch` (`configurationId`, `branchId`) VALUES +(101787, 142), +(101789, 136), +(101789, 137), +(101789, 138), +(101789, 139), +(101789, 140), +(101789, 141), +(101789, 142), +(101790, 136), +(101790, 137), +(101790, 138), +(101790, 139), +(101790, 140), +(101790, 141), +(101790, 142), +(101793, 136), +(101793, 137), +(101793, 138), +(101793, 139), +(101793, 140), +(101793, 141), +(101793, 142), +(101794, 136), +(101794, 137), +(101794, 138), +(101794, 139), +(101794, 140), +(101794, 141), +(101794, 142), +(101795, 136), +(101795, 137), +(101795, 138), +(101795, 139), +(101795, 140), +(101795, 141), +(101795, 142), +(101796, 136), +(101796, 137), +(101796, 138), +(101796, 139), +(101796, 140), +(101796, 141), +(101796, 142), +(101797, 136), +(101797, 137), +(101797, 138), +(101797, 139), +(101797, 140), +(101797, 141), +(101797, 142), +(101798, 136), +(101798, 137), +(101798, 138), +(101798, 139), +(101798, 140), +(101798, 141), +(101798, 142), +(101800, 136), +(101800, 137), +(101800, 138), +(101800, 139), +(101800, 140), +(101800, 141), +(101800, 142), +(101801, 136), +(101801, 137), +(101801, 138), +(101801, 139), +(101801, 140), +(101801, 141), +(101801, 142), +(101802, 136), +(101802, 137), +(101802, 138), +(101802, 139), +(101802, 140), +(101802, 141), +(101802, 142), +(101803, 136), +(101803, 137), +(101803, 138), +(101803, 139), +(101803, 140), +(101803, 141), +(101803, 142), +(101804, 136), +(101804, 137), +(101804, 138), +(101804, 139), +(101804, 140), +(101804, 141), +(101804, 142), +(101805, 136), +(101805, 137), +(101805, 138), +(101805, 139), +(101805, 140), +(101805, 141), +(101805, 142), +(101806, 136), +(101806, 137), +(101806, 138), +(101806, 139), +(101806, 140), +(101806, 141), +(101806, 142), +(101807, 136), +(101807, 137), +(101807, 138), +(101807, 139), +(101807, 140), +(101807, 141), +(101807, 142), +(101810, 136), +(101810, 137), +(101810, 138), +(101810, 139), +(101810, 140), +(101810, 141), +(101810, 142), +(101811, 136), +(101811, 137), +(101811, 138), +(101811, 139), +(101811, 140), +(101811, 141), +(101811, 142), +(101818, 136), +(101818, 137), +(101818, 138), +(101818, 139), +(101818, 140), +(101818, 141), +(101818, 142), +(101819, 136), +(101819, 137), +(101819, 138), +(101819, 139), +(101819, 140), +(101819, 141), +(101819, 142), +(101820, 136), +(101820, 137), +(101820, 138), +(101820, 139), +(101820, 140), +(101820, 141), +(101820, 142), +(101821, 136), +(101821, 137), +(101821, 138), +(101821, 139), +(101821, 140), +(101821, 141), +(101821, 142), +(101822, 136), +(101822, 137), +(101822, 138), +(101822, 139), +(101822, 140), +(101822, 141), +(101822, 142), +(101823, 136), +(101823, 137), +(101823, 138), +(101823, 139), +(101823, 140), +(101823, 141), +(101823, 142), +(101824, 136), +(101824, 137), +(101824, 138), +(101824, 139), +(101824, 140), +(101824, 141), +(101824, 142), +(101825, 136), +(101825, 137), +(101825, 138), +(101825, 139), +(101825, 140), +(101825, 141), +(101825, 142), +(101826, 136), +(101826, 137), +(101826, 138), +(101826, 139), +(101826, 140), +(101826, 141), +(101826, 142), +(101827, 136), +(101827, 137), +(101827, 138), +(101827, 139), +(101827, 140), +(101827, 141), +(101827, 142), +(101828, 136), +(101828, 137), +(101828, 138), +(101828, 139), +(101828, 140), +(101828, 141), +(101828, 142), +(101829, 136), +(101829, 137), +(101829, 138), +(101829, 139), +(101829, 140), +(101829, 141), +(101829, 142), +(101831, 136), +(101831, 137), +(101831, 138), +(101831, 139), +(101831, 140), +(101831, 141), +(101831, 142), +(101832, 136), +(101832, 137), +(101832, 138), +(101832, 139), +(101832, 140), +(101832, 141), +(101832, 142), +(101833, 136), +(101833, 137), +(101833, 138), +(101833, 139), +(101833, 140), +(101833, 141), +(101833, 142), +(101834, 136), +(101834, 137), +(101834, 138), +(101834, 139), +(101834, 140), +(101834, 141), +(101834, 142), +(101835, 136), +(101835, 137), +(101835, 138), +(101835, 139), +(101835, 140), +(101835, 141), +(101835, 142), +(101836, 136), +(101836, 137), +(101836, 138), +(101836, 139), +(101836, 140), +(101836, 141), +(101836, 142), +(101837, 136), +(101837, 137), +(101837, 138), +(101837, 139), +(101837, 140), +(101837, 141), +(101837, 142), +(101839, 136), +(101839, 137), +(101839, 138), +(101839, 139), +(101839, 140), +(101839, 141), +(101839, 142), +(101841, 136), +(101841, 137), +(101841, 138), +(101841, 139), +(101841, 140), +(101841, 141), +(101841, 142), +(101842, 136), +(101842, 137), +(101842, 138), +(101842, 139), +(101842, 140), +(101842, 141), +(101842, 142), +(101843, 136), +(101843, 137), +(101843, 138), +(101843, 139), +(101843, 140), +(101843, 141), +(101843, 142), +(101844, 136), +(101844, 137), +(101844, 138), +(101844, 139), +(101844, 140), +(101844, 141), +(101844, 142), +(101845, 136), +(101845, 137), +(101845, 138), +(101845, 139), +(101845, 140), +(101845, 141), +(101845, 142), +(101846, 136), +(101846, 137), +(101846, 138), +(101846, 139), +(101846, 140), +(101846, 141), +(101846, 142), +(101847, 136), +(101847, 137), +(101847, 138), +(101847, 139), +(101847, 140), +(101847, 141), +(101847, 142), +(101848, 136), +(101848, 137), +(101848, 138), +(101848, 139), +(101848, 140), +(101848, 141), +(101848, 142), +(101849, 136), +(101849, 137), +(101849, 138), +(101849, 139), +(101849, 140), +(101849, 141), +(101849, 142), +(101850, 136), +(101850, 137), +(101850, 138), +(101850, 139), +(101850, 140), +(101850, 141), +(101850, 142), +(101851, 136), +(101851, 137), +(101851, 138), +(101851, 139), +(101851, 140), +(101851, 141), +(101851, 142), +(101853, 136), +(101853, 137), +(101853, 138), +(101853, 139), +(101853, 140), +(101853, 141), +(101853, 142), +(101854, 136), +(101854, 137), +(101854, 138), +(101854, 139), +(101854, 140), +(101854, 141), +(101854, 142), +(101855, 136), +(101855, 137), +(101855, 138), +(101855, 139), +(101855, 140), +(101855, 141), +(101855, 142), +(101856, 136), +(101856, 137), +(101856, 138), +(101856, 139), +(101856, 140), +(101856, 141), +(101856, 142), +(101857, 136), +(101857, 137), +(101857, 138), +(101857, 139), +(101857, 140), +(101857, 141), +(101857, 142), +(101858, 136), +(101858, 137), +(101858, 138), +(101858, 139), +(101858, 140), +(101858, 141), +(101858, 142), +(101860, 136), +(101860, 137), +(101860, 138), +(101860, 139), +(101860, 140), +(101860, 141), +(101860, 142), +(101862, 136), +(101862, 137), +(101862, 138), +(101862, 139), +(101862, 140), +(101862, 141), +(101862, 142), +(101863, 136), +(101863, 137), +(101863, 138), +(101863, 139), +(101863, 140), +(101863, 141), +(101863, 142), +(101864, 136), +(101864, 137), +(101864, 138), +(101864, 139), +(101864, 140), +(101864, 141), +(101864, 142), +(101865, 136), +(101865, 137), +(101865, 138), +(101865, 139), +(101865, 140), +(101865, 141), +(101865, 142), +(101866, 136), +(101866, 137), +(101866, 138), +(101866, 139), +(101866, 140), +(101866, 141), +(101866, 142), +(101867, 136), +(101867, 137), +(101867, 138), +(101867, 139), +(101867, 140), +(101867, 141), +(101867, 142), +(101869, 136), +(101869, 137), +(101869, 138), +(101869, 139), +(101869, 140), +(101869, 141), +(101869, 142), +(101870, 136), +(101870, 137), +(101870, 138), +(101870, 139), +(101870, 140), +(101870, 141), +(101870, 142), +(101871, 136), +(101871, 137), +(101871, 138), +(101871, 139), +(101871, 140), +(101871, 141), +(101871, 142), +(101872, 136), +(101872, 137), +(101872, 138), +(101872, 139), +(101872, 140), +(101872, 141), +(101872, 142), +(101873, 136), +(101873, 137), +(101873, 138), +(101873, 139), +(101873, 140), +(101873, 141), +(101873, 142), +(101874, 136), +(101874, 137), +(101874, 138), +(101874, 139), +(101874, 140), +(101874, 141), +(101874, 142), +(101875, 136), +(101875, 137), +(101875, 138), +(101875, 139), +(101875, 140), +(101875, 141), +(101875, 142), +(101876, 136), +(101876, 137), +(101876, 138), +(101876, 139), +(101876, 140), +(101876, 141), +(101876, 142), +(101877, 136), +(101877, 137), +(101877, 138), +(101877, 139), +(101877, 140), +(101877, 141), +(101877, 142), +(101878, 136), +(101878, 137), +(101878, 138), +(101878, 139), +(101878, 140), +(101878, 141), +(101878, 142), +(101881, 136), +(101881, 137), +(101881, 138), +(101881, 139), +(101881, 140), +(101881, 141), +(101881, 142), +(101883, 136), +(101883, 137), +(101883, 138), +(101883, 139), +(101883, 140), +(101883, 141), +(101883, 142), +(101884, 136), +(101884, 137), +(101884, 138), +(101884, 139), +(101884, 140), +(101884, 141), +(101884, 142), +(101885, 136), +(101885, 137), +(101885, 138), +(101885, 139), +(101885, 140), +(101885, 141), +(101885, 142), +(101886, 136), +(101886, 137), +(101886, 138), +(101886, 139), +(101886, 140), +(101886, 141), +(101886, 142), +(101887, 136), +(101887, 137), +(101887, 138), +(101887, 139), +(101887, 140), +(101887, 141), +(101887, 142), +(101888, 136), +(101888, 137), +(101888, 138), +(101888, 139), +(101888, 140), +(101888, 141), +(101888, 142), +(101890, 136), +(101890, 137), +(101890, 138), +(101890, 139), +(101890, 140), +(101890, 141), +(101890, 142), +(101891, 136), +(101891, 137), +(101891, 138), +(101891, 139), +(101891, 140), +(101891, 141), +(101891, 142), +(101892, 136), +(101892, 137), +(101892, 138), +(101892, 139), +(101892, 140), +(101892, 141), +(101892, 142), +(101893, 136), +(101893, 137), +(101893, 138), +(101893, 139), +(101893, 140), +(101893, 141), +(101893, 142), +(101894, 136), +(101894, 137), +(101894, 138), +(101894, 139), +(101894, 140), +(101894, 141), +(101894, 142), +(101895, 136), +(101895, 137), +(101895, 138), +(101895, 139), +(101895, 140), +(101895, 141), +(101895, 142), +(101896, 136), +(101896, 137), +(101896, 138), +(101896, 139), +(101896, 140), +(101896, 141), +(101896, 142), +(101897, 136), +(101897, 137), +(101897, 138), +(101897, 139), +(101897, 140), +(101897, 141), +(101897, 142), +(101898, 136), +(101898, 137), +(101898, 138), +(101898, 139), +(101898, 140), +(101898, 141), +(101898, 142), +(101899, 136), +(101899, 137), +(101899, 138), +(101899, 139), +(101899, 140), +(101899, 141), +(101899, 142), +(101900, 136), +(101900, 137), +(101900, 138), +(101900, 139), +(101900, 140), +(101900, 141), +(101900, 142), +(101902, 136), +(101902, 137), +(101902, 138), +(101902, 139), +(101902, 140), +(101902, 141), +(101902, 142), +(101903, 136), +(101903, 137), +(101903, 138), +(101903, 139), +(101903, 140), +(101903, 141), +(101903, 142), +(101904, 136), +(101904, 137), +(101904, 138), +(101904, 139), +(101904, 140), +(101904, 141), +(101904, 142), +(101905, 136), +(101905, 137), +(101905, 138), +(101905, 139), +(101905, 140), +(101905, 141), +(101905, 142), +(101906, 136), +(101906, 137), +(101906, 138), +(101906, 139), +(101906, 140), +(101906, 141), +(101906, 142), +(101907, 136), +(101907, 137), +(101907, 138), +(101907, 139), +(101907, 140), +(101907, 141), +(101907, 142), +(101908, 136), +(101908, 137), +(101908, 138), +(101908, 139), +(101908, 140), +(101908, 141), +(101908, 142), +(101909, 136), +(101909, 137), +(101909, 138), +(101909, 139), +(101909, 140), +(101909, 141), +(101909, 142), +(101910, 136), +(101910, 137), +(101910, 138), +(101910, 139), +(101910, 140), +(101910, 141), +(101910, 142), +(101911, 136), +(101911, 137), +(101911, 138), +(101911, 139), +(101911, 140), +(101911, 141), +(101911, 142), +(101912, 137), +(101914, 137), +(101914, 138), +(101914, 140), +(101914, 141), +(101919, 137), +(101919, 138), +(101919, 140), +(101919, 141), +(101921, 137), +(101921, 138), +(101921, 140), +(101921, 141), +(101922, 137), +(101922, 138), +(101922, 140), +(101922, 141), +(101923, 137), +(101923, 138), +(101923, 140), +(101923, 141), +(101924, 137), +(101924, 138), +(101924, 140), +(101924, 141), +(101925, 137), +(101925, 138), +(101925, 140), +(101925, 141), +(101927, 137), +(101927, 138), +(101927, 140), +(101927, 141), +(101928, 137), +(101928, 138), +(101928, 140), +(101928, 141), +(101929, 137), +(101929, 138), +(101929, 140), +(101929, 141), +(101930, 137), +(101930, 138), +(101930, 140), +(101930, 141), +(101931, 137), +(101931, 138), +(101931, 140), +(101931, 141), +(101935, 137), +(101935, 138), +(101935, 140), +(101935, 141), +(101936, 137), +(101936, 138), +(101936, 140), +(101936, 141), +(101937, 137), +(101937, 138), +(101937, 140), +(101937, 141), +(101940, 137), +(101940, 138), +(101940, 140), +(101940, 141), +(101941, 137), +(101941, 138), +(101941, 140), +(101941, 141), +(101943, 137), +(101943, 138), +(101943, 140), +(101943, 141), +(101944, 137), +(101944, 138), +(101944, 140), +(101944, 141), +(101945, 137), +(101945, 138), +(101945, 140), +(101945, 141), +(101947, 137), +(101947, 138), +(101947, 140), +(101947, 141), +(101949, 137), +(101949, 138), +(101949, 140), +(101949, 141), +(101951, 137), +(101951, 138), +(101951, 140), +(101951, 141), +(101953, 137), +(101953, 138), +(101953, 140), +(101953, 141), +(101955, 137), +(101955, 138), +(101955, 140), +(101955, 141), +(101956, 137), +(101956, 138), +(101956, 140), +(101956, 141), +(101958, 137), +(101958, 138), +(101958, 140), +(101958, 141), +(101959, 137), +(101959, 138), +(101959, 140), +(101959, 141), +(101960, 137), +(101960, 138), +(101960, 140), +(101960, 141), +(101961, 137), +(101961, 138), +(101961, 140), +(101961, 141), +(101962, 137), +(101962, 138), +(101962, 140), +(101962, 141), +(101963, 137), +(101963, 138), +(101963, 139), +(101963, 140), +(101963, 141), +(101964, 137), +(101964, 138), +(101964, 139), +(101964, 140), +(101964, 141), +(101965, 137), +(101965, 138), +(101965, 139), +(101965, 140), +(101965, 141), +(101967, 137), +(101967, 138), +(101967, 139), +(101967, 140), +(101967, 141), +(101968, 137), +(101968, 138), +(101968, 139), +(101968, 140), +(101968, 141), +(101969, 137), +(101969, 138), +(101969, 139), +(101969, 140), +(101969, 141), +(101970, 137), +(101970, 138), +(101970, 139), +(101970, 140), +(101970, 141), +(101971, 138), +(101975, 138), +(101975, 140), +(101977, 138), +(101977, 140), +(101981, 138), +(101981, 140), +(101983, 138), +(101983, 140), +(101984, 138), +(101984, 140), +(101985, 138), +(101985, 140), +(101986, 138), +(101986, 140), +(101988, 138), +(101988, 140), +(101991, 138), +(101991, 140), +(101993, 138), +(101993, 140), +(101996, 138), +(101996, 140), +(101997, 138), +(101997, 140), +(102002, 138), +(102002, 140), +(102003, 138), +(102003, 140), +(102005, 138), +(102005, 140), +(102006, 138), +(102006, 140), +(102007, 138), +(102007, 140), +(102009, 138), +(102009, 140), +(102010, 138), +(102010, 140), +(102011, 138), +(102011, 140), +(102012, 138), +(102012, 140), +(102013, 138), +(102013, 140), +(102015, 138), +(102015, 140), +(102018, 138), +(102018, 140), +(102019, 138), +(102019, 140), +(102019, 141), +(102020, 138), +(102020, 140), +(102020, 141), +(102021, 138), +(102021, 140), +(102021, 141), +(102022, 138), +(102022, 140), +(102022, 141), +(102024, 138), +(102024, 140), +(102024, 141), +(102025, 138), +(102025, 140), +(102025, 141), +(102026, 138), +(102026, 140), +(102026, 141), +(102027, 138), +(102027, 140), +(102027, 141), +(102028, 138), +(102028, 140), +(102028, 141), +(102029, 138), +(102029, 140), +(102029, 141), +(102030, 138), +(102030, 140), +(102030, 141), +(102031, 138), +(102031, 140), +(102031, 141), +(102032, 138), +(102032, 140), +(102032, 141), +(102033, 138), +(102033, 140), +(102033, 141), +(102034, 138), +(102034, 140), +(102034, 141), +(102035, 138), +(102035, 140), +(102035, 141), +(102036, 138), +(102036, 140), +(102036, 141), +(102037, 138), +(102037, 140), +(102037, 141), +(102038, 138), +(102038, 140), +(102038, 141), +(102039, 138), +(102039, 140), +(102039, 141), +(102040, 138), +(102040, 140), +(102040, 141), +(102041, 139), +(102042, 139), +(102044, 139), +(102045, 140), +(102046, 140), +(102048, 140), +(102053, 140), +(102056, 140), +(102057, 140), +(102058, 140), +(102060, 140), +(102061, 140), +(102062, 140), +(102063, 140), +(102065, 140), +(102066, 140), +(102067, 140), +(102068, 140), +(102069, 140), +(102070, 140), +(102071, 140), +(102072, 140), +(102073, 140), +(102074, 140), +(102075, 140), +(102076, 142), +(102077, 142), +(102078, 142), +(104094, 143), +(104100, 143), +(104102, 143), +(104105, 143), +(104106, 143), +(104107, 143), +(104108, 143), +(104109, 143), +(104113, 143), +(104115, 143), +(104115, 144), +(104116, 143), +(104116, 144), +(104117, 143), +(104117, 144), +(104118, 143), +(104118, 144), +(104119, 143), +(104120, 143), +(104126, 143), +(104131, 143), +(104133, 143), +(104134, 143), +(104136, 143), +(104136, 144), +(104137, 143), +(104137, 144), +(104138, 143), +(104138, 144), +(104139, 143), +(104139, 144), +(104141, 143), +(104141, 144), +(104143, 143), +(104143, 144), +(104144, 143), +(104144, 144), +(104145, 143), +(104145, 144), +(104146, 143), +(104146, 144), +(104149, 143), +(104149, 144), +(104150, 143), +(104150, 144), +(104152, 143), +(104152, 144), +(104153, 143), +(104153, 144), +(104154, 143), +(104154, 144), +(104156, 143), +(104156, 144), +(104157, 143), +(104157, 144), +(104158, 143), +(104158, 144), +(104159, 143), +(104159, 144), +(104161, 143), +(104161, 144), +(104162, 143), +(104162, 144), +(104163, 143), +(104163, 144), +(104164, 143), +(104164, 144), +(104165, 143), +(104165, 144), +(104166, 143), +(104166, 144), +(104167, 143), +(104167, 144), +(104169, 143), +(104169, 144), +(104171, 143), +(104171, 144), +(104172, 143), +(104172, 144), +(104173, 143), +(104173, 144), +(104175, 143), +(104175, 144), +(104177, 143), +(104177, 144), +(104179, 143), +(104179, 144), +(104181, 143), +(104181, 144), +(104182, 143), +(104182, 144), +(104183, 143), +(104183, 144), +(104184, 143), +(104184, 144), +(104186, 143), +(104186, 144), +(104187, 143), +(104187, 144), +(104188, 143), +(104188, 144), +(104189, 143), +(104189, 144), +(104190, 143), +(104190, 144), +(104191, 143), +(104191, 144), +(104192, 143), +(104192, 144), +(104193, 143), +(104193, 144), +(104194, 143), +(104194, 144), +(104195, 143), +(104195, 144), +(104196, 143), +(104196, 144), +(104197, 143), +(104197, 144), +(104198, 143), +(104198, 144), +(104200, 143), +(104200, 144), +(104201, 143), +(104201, 144), +(104202, 143), +(104202, 144), +(104204, 143), +(104204, 144), +(104205, 143), +(104205, 144), +(104206, 143), +(104206, 144), +(104207, 143), +(104207, 144), +(104208, 143), +(104208, 144), +(104209, 143), +(104209, 144), +(104210, 143), +(104210, 144), +(104211, 143), +(104211, 144), +(104212, 143), +(104212, 144), +(104213, 143), +(104213, 144), +(104214, 143), +(104214, 144), +(104215, 143), +(104215, 144), +(104217, 143), +(104217, 144), +(104218, 143), +(104218, 144), +(104219, 143), +(104219, 144), +(104220, 143), +(104220, 144), +(104221, 143), +(104221, 144), +(104222, 143), +(104222, 144), +(104223, 143), +(104223, 144), +(104224, 143), +(104224, 144), +(104225, 143), +(104225, 144), +(104226, 143), +(104226, 144), +(104227, 143), +(104227, 144), +(104228, 143), +(104228, 144), +(104229, 143), +(104229, 144), +(104230, 143), +(104230, 144), +(104231, 143), +(104231, 144), +(104232, 143), +(104232, 144), +(104233, 143), +(104233, 144), +(104234, 143), +(104234, 144), +(104235, 143), +(104235, 144), +(104236, 143), +(104236, 144), +(104237, 143), +(104237, 144), +(104238, 143), +(104238, 144), +(104239, 143), +(104239, 144), +(104240, 143), +(104240, 144), +(104241, 143), +(104241, 144), +(104242, 143), +(104242, 144), +(104243, 143), +(104243, 144), +(104245, 143), +(104245, 144), +(104246, 143), +(104246, 144), +(104247, 143), +(104247, 144), +(104248, 143), +(104248, 144), +(104249, 143), +(104249, 144), +(104250, 143), +(104250, 144), +(104251, 143), +(104251, 144), +(104252, 143), +(104252, 144), +(104253, 143), +(104253, 144), +(104254, 143), +(104254, 144), +(104255, 143), +(104255, 144), +(104256, 143), +(104256, 144), +(104257, 143), +(104257, 144), +(104258, 143), +(104258, 144), +(104259, 143), +(104259, 144), +(104260, 143), +(104260, 144), +(104261, 143), +(104261, 144), +(104262, 143), +(104262, 144), +(104263, 143), +(104263, 144), +(104264, 143), +(104264, 144), +(104265, 145), +(104266, 145), +(104267, 145), +(104268, 144), +(104270, 144), +(104271, 144), +(104276, 144), +(104277, 144), +(104278, 144), +(104279, 144), +(104280, 144), +(104281, 144), +(104282, 144), +(104283, 144), +(104284, 144), +(104288, 144), +(104289, 144), +(104290, 144), +(104291, 144), +(104292, 144), +(104293, 144), +(104294, 144), +(104295, 144), +(104298, 144), +(104300, 144), +(104301, 144), +(104302, 144), +(104303, 144), +(104304, 144), +(104306, 144), +(104307, 144), +(104308, 144), +(104309, 144), +(104310, 144), +(104311, 144), +(104313, 144), +(104314, 144), +(104315, 144), +(104318, 144), +(104319, 144), +(104321, 144), +(104322, 144), +(104325, 144), +(104326, 144), +(104327, 144), +(104332, 144), +(104333, 144), +(104334, 144), +(104335, 144), +(104337, 144), +(104338, 144), +(104339, 144), +(104344, 144), +(104345, 144), +(104346, 144), +(104347, 144), +(104348, 144), +(104349, 144), +(104350, 144), +(104351, 144), +(104352, 144), +(104353, 144), +(104354, 144), +(104355, 144), +(104356, 144), +(104357, 144), +(104358, 144), +(104359, 144), +(104360, 144), +(104361, 144), +(104362, 144), +(104363, 144), +(104364, 144), +(104365, 144), +(104366, 144), +(104367, 144), +(104368, 144), +(104370, 144), +(104371, 144), +(104372, 144), +(104373, 144), +(104374, 144), +(104375, 144), +(104376, 144), +(104377, 144), +(104378, 144), +(104379, 144), +(104380, 144), +(104381, 144), +(104382, 144), +(104383, 144), +(104384, 144), +(104385, 144), +(104386, 144), +(104387, 144), +(104388, 144), +(104389, 144), +(104390, 144), +(104391, 144), +(104392, 144), +(104393, 144), +(104394, 144), +(104395, 144), +(104396, 144), +(104397, 144), +(104398, 144), +(104399, 144), +(104400, 144), +(104401, 144), +(104402, 144), +(104403, 144), +(104404, 144), +(104405, 144), +(104406, 144), +(104407, 144), +(104408, 144), +(104409, 144), +(104410, 144), +(104411, 144), +(104412, 144), +(104413, 144), +(104414, 144), +(104415, 144), +(104416, 144), +(104417, 144), +(104418, 144), +(104419, 144), +(104420, 144), +(104421, 144), +(104422, 144), +(104424, 144), +(104425, 144), +(104426, 144), +(104427, 144), +(104428, 144), +(104430, 144), +(104431, 144); + +-- +-- Dumping data for table `configuration_change` +-- + +INSERT INTO `configuration_change` (`configurationId`, `changeId`) VALUES +(1, 1), +(3, 2), +(4, 3), +(4, 4), +(4, 5), +(4, 6), +(4, 7), +(4, 8), +(4, 9), +(4, 10), +(4, 11), +(4, 12), +(4, 13), +(4, 14), +(4, 15), +(4, 16), +(4, 17), +(4, 18), +(4, 19), +(4, 20), +(4, 21), +(4, 22), +(4, 23), +(4, 24), +(4, 25), +(4, 26), +(4, 27), +(4, 28), +(4, 29), +(4, 30), +(4, 31), +(4, 32), +(4, 33), +(4, 34), +(4, 35), +(4, 36), +(4, 37), +(4, 38), +(4, 39), +(4, 40), +(4, 41), +(4, 42), +(4, 43), +(4, 44), +(4, 45), +(4, 46), +(4, 47), +(4, 48), +(4, 49), +(4, 50), +(4, 51), +(4, 52), +(4, 53), +(4, 54), +(4, 55), +(4, 56), +(4, 57), +(4, 58), +(4, 59), +(4, 60), +(4, 61), +(4, 62), +(4, 63), +(4, 64), +(4, 65), +(4, 66), +(4, 67), +(6, 68), +(8, 69), +(8, 70), +(8, 71), +(8, 72), +(8, 73), +(8, 74), +(8, 75), +(8, 76), +(8, 77), +(17, 78), +(17, 79), +(17, 80), +(17, 81), +(17, 82), +(17, 83), +(17, 84), +(17, 85), +(17, 86), +(17, 87), +(25, 100), +(25, 101), +(25, 102), +(25, 103), +(25, 104), +(25, 105), +(25, 106), +(25, 107), +(25, 108), +(25, 109), +(25, 110), +(25, 111), +(25, 112), +(25, 113), +(25, 114), +(29, 88), +(29, 89), +(29, 90), +(29, 91), +(29, 92), +(29, 93), +(29, 94), +(29, 95), +(29, 96), +(30, 97), +(30, 98), +(31, 99), +(32, 115), +(32, 116), +(32, 117), +(32, 118), +(32, 119), +(33, 120), +(34, 132), +(34, 133), +(34, 134), +(34, 135), +(34, 136), +(34, 137), +(34, 138), +(34, 139), +(34, 140), +(34, 141), +(37, 121), +(37, 122), +(37, 123), +(37, 124), +(37, 125), +(37, 126), +(37, 127), +(37, 128), +(37, 129), +(37, 130), +(42, 131), +(43, 142), +(45, 159), +(45, 160), +(45, 161), +(45, 162), +(45, 163), +(45, 164), +(45, 165), +(45, 166), +(45, 167), +(45, 168), +(45, 169), +(45, 170), +(45, 171), +(45, 172), +(45, 173), +(45, 174), +(47, 143), +(47, 144), +(47, 145), +(47, 146), +(47, 147), +(47, 148), +(47, 149), +(47, 150), +(47, 151), +(47, 152), +(47, 153), +(47, 154), +(47, 155), +(47, 156), +(47, 157), +(47, 158), +(61, 15224), +(63, 175), +(63, 176), +(63, 177), +(65, 178), +(65, 179), +(65, 180), +(65, 181), +(65, 182), +(65, 183), +(65, 184), +(65, 185), +(65, 186), +(65, 187), +(65, 188), +(65, 189), +(65, 190), +(65, 191), +(65, 192), +(65, 193), +(65, 194), +(65, 195), +(65, 196), +(65, 197), +(65, 198), +(65, 199), +(65, 200), +(65, 201), +(65, 202), +(65, 203), +(65, 204), +(65, 205), +(65, 206), +(65, 207), +(65, 208), +(65, 209), +(65, 210), +(65, 211), +(65, 212), +(65, 213), +(65, 214), +(65, 215), +(65, 216), +(65, 217), +(65, 218), +(65, 219), +(65, 220), +(65, 221), +(65, 222), +(65, 223), +(65, 224), +(65, 225), +(65, 226), +(65, 227), +(65, 228), +(65, 229), +(65, 230), +(65, 231), +(65, 232), +(65, 233), +(65, 234), +(65, 235), +(65, 236), +(65, 237), +(65, 238), +(65, 239), +(65, 240), +(65, 241), +(65, 242), +(65, 243), +(65, 244), +(65, 245), +(65, 246), +(65, 247), +(65, 248), +(65, 249), +(65, 250), +(65, 251), +(65, 252), +(65, 253), +(65, 254), +(65, 255), +(65, 256), +(65, 257), +(65, 258), +(65, 259), +(65, 260), +(65, 261), +(65, 262), +(65, 263), +(65, 264), +(65, 265), +(65, 266), +(65, 267), +(65, 268), +(65, 269), +(65, 270), +(65, 271), +(65, 272), +(65, 273), +(65, 274), +(65, 275), +(65, 276), +(65, 277), +(65, 278), +(65, 279), +(65, 280), +(65, 281), +(65, 282), +(65, 283), +(65, 284), +(65, 285), +(65, 286), +(65, 287), +(65, 288), +(65, 289), +(65, 290), +(65, 291), +(65, 292), +(65, 293), +(65, 294), +(65, 295), +(65, 296), +(65, 297), +(65, 298), +(65, 299), +(65, 300), +(65, 301), +(65, 302), +(65, 303), +(65, 304), +(65, 305), +(65, 306), +(65, 307), +(65, 308), +(65, 309), +(65, 310), +(65, 311), +(65, 312), +(65, 313), +(65, 314), +(65, 315), +(65, 316), +(65, 317), +(65, 318), +(65, 319), +(65, 320), +(65, 321), +(65, 322), +(65, 323), +(65, 324), +(65, 325), +(65, 326), +(65, 327), +(65, 328), +(65, 329), +(65, 330), +(65, 331), +(65, 332), +(65, 333), +(65, 334), +(65, 335), +(65, 336), +(65, 337), +(65, 338), +(65, 339), +(65, 340), +(65, 341), +(65, 342), +(65, 343), +(65, 344), +(65, 345), +(65, 346), +(65, 347), +(65, 348), +(65, 349), +(65, 350), +(65, 351), +(65, 352), +(65, 353), +(65, 354), +(65, 355), +(65, 356), +(65, 357), +(65, 358), +(65, 359), +(65, 360), +(65, 361), +(65, 362), +(65, 363), +(65, 364), +(65, 365), +(65, 366), +(65, 367), +(65, 368), +(65, 369), +(65, 370), +(65, 371), +(65, 372), +(65, 373), +(65, 374), +(65, 375), +(65, 376), +(65, 377), +(65, 378), +(65, 379), +(65, 380), +(65, 381), +(65, 382), +(65, 383), +(65, 384), +(65, 385), +(65, 386), +(65, 387), +(65, 388), +(65, 389), +(65, 390), +(65, 391), +(65, 392), +(65, 393), +(65, 394), +(65, 395), +(65, 396), +(65, 397), +(65, 398), +(65, 399), +(65, 400), +(65, 401), +(65, 402), +(65, 403), +(65, 404), +(65, 405), +(65, 406), +(65, 407), +(65, 408), +(65, 409), +(65, 410), +(65, 411), +(65, 412), +(65, 413), +(65, 414), +(65, 415), +(65, 416), +(65, 417), +(65, 418), +(65, 419), +(65, 420), +(65, 421), +(65, 422), +(65, 423), +(65, 424), +(65, 425), +(65, 426), +(65, 427), +(65, 428), +(65, 429), +(65, 430), +(65, 431), +(65, 432), +(65, 433), +(65, 434), +(65, 435), +(65, 436), +(65, 437), +(65, 438), +(65, 439), +(65, 440), +(65, 441), +(65, 442), +(65, 443), +(65, 444), +(65, 445), +(65, 446), +(65, 447), +(65, 448), +(65, 449), +(65, 450), +(65, 451), +(65, 452), +(65, 453), +(65, 454), +(65, 455), +(65, 456), +(65, 457), +(65, 458), +(65, 459), +(65, 460), +(65, 461), +(65, 462), +(65, 463), +(65, 464), +(65, 465), +(65, 466), +(65, 467), +(65, 468), +(65, 469), +(65, 470), +(65, 471), +(65, 472), +(65, 473), +(65, 474), +(65, 475), +(65, 476), +(65, 477), +(65, 478), +(65, 479), +(65, 480), +(65, 481), +(65, 482), +(65, 483), +(65, 484), +(65, 485), +(65, 486), +(65, 487), +(65, 488), +(65, 489), +(65, 490), +(65, 491), +(65, 492), +(65, 493), +(65, 494), +(65, 495), +(65, 496), +(65, 497), +(65, 498), +(65, 499), +(65, 500), +(65, 501), +(65, 502), +(65, 503), +(65, 504), +(65, 505), +(65, 506), +(65, 507), +(65, 508), +(65, 509), +(65, 510), +(65, 511), +(65, 512), +(65, 513), +(65, 514), +(65, 515), +(65, 516), +(65, 517), +(65, 518), +(65, 519), +(65, 520), +(65, 521), +(65, 522), +(65, 523), +(65, 524), +(65, 525), +(65, 526), +(65, 527), +(65, 528), +(65, 529), +(65, 530), +(65, 531), +(65, 532), +(65, 533), +(65, 534), +(65, 535), +(65, 536), +(65, 537), +(65, 538), +(65, 539), +(65, 540), +(65, 541), +(65, 542), +(65, 543), +(65, 544), +(65, 545), +(65, 546), +(65, 547), +(65, 548), +(65, 549), +(65, 550), +(65, 551), +(65, 552), +(65, 553), +(65, 554), +(65, 555), +(65, 556), +(65, 557), +(65, 558), +(65, 559), +(65, 560), +(65, 561), +(65, 562), +(65, 563), +(65, 564), +(65, 565), +(65, 566), +(65, 567), +(65, 568), +(65, 569), +(65, 570), +(65, 571), +(65, 572), +(65, 573), +(65, 574), +(65, 575), +(65, 576), +(65, 577), +(65, 578), +(65, 579), +(65, 580), +(65, 581), +(65, 582), +(65, 583), +(65, 584), +(65, 585), +(65, 586), +(65, 587), +(65, 588), +(65, 589), +(65, 590), +(65, 591), +(65, 592), +(65, 593), +(65, 594), +(65, 595), +(65, 596), +(65, 597), +(65, 598), +(65, 599), +(65, 600), +(65, 601), +(65, 602), +(65, 603), +(65, 604), +(65, 605), +(65, 606), +(65, 607), +(65, 608), +(65, 609), +(65, 610), +(65, 611), +(65, 612), +(65, 613), +(65, 614), +(65, 615), +(65, 616), +(65, 617), +(65, 618), +(65, 619), +(65, 620), +(65, 621), +(65, 622), +(65, 623), +(65, 624), +(65, 625), +(65, 626), +(65, 627), +(65, 628), +(65, 629), +(65, 630), +(65, 631), +(65, 632), +(65, 633), +(65, 634), +(65, 635), +(65, 636), +(65, 637), +(65, 638), +(65, 639), +(65, 640), +(65, 641), +(65, 642), +(65, 643), +(65, 644), +(65, 645), +(65, 646), +(65, 647), +(65, 648), +(65, 649), +(65, 650), +(65, 651), +(65, 652), +(65, 653), +(65, 654), +(65, 655), +(65, 656), +(65, 657), +(65, 658), +(65, 659), +(65, 660), +(65, 661), +(65, 662), +(65, 663), +(65, 664), +(65, 665), +(65, 666), +(65, 667), +(65, 668), +(65, 669), +(65, 670), +(65, 671), +(65, 672), +(65, 673), +(65, 674), +(65, 675), +(65, 676), +(65, 677), +(65, 678), +(65, 679), +(65, 680), +(65, 681), +(65, 682), +(65, 683), +(65, 684), +(65, 685), +(65, 686), +(65, 687), +(65, 688), +(65, 689), +(65, 690), +(65, 691), +(65, 692), +(65, 693), +(65, 694), +(65, 695), +(65, 696), +(65, 697), +(65, 698), +(65, 699), +(65, 700), +(65, 701), +(65, 702), +(65, 703), +(65, 704), +(65, 705), +(65, 706), +(65, 707), +(65, 708), +(65, 709), +(65, 710), +(65, 711), +(65, 712), +(65, 713), +(65, 714), +(65, 715), +(65, 716), +(65, 717), +(65, 718), +(65, 719), +(65, 720), +(65, 721), +(65, 722), +(65, 723), +(65, 724), +(65, 725), +(65, 726), +(65, 727), +(65, 728), +(65, 729), +(65, 730), +(65, 731), +(65, 732), +(65, 733), +(65, 734), +(65, 735), +(65, 736), +(65, 737), +(65, 738), +(65, 739), +(65, 740), +(65, 741), +(65, 742), +(65, 743), +(65, 744), +(65, 745), +(65, 746), +(65, 747), +(65, 748), +(65, 749), +(65, 750), +(65, 751), +(65, 752), +(65, 753), +(65, 754), +(65, 755), +(65, 756), +(65, 757), +(65, 758), +(65, 759), +(65, 760), +(65, 761), +(65, 762), +(65, 763), +(65, 764), +(65, 765), +(65, 766), +(65, 767), +(65, 768), +(65, 769), +(65, 770), +(65, 771), +(65, 772), +(65, 773), +(65, 774), +(65, 775), +(65, 776), +(65, 777), +(65, 778), +(65, 779), +(65, 780), +(65, 781), +(65, 782), +(65, 783), +(65, 784), +(65, 785), +(65, 786), +(65, 787), +(65, 788), +(65, 789), +(65, 790), +(65, 791), +(65, 792), +(65, 793), +(65, 794), +(65, 795), +(65, 796), +(65, 797), +(65, 798), +(65, 799), +(65, 800), +(65, 801), +(65, 802), +(65, 803), +(65, 804), +(65, 805), +(65, 806), +(65, 807), +(65, 808), +(65, 809), +(65, 810), +(65, 811), +(65, 812), +(65, 813), +(65, 814), +(65, 815), +(65, 816), +(65, 817), +(65, 818), +(65, 819), +(65, 820), +(65, 821), +(65, 822), +(65, 823), +(65, 824), +(65, 825), +(65, 826), +(65, 827), +(65, 828), +(65, 829), +(65, 830), +(65, 831), +(65, 832), +(65, 833), +(65, 834), +(65, 835), +(65, 836), +(65, 837), +(65, 838), +(65, 839), +(65, 840), +(65, 841), +(65, 842), +(65, 843), +(65, 844), +(65, 845), +(65, 846), +(65, 847), +(65, 848), +(65, 849), +(65, 850), +(65, 851), +(65, 852), +(65, 853), +(65, 854), +(65, 855), +(65, 856), +(65, 857), +(65, 858), +(65, 859), +(65, 860), +(65, 861), +(65, 862), +(65, 863), +(65, 864), +(65, 865), +(65, 866), +(65, 867), +(65, 868), +(65, 869), +(65, 870), +(65, 871), +(65, 872), +(65, 873), +(65, 874), +(65, 875), +(65, 876), +(65, 877), +(65, 878), +(65, 879), +(65, 880), +(65, 881), +(65, 882), +(65, 883), +(65, 884), +(65, 885), +(65, 886), +(65, 887), +(65, 888), +(65, 889), +(65, 890), +(65, 891), +(65, 892), +(65, 893), +(65, 894), +(65, 895), +(65, 896), +(65, 897), +(65, 898), +(65, 899), +(65, 900), +(65, 901), +(65, 902), +(65, 903), +(65, 904), +(65, 905), +(65, 906), +(65, 907), +(65, 908), +(65, 909), +(65, 910), +(65, 911), +(65, 912), +(65, 913), +(65, 914), +(65, 915), +(65, 916), +(65, 917), +(65, 918), +(65, 919), +(65, 920), +(65, 921), +(65, 922), +(65, 923), +(65, 924), +(65, 925), +(65, 926), +(65, 927), +(65, 928), +(65, 929), +(65, 930), +(65, 931), +(65, 932), +(65, 933), +(65, 934), +(65, 935), +(65, 936), +(65, 937), +(65, 938), +(65, 939), +(65, 940), +(65, 941), +(65, 942), +(65, 943), +(65, 944), +(65, 945), +(65, 946), +(65, 947), +(65, 948), +(65, 949), +(65, 950), +(65, 951), +(65, 952), +(65, 953), +(65, 954), +(65, 955), +(65, 956), +(65, 957), +(65, 958), +(65, 959), +(65, 960), +(65, 961), +(65, 962), +(65, 963), +(65, 964), +(65, 965), +(65, 966), +(65, 967), +(65, 968), +(65, 969), +(65, 970), +(65, 971), +(65, 972), +(65, 973), +(65, 974), +(65, 975), +(65, 976), +(65, 977), +(65, 978), +(65, 979), +(65, 980), +(65, 981), +(65, 982), +(65, 983), +(65, 984), +(65, 985), +(65, 986), +(65, 987), +(65, 988), +(65, 989), +(65, 990), +(65, 991), +(65, 992), +(65, 993), +(65, 994), +(65, 995), +(65, 996), +(65, 997), +(65, 998), +(65, 999), +(65, 1000), +(65, 1001), +(65, 1002), +(65, 1003), +(65, 1004), +(65, 1005), +(65, 1006), +(65, 1007), +(65, 1008), +(65, 1009), +(65, 1010), +(65, 1011), +(65, 1012), +(65, 1013), +(65, 1014), +(65, 1015), +(65, 1016), +(65, 1017), +(65, 1018), +(65, 1019), +(65, 1020), +(65, 1021), +(65, 1022), +(65, 1023), +(65, 1024), +(65, 1025), +(65, 1026), +(65, 1027), +(65, 1028), +(65, 1029), +(65, 1030), +(65, 1031), +(65, 1032), +(65, 1033), +(65, 1034), +(65, 1035), +(65, 1036), +(65, 1037), +(65, 1038), +(65, 1039), +(65, 1040), +(65, 1041), +(65, 1042), +(65, 1043), +(65, 1044), +(65, 1045), +(65, 1046), +(65, 1047), +(65, 1048), +(65, 1049), +(65, 1050), +(65, 1051), +(65, 1052), +(65, 1053), +(65, 1054), +(65, 1055), +(65, 1056), +(65, 1057), +(65, 1058), +(65, 1059), +(65, 1060), +(65, 1061), +(65, 1062), +(65, 1063), +(65, 1064), +(65, 1065), +(65, 1066), +(65, 1067), +(65, 1068), +(65, 1069), +(65, 1070), +(65, 1071), +(65, 1072), +(65, 1073), +(65, 1074), +(65, 1075), +(65, 1076), +(65, 1077), +(65, 1078), +(65, 1079), +(65, 1080), +(65, 1081), +(65, 1082), +(65, 1083), +(65, 1084), +(65, 1085), +(65, 1086), +(65, 1087), +(65, 1088), +(65, 1089), +(65, 1090), +(65, 1091), +(65, 1092), +(65, 1093), +(65, 1094), +(65, 1095), +(65, 1096), +(65, 1097), +(65, 1098), +(65, 1099), +(65, 1100), +(65, 1101), +(65, 1102), +(65, 1103), +(65, 1104), +(65, 1105), +(65, 1106), +(65, 1107), +(65, 1108), +(65, 1109), +(65, 1110), +(65, 1111), +(65, 1112), +(65, 1113), +(65, 1114), +(65, 1115), +(65, 1116), +(65, 1117), +(65, 1118), +(65, 1119), +(65, 1120), +(65, 1121), +(65, 1122), +(65, 1123), +(65, 1124), +(65, 1125), +(65, 1126), +(65, 1127), +(65, 1128), +(65, 1129), +(65, 1130), +(65, 1131), +(65, 1132), +(65, 1133), +(65, 1134), +(65, 1135), +(65, 1136), +(65, 1137), +(65, 1138), +(65, 1139), +(65, 1140), +(65, 1141), +(65, 1142), +(65, 1143), +(65, 1144), +(65, 1145), +(65, 1146), +(65, 1147), +(65, 1148), +(65, 1149), +(65, 1150), +(65, 1151), +(65, 1152), +(65, 1153), +(65, 1154), +(65, 1155), +(65, 1156), +(65, 1157), +(65, 1158), +(65, 1159), +(65, 1160), +(65, 1161), +(65, 1162), +(65, 1163), +(65, 1164), +(65, 1165), +(65, 1166), +(65, 1167), +(65, 1168), +(65, 1169), +(65, 1170), +(65, 1171), +(65, 1172), +(65, 1173), +(65, 1174), +(65, 1175), +(65, 1176), +(65, 1177), +(65, 1178), +(65, 1179), +(65, 1180), +(65, 1181), +(65, 1182), +(65, 1183), +(65, 1184), +(65, 1185), +(65, 1186), +(65, 1187), +(65, 1188), +(65, 1189), +(65, 1190), +(65, 1191), +(65, 1192), +(65, 1193), +(65, 1194), +(65, 1195), +(65, 1196), +(65, 1197), +(65, 1198), +(65, 1199), +(65, 1200), +(65, 1201), +(65, 1202), +(65, 1203), +(65, 1204), +(65, 1205), +(65, 1206), +(65, 1207), +(65, 1208), +(65, 1209), +(65, 1210), +(65, 1211), +(65, 1212), +(65, 1213), +(65, 1214), +(65, 1215), +(65, 1216), +(65, 1217), +(65, 1218), +(65, 1219), +(65, 1220), +(65, 1221), +(65, 1222), +(65, 1223), +(65, 1224), +(65, 1225), +(65, 1226), +(65, 1227), +(65, 1228), +(65, 1229), +(65, 1230), +(65, 1231), +(65, 1232), +(65, 1233), +(65, 1234), +(65, 1235), +(65, 1236), +(65, 1237), +(65, 1238), +(65, 1239), +(65, 1240), +(65, 1241), +(65, 1242), +(65, 1243), +(65, 1244), +(65, 1245), +(65, 1246), +(65, 1247), +(65, 1248), +(65, 1249), +(65, 1250), +(65, 1251), +(65, 1252), +(65, 1253), +(65, 1254), +(65, 1255), +(65, 1256), +(65, 1257), +(65, 1258), +(65, 1259), +(65, 1260), +(65, 1261), +(65, 1262), +(65, 1263), +(65, 1264), +(65, 1265), +(65, 1266), +(65, 1267), +(65, 1268), +(65, 1269), +(65, 1270), +(65, 1271), +(65, 1272), +(65, 1273), +(65, 1274), +(65, 1275), +(65, 1276), +(65, 1277), +(65, 1278), +(65, 1279), +(65, 1280), +(65, 1281), +(65, 1282), +(65, 1283), +(65, 1284), +(65, 1285), +(65, 1286), +(65, 1287), +(65, 1288), +(65, 1289), +(65, 1290), +(65, 1291), +(65, 1292), +(65, 1293), +(65, 1294), +(65, 1295), +(65, 1296), +(65, 1297), +(65, 1298), +(65, 1299), +(65, 1300), +(65, 1301), +(65, 1302), +(65, 1303), +(65, 1304), +(65, 1305), +(65, 1306), +(65, 1307), +(65, 1308), +(65, 1309), +(65, 1310), +(65, 1311), +(65, 1312), +(65, 1313), +(65, 1314), +(65, 1315), +(65, 1316), +(65, 1317), +(65, 1318), +(65, 1319), +(65, 1320), +(65, 1321), +(65, 1322), +(65, 1323), +(65, 1324), +(65, 1325), +(65, 1326), +(65, 1327), +(65, 1328), +(65, 1329), +(65, 1330), +(65, 1331), +(65, 1332), +(65, 1333), +(65, 1334), +(65, 1335), +(65, 1336), +(65, 1337), +(65, 1338), +(65, 1339), +(65, 1340), +(65, 1341), +(65, 1342), +(65, 1343), +(65, 1344), +(65, 1345), +(65, 1346), +(65, 1347), +(65, 1348), +(65, 1349), +(65, 1350), +(65, 1351), +(65, 1352), +(65, 1353), +(65, 1354), +(65, 1355), +(65, 1356), +(65, 1357), +(65, 1358), +(65, 1359), +(65, 1360), +(65, 1361), +(65, 1362), +(65, 1363), +(65, 1364), +(65, 1365), +(65, 1366), +(65, 1367), +(65, 1368), +(65, 1369), +(65, 1370), +(65, 1371), +(65, 1372), +(65, 1373), +(65, 1374), +(65, 1375), +(65, 1376), +(65, 1377), +(65, 1378), +(65, 1379), +(65, 1380), +(65, 1381), +(65, 1382), +(65, 1383), +(65, 1384), +(65, 1385), +(65, 1386), +(65, 1387), +(65, 1388), +(65, 1389), +(65, 1390), +(65, 1391), +(65, 1392), +(65, 1393), +(65, 1394), +(65, 1395), +(65, 1396), +(65, 1397), +(65, 1398), +(65, 1399), +(65, 1400), +(65, 1401), +(65, 1402), +(65, 1403), +(65, 1404), +(65, 1405), +(65, 1406), +(65, 1407), +(65, 1408), +(65, 1409), +(65, 1410), +(65, 1411), +(65, 1412), +(65, 1413), +(65, 1414), +(65, 1415), +(65, 1416), +(65, 1417), +(65, 1418), +(65, 1419), +(65, 1420), +(65, 1421), +(65, 1422), +(65, 1423), +(65, 1424), +(65, 1425), +(65, 1426), +(65, 1427), +(65, 1428), +(65, 1429), +(65, 1430), +(65, 1431), +(65, 1432), +(65, 1433), +(65, 1434), +(65, 1435), +(65, 1436), +(65, 1437), +(65, 1438), +(65, 1439), +(65, 1440), +(65, 1441), +(65, 1442), +(65, 1443), +(65, 1444), +(65, 1445), +(65, 1446), +(65, 1447), +(65, 1448), +(65, 1449), +(65, 1450), +(65, 1451), +(65, 1452), +(65, 1453), +(65, 1454), +(65, 1455), +(65, 1456), +(65, 1457), +(65, 1458), +(65, 1459), +(65, 1460), +(65, 1461), +(65, 1462), +(65, 1463), +(65, 1464), +(65, 1465), +(65, 1466), +(65, 1467), +(65, 1468), +(65, 1469), +(65, 1470), +(65, 1471), +(65, 1472), +(65, 1473), +(65, 1474), +(65, 1475), +(65, 1476), +(65, 1477), +(65, 1478), +(65, 1479), +(65, 1480), +(65, 1481), +(65, 1482), +(65, 1483), +(65, 1484), +(65, 1485), +(65, 1486), +(65, 1487), +(65, 1488), +(65, 1489), +(65, 1490), +(65, 1491), +(65, 1492), +(65, 1493), +(65, 1494), +(65, 1495), +(65, 1496), +(65, 1497), +(65, 1498), +(65, 1499), +(65, 1500), +(65, 1501), +(65, 1502), +(65, 1503), +(65, 1504), +(65, 1505), +(65, 1506), +(65, 1507), +(65, 1508), +(65, 1509), +(65, 1510), +(65, 1511), +(65, 1512), +(65, 1513), +(65, 1514), +(65, 1515), +(65, 1516), +(65, 1517), +(65, 1518), +(65, 1519), +(65, 1520), +(65, 1521), +(65, 1522), +(65, 1523), +(65, 1524), +(65, 1525), +(65, 1526), +(65, 1527), +(65, 1528), +(65, 1529), +(65, 1530), +(65, 1531), +(65, 1532), +(65, 1533), +(65, 1534), +(65, 1535), +(65, 1536), +(65, 1537), +(65, 1538), +(65, 1539), +(65, 1540), +(65, 1541), +(65, 1542), +(65, 1543), +(65, 1544), +(65, 1545), +(65, 1546), +(65, 1547), +(65, 1548), +(65, 1549), +(65, 1550), +(65, 1551), +(65, 1552), +(65, 1553), +(65, 1554), +(65, 1555), +(65, 1556), +(65, 1557), +(65, 1558), +(65, 1559), +(65, 1560), +(65, 1561), +(65, 1562), +(65, 1563), +(65, 1564), +(65, 1565), +(65, 1566), +(65, 1567), +(65, 1568), +(65, 1569), +(65, 1570), +(65, 1571), +(65, 1572), +(65, 1573), +(65, 1574), +(65, 1575), +(65, 1576), +(65, 1577), +(65, 1578), +(65, 1579), +(65, 1580), +(65, 1581), +(65, 1582), +(65, 1583), +(65, 1584), +(65, 1585), +(65, 1586), +(65, 1587), +(65, 1588), +(65, 1589), +(65, 1590), +(65, 1591), +(65, 1592), +(65, 1593), +(65, 1594), +(65, 1595), +(65, 1596), +(65, 1597), +(65, 1598), +(65, 1599), +(65, 1600), +(65, 1601), +(65, 1602), +(65, 1603), +(65, 1604), +(65, 1605), +(65, 1606), +(65, 1607), +(65, 1608), +(65, 1609), +(65, 1610), +(65, 1611), +(65, 1612), +(65, 1613), +(65, 1614), +(65, 1615), +(65, 1616), +(65, 1617), +(65, 1618), +(65, 1619), +(65, 1620), +(65, 1621), +(65, 1622), +(65, 1623), +(65, 1624), +(65, 1625), +(65, 1626), +(65, 1627), +(65, 1628), +(65, 1629), +(65, 1630), +(65, 1631), +(65, 1632), +(65, 1633), +(65, 1634), +(65, 1635), +(65, 1636), +(65, 1637), +(65, 1638), +(65, 1639), +(65, 1640), +(65, 1641), +(65, 1642), +(65, 1643), +(65, 1644), +(65, 1645), +(65, 1646), +(65, 1647), +(65, 1648), +(65, 1649), +(65, 1650), +(65, 1651), +(65, 1652), +(65, 1653), +(65, 1654), +(65, 1655), +(65, 1656), +(65, 1657), +(65, 1658), +(65, 1659), +(65, 1660), +(65, 1661), +(65, 1662), +(65, 1663), +(65, 1664), +(65, 1665), +(65, 1666), +(65, 1667), +(65, 1668), +(65, 1669), +(65, 1670), +(65, 1671), +(65, 1672), +(65, 1673), +(65, 1674), +(65, 1675), +(65, 1676), +(65, 1677), +(65, 1678), +(65, 1679), +(65, 1680), +(65, 1681), +(65, 1682), +(65, 1683), +(65, 1684), +(65, 1685), +(65, 1686), +(65, 1687), +(65, 1688), +(65, 1689), +(65, 1690), +(65, 1691), +(65, 1692), +(65, 1693), +(65, 1694), +(65, 1695), +(65, 1696), +(65, 1697), +(65, 1698), +(65, 1699), +(65, 1700), +(65, 1701), +(65, 1702), +(65, 1703), +(65, 1704), +(65, 1705), +(65, 1706), +(65, 1707), +(65, 1708), +(65, 1709), +(65, 1710), +(65, 1711), +(65, 1712), +(65, 1713), +(65, 1714), +(65, 1715), +(65, 1716), +(65, 1717), +(65, 1718), +(65, 1719), +(65, 1720), +(65, 1721), +(65, 1722), +(65, 1723), +(65, 1724), +(65, 1725), +(65, 1726), +(65, 1727), +(65, 1728), +(65, 1729), +(65, 1730), +(65, 1731), +(65, 1732), +(65, 1733), +(65, 1734), +(65, 1735), +(65, 1736), +(65, 1737), +(65, 1738), +(65, 1739), +(65, 1740), +(65, 1741), +(65, 1742), +(65, 1743), +(65, 1744), +(65, 1745), +(65, 1746), +(65, 1747), +(65, 1748), +(65, 1749), +(65, 1750), +(65, 1751), +(65, 1752), +(65, 1753), +(65, 1754), +(65, 1755), +(65, 1756), +(65, 1757), +(65, 1758), +(65, 1759), +(65, 1760), +(65, 1761), +(65, 1762), +(65, 1763), +(65, 1764), +(65, 1765), +(65, 1766), +(65, 1767), +(65, 1768), +(65, 1769), +(65, 1770), +(65, 1771), +(65, 1772), +(65, 1773), +(65, 1774), +(65, 1775), +(65, 1776), +(65, 1777), +(65, 1778), +(65, 1779), +(65, 1780), +(65, 1781), +(65, 1782), +(65, 1783), +(65, 1784), +(65, 1785), +(65, 1786), +(65, 1787), +(65, 1788), +(65, 1789), +(65, 1790), +(65, 1791), +(65, 1792), +(65, 1793), +(65, 1794), +(65, 1795), +(65, 1796), +(65, 1797), +(65, 1798), +(65, 1799), +(65, 1800), +(65, 1801), +(65, 1802), +(65, 1803), +(65, 1804), +(65, 1805), +(65, 1806), +(65, 1807), +(65, 1808), +(65, 1809), +(65, 1810), +(65, 1811), +(65, 1812), +(65, 1813), +(65, 1814), +(65, 1815), +(65, 1816), +(65, 1817), +(65, 1818), +(65, 1819), +(65, 1820), +(65, 1821), +(65, 1822), +(65, 1823), +(65, 1824), +(65, 1825), +(65, 1826), +(65, 1827), +(65, 1828), +(65, 1829), +(65, 1830), +(65, 1831), +(65, 1832), +(65, 1833), +(65, 1834), +(65, 1835), +(65, 1836), +(65, 1837), +(65, 1838), +(65, 1839), +(65, 1840), +(65, 1841), +(65, 1842), +(65, 1843), +(65, 1844), +(65, 1845), +(65, 1846), +(65, 1847), +(65, 1848), +(65, 1849), +(65, 1850), +(65, 1851), +(65, 1852), +(65, 1853), +(65, 1854), +(65, 1855), +(65, 1856), +(65, 1857), +(65, 1858), +(65, 1859), +(65, 1860), +(65, 1861), +(65, 1862), +(65, 1863), +(65, 1864), +(65, 1865), +(65, 1866), +(65, 1867), +(65, 1868), +(65, 1869), +(65, 1870), +(65, 1871), +(65, 1872), +(65, 1873), +(65, 1874), +(65, 1875), +(65, 1876), +(65, 1877), +(65, 1878), +(65, 1879), +(65, 1880), +(65, 1881), +(65, 1882), +(65, 1883), +(65, 1884), +(65, 1885), +(65, 1886), +(65, 1887), +(65, 1888), +(65, 1889), +(65, 1890), +(65, 1891), +(65, 1892), +(65, 1893), +(65, 1894), +(65, 1895), +(65, 1896), +(65, 1897), +(65, 1898), +(65, 1899), +(65, 1900), +(65, 1901), +(65, 1902), +(65, 1903), +(65, 1904), +(65, 1905), +(65, 1906), +(65, 1907), +(65, 1908), +(65, 1909), +(65, 1910), +(65, 1911), +(65, 1912), +(65, 1913), +(65, 1914), +(65, 1915), +(65, 1916), +(65, 1917), +(65, 1918), +(65, 1919), +(65, 1920), +(65, 1921), +(65, 1922), +(65, 1923), +(65, 1924), +(65, 1925), +(65, 1926), +(65, 1927), +(65, 1928), +(65, 1929), +(65, 1930), +(65, 1931), +(65, 1932), +(65, 1933), +(65, 1934), +(65, 1935), +(65, 1936), +(65, 1937), +(65, 1938), +(65, 1939), +(65, 1940), +(65, 1941), +(65, 1942), +(65, 1943), +(65, 1944), +(65, 1945), +(65, 1946), +(65, 1947), +(65, 1948), +(65, 1949), +(65, 1950), +(65, 1951), +(65, 1952), +(65, 1953), +(65, 1954), +(65, 1955), +(65, 1956), +(65, 1957), +(65, 1958), +(65, 1959), +(65, 1960), +(65, 1961), +(65, 1962), +(65, 1963), +(65, 1964), +(65, 1965), +(65, 1966), +(65, 1967), +(65, 1968), +(65, 1969), +(65, 1970), +(65, 1971), +(65, 1972), +(65, 1973), +(65, 1974), +(65, 1975), +(65, 1976), +(65, 1977), +(65, 1978), +(65, 1979), +(65, 1980), +(65, 1981), +(65, 1982), +(65, 1983), +(65, 1984), +(65, 1985), +(65, 1986), +(65, 1987), +(65, 1988), +(65, 1989), +(65, 1990), +(65, 1991), +(65, 1992), +(65, 1993), +(65, 1994), +(65, 1995), +(65, 1996), +(65, 1997), +(65, 1998), +(65, 1999), +(65, 2000), +(65, 2001), +(65, 2002), +(65, 2003), +(65, 2004), +(65, 2005), +(65, 2006), +(65, 2007), +(65, 2008), +(65, 2009), +(65, 2010), +(65, 2011), +(65, 2012), +(65, 2013), +(65, 2014), +(65, 2015), +(65, 2016), +(65, 2017), +(65, 2018), +(65, 2019), +(65, 2020), +(65, 2021), +(65, 2022), +(65, 2023), +(65, 2024), +(65, 2025), +(65, 2026), +(65, 2027), +(65, 2028), +(65, 2029), +(65, 2030), +(65, 2031), +(65, 2032), +(65, 2033), +(65, 2034), +(65, 2035), +(65, 2036), +(65, 2037), +(65, 2038), +(65, 2039), +(65, 2040), +(65, 2041), +(65, 2042), +(65, 2043), +(65, 2044), +(65, 2045), +(65, 2046), +(65, 2047), +(65, 2048), +(65, 2049), +(65, 2050), +(65, 2051), +(65, 2052), +(65, 2053), +(65, 2054), +(65, 2055), +(65, 2056), +(65, 2057), +(65, 2058), +(65, 2059), +(65, 2060), +(65, 2061), +(65, 2062), +(65, 2063), +(65, 2064), +(65, 2065), +(65, 2066), +(65, 2067), +(65, 2068), +(65, 2069), +(65, 2070), +(65, 2071), +(65, 2072), +(65, 2073), +(65, 2074), +(65, 2075), +(65, 2076), +(65, 2077), +(65, 2078), +(65, 2079), +(65, 2080), +(65, 2081), +(65, 2082), +(65, 2083), +(65, 2084), +(65, 2085), +(65, 2086), +(65, 2087), +(65, 2088), +(65, 2089), +(65, 2090), +(65, 2091), +(65, 2092), +(65, 2093), +(65, 2094), +(65, 2095), +(65, 2096), +(65, 2097), +(65, 2098), +(65, 2099), +(65, 2100), +(65, 2101), +(65, 2102), +(65, 2103), +(65, 2104), +(65, 2105), +(65, 2106), +(65, 2107), +(65, 2108), +(65, 2109), +(65, 2110), +(65, 2111), +(65, 2112), +(65, 2113), +(65, 2114), +(65, 2115), +(65, 2116), +(65, 2117), +(65, 2118), +(65, 2119), +(65, 2120), +(65, 2121), +(65, 2122), +(65, 2123), +(65, 2124), +(65, 2125), +(65, 2126), +(65, 2127), +(65, 2128), +(65, 2129), +(65, 2130), +(65, 2131), +(65, 2132), +(65, 2133), +(65, 2134), +(65, 2135), +(65, 2136), +(65, 2137), +(65, 2138), +(65, 2139), +(65, 2140), +(65, 2141), +(65, 2142), +(65, 2143), +(65, 2144), +(65, 2145), +(65, 2146), +(65, 2147), +(65, 2148), +(65, 2149), +(65, 2150), +(65, 2151), +(65, 2152), +(65, 2153), +(65, 2154), +(65, 2155), +(65, 2156), +(65, 2157), +(65, 2158), +(65, 2159), +(65, 2160), +(65, 2161), +(65, 2162), +(65, 2163), +(65, 2164), +(65, 2165), +(65, 2166), +(65, 2167), +(65, 2168), +(65, 2169), +(65, 2170), +(65, 2171), +(65, 2172), +(65, 2173), +(65, 2174), +(65, 2175), +(65, 2176), +(65, 2177), +(65, 2178), +(65, 2179), +(65, 2180), +(65, 2181), +(65, 2182), +(65, 2183), +(65, 2184), +(65, 2185), +(65, 2186), +(65, 2187), +(65, 2188), +(65, 2189), +(65, 2190), +(65, 2191), +(65, 2192), +(65, 2193), +(65, 2194), +(65, 2195), +(65, 2196), +(65, 2197), +(65, 2198), +(65, 2199), +(65, 2200), +(65, 2201), +(65, 2202), +(65, 2203), +(65, 2204), +(65, 2205), +(65, 2206), +(65, 2207), +(65, 2208), +(65, 2209), +(65, 2210), +(65, 2211), +(65, 2212), +(65, 2213), +(65, 2214), +(65, 2215), +(65, 2216), +(65, 2217), +(65, 2218), +(65, 2219), +(65, 2220), +(65, 2221), +(65, 2222), +(65, 2223), +(65, 2224), +(65, 2225), +(65, 2226), +(65, 2227), +(65, 2228), +(65, 2229), +(65, 2230), +(65, 2231), +(65, 2232), +(65, 2233), +(65, 2234), +(65, 2235), +(65, 2236), +(65, 2237), +(65, 2238), +(65, 2239), +(65, 2240), +(65, 2241), +(65, 2242), +(65, 2243), +(65, 2244), +(65, 2245), +(65, 2246), +(65, 2247), +(65, 2248), +(65, 2249), +(65, 2250), +(65, 2251), +(65, 2252), +(65, 2253), +(65, 2254), +(65, 2255), +(65, 2256), +(65, 2257), +(65, 2258), +(65, 2259), +(65, 2260), +(65, 2261), +(65, 2262), +(65, 2263), +(65, 2264), +(65, 2265), +(65, 2266), +(65, 2267), +(65, 2268), +(65, 2269), +(65, 2270), +(65, 2271), +(65, 2272), +(65, 2273), +(65, 2274), +(65, 2275), +(65, 2276), +(65, 2277), +(65, 2278), +(65, 2279), +(65, 2280), +(65, 2281), +(65, 2282), +(65, 2283), +(65, 2284), +(65, 2285), +(65, 2286), +(65, 2287), +(65, 2288), +(65, 2289), +(65, 2290), +(65, 2291), +(65, 2292), +(65, 2293), +(65, 2294), +(65, 2295), +(65, 2296), +(65, 2297), +(65, 2298), +(65, 2299), +(65, 2300), +(65, 2301), +(65, 2302), +(65, 2303), +(65, 2304), +(65, 2305), +(65, 2306), +(65, 2307), +(65, 2308), +(65, 2309), +(65, 2310), +(65, 2311), +(65, 2312), +(65, 2313), +(65, 2314), +(65, 2315), +(65, 2316), +(65, 2317), +(65, 2318), +(65, 2319), +(65, 2320), +(65, 2321), +(65, 2322), +(65, 2323), +(65, 2324), +(65, 2325), +(65, 2326), +(65, 2327), +(65, 2328), +(65, 2329), +(65, 2330), +(65, 2331), +(65, 2332), +(65, 2333), +(65, 2334), +(65, 2335), +(65, 2336), +(65, 2337), +(65, 2338), +(65, 2339), +(65, 2340), +(65, 2341), +(65, 2342), +(65, 2343), +(65, 2344), +(65, 2345), +(65, 2346), +(65, 2347), +(65, 2348), +(65, 2349), +(65, 2350), +(65, 2351), +(65, 2352), +(65, 2353), +(65, 2354), +(65, 2355), +(65, 2356), +(65, 2357), +(65, 2358), +(65, 2359), +(65, 2360), +(65, 2361), +(65, 2362), +(65, 2363), +(65, 2364), +(65, 2365), +(65, 2366), +(65, 2367), +(65, 2368), +(65, 2369), +(65, 2370), +(65, 2371), +(65, 2372), +(65, 2373), +(65, 2374), +(65, 2375), +(65, 2376), +(65, 2377), +(65, 2378), +(65, 2379), +(65, 2380), +(65, 2381), +(65, 2382), +(65, 2383), +(65, 2384), +(65, 2385), +(65, 2386), +(65, 2387), +(65, 2388), +(65, 2389), +(65, 2390), +(65, 2391), +(65, 2392), +(65, 2393), +(65, 2394), +(65, 2395), +(65, 2396), +(65, 2397), +(65, 2398), +(65, 2399), +(65, 2400), +(65, 2401), +(65, 2402), +(65, 2403), +(65, 2404), +(65, 2405), +(65, 2406), +(65, 2407), +(65, 2408), +(65, 2409), +(65, 2410), +(65, 2411), +(65, 2412), +(65, 2413), +(65, 2414), +(65, 2415), +(65, 2416), +(65, 2417), +(65, 2418), +(65, 2419), +(65, 2420), +(65, 2421), +(65, 2422), +(65, 2423), +(65, 2424), +(65, 2425), +(65, 2426), +(65, 2427), +(65, 2428), +(65, 2429), +(65, 2430), +(65, 2431), +(65, 2432), +(65, 2433), +(65, 2434), +(65, 2435), +(65, 2436), +(65, 2437), +(65, 2438), +(65, 2439), +(65, 2440), +(65, 2441), +(65, 2442), +(65, 2443), +(65, 2444), +(65, 2445), +(65, 2446), +(65, 2447), +(65, 2448), +(65, 2449), +(65, 2450), +(65, 2451), +(65, 2452), +(65, 2453), +(65, 2454), +(65, 2455), +(65, 2456), +(65, 2457), +(65, 2458), +(65, 2459), +(65, 2460), +(65, 2461), +(65, 2462), +(65, 2463), +(65, 2464), +(65, 2465), +(65, 2466), +(65, 2467), +(65, 2468), +(65, 2469), +(65, 2470), +(65, 2471), +(65, 2472), +(65, 2473), +(65, 2474), +(65, 2475), +(65, 2476), +(65, 2477), +(65, 2478), +(65, 2479), +(65, 2480), +(65, 2481), +(65, 2482), +(65, 2483), +(65, 2484), +(65, 2485), +(65, 2486), +(65, 2487), +(65, 2488), +(65, 2489), +(65, 2490), +(65, 2491), +(65, 2492), +(65, 2493), +(65, 2494), +(65, 2495), +(65, 2496), +(65, 2497), +(65, 2498), +(65, 2499), +(65, 2500), +(65, 2501), +(65, 2502), +(65, 2503), +(65, 2504), +(65, 2505), +(65, 2506), +(65, 2507), +(65, 2508), +(65, 2509), +(65, 2510), +(65, 2511), +(65, 2512), +(65, 2513), +(65, 2514), +(65, 2515), +(65, 2516), +(65, 2517), +(65, 2518), +(65, 2519), +(65, 2520), +(65, 2521), +(65, 2522), +(65, 2523), +(65, 2524), +(65, 2525), +(65, 2526), +(65, 2527), +(65, 2528), +(65, 2529), +(65, 2530), +(65, 2531), +(65, 2532), +(65, 2533), +(65, 2534), +(65, 2535), +(65, 2536), +(65, 2537), +(65, 2538), +(65, 2539), +(65, 2540), +(65, 2541), +(65, 2542), +(65, 2543), +(65, 2544), +(65, 2545), +(65, 2546), +(65, 2547), +(65, 2548), +(65, 2549), +(65, 2550), +(65, 2551), +(65, 2552), +(65, 2553), +(65, 2554), +(65, 2555), +(65, 2556), +(65, 2557), +(65, 2558), +(65, 2559), +(65, 2560), +(65, 2561), +(65, 2562), +(65, 2563), +(65, 2564), +(65, 2565), +(65, 2566), +(65, 2567), +(65, 2568), +(65, 2569), +(65, 2570), +(65, 2571), +(65, 2572), +(65, 2573), +(65, 2574), +(65, 2575), +(65, 2576), +(65, 2577), +(65, 2578), +(65, 2579), +(65, 2580), +(65, 2581), +(65, 2582), +(65, 2583), +(65, 2584), +(65, 2585), +(65, 2586), +(65, 2587), +(65, 2588), +(65, 2589), +(65, 2590), +(65, 2591), +(65, 2592), +(65, 2593), +(65, 2594), +(65, 2595), +(65, 2596), +(65, 2597), +(65, 2598), +(65, 2599), +(65, 2600), +(65, 2601), +(65, 2602), +(65, 2603), +(65, 2604), +(65, 2605), +(65, 2606), +(65, 2607), +(65, 2608), +(65, 2609), +(65, 2610), +(65, 2611), +(65, 2612), +(65, 2613), +(65, 2614), +(65, 2615), +(65, 2616), +(65, 2617), +(65, 2618), +(65, 2619), +(65, 2620), +(65, 2621), +(65, 2622), +(65, 2623), +(65, 2624), +(65, 2625), +(65, 2626), +(65, 2627), +(65, 2628), +(65, 2629), +(65, 2630), +(65, 2631), +(65, 2632), +(65, 2633), +(65, 2634), +(65, 2635), +(65, 2636), +(65, 2637), +(65, 2638), +(65, 2639), +(65, 2640), +(65, 2641), +(65, 2642), +(65, 2643), +(65, 2644), +(65, 2645), +(65, 2646), +(65, 2647), +(65, 2648), +(65, 2649), +(65, 2650), +(65, 2651), +(65, 2652), +(65, 2653), +(65, 2654), +(65, 2655), +(65, 2656), +(65, 2657), +(65, 2658), +(65, 2659), +(65, 2660), +(65, 2661), +(65, 2662), +(65, 2663), +(65, 2664), +(65, 2665), +(65, 2666), +(65, 2667), +(65, 2668), +(65, 2669), +(65, 2670), +(65, 2671), +(65, 2672), +(65, 2673), +(65, 2674), +(65, 2675), +(65, 2676), +(65, 2677), +(65, 2678), +(65, 2679), +(65, 2680), +(65, 2681), +(65, 2682), +(65, 2683), +(65, 2684), +(65, 2685), +(65, 2686), +(65, 2687), +(65, 2688), +(65, 2689), +(65, 2690), +(65, 2691), +(65, 2692), +(65, 2693), +(65, 2694), +(65, 2695), +(65, 2696), +(65, 2697), +(65, 2698), +(65, 2699), +(65, 2700), +(65, 2701), +(65, 2702), +(65, 2703), +(65, 2704), +(65, 2705), +(65, 2706), +(65, 2707), +(65, 2708), +(65, 2709), +(65, 2710), +(65, 2711), +(65, 2712), +(65, 2713), +(65, 2714), +(65, 2715), +(65, 2716), +(65, 2717), +(65, 2718), +(65, 2719), +(65, 2720), +(65, 2721), +(65, 2722), +(65, 2723), +(65, 2724), +(65, 2725), +(65, 2726), +(65, 2727), +(65, 2728), +(65, 2729), +(65, 2730), +(65, 2731), +(65, 2732), +(65, 2733), +(65, 2734), +(65, 2735), +(65, 2736), +(65, 2737), +(65, 2738), +(65, 2739), +(65, 2740), +(65, 2741), +(65, 2742), +(65, 2743), +(65, 2744), +(65, 2745), +(65, 2746), +(65, 2747), +(65, 2748), +(65, 2749), +(65, 2750), +(65, 2751), +(65, 2752), +(65, 2753), +(65, 2754), +(65, 2755), +(65, 2756), +(65, 2757), +(65, 2758), +(65, 2759), +(65, 2760), +(65, 2761), +(65, 2762), +(65, 2763), +(65, 2764), +(65, 2765), +(65, 2766), +(65, 2767), +(65, 2768), +(65, 2769), +(65, 2770), +(65, 2771), +(65, 2772), +(65, 2773), +(65, 2774), +(65, 2775), +(65, 2776), +(65, 2777), +(65, 2778), +(65, 2779), +(65, 2780), +(65, 2781), +(65, 2782), +(65, 2783), +(65, 2784), +(65, 2785), +(65, 2786), +(65, 2787), +(65, 2788), +(65, 2789), +(65, 2790), +(65, 2791), +(65, 2792), +(65, 2793), +(65, 2794), +(65, 2795), +(65, 2796), +(65, 2797), +(65, 2798), +(65, 2799), +(65, 2800), +(65, 2801), +(65, 2802), +(65, 2803), +(65, 2804), +(65, 2805), +(65, 2806), +(65, 2807), +(65, 2808), +(65, 2809), +(65, 2810), +(65, 2811), +(65, 2812), +(65, 2813), +(65, 2814), +(65, 2815), +(65, 2816), +(65, 2817), +(65, 2818), +(65, 2819), +(65, 2820), +(65, 2821), +(65, 2822), +(65, 2823), +(65, 2824), +(65, 2825), +(65, 2826), +(65, 2827), +(65, 2828), +(65, 2829), +(65, 2830), +(65, 2831), +(65, 2832), +(65, 2833), +(65, 2834), +(65, 2835), +(65, 2836), +(65, 2837), +(65, 2838), +(65, 2839), +(65, 2840), +(65, 2841), +(65, 2842), +(65, 2843), +(65, 2844), +(65, 2845), +(65, 2846), +(65, 2847), +(65, 2848), +(65, 2849), +(65, 2850), +(65, 2851), +(65, 2852), +(65, 2853), +(65, 2854), +(65, 2855), +(65, 2856), +(65, 2857), +(65, 2858), +(65, 2859), +(65, 2860), +(65, 2861), +(65, 2862), +(65, 2863), +(65, 2864), +(65, 2865), +(65, 2866), +(65, 2867), +(65, 2868), +(65, 2869), +(65, 2870), +(65, 2871), +(65, 2872), +(65, 2873), +(65, 2874), +(65, 2875), +(65, 2876), +(65, 2877), +(65, 2878), +(65, 2879), +(65, 2880), +(65, 2881), +(65, 2882), +(65, 2883), +(65, 2884), +(65, 2885), +(65, 2886), +(65, 2887), +(65, 2888), +(65, 2889), +(65, 2890), +(65, 2891), +(65, 2892), +(65, 2893), +(65, 2894), +(65, 2895), +(65, 2896), +(65, 2897), +(65, 2898), +(65, 2899), +(65, 2900), +(65, 2901), +(65, 2902), +(65, 2903), +(65, 2904), +(65, 2905), +(65, 2906), +(65, 2907), +(65, 2908), +(65, 2909), +(65, 2910), +(65, 2911), +(65, 2912), +(65, 2913), +(65, 2914), +(65, 2915), +(65, 2916), +(65, 2917), +(65, 2918), +(65, 2919), +(65, 2920), +(65, 2921), +(65, 2922), +(65, 2923), +(65, 2924), +(65, 2925), +(65, 2926), +(65, 2927), +(65, 2928), +(65, 2929), +(65, 2930), +(65, 2931), +(65, 2932), +(65, 2933), +(65, 2934), +(65, 2935), +(65, 2936), +(65, 2937), +(65, 2938), +(65, 2939), +(65, 2940), +(65, 2941), +(65, 2942), +(65, 2943), +(65, 2944), +(65, 2945), +(65, 2946), +(65, 2947), +(65, 2948), +(65, 2949), +(65, 2950), +(65, 2951), +(65, 2952), +(65, 2953), +(65, 2954), +(65, 2955), +(65, 2956), +(65, 2957), +(65, 2958), +(65, 2959), +(65, 2960), +(65, 2961), +(65, 2962), +(65, 2963), +(65, 2964), +(65, 2965), +(65, 2966), +(65, 2967), +(65, 2968), +(65, 2969), +(65, 2970), +(65, 2971), +(65, 2972), +(65, 2973), +(65, 2974), +(65, 2975), +(65, 2976), +(65, 2977), +(65, 2978), +(65, 2979), +(65, 2980), +(65, 2981), +(65, 2982), +(65, 2983), +(65, 2984), +(65, 2985), +(65, 2986), +(65, 2987), +(65, 2988), +(65, 2989), +(65, 2990), +(65, 2991), +(65, 2992), +(65, 2993), +(65, 2994), +(65, 2995), +(65, 2996), +(65, 2997), +(65, 2998), +(65, 2999), +(65, 3000), +(65, 3001), +(65, 3002), +(65, 3003), +(65, 3004), +(65, 3005), +(65, 3006), +(65, 3007), +(65, 3008), +(65, 3009), +(65, 3010), +(65, 3011), +(65, 3012), +(65, 3013), +(65, 3014), +(65, 3015), +(65, 3016), +(65, 3017), +(65, 3018), +(65, 3019), +(65, 3020), +(65, 3021), +(65, 3022), +(65, 3023), +(65, 3024), +(65, 3025), +(65, 3026), +(65, 3027), +(65, 3028), +(65, 3029), +(65, 3030), +(65, 3031), +(65, 3032), +(65, 3033), +(65, 3034), +(65, 3035), +(65, 3036), +(65, 3037), +(65, 3038), +(65, 3039), +(65, 3040), +(65, 3041), +(65, 3042), +(65, 3043), +(65, 3044), +(65, 3045), +(65, 3046), +(65, 3047), +(65, 3048), +(65, 3049), +(65, 3050), +(65, 3051), +(65, 3052), +(65, 3053), +(65, 3054), +(65, 3055), +(65, 3056), +(65, 3057), +(65, 3058), +(65, 3059), +(65, 3060), +(65, 3061), +(65, 3062), +(65, 3063), +(65, 3064), +(65, 3065), +(65, 3066), +(65, 3067), +(65, 3068), +(65, 3069), +(65, 3070), +(65, 3071), +(65, 3072), +(65, 3073), +(65, 3074), +(65, 3075), +(65, 3076), +(65, 3077), +(65, 3078), +(65, 3079), +(65, 3080), +(65, 3081), +(65, 3082), +(65, 3083), +(65, 3084), +(65, 3085), +(65, 3086), +(65, 3087), +(65, 3088), +(65, 3089), +(65, 3090), +(65, 3091), +(65, 3092), +(65, 3093), +(65, 3094), +(65, 3095), +(65, 3096), +(65, 3097), +(65, 3098), +(65, 3099), +(65, 3100), +(65, 3101), +(65, 3102), +(65, 3103), +(65, 3104), +(65, 3105), +(65, 3106), +(65, 3107), +(65, 3108), +(65, 3109), +(65, 3110), +(65, 3111), +(65, 3112), +(65, 3113), +(65, 3114), +(65, 3115), +(65, 3116), +(65, 3117), +(65, 3118), +(65, 3119), +(65, 3120), +(65, 3121), +(65, 3122), +(65, 3123), +(65, 3124), +(65, 3125), +(65, 3126), +(65, 3127), +(65, 3128), +(65, 3129), +(65, 3130), +(65, 3131), +(65, 3132), +(65, 3133), +(65, 3134), +(65, 3135), +(65, 3136), +(65, 3137), +(65, 3138), +(65, 3139), +(65, 3140), +(65, 3141), +(65, 3142), +(65, 3143), +(65, 3144), +(65, 3145), +(65, 3146), +(65, 3147), +(65, 3148), +(65, 3149), +(65, 3150), +(65, 3151), +(65, 3152), +(65, 3153), +(65, 3154), +(65, 3155), +(65, 3156), +(65, 3157), +(65, 3158), +(65, 3159), +(65, 3160), +(65, 3161), +(65, 3162), +(65, 3163), +(65, 3164), +(65, 3165), +(65, 3166), +(65, 3167), +(65, 3168), +(65, 3169), +(65, 3170), +(65, 3171), +(65, 3172), +(65, 3173), +(65, 3174), +(65, 3175), +(65, 3176), +(65, 3177), +(65, 3178), +(65, 3179), +(65, 3180), +(65, 3181), +(65, 3182), +(65, 3183), +(65, 3184), +(65, 3185), +(65, 3186), +(65, 3187), +(65, 3188), +(65, 3189), +(65, 3190), +(65, 3191), +(65, 3192), +(65, 3193), +(65, 3194), +(65, 3195), +(65, 3196), +(65, 3197), +(65, 3198), +(65, 3199), +(65, 3200), +(65, 3201), +(65, 3202), +(65, 3203), +(65, 3204), +(65, 3205), +(65, 3206), +(65, 3207), +(65, 3208), +(65, 3209), +(65, 3210), +(65, 3211), +(65, 3212), +(65, 3213), +(65, 3214), +(65, 3215), +(65, 3216), +(65, 3217), +(65, 3218), +(65, 3219), +(65, 3220), +(65, 3221), +(65, 3222), +(65, 3223), +(65, 3224), +(65, 3225), +(65, 3226), +(65, 3227), +(65, 3228), +(65, 3229), +(65, 3230), +(65, 3231), +(65, 3232), +(65, 3233), +(65, 3234), +(65, 3235), +(65, 3236), +(65, 3237), +(65, 3238), +(65, 3239), +(65, 3240), +(65, 3241), +(65, 3242), +(65, 3243), +(65, 3244), +(65, 3245), +(65, 3246), +(65, 3247), +(65, 3248), +(65, 3249), +(65, 3250), +(65, 3251), +(65, 3252), +(65, 3253), +(65, 3254), +(65, 3255), +(65, 3256), +(65, 3257), +(65, 3258), +(65, 3259), +(65, 3260), +(65, 3261), +(65, 3262), +(65, 3263), +(65, 3264), +(65, 3265), +(65, 3266), +(65, 3267), +(65, 3268), +(65, 3269), +(65, 3270), +(65, 3271), +(65, 3272), +(65, 3273), +(65, 3274), +(65, 3275), +(65, 3276), +(65, 3277), +(65, 3278), +(65, 3279), +(65, 3280), +(65, 3281), +(65, 3282), +(65, 3283), +(65, 3284), +(65, 3285), +(65, 3286), +(65, 3287), +(65, 3288), +(65, 3289), +(65, 3290), +(65, 3291), +(65, 3292), +(65, 3293), +(65, 3294), +(65, 3295), +(65, 3296), +(65, 3297), +(65, 3298), +(65, 3299), +(65, 3300), +(65, 3301), +(65, 3302), +(65, 3303), +(65, 3304), +(65, 3305), +(65, 3306), +(65, 3307), +(65, 3308), +(65, 3309), +(65, 3310), +(65, 3311), +(65, 3312), +(65, 3313), +(65, 3314), +(65, 3315), +(65, 3316), +(65, 3317), +(65, 3318), +(65, 3319), +(65, 3320), +(65, 3321), +(65, 3322), +(65, 3323), +(65, 3324), +(65, 3325), +(65, 3326), +(65, 3327), +(65, 3328), +(65, 3329), +(65, 3330), +(65, 3331), +(65, 3332), +(65, 3333), +(65, 3334), +(65, 3335), +(65, 3336), +(65, 3337), +(65, 3338), +(65, 3339), +(65, 3340), +(65, 3341), +(65, 3342), +(65, 3343), +(65, 3344), +(65, 3345), +(65, 3346), +(65, 3347), +(65, 3348), +(65, 3349), +(65, 3350), +(65, 3351), +(65, 3352), +(65, 3353), +(65, 3354), +(65, 3355), +(65, 3356), +(65, 3357), +(65, 3358), +(65, 3359), +(65, 3360), +(65, 3361), +(65, 3362), +(65, 3363), +(65, 3364), +(65, 3365), +(65, 3366), +(65, 3367), +(65, 3368), +(65, 3369), +(65, 3370), +(65, 3371), +(65, 3372), +(65, 3373), +(65, 3374), +(65, 3375), +(65, 3376), +(65, 3377), +(65, 3378), +(65, 3379), +(65, 3380), +(65, 3381), +(65, 3382), +(65, 3383), +(65, 3384), +(65, 3385), +(65, 3386), +(65, 3387), +(65, 3388), +(65, 3389), +(65, 3390), +(65, 3391), +(65, 3392), +(65, 3393), +(65, 3394), +(65, 3395), +(65, 3396), +(65, 3397), +(65, 3398), +(65, 3399), +(65, 3400), +(65, 3401), +(65, 3402), +(65, 3403), +(65, 3404), +(65, 3405), +(65, 3406), +(65, 3407), +(65, 3408), +(65, 3409), +(65, 3410), +(65, 3411), +(65, 3412), +(65, 3413), +(65, 3414), +(65, 3415), +(65, 3416), +(65, 3417), +(65, 3418), +(65, 3419), +(65, 3420), +(65, 3421), +(65, 3422), +(65, 3423), +(65, 3424), +(65, 3425), +(65, 3426), +(65, 3427), +(65, 3428), +(65, 3429), +(65, 3430), +(65, 3431), +(65, 3432), +(65, 3433), +(65, 3434), +(65, 3435), +(65, 3436), +(65, 3437), +(65, 3438), +(65, 3439), +(65, 3440), +(65, 3441), +(65, 3442), +(65, 3443), +(65, 3444), +(65, 3445), +(65, 3446), +(65, 3447), +(65, 3448), +(65, 3449), +(65, 3450), +(65, 3451), +(65, 3452), +(65, 3453), +(65, 3454), +(65, 3455), +(65, 3456), +(65, 3457), +(65, 3458), +(65, 3459), +(65, 3460), +(65, 3461), +(65, 3462), +(65, 3463), +(65, 3464), +(65, 3465), +(65, 3466), +(65, 3467), +(65, 3468), +(65, 3469), +(65, 3470), +(65, 3471), +(65, 3472), +(65, 3473), +(65, 3474), +(65, 3475), +(65, 3476), +(65, 3477), +(65, 3478), +(65, 3479), +(65, 3480), +(65, 3481), +(65, 3482), +(65, 3483), +(65, 3484), +(65, 3485), +(65, 3486), +(65, 3487), +(65, 3488), +(65, 3489), +(65, 3490), +(65, 3491), +(65, 3492), +(65, 3493), +(65, 3494), +(65, 3495), +(65, 3496), +(65, 3497), +(65, 3498), +(65, 3499), +(65, 3500), +(65, 3501), +(65, 3502), +(65, 3503), +(65, 3504), +(65, 3505), +(65, 3506), +(65, 3507), +(65, 3508), +(65, 3509), +(65, 3510), +(65, 3511), +(65, 3512), +(65, 3513), +(65, 3514), +(65, 3515), +(65, 3516), +(65, 3517), +(65, 3518), +(65, 3519), +(65, 3520), +(65, 3521), +(65, 3522), +(65, 3523), +(65, 3524), +(65, 3525), +(65, 3526), +(65, 3527), +(65, 3528), +(65, 3529), +(65, 3530), +(65, 3531), +(65, 3532), +(65, 3533), +(65, 3534), +(65, 3535), +(65, 3536), +(65, 3537), +(65, 3538), +(65, 3539), +(65, 3540), +(65, 3541), +(65, 3542), +(65, 3543), +(65, 3544), +(65, 3545), +(65, 3546), +(65, 3547), +(65, 3548), +(65, 3549), +(65, 3550), +(65, 3551), +(65, 3552), +(65, 3553), +(65, 3554), +(65, 3555), +(65, 3556), +(65, 3557), +(65, 3558), +(65, 3559), +(65, 3560), +(65, 3561), +(65, 3562), +(65, 3563), +(65, 3564), +(65, 3565), +(65, 3566), +(65, 3567), +(65, 3568), +(65, 3569), +(65, 3570), +(65, 3571), +(65, 3572), +(65, 3573), +(65, 3574), +(65, 3575), +(65, 3576), +(65, 3577), +(65, 3578), +(65, 3579), +(65, 3580), +(65, 3581), +(65, 3582), +(65, 3583), +(65, 3584), +(65, 3585), +(65, 3586), +(65, 3587), +(65, 3588), +(65, 3589), +(65, 3590), +(65, 3591), +(65, 3592), +(65, 3593), +(65, 3594), +(65, 3595), +(65, 3596), +(65, 3597), +(65, 3598), +(65, 3599), +(65, 3600), +(65, 3601), +(65, 3602), +(65, 3603), +(65, 3604), +(65, 3605), +(65, 3606), +(65, 3607), +(65, 3608), +(65, 3609), +(65, 3610), +(65, 3611), +(65, 3612), +(65, 3613), +(65, 3614), +(65, 3615), +(65, 3616), +(65, 3617), +(65, 3618), +(65, 3619), +(65, 3620), +(65, 3621), +(65, 3622), +(65, 3623), +(65, 3624), +(65, 3625), +(65, 3626), +(65, 3627), +(65, 3628), +(65, 3629), +(65, 3630), +(65, 3631), +(65, 3632), +(65, 3633), +(65, 3634), +(65, 3635), +(65, 3636), +(65, 3637), +(65, 3638), +(65, 3639), +(65, 3640), +(65, 3641), +(65, 3642), +(65, 3643), +(65, 3644), +(65, 3645), +(65, 3646), +(65, 3647), +(65, 3648), +(65, 3649), +(65, 3650), +(65, 3651), +(65, 3652), +(65, 3653), +(65, 3654), +(65, 3655), +(65, 3656), +(65, 3657), +(65, 3658), +(65, 3659), +(65, 3660), +(65, 3661), +(65, 3662), +(65, 3663), +(65, 3664), +(65, 3665), +(65, 3666), +(65, 3667), +(65, 3668), +(65, 3669), +(65, 3670), +(65, 3671), +(65, 3672), +(65, 3673), +(65, 3674), +(65, 3675), +(65, 3676), +(65, 3677), +(65, 3678), +(65, 3679), +(65, 3680), +(65, 3681), +(65, 3682), +(65, 3683), +(65, 3684), +(65, 3685), +(65, 3686), +(65, 3687), +(65, 3688), +(65, 3689), +(65, 3690), +(65, 3691), +(65, 3692), +(65, 3693), +(65, 3694), +(65, 3695), +(65, 3696), +(65, 3697), +(65, 3698), +(65, 3699), +(65, 3700), +(65, 3701), +(65, 3702), +(65, 3703), +(65, 3704), +(65, 3705), +(65, 3706), +(65, 3707), +(65, 3708), +(65, 3709), +(65, 3710), +(65, 3711), +(65, 3712), +(65, 3713), +(65, 3714), +(65, 3715), +(65, 3716), +(65, 3717), +(65, 3718), +(65, 3719), +(65, 3720), +(65, 3721), +(65, 3722), +(65, 3723), +(65, 3724), +(65, 3725), +(65, 3726), +(65, 3727), +(65, 3728), +(65, 3729), +(65, 3730), +(65, 3731), +(65, 3732), +(65, 3733), +(65, 3734), +(65, 3735), +(65, 3736), +(65, 3737), +(65, 3738), +(65, 3739), +(65, 3740), +(65, 3741), +(65, 3742), +(65, 3743), +(65, 3744), +(65, 3745), +(65, 3746), +(65, 3747), +(65, 3748), +(65, 3749), +(65, 3750), +(65, 3751), +(65, 3752), +(65, 3753), +(65, 3754), +(65, 3755), +(65, 3756), +(65, 3757), +(65, 3758), +(65, 3759), +(65, 3760), +(65, 3761), +(65, 3762), +(65, 3763), +(65, 3764), +(65, 3765), +(65, 3766), +(65, 3767), +(65, 3768), +(65, 3769), +(65, 3770), +(65, 3771), +(65, 3772), +(65, 3773), +(65, 3774), +(65, 3775), +(65, 3776), +(65, 3777), +(65, 3778), +(65, 3779), +(65, 3780), +(65, 3781), +(65, 3782), +(65, 3783), +(65, 3784), +(65, 3785), +(65, 3786), +(65, 3787), +(65, 3788), +(65, 3789), +(65, 3790), +(65, 3791), +(65, 3792), +(65, 3793), +(65, 3794), +(65, 3795), +(65, 3796), +(65, 3797), +(65, 3798), +(65, 3799), +(65, 3800), +(65, 3801), +(65, 3802), +(65, 3803), +(65, 3804), +(65, 3805), +(65, 3806), +(65, 3807), +(65, 3808), +(65, 3809), +(65, 3810), +(65, 3811), +(65, 3812), +(65, 3813), +(65, 3814), +(65, 3815), +(65, 3816), +(65, 3817), +(65, 3818), +(65, 3819), +(65, 3820), +(65, 3821), +(65, 3822), +(65, 3823), +(65, 3824), +(65, 3825), +(65, 3826), +(65, 3827), +(65, 3828), +(65, 3829), +(65, 3830), +(65, 3831), +(65, 3832), +(65, 3833), +(65, 3834), +(65, 3835), +(65, 3836), +(65, 3837), +(65, 3838), +(65, 3839), +(65, 3840), +(65, 3841), +(65, 3842), +(65, 3843), +(65, 3844), +(65, 3845), +(65, 3846), +(65, 3847), +(65, 3848), +(65, 3849), +(65, 3850), +(65, 3851), +(65, 3852), +(65, 3853), +(65, 3854), +(65, 3855), +(65, 3856), +(65, 3857), +(65, 3858), +(65, 3859), +(65, 3860), +(65, 3861), +(65, 3862), +(65, 3863), +(65, 3864), +(65, 3865), +(65, 3866), +(65, 3867), +(65, 3868), +(65, 3869), +(65, 3870), +(65, 3871), +(65, 3872), +(65, 3873), +(65, 3874), +(65, 3875), +(65, 3876), +(65, 3877), +(65, 3878), +(65, 3879), +(65, 3880), +(65, 3881), +(65, 3882), +(65, 3883), +(65, 3884), +(65, 3885), +(65, 3886), +(65, 3887), +(65, 3888), +(65, 3889), +(65, 3890), +(65, 3891), +(65, 3892), +(65, 3893), +(65, 3894), +(65, 3895), +(65, 3896), +(65, 3897), +(65, 3898), +(65, 3899), +(65, 3900), +(65, 3901), +(65, 3902), +(65, 3903), +(65, 3904), +(65, 3905), +(65, 3906), +(65, 3907), +(65, 3908), +(65, 3909), +(65, 3910), +(65, 3911), +(65, 3912), +(65, 3913), +(65, 3914), +(65, 3915), +(65, 3916), +(65, 3917), +(65, 3918), +(65, 3919), +(65, 3920), +(65, 3921), +(65, 3922), +(65, 3923), +(65, 3924), +(65, 3925), +(65, 3926), +(65, 3927), +(65, 3928), +(65, 3929), +(65, 3930), +(65, 3931), +(65, 3932), +(65, 3933), +(65, 3934), +(65, 3935), +(65, 3936), +(65, 3937), +(65, 3938), +(65, 3939), +(65, 3940), +(65, 3941), +(65, 3942), +(65, 3943), +(65, 3944), +(65, 3945), +(65, 3946), +(65, 3947), +(65, 3948), +(65, 3949), +(65, 3950), +(65, 3951), +(65, 3952), +(65, 3953), +(65, 3954), +(65, 3955), +(65, 3956), +(65, 3957), +(65, 3958), +(65, 3959), +(65, 3960), +(65, 3961), +(65, 3962), +(65, 3963), +(65, 3964), +(65, 3965), +(65, 3966), +(65, 3967), +(65, 3968), +(65, 3969), +(65, 3970), +(65, 3971), +(65, 3972), +(65, 3973), +(65, 3974), +(65, 3975), +(65, 3976), +(65, 3977), +(65, 3978), +(65, 3979), +(65, 3980), +(65, 3981), +(65, 3982), +(65, 3983), +(65, 3984), +(65, 3985), +(65, 3986), +(65, 3987), +(65, 3988), +(65, 3989), +(65, 3990), +(65, 3991), +(65, 3992), +(65, 3993), +(65, 3994), +(65, 3995), +(65, 3996), +(65, 3997), +(65, 3998), +(65, 3999), +(65, 4000), +(65, 4001), +(65, 4002), +(65, 4003), +(65, 4004), +(65, 4005), +(65, 4006), +(65, 4007), +(65, 4008), +(65, 4009), +(65, 4010), +(65, 4011), +(65, 4012), +(65, 4013), +(65, 4014), +(65, 4015), +(65, 4016), +(65, 4017), +(65, 4018), +(65, 4019), +(65, 4020), +(65, 4021), +(65, 4022), +(65, 4023), +(65, 4024), +(65, 4025), +(65, 4026), +(65, 4027), +(65, 4028), +(65, 4029), +(65, 4030), +(65, 4031), +(65, 4032), +(65, 4033), +(65, 4034), +(65, 4035), +(65, 4036), +(65, 4037), +(65, 4038), +(65, 4039), +(65, 4040), +(65, 4041), +(65, 4042), +(65, 4043), +(65, 4044), +(65, 4045), +(65, 4046), +(65, 4047), +(65, 4048), +(65, 4049), +(65, 4050), +(65, 4051), +(65, 4052), +(65, 4053), +(65, 4054), +(65, 4055), +(65, 4056), +(65, 4057), +(65, 4058), +(65, 4059), +(65, 4060), +(65, 4061), +(65, 4062), +(65, 4063), +(65, 4064), +(65, 4065), +(65, 4066), +(65, 4067), +(65, 4068), +(65, 4069), +(65, 4070), +(65, 4071), +(65, 4072), +(65, 4073), +(65, 4074), +(65, 4075), +(65, 4076), +(65, 4077), +(65, 4078), +(65, 4079), +(65, 4080), +(65, 4081), +(65, 4082), +(65, 4083), +(65, 4084), +(65, 4085), +(65, 4086), +(65, 4087), +(65, 4088), +(65, 4089), +(65, 4090), +(65, 4091), +(65, 4092), +(65, 4093), +(65, 4094), +(65, 4095), +(65, 4096), +(65, 4097), +(65, 4098), +(65, 4099), +(65, 4100), +(65, 4101), +(65, 4102), +(65, 4103), +(65, 4104), +(65, 4105), +(65, 4106), +(65, 4107), +(65, 4108), +(65, 4109), +(65, 4110), +(65, 4111), +(65, 4112), +(65, 4113), +(65, 4114), +(65, 4115), +(65, 4116), +(65, 4117), +(65, 4118), +(65, 4119), +(65, 4120), +(65, 4121), +(65, 4122), +(65, 4123), +(65, 4124), +(65, 4125), +(65, 4126), +(65, 4127), +(65, 4128), +(65, 4129), +(65, 4130), +(65, 4131), +(65, 4132), +(65, 4133), +(65, 4134), +(65, 4135), +(65, 4136), +(65, 4137), +(65, 4138), +(65, 4139), +(65, 4140), +(65, 4141), +(65, 4142), +(65, 4143), +(65, 4144), +(65, 4145), +(65, 4146), +(65, 4147), +(65, 4148), +(65, 4149), +(65, 4150), +(65, 4151), +(65, 4152), +(65, 4153), +(65, 4154), +(65, 4155), +(65, 4156), +(65, 4157), +(65, 4158), +(65, 4159), +(65, 4160), +(65, 4161), +(65, 4162), +(65, 4163), +(65, 4164), +(65, 4165), +(65, 4166), +(65, 4167), +(65, 4168), +(65, 4169), +(65, 4170), +(65, 4171), +(65, 4172), +(65, 4173), +(65, 4174), +(65, 4175), +(65, 4176), +(65, 4177), +(65, 4178), +(65, 4179), +(65, 4180), +(65, 4181), +(65, 4182), +(65, 4183), +(65, 4184), +(65, 4185), +(65, 4186), +(65, 4187), +(65, 4188), +(65, 4189), +(65, 4190), +(65, 4191), +(65, 4192), +(65, 4193), +(65, 4194), +(65, 4195), +(65, 4196), +(65, 4197), +(65, 4198), +(65, 4199), +(65, 4200), +(65, 4201), +(65, 4202), +(65, 4203), +(65, 4204), +(65, 4205), +(65, 4206), +(65, 4207), +(65, 4208), +(65, 4209), +(65, 4210), +(65, 4211), +(65, 4212), +(65, 4213), +(65, 4214), +(65, 4215), +(65, 4216), +(65, 4217), +(65, 4218), +(65, 4219), +(65, 4220), +(65, 4221), +(65, 4222), +(65, 4223), +(65, 4224), +(65, 4225), +(65, 4226), +(65, 4227), +(65, 4228), +(65, 4229), +(65, 4230), +(65, 4231), +(65, 4232), +(65, 4233), +(65, 4234), +(65, 4235), +(65, 4236), +(65, 4237), +(65, 4238), +(65, 4239), +(65, 4240), +(65, 4241), +(65, 4242), +(65, 4243), +(65, 4244), +(65, 4245), +(65, 4246), +(65, 4247), +(65, 4248), +(65, 4249), +(65, 4250), +(65, 4251), +(65, 4252), +(65, 4253), +(65, 4254), +(65, 4255), +(65, 4256), +(65, 4257), +(65, 4258), +(65, 4259), +(65, 4260), +(65, 4261), +(65, 4262), +(65, 4263), +(65, 4264), +(65, 4265), +(65, 4266), +(65, 4267), +(65, 4268), +(65, 4269), +(65, 4270), +(65, 4271), +(65, 4272), +(65, 4273), +(65, 4274), +(65, 4275), +(65, 4276), +(65, 4277), +(65, 4278), +(65, 4279), +(65, 4280), +(65, 4281), +(65, 4282), +(65, 4283), +(65, 4284), +(65, 4285), +(65, 4286), +(65, 4287), +(65, 4288), +(65, 4289), +(65, 4290), +(65, 4291), +(65, 4292), +(65, 4293), +(65, 4294), +(65, 4295), +(65, 4296), +(65, 4297), +(65, 4298), +(65, 4299), +(65, 4300), +(65, 4301), +(65, 4302), +(65, 4303), +(65, 4304), +(65, 4305), +(65, 4306), +(65, 4307), +(65, 4308), +(65, 4309), +(65, 4310), +(65, 4311), +(65, 4312), +(65, 4313), +(65, 4314), +(65, 4315), +(65, 4316), +(65, 4317), +(65, 4318), +(65, 4319), +(65, 4320), +(65, 4321), +(65, 4322), +(65, 4323), +(65, 4324), +(65, 4325), +(65, 4326), +(65, 4327), +(65, 4328), +(65, 4329), +(65, 4330), +(65, 4331), +(65, 4332), +(65, 4333), +(65, 4334), +(65, 4335), +(65, 4336), +(65, 4337), +(65, 4338), +(65, 4339), +(65, 4340), +(65, 4341), +(65, 4342), +(65, 4343), +(65, 4344), +(65, 4345), +(65, 4346), +(65, 4347), +(65, 4348), +(65, 4349), +(65, 4350), +(65, 4351), +(65, 4352), +(65, 4353), +(65, 4354), +(65, 4355), +(65, 4356), +(65, 4357), +(65, 4358), +(65, 4359), +(65, 4360), +(65, 4361), +(65, 4362), +(65, 4363), +(65, 4364), +(65, 4365), +(65, 4366), +(65, 4367), +(65, 4368), +(65, 4369), +(65, 4370), +(65, 4371), +(65, 4372), +(65, 4373), +(65, 4374), +(65, 4375), +(65, 4376), +(65, 4377), +(65, 4378), +(65, 4379), +(65, 4380), +(65, 4381), +(65, 4382), +(65, 4383), +(65, 4384), +(65, 4385), +(65, 4386), +(65, 4387), +(65, 4388), +(65, 4389), +(65, 4390), +(65, 4391), +(65, 4392), +(65, 4393), +(65, 4394), +(65, 4395), +(65, 4396), +(65, 4397), +(65, 4398), +(65, 4399), +(65, 4400), +(65, 4401), +(65, 4402), +(65, 4403), +(65, 4404), +(65, 4405), +(65, 4406), +(65, 4407), +(65, 4408), +(65, 4409), +(65, 4410), +(65, 4411), +(65, 4412), +(65, 4413), +(65, 4414), +(65, 4415), +(65, 4416), +(65, 4417), +(65, 4418), +(65, 4419), +(65, 4420), +(65, 4421), +(65, 4422), +(65, 4423), +(65, 4424), +(65, 4425), +(65, 4426), +(65, 4427), +(65, 4428), +(65, 4429), +(65, 4430), +(65, 4431), +(65, 4432), +(65, 4433), +(65, 4434), +(65, 4435), +(65, 4436), +(65, 4437), +(65, 4438), +(65, 4439), +(65, 4440), +(65, 4441), +(65, 4442), +(65, 4443), +(65, 4444), +(65, 4445), +(65, 4446), +(65, 4447), +(65, 4448), +(65, 4449), +(65, 4450), +(65, 4451), +(65, 4452), +(65, 4453), +(65, 4454), +(65, 4455), +(65, 4456), +(65, 4457), +(65, 4458), +(65, 4459), +(65, 4460), +(65, 4461), +(65, 4462), +(65, 4463), +(65, 4464), +(65, 4465), +(65, 4466), +(65, 4467), +(65, 4468), +(65, 4469), +(65, 4470), +(65, 4471), +(65, 4472), +(65, 4473), +(65, 4474), +(65, 4475), +(65, 4476), +(65, 4477), +(65, 4478), +(65, 4479), +(65, 4480), +(65, 4481), +(65, 4482), +(65, 4483), +(65, 4484), +(65, 4485), +(65, 4486), +(65, 4487), +(65, 4488), +(65, 4489), +(65, 4490), +(65, 4491), +(65, 4492), +(65, 4493), +(65, 4494), +(65, 4495), +(65, 4496), +(65, 4497), +(65, 4498), +(65, 4499), +(65, 4500), +(65, 4501), +(65, 4502), +(65, 4503), +(65, 4504), +(65, 4505), +(65, 4506), +(65, 4507), +(65, 4508), +(65, 4509), +(65, 4510), +(65, 4511), +(65, 4512), +(65, 4513), +(65, 4514), +(65, 4515), +(65, 4516), +(65, 4517), +(65, 4518), +(65, 4519), +(65, 4520), +(65, 4521), +(65, 4522), +(65, 4523), +(65, 4524), +(65, 4525), +(65, 4526), +(65, 4527), +(65, 4528), +(65, 4529), +(65, 4530), +(65, 4531), +(65, 4532), +(65, 4533), +(65, 4534), +(65, 4535), +(65, 4536), +(65, 4537), +(65, 4538), +(65, 4539), +(65, 4540), +(65, 4541), +(65, 4542), +(65, 4543), +(65, 4544), +(65, 4545), +(65, 4546), +(65, 4547), +(65, 4548), +(65, 4549), +(65, 4550), +(65, 4551), +(65, 4552), +(65, 4553), +(65, 4554), +(65, 4555), +(65, 4556), +(65, 4557), +(65, 4558), +(65, 4559), +(65, 4560), +(65, 4561), +(65, 4562), +(65, 4563), +(65, 4564), +(65, 4565), +(65, 4566), +(65, 4567), +(65, 4568), +(65, 4569), +(65, 4570), +(65, 4571), +(65, 4572), +(65, 4573), +(65, 4574), +(65, 4575), +(65, 4576), +(65, 4577), +(65, 4578), +(65, 4579), +(65, 4580), +(65, 4581), +(65, 4582), +(65, 4583), +(65, 4584), +(65, 4585), +(65, 4586), +(65, 4587), +(65, 4588), +(65, 4589), +(65, 4590), +(65, 4591), +(65, 4592), +(65, 4593), +(65, 4594), +(65, 4595), +(65, 4596), +(65, 4597), +(65, 4598), +(65, 4599), +(65, 4600), +(65, 4601), +(65, 4602), +(65, 4603), +(65, 4604), +(65, 4605), +(65, 4606), +(65, 4607), +(65, 4608), +(65, 4609), +(65, 4610), +(65, 4611), +(65, 4612), +(65, 4613), +(65, 4614), +(65, 4615), +(65, 4616), +(65, 4617), +(65, 4618), +(65, 4619), +(65, 4620), +(65, 4621), +(65, 4622), +(65, 4623), +(65, 4624), +(65, 4625), +(65, 4626), +(65, 4627), +(65, 4628), +(65, 4629), +(65, 4630), +(65, 4631), +(65, 4632), +(65, 4633), +(65, 4634), +(65, 4635), +(65, 4636), +(65, 4637), +(65, 4638), +(65, 4639), +(65, 4640), +(65, 4641), +(65, 4642), +(65, 4643), +(65, 4644), +(65, 4645), +(65, 4646), +(65, 4647), +(65, 4648), +(65, 4649), +(65, 4650), +(65, 4651), +(65, 4652), +(65, 4653), +(65, 4654), +(65, 4655), +(65, 4656), +(65, 4657), +(65, 4658), +(65, 4659), +(65, 4660), +(65, 4661), +(65, 4662), +(65, 4663), +(65, 4664), +(65, 4665), +(65, 4666), +(65, 4667), +(65, 4668), +(65, 4669), +(65, 4670), +(65, 4671), +(65, 4672), +(65, 4673), +(65, 4674), +(65, 4675), +(65, 4676), +(65, 4677), +(65, 4678), +(65, 4679), +(65, 4680), +(65, 4681), +(65, 4682), +(65, 4683), +(65, 4684), +(65, 4685), +(65, 4686), +(65, 4687), +(65, 4688), +(65, 4689), +(65, 4690), +(65, 4691), +(65, 4692), +(65, 4693), +(65, 4694), +(65, 4695), +(65, 4696), +(65, 4697), +(65, 4698), +(65, 4699), +(65, 4700), +(65, 4701), +(65, 4702), +(65, 4703), +(65, 4704), +(65, 4705), +(65, 4706), +(65, 4707), +(65, 4708), +(65, 4709), +(65, 4710), +(65, 4711), +(65, 4712), +(65, 4713), +(65, 4714), +(65, 4715), +(65, 4716), +(65, 4717), +(65, 4718), +(65, 4719), +(65, 4720), +(65, 4721), +(65, 4722), +(65, 4723), +(65, 4724), +(65, 4725), +(65, 4726), +(65, 4727), +(65, 4728), +(65, 4729), +(65, 4730), +(65, 4731), +(65, 4732), +(65, 4733), +(65, 4734), +(65, 4735), +(65, 4736), +(65, 4737), +(65, 4738), +(65, 4739), +(65, 4740), +(65, 4741), +(65, 4742), +(65, 4743), +(65, 4744), +(65, 4745), +(65, 4746), +(65, 4747), +(65, 4748), +(65, 4749), +(65, 4750), +(65, 4751), +(65, 4752), +(65, 4753), +(65, 4754), +(65, 4755), +(65, 4756), +(65, 4757), +(65, 4758), +(65, 4759), +(65, 4760), +(65, 4761), +(65, 4762), +(65, 4763), +(65, 4764), +(65, 4765), +(65, 4766), +(65, 4767), +(65, 4768), +(65, 4769), +(65, 4770), +(65, 4771), +(65, 4772), +(65, 4773), +(65, 4774), +(65, 4775), +(65, 4776), +(65, 4777), +(65, 4778), +(65, 4779), +(65, 4780), +(65, 4781), +(65, 4782), +(65, 4783), +(65, 4784), +(65, 4785), +(65, 4786), +(65, 4787), +(65, 4788), +(65, 4789), +(65, 4790), +(65, 4791), +(65, 4792), +(65, 4793), +(65, 4794), +(65, 4795), +(65, 4796), +(65, 4797), +(65, 4798), +(65, 4799), +(65, 4800), +(65, 4801), +(65, 4802), +(65, 4803), +(65, 4804), +(65, 4805), +(65, 4806), +(65, 4807), +(65, 4808), +(65, 4809), +(65, 4810), +(65, 4811), +(65, 4812), +(65, 4813), +(65, 4814), +(65, 4815), +(65, 4816), +(65, 4817), +(65, 4818), +(65, 4819), +(65, 4820), +(65, 4821), +(65, 4822), +(65, 4823), +(65, 4824), +(65, 4825), +(65, 4826), +(65, 4827), +(65, 4828), +(65, 4829), +(65, 4830), +(65, 4831), +(65, 4832), +(65, 4833), +(65, 4834), +(65, 4835), +(65, 4836), +(65, 4837), +(65, 4838), +(65, 4839), +(65, 4840), +(65, 4841), +(65, 4842), +(65, 4843), +(65, 4844), +(65, 4845), +(65, 4846), +(65, 4847), +(65, 4848), +(65, 4849), +(65, 4850), +(65, 4851), +(65, 4852), +(65, 4853), +(65, 4854), +(65, 4855), +(65, 4856), +(65, 4857), +(65, 4858), +(65, 4859), +(65, 4860), +(65, 4861), +(65, 4862), +(65, 4863), +(65, 4864), +(65, 4865), +(65, 4866), +(65, 4867), +(65, 4868), +(65, 4869), +(65, 4870), +(65, 4871), +(65, 4872), +(65, 4873), +(65, 4874), +(65, 4875), +(65, 4876), +(65, 4877), +(65, 4878), +(65, 4879), +(65, 4880), +(65, 4881), +(65, 4882), +(65, 4883), +(65, 4884), +(65, 4885), +(65, 4886), +(65, 4887), +(65, 4888), +(65, 4889), +(65, 4890), +(65, 4891), +(65, 4892), +(65, 4893), +(65, 4894), +(65, 4895), +(65, 4896), +(65, 4897), +(65, 4898), +(65, 4899), +(65, 4900), +(65, 4901), +(65, 4902), +(65, 4903), +(65, 4904), +(65, 4905), +(65, 4906), +(65, 4907), +(65, 4908), +(65, 4909), +(65, 4910), +(65, 4911), +(65, 4912), +(65, 4913), +(65, 4914), +(65, 4915), +(65, 4916), +(65, 4917), +(65, 4918), +(65, 4919), +(65, 4920), +(65, 4921), +(65, 4922), +(65, 4923), +(65, 4924), +(65, 4925), +(65, 4926), +(65, 4927), +(65, 4928), +(65, 4929), +(65, 4930), +(65, 4931), +(65, 4932), +(65, 4933), +(65, 4934), +(65, 4935), +(65, 4936), +(65, 4937), +(65, 4938), +(65, 4939), +(65, 4940), +(65, 4941), +(65, 4942), +(65, 4943), +(65, 4944), +(65, 4945), +(65, 4946), +(65, 4947), +(65, 4948), +(65, 4949), +(65, 4950), +(65, 4951), +(65, 4952), +(65, 4953), +(65, 4954), +(65, 4955), +(65, 4956), +(65, 4957), +(65, 4958), +(65, 4959), +(65, 4960), +(65, 4961), +(65, 4962), +(65, 4963), +(65, 4964), +(65, 4965), +(65, 4966), +(65, 4967), +(65, 4968), +(65, 4969), +(65, 4970), +(65, 4971), +(65, 4972), +(65, 4973), +(65, 4974), +(65, 4975), +(65, 4976), +(65, 4977), +(65, 4978), +(65, 4979), +(65, 4980), +(65, 4981), +(65, 4982), +(65, 4983), +(65, 4984), +(65, 4985), +(65, 4986), +(65, 4987), +(65, 4988), +(65, 4989), +(65, 4990), +(65, 4991), +(65, 4992), +(65, 4993), +(65, 4994), +(65, 4995), +(65, 4996), +(65, 4997), +(65, 4998), +(65, 4999), +(65, 5000), +(65, 5001), +(65, 5002), +(65, 5003), +(65, 5004), +(65, 5005), +(65, 5006), +(65, 5007), +(65, 5008), +(65, 5009), +(65, 5010), +(65, 5011), +(65, 5012), +(65, 5013), +(65, 5014), +(65, 5015), +(65, 5016), +(65, 5017), +(65, 5018), +(65, 5019), +(65, 5020), +(65, 5021), +(65, 5022), +(65, 5023), +(65, 5024), +(65, 5025), +(65, 5026), +(65, 5027), +(65, 5028), +(65, 5029), +(65, 5030), +(65, 5031), +(65, 5032), +(65, 5033), +(65, 5034), +(65, 5035), +(65, 5036), +(65, 5037), +(65, 5038), +(65, 5039), +(65, 5040), +(65, 5041), +(65, 5042), +(65, 5043), +(65, 5044), +(65, 5045), +(65, 5046), +(65, 5047), +(65, 5048), +(65, 5049), +(65, 5050), +(65, 5051), +(65, 5052), +(65, 5053), +(65, 5054), +(65, 5055), +(65, 5056), +(65, 5057), +(65, 5058), +(65, 5059), +(65, 5060), +(65, 5061), +(65, 5062), +(65, 5063), +(65, 5064), +(65, 5065), +(65, 5066), +(65, 5067), +(65, 5068), +(65, 5069), +(65, 5070), +(65, 5071), +(65, 5072), +(65, 5073), +(65, 5074), +(65, 5075), +(65, 5076), +(65, 5077), +(65, 5078), +(65, 5079), +(65, 5080), +(65, 5081), +(65, 5082), +(65, 5083), +(65, 5084), +(65, 5085), +(65, 5086), +(65, 5087), +(65, 5088), +(65, 5089), +(65, 5090), +(65, 5091), +(65, 5092), +(65, 5093), +(65, 5094), +(65, 5095), +(65, 5096), +(65, 5097), +(65, 5098), +(65, 5099), +(65, 5100), +(65, 5101), +(65, 5102), +(65, 5103), +(65, 5104), +(65, 5105), +(65, 5106), +(65, 5107), +(65, 5108), +(65, 5109); +INSERT INTO `configuration_change` (`configurationId`, `changeId`) VALUES +(65, 5110), +(65, 5111), +(65, 5112), +(66, 5113), +(66, 5114), +(66, 5115), +(67, 5116), +(67, 5117), +(67, 5118), +(67, 5119), +(67, 5120), +(68, 5121), +(68, 5122), +(69, 5123), +(69, 5124), +(69, 5125), +(69, 5126), +(69, 5127), +(69, 5128), +(69, 5129), +(69, 5130), +(69, 5131), +(69, 5132), +(69, 5133), +(69, 5134), +(69, 5135), +(69, 5136), +(69, 5137), +(69, 5138), +(69, 5139), +(69, 5140), +(69, 5141), +(69, 5142), +(69, 5143), +(69, 5144), +(69, 5145), +(69, 5146), +(69, 5147), +(69, 5148), +(69, 5149), +(69, 5150), +(69, 5151), +(69, 5152), +(69, 5153), +(69, 5154), +(69, 5155), +(69, 5156), +(69, 5157), +(69, 5158), +(69, 5159), +(69, 5160), +(69, 5161), +(69, 5162), +(69, 5163), +(69, 5164), +(69, 5165), +(69, 5166), +(69, 5167), +(69, 5168), +(69, 5169), +(69, 5170), +(69, 5171), +(69, 5172), +(69, 5173), +(69, 5174), +(69, 5175), +(69, 5176), +(69, 5177), +(69, 5178), +(69, 5179), +(69, 5180), +(69, 5181), +(69, 5182), +(69, 5183), +(69, 5184), +(69, 5185), +(69, 5186), +(69, 5187), +(69, 5188), +(69, 5189), +(69, 5190), +(69, 5191), +(69, 5192), +(69, 5193), +(69, 5194), +(69, 5195), +(69, 5196), +(69, 5197), +(69, 5198), +(69, 5199), +(69, 5200), +(69, 5201), +(69, 5202), +(69, 5203), +(69, 5204), +(69, 5205), +(69, 5206), +(69, 5207), +(69, 5208), +(69, 5209), +(69, 5210), +(69, 5211), +(69, 5212), +(69, 5213), +(69, 5214), +(69, 5215), +(69, 5216), +(69, 5217), +(69, 5218), +(69, 5219), +(69, 5220), +(69, 5221), +(69, 5222), +(69, 5223), +(69, 5224), +(69, 5225), +(69, 5226), +(69, 5227), +(69, 5228), +(69, 5229), +(69, 5230), +(69, 5231), +(69, 5232), +(69, 5233), +(69, 5234), +(69, 5235), +(69, 5236), +(69, 5237), +(69, 5238), +(69, 5239), +(69, 5240), +(69, 5241), +(69, 5242), +(69, 5243), +(69, 5244), +(69, 5245), +(69, 5246), +(69, 5247), +(69, 5248), +(69, 5249), +(69, 5250), +(69, 5251), +(69, 5252), +(69, 5253), +(69, 5254), +(69, 5255), +(69, 5256), +(69, 5257), +(69, 5258), +(69, 5259), +(69, 5260), +(69, 5261), +(69, 5262), +(69, 5263), +(69, 5264), +(69, 5265), +(69, 5266), +(69, 5267), +(69, 5268), +(69, 5269), +(69, 5270), +(69, 5271), +(69, 5272), +(69, 5273), +(69, 5274), +(69, 5275), +(69, 5276), +(69, 5277), +(69, 5278), +(69, 5279), +(69, 5280), +(69, 5281), +(69, 5282), +(69, 5283), +(69, 5284), +(69, 5285), +(69, 5286), +(69, 5287), +(69, 5288), +(69, 5289), +(69, 5290), +(69, 5291), +(69, 5292), +(69, 5293), +(69, 5294), +(69, 5295), +(69, 5296), +(69, 5297), +(69, 5298), +(69, 5299), +(69, 5300), +(69, 5301), +(69, 5302), +(69, 5303), +(69, 5304), +(69, 5305), +(69, 5306), +(69, 5307), +(69, 5308), +(69, 5309), +(69, 5310), +(69, 5311), +(69, 5312), +(69, 5313), +(69, 5314), +(69, 5315), +(69, 5316), +(69, 5317), +(69, 5318), +(69, 5319), +(69, 5320), +(69, 5321), +(69, 5322), +(69, 5323), +(69, 5324), +(69, 5325), +(69, 5326), +(69, 5327), +(69, 5328), +(69, 5329), +(69, 5330), +(69, 5331), +(69, 5332), +(69, 5333), +(69, 5334), +(69, 5335), +(69, 5336), +(69, 5337), +(69, 5338), +(69, 5339), +(69, 5340), +(69, 5341), +(69, 5342), +(69, 5343), +(69, 5344), +(69, 5345), +(69, 5346), +(69, 5347), +(69, 5348), +(69, 5349), +(69, 5350), +(69, 5351), +(69, 5352), +(69, 5353), +(69, 5354), +(69, 5355), +(69, 5356), +(69, 5357), +(69, 5358), +(69, 5359), +(69, 5360), +(69, 5361), +(69, 5362), +(69, 5363), +(69, 5364), +(69, 5365), +(69, 5366), +(69, 5367), +(69, 5368), +(69, 5369), +(69, 5370), +(69, 5371), +(69, 5372), +(69, 5373), +(69, 5374), +(69, 5375), +(69, 5376), +(69, 5377), +(69, 5378), +(69, 5379), +(69, 5380), +(69, 5381), +(69, 5382), +(69, 5383), +(69, 5384), +(69, 5385), +(69, 5386), +(69, 5387), +(69, 5388), +(69, 5389), +(69, 5390), +(69, 5391), +(69, 5392), +(69, 5393), +(69, 5394), +(69, 5395), +(69, 5396), +(69, 5397), +(69, 5398), +(69, 5399), +(69, 5400), +(69, 5401), +(69, 5402), +(69, 5403), +(69, 5404), +(69, 5405), +(69, 5406), +(69, 5407), +(69, 5408), +(69, 5409), +(69, 5410), +(69, 5411), +(69, 5412), +(69, 5413), +(69, 5414), +(69, 5415), +(69, 5416), +(69, 5417), +(69, 5418), +(69, 5419), +(69, 5420), +(69, 5421), +(69, 5422), +(69, 5423), +(69, 5424), +(69, 5425), +(69, 5426), +(69, 5427), +(69, 5428), +(69, 5429), +(69, 5430), +(69, 5431), +(69, 5432), +(69, 5433), +(69, 5434), +(69, 5435), +(69, 5436), +(69, 5437), +(69, 5438), +(69, 5439), +(69, 5440), +(69, 5441), +(69, 5442), +(69, 5443), +(69, 5444), +(69, 5445), +(69, 5446), +(69, 5447), +(69, 5448), +(69, 5449), +(69, 5450), +(69, 5451), +(69, 5452), +(69, 5453), +(69, 5454), +(69, 5455), +(69, 5456), +(69, 5457), +(69, 5458), +(69, 5459), +(69, 5460), +(69, 5461), +(69, 5462), +(69, 5463), +(69, 5464), +(69, 5465), +(69, 5466), +(69, 5467), +(69, 5468), +(69, 5469), +(69, 5470), +(69, 5471), +(69, 5472), +(69, 5473), +(69, 5474), +(69, 5475), +(69, 5476), +(69, 5477), +(69, 5478), +(69, 5479), +(69, 5480), +(69, 5481), +(69, 5482), +(69, 5483), +(69, 5484), +(69, 5485), +(69, 5486), +(69, 5487), +(69, 5488), +(69, 5489), +(69, 5490), +(69, 5491), +(69, 5492), +(69, 5493), +(69, 5494), +(69, 5495), +(69, 5496), +(69, 5497), +(69, 5498), +(69, 5499), +(69, 5500), +(69, 5501), +(69, 5502), +(69, 5503), +(69, 5504), +(69, 5505), +(69, 5506), +(69, 5507), +(69, 5508), +(69, 5509), +(69, 5510), +(69, 5511), +(69, 5512), +(69, 5513), +(69, 5514), +(69, 5515), +(69, 5516), +(69, 5517), +(69, 5518), +(69, 5519), +(69, 5520), +(69, 5521), +(69, 5522), +(69, 5523), +(69, 5524), +(69, 5525), +(69, 5526), +(69, 5527), +(69, 5528), +(69, 5529), +(69, 5530), +(69, 5531), +(69, 5532), +(69, 5533), +(69, 5534), +(69, 5535), +(69, 5536), +(69, 5537), +(69, 5538), +(69, 5539), +(69, 5540), +(69, 5541), +(69, 5542), +(69, 5543), +(69, 5544), +(69, 5545), +(69, 5546), +(69, 5547), +(69, 5548), +(69, 5549), +(69, 5550), +(69, 5551), +(69, 5552), +(69, 5553), +(69, 5554), +(69, 5555), +(69, 5556), +(69, 5557), +(69, 5558), +(69, 5559), +(69, 5560), +(69, 5561), +(69, 5562), +(69, 5563), +(69, 5564), +(69, 5565), +(69, 5566), +(69, 5567), +(69, 5568), +(69, 5569), +(69, 5570), +(69, 5571), +(69, 5572), +(69, 5573), +(69, 5574), +(69, 5575), +(69, 5576), +(69, 5577), +(69, 5578), +(69, 5579), +(69, 5580), +(69, 5581), +(69, 5582), +(69, 5583), +(69, 5584), +(69, 5585), +(69, 5586), +(69, 5587), +(69, 5588), +(69, 5589), +(69, 5590), +(69, 5591), +(69, 5592), +(69, 5593), +(69, 5594), +(69, 5595), +(69, 5596), +(69, 5597), +(69, 5598), +(69, 5599), +(69, 5600), +(69, 5601), +(69, 5602), +(69, 5603), +(69, 5604), +(69, 5605), +(69, 5606), +(69, 5607), +(69, 5608), +(69, 5609), +(69, 5610), +(69, 5611), +(69, 5612), +(69, 5613), +(69, 5614), +(69, 5615), +(69, 5616), +(69, 5617), +(69, 5618), +(69, 5619), +(69, 5620), +(69, 5621), +(69, 5622), +(69, 5623), +(69, 5624), +(69, 5625), +(69, 5626), +(69, 5627), +(69, 5628), +(69, 5629), +(69, 5630), +(69, 5631), +(69, 5632), +(69, 5633), +(69, 5634), +(69, 5635), +(69, 5636), +(69, 5637), +(69, 5638), +(69, 5639), +(69, 5640), +(69, 5641), +(69, 5642), +(69, 5643), +(69, 5644), +(69, 5645), +(69, 5646), +(69, 5647), +(69, 5648), +(69, 5649), +(69, 5650), +(69, 5651), +(69, 5652), +(69, 5653), +(69, 5654), +(69, 5655), +(69, 5656), +(69, 5657), +(69, 5658), +(69, 5659), +(69, 5660), +(69, 5661), +(69, 5662), +(69, 5663), +(69, 5664), +(69, 5665), +(69, 5666), +(69, 5667), +(69, 5668), +(69, 5669), +(69, 5670), +(69, 5671), +(69, 5672), +(69, 5673), +(69, 5674), +(69, 5675), +(69, 5676), +(69, 5677), +(69, 5678), +(69, 5679), +(69, 5680), +(69, 5681), +(69, 5682), +(69, 5683), +(69, 5684), +(69, 5685), +(69, 5686), +(69, 5687), +(69, 5688), +(69, 5689), +(69, 5690), +(69, 5691), +(69, 5692), +(69, 5693), +(69, 5694), +(69, 5695), +(69, 5696), +(69, 5697), +(69, 5698), +(69, 5699), +(69, 5700), +(69, 5701), +(69, 5702), +(69, 5703), +(69, 5704), +(69, 5705), +(69, 5706), +(69, 5707), +(69, 5708), +(69, 5709), +(69, 5710), +(69, 5711), +(69, 5712), +(69, 5713), +(69, 5714), +(69, 5715), +(69, 5716), +(69, 5717), +(69, 5718), +(69, 5719), +(69, 5720), +(69, 5721), +(69, 5722), +(69, 5723), +(69, 5724), +(69, 5725), +(69, 5726), +(69, 5727), +(69, 5728), +(69, 5729), +(69, 5730), +(69, 5731), +(69, 5732), +(69, 5733), +(69, 5734), +(69, 5735), +(69, 5736), +(69, 5737), +(69, 5738), +(69, 5739), +(69, 5740), +(69, 5741), +(69, 5742), +(69, 5743), +(69, 5744), +(69, 5745), +(69, 5746), +(69, 5747), +(69, 5748), +(69, 5749), +(69, 5750), +(69, 5751), +(69, 5752), +(69, 5753), +(69, 5754), +(69, 5755), +(69, 5756), +(69, 5757), +(69, 5758), +(69, 5759), +(69, 5760), +(69, 5761), +(69, 5762), +(69, 5763), +(69, 5764), +(69, 5765), +(69, 5766), +(69, 5767), +(69, 5768), +(69, 5769), +(69, 5770), +(69, 5771), +(69, 5772), +(69, 5773), +(69, 5774), +(69, 5775), +(69, 5776), +(69, 5777), +(69, 5778), +(69, 5779), +(69, 5780), +(69, 5781), +(69, 5782), +(69, 5783), +(69, 5784), +(69, 5785), +(69, 5786), +(69, 5787), +(69, 5788), +(69, 5789), +(69, 5790), +(69, 5791), +(69, 5792), +(69, 5793), +(69, 5794), +(69, 5795), +(69, 5796), +(69, 5797), +(69, 5798), +(69, 5799), +(69, 5800), +(69, 5801), +(69, 5802), +(69, 5803), +(69, 5804), +(69, 5805), +(69, 5806), +(69, 5807), +(69, 5808), +(69, 5809), +(69, 5810), +(69, 5811), +(69, 5812), +(69, 5813), +(69, 5814), +(69, 5815), +(69, 5816), +(69, 5817), +(69, 5818), +(69, 5819), +(69, 5820), +(69, 5821), +(69, 5822), +(69, 5823), +(69, 5824), +(69, 5825), +(69, 5826), +(69, 5827), +(69, 5828), +(69, 5829), +(69, 5830), +(69, 5831), +(69, 5832), +(69, 5833), +(69, 5834), +(69, 5835), +(69, 5836), +(69, 5837), +(69, 5838), +(69, 5839), +(69, 5840), +(69, 5841), +(69, 5842), +(69, 5843), +(69, 5844), +(69, 5845), +(69, 5846), +(69, 5847), +(69, 5848), +(69, 5849), +(69, 5850), +(69, 5851), +(69, 5852), +(69, 5853), +(69, 5854), +(69, 5855), +(69, 5856), +(69, 5857), +(69, 5858), +(69, 5859), +(69, 5860), +(69, 5861), +(69, 5862), +(69, 5863), +(69, 5864), +(69, 5865), +(69, 5866), +(69, 5867), +(69, 5868), +(69, 5869), +(69, 5870), +(69, 5871), +(69, 5872), +(69, 5873), +(69, 5874), +(69, 5875), +(69, 5876), +(69, 5877), +(69, 5878), +(69, 5879), +(69, 5880), +(69, 5881), +(69, 5882), +(69, 5883), +(69, 5884), +(69, 5885), +(69, 5886), +(69, 5887), +(69, 5888), +(69, 5889), +(69, 5890), +(69, 5891), +(69, 5892), +(69, 5893), +(69, 5894), +(69, 5895), +(69, 5896), +(69, 5897), +(69, 5898), +(69, 5899), +(69, 5900), +(69, 5901), +(69, 5902), +(69, 5903), +(69, 5904), +(69, 5905), +(69, 5906), +(69, 5907), +(69, 5908), +(69, 5909), +(69, 5910), +(69, 5911), +(69, 5912), +(69, 5913), +(69, 5914), +(69, 5915), +(69, 5916), +(69, 5917), +(69, 5918), +(69, 5919), +(69, 5920), +(69, 5921), +(69, 5922), +(69, 5923), +(69, 5924), +(69, 5925), +(69, 5926), +(69, 5927), +(69, 5928), +(69, 5929), +(69, 5930), +(69, 5931), +(69, 5932), +(69, 5933), +(69, 5934), +(69, 5935), +(69, 5936), +(69, 5937), +(69, 5938), +(69, 5939), +(69, 5940), +(69, 5941), +(69, 5942), +(69, 5943), +(69, 5944), +(69, 5945), +(69, 5946), +(69, 5947), +(69, 5948), +(69, 5949), +(69, 5950), +(69, 5951), +(69, 5952), +(69, 5953), +(69, 5954), +(69, 5955), +(69, 5956), +(69, 5957), +(69, 5958), +(69, 5959), +(69, 5960), +(69, 5961), +(69, 5962), +(69, 5963), +(69, 5964), +(69, 5965), +(69, 5966), +(69, 5967), +(69, 5968), +(69, 5969), +(69, 5970), +(69, 5971), +(69, 5972), +(69, 5973), +(69, 5974), +(69, 5975), +(69, 5976), +(69, 5977), +(69, 5978), +(69, 5979), +(69, 5980), +(69, 5981), +(69, 5982), +(69, 5983), +(69, 5984), +(69, 5985), +(69, 5986), +(69, 5987), +(69, 5988), +(69, 5989), +(69, 5990), +(69, 5991), +(69, 5992), +(69, 5993), +(69, 5994), +(69, 5995), +(69, 5996), +(69, 5997), +(69, 5998), +(69, 5999), +(69, 6000), +(69, 6001), +(69, 6002), +(69, 6003), +(69, 6004), +(69, 6005), +(69, 6006), +(69, 6007), +(69, 6008), +(69, 6009), +(69, 6010), +(69, 6011), +(69, 6012), +(69, 6013), +(69, 6014), +(69, 6015), +(69, 6016), +(69, 6017), +(69, 6018), +(69, 6019), +(69, 6020), +(69, 6021), +(69, 6022), +(69, 6023), +(69, 6024), +(69, 6025), +(69, 6026), +(69, 6027), +(69, 6028), +(69, 6029), +(69, 6030), +(69, 6031), +(69, 6032), +(69, 6033), +(69, 6034), +(69, 6035), +(69, 6036), +(69, 6037), +(69, 6038), +(69, 6039), +(69, 6040), +(69, 6041), +(69, 6042), +(69, 6043), +(69, 6044), +(69, 6045), +(69, 6046), +(69, 6047), +(69, 6048), +(69, 6049), +(69, 6050), +(69, 6051), +(69, 6052), +(69, 6053), +(69, 6054), +(69, 6055), +(69, 6056), +(69, 6057), +(69, 6058), +(69, 6059), +(69, 6060), +(69, 6061), +(69, 6062), +(69, 6063), +(69, 6064), +(69, 6065), +(69, 6066), +(69, 6067), +(69, 6068), +(69, 6069), +(69, 6070), +(69, 6071), +(69, 6072), +(69, 6073), +(69, 6074), +(69, 6075), +(69, 6076), +(69, 6077), +(69, 6078), +(69, 6079), +(69, 6080), +(69, 6081), +(69, 6082), +(69, 6083), +(69, 6084), +(69, 6085), +(69, 6086), +(69, 6087), +(69, 6088), +(69, 6089), +(69, 6090), +(69, 6091), +(69, 6092), +(69, 6093), +(69, 6094), +(69, 6095), +(69, 6096), +(69, 6097), +(69, 6098), +(69, 6099), +(69, 6100), +(69, 6101), +(69, 6102), +(69, 6103), +(69, 6104), +(69, 6105), +(69, 6106), +(69, 6107), +(69, 6108), +(69, 6109), +(69, 6110), +(69, 6111), +(69, 6112), +(69, 6113), +(69, 6114), +(69, 6115), +(69, 6116), +(69, 6117), +(69, 6118), +(69, 6119), +(69, 6120), +(69, 6121), +(69, 6122), +(69, 6123), +(69, 6124), +(69, 6125), +(69, 6126), +(69, 6127), +(69, 6128), +(69, 6129), +(69, 6130), +(69, 6131), +(69, 6132), +(69, 6133), +(69, 6134), +(69, 6135), +(69, 6136), +(69, 6137), +(69, 6138), +(69, 6139), +(69, 6140), +(69, 6141), +(69, 6142), +(69, 6143), +(69, 6144), +(69, 6145), +(69, 6146), +(69, 6147), +(69, 6148), +(69, 6149), +(69, 6150), +(69, 6151), +(69, 6152), +(69, 6153), +(69, 6154), +(69, 6155), +(69, 6156), +(69, 6157), +(69, 6158), +(69, 6159), +(69, 6160), +(69, 6161), +(69, 6162), +(69, 6163), +(69, 6164), +(69, 6165), +(69, 6166), +(69, 6167), +(69, 6168), +(69, 6169), +(69, 6170), +(69, 6171), +(69, 6172), +(69, 6173), +(69, 6174), +(69, 6175), +(69, 6176), +(69, 6177), +(69, 6178), +(69, 6179), +(69, 6180), +(69, 6181), +(69, 6182), +(69, 6183), +(69, 6184), +(69, 6185), +(69, 6186), +(69, 6187), +(69, 6188), +(69, 6189), +(69, 6190), +(69, 6191), +(69, 6192), +(69, 6193), +(69, 6194), +(69, 6195), +(69, 6196), +(69, 6197), +(69, 6198), +(69, 6199), +(69, 6200), +(69, 6201), +(69, 6202), +(69, 6203), +(69, 6204), +(69, 6205), +(69, 6206), +(69, 6207), +(69, 6208), +(69, 6209), +(69, 6210), +(69, 6211), +(69, 6212), +(69, 6213), +(69, 6214), +(69, 6215), +(69, 6216), +(69, 6217), +(69, 6218), +(69, 6219), +(69, 6220), +(69, 6221), +(69, 6222), +(69, 6223), +(69, 6224), +(69, 6225), +(69, 6226), +(69, 6227), +(69, 6228), +(69, 6229), +(69, 6230), +(69, 6231), +(69, 6232), +(69, 6233), +(69, 6234), +(69, 6235), +(69, 6236), +(69, 6237), +(69, 6238), +(69, 6239), +(69, 6240), +(69, 6241), +(69, 6242), +(69, 6243), +(69, 6244), +(69, 6245), +(69, 6246), +(69, 6247), +(69, 6248), +(69, 6249), +(69, 6250), +(69, 6251), +(69, 6252), +(69, 6253), +(69, 6254), +(69, 6255), +(69, 6256), +(69, 6257), +(69, 6258), +(69, 6259), +(69, 6260), +(69, 6261), +(69, 6262), +(69, 6263), +(69, 6264), +(69, 6265), +(69, 6266), +(69, 6267), +(69, 6268), +(69, 6269), +(69, 6270), +(69, 6271), +(69, 6272), +(69, 6273), +(69, 6274), +(69, 6275), +(69, 6276), +(69, 6277), +(69, 6278), +(69, 6279), +(69, 6280), +(69, 6281), +(69, 6282), +(69, 6283), +(69, 6284), +(69, 6285), +(69, 6286), +(69, 6287), +(69, 6288), +(69, 6289), +(69, 6290), +(69, 6291), +(69, 6292), +(69, 6293), +(69, 6294), +(69, 6295), +(69, 6296), +(69, 6297), +(69, 6298), +(69, 6299), +(69, 6300), +(69, 6301), +(69, 6302), +(69, 6303), +(69, 6304), +(69, 6305), +(69, 6306), +(69, 6307), +(69, 6308), +(69, 6309), +(69, 6310), +(69, 6311), +(69, 6312), +(69, 6313), +(69, 6314), +(69, 6315), +(69, 6316), +(69, 6317), +(69, 6318), +(69, 6319), +(69, 6320), +(69, 6321), +(69, 6322), +(69, 6323), +(69, 6324), +(69, 6325), +(69, 6326), +(69, 6327), +(69, 6328), +(69, 6329), +(69, 6330), +(69, 6331), +(69, 6332), +(69, 6333), +(69, 6334), +(69, 6335), +(69, 6336), +(69, 6337), +(69, 6338), +(69, 6339), +(69, 6340), +(69, 6341), +(69, 6342), +(69, 6343), +(69, 6344), +(69, 6345), +(69, 6346), +(69, 6347), +(69, 6348), +(69, 6349), +(69, 6350), +(69, 6351), +(69, 6352), +(69, 6353), +(69, 6354), +(69, 6355), +(69, 6356), +(69, 6357), +(69, 6358), +(69, 6359), +(69, 6360), +(69, 6361), +(69, 6362), +(69, 6363), +(69, 6364), +(69, 6365), +(69, 6366), +(69, 6367), +(69, 6368), +(69, 6369), +(69, 6370), +(69, 6371), +(69, 6372), +(69, 6373), +(69, 6374), +(69, 6375), +(69, 6376), +(69, 6377), +(69, 6378), +(69, 6379), +(69, 6380), +(69, 6381), +(69, 6382), +(69, 6383), +(69, 6384), +(69, 6385), +(69, 6386), +(69, 6387), +(69, 6388), +(69, 6389), +(69, 6390), +(69, 6391), +(69, 6392), +(69, 6393), +(69, 6394), +(69, 6395), +(69, 6396), +(69, 6397), +(69, 6398), +(69, 6399), +(69, 6400), +(69, 6401), +(69, 6402), +(69, 6403), +(69, 6404), +(69, 6405), +(69, 6406), +(69, 6407), +(69, 6408), +(69, 6409), +(69, 6410), +(69, 6411), +(69, 6412), +(69, 6413), +(69, 6414), +(69, 6415), +(69, 6416), +(69, 6417), +(69, 6418), +(69, 6419), +(69, 6420), +(69, 6421), +(69, 6422), +(69, 6423), +(69, 6424), +(69, 6425), +(69, 6426), +(69, 6427), +(69, 6428), +(69, 6429), +(69, 6430), +(69, 6431), +(69, 6432), +(69, 6433), +(69, 6434), +(69, 6435), +(69, 6436), +(69, 6437), +(69, 6438), +(69, 6439), +(69, 6440), +(69, 6441), +(69, 6442), +(69, 6443), +(69, 6444), +(69, 6445), +(69, 6446), +(69, 6447), +(69, 6448), +(69, 6449), +(69, 6450), +(69, 6451), +(69, 6452), +(69, 6453), +(69, 6454), +(69, 6455), +(69, 6456), +(69, 6457), +(69, 6458), +(69, 6459), +(69, 6460), +(69, 6461), +(69, 6462), +(69, 6463), +(69, 6464), +(69, 6465), +(69, 6466), +(69, 6467), +(69, 6468), +(69, 6469), +(69, 6470), +(69, 6471), +(69, 6472), +(69, 6473), +(69, 6474), +(69, 6475), +(69, 6476), +(69, 6477), +(69, 6478), +(69, 6479), +(69, 6480), +(69, 6481), +(69, 6482), +(69, 6483), +(69, 6484), +(69, 6485), +(69, 6486), +(69, 6487), +(69, 6488), +(69, 6489), +(69, 6490), +(69, 6491), +(69, 6492), +(69, 6493), +(69, 6494), +(69, 6495), +(69, 6496), +(69, 6497), +(69, 6498), +(69, 6499), +(69, 6500), +(69, 6501), +(69, 6502), +(69, 6503), +(69, 6504), +(69, 6505), +(69, 6506), +(69, 6507), +(69, 6508), +(69, 6509), +(69, 6510), +(69, 6511), +(69, 6512), +(69, 6513), +(69, 6514), +(69, 6515), +(69, 6516), +(69, 6517), +(69, 6518), +(69, 6519), +(69, 6520), +(69, 6521), +(69, 6522), +(69, 6523), +(69, 6524), +(69, 6525), +(69, 6526), +(69, 6527), +(69, 6528), +(69, 6529), +(69, 6530), +(69, 6531), +(69, 6532), +(69, 6533), +(69, 6534), +(69, 6535), +(69, 6536), +(69, 6537), +(69, 6538), +(69, 6539), +(69, 6540), +(69, 6541), +(69, 6542), +(69, 6543), +(69, 6544), +(69, 6545), +(69, 6546), +(69, 6547), +(69, 6548), +(69, 6549), +(69, 6550), +(69, 6551), +(69, 6552), +(69, 6553), +(69, 6554), +(69, 6555), +(69, 6556), +(69, 6557), +(69, 6558), +(69, 6559), +(69, 6560), +(69, 6561), +(69, 6562), +(69, 6563), +(69, 6564), +(69, 6565), +(69, 6566), +(69, 6567), +(69, 6568), +(69, 6569), +(69, 6570), +(69, 6571), +(69, 6572), +(69, 6573), +(69, 6574), +(69, 6575), +(69, 6576), +(69, 6577), +(69, 6578), +(69, 6579), +(69, 6580), +(69, 6581), +(69, 6582), +(69, 6583), +(69, 6584), +(69, 6585), +(69, 6586), +(69, 6587), +(69, 6588), +(69, 6589), +(69, 6590), +(69, 6591), +(69, 6592), +(69, 6593), +(69, 6594), +(69, 6595), +(69, 6596), +(69, 6597), +(69, 6598), +(69, 6599), +(69, 6600), +(69, 6601), +(69, 6602), +(69, 6603), +(69, 6604), +(69, 6605), +(69, 6606), +(69, 6607), +(69, 6608), +(69, 6609), +(69, 6610), +(69, 6611), +(69, 6612), +(69, 6613), +(69, 6614), +(69, 6615), +(69, 6616), +(69, 6617), +(69, 6618), +(69, 6619), +(69, 6620), +(69, 6621), +(69, 6622), +(69, 6623), +(69, 6624), +(69, 6625), +(69, 6626), +(69, 6627), +(69, 6628), +(69, 6629), +(69, 6630), +(69, 6631), +(69, 6632), +(69, 6633), +(69, 6634), +(69, 6635), +(69, 6636), +(69, 6637), +(69, 6638), +(69, 6639), +(69, 6640), +(69, 6641), +(69, 6642), +(69, 6643), +(69, 6644), +(69, 6645), +(69, 6646), +(69, 6647), +(69, 6648), +(69, 6649), +(69, 6650), +(69, 6651), +(69, 6652), +(69, 6653), +(69, 6654), +(69, 6655), +(69, 6656), +(69, 6657), +(69, 6658), +(69, 6659), +(69, 6660), +(69, 6661), +(69, 6662), +(69, 6663), +(69, 6664), +(69, 6665), +(69, 6666), +(69, 6667), +(69, 6668), +(69, 6669), +(69, 6670), +(69, 6671), +(69, 6672), +(69, 6673), +(69, 6674), +(69, 6675), +(69, 6676), +(69, 6677), +(69, 6678), +(69, 6679), +(69, 6680), +(69, 6681), +(69, 6682), +(69, 6683), +(69, 6684), +(69, 6685), +(69, 6686), +(69, 6687), +(69, 6688), +(69, 6689), +(69, 6690), +(69, 6691), +(69, 6692), +(69, 6693), +(69, 6694), +(69, 6695), +(69, 6696), +(69, 6697), +(69, 6698), +(69, 6699), +(69, 6700), +(69, 6701), +(69, 6702), +(69, 6703), +(69, 6704), +(69, 6705), +(69, 6706), +(69, 6707), +(69, 6708), +(69, 6709), +(69, 6710), +(69, 6711), +(69, 6712), +(69, 6713), +(69, 6714), +(69, 6715), +(69, 6716), +(69, 6717), +(69, 6718), +(69, 6719), +(69, 6720), +(69, 6721), +(69, 6722), +(69, 6723), +(69, 6724), +(69, 6725), +(69, 6726), +(69, 6727), +(69, 6728), +(69, 6729), +(69, 6730), +(69, 6731), +(69, 6732), +(69, 6733), +(69, 6734), +(69, 6735), +(69, 6736), +(69, 6737), +(69, 6738), +(69, 6739), +(69, 6740), +(69, 6741), +(69, 6742), +(69, 6743), +(69, 6744), +(69, 6745), +(69, 6746), +(69, 6747), +(69, 6748), +(69, 6749), +(69, 6750), +(69, 6751), +(69, 6752), +(69, 6753), +(69, 6754), +(69, 6755), +(69, 6756), +(69, 6757), +(69, 6758), +(69, 6759), +(69, 6760), +(69, 6761), +(69, 6762), +(69, 6763), +(69, 6764), +(69, 6765), +(69, 6766), +(69, 6767), +(69, 6768), +(69, 6769), +(69, 6770), +(69, 6771), +(69, 6772), +(69, 6773), +(69, 6774), +(69, 6775), +(69, 6776), +(69, 6777), +(69, 6778), +(69, 6779), +(69, 6780), +(69, 6781), +(69, 6782), +(69, 6783), +(69, 6784), +(69, 6785), +(69, 6786), +(69, 6787), +(69, 6788), +(69, 6789), +(69, 6790), +(69, 6791), +(69, 6792), +(69, 6793), +(69, 6794), +(69, 6795), +(69, 6796), +(69, 6797), +(69, 6798), +(69, 6799), +(69, 6800), +(69, 6801), +(69, 6802), +(69, 6803), +(69, 6804), +(69, 6805), +(69, 6806), +(69, 6807), +(69, 6808), +(69, 6809), +(69, 6810), +(69, 6811), +(69, 6812), +(69, 6813), +(69, 6814), +(69, 6815), +(69, 6816), +(69, 6817), +(69, 6818), +(69, 6819), +(69, 6820), +(69, 6821), +(69, 6822), +(69, 6823), +(69, 6824), +(69, 6825), +(69, 6826), +(69, 6827), +(69, 6828), +(69, 6829), +(69, 6830), +(69, 6831), +(69, 6832), +(69, 6833), +(69, 6834), +(69, 6835), +(69, 6836), +(69, 6837), +(69, 6838), +(69, 6839), +(69, 6840), +(69, 6841), +(69, 6842), +(69, 6843), +(69, 6844), +(69, 6845), +(69, 6846), +(69, 6847), +(69, 6848), +(69, 6849), +(69, 6850), +(69, 6851), +(69, 6852), +(69, 6853), +(69, 6854), +(69, 6855), +(69, 6856), +(69, 6857), +(69, 6858), +(69, 6859), +(69, 6860), +(69, 6861), +(69, 6862), +(69, 6863), +(69, 6864), +(69, 6865), +(69, 6866), +(69, 6867), +(69, 6868), +(69, 6869), +(69, 6870), +(69, 6871), +(69, 6872), +(69, 6873), +(69, 6874), +(69, 6875), +(69, 6876), +(69, 6877), +(69, 6878), +(69, 6879), +(69, 6880), +(69, 6881), +(69, 6882), +(69, 6883), +(69, 6884), +(69, 6885), +(69, 6886), +(69, 6887), +(69, 6888), +(69, 6889), +(69, 6890), +(69, 6891), +(69, 6892), +(69, 6893), +(69, 6894), +(69, 6895), +(69, 6896), +(69, 6897), +(69, 6898), +(69, 6899), +(69, 6900), +(69, 6901), +(69, 6902), +(69, 6903), +(69, 6904), +(69, 6905), +(69, 6906), +(69, 6907), +(69, 6908), +(69, 6909), +(69, 6910), +(69, 6911), +(69, 6912), +(69, 6913), +(69, 6914), +(69, 6915), +(69, 6916), +(69, 6917), +(69, 6918), +(69, 6919), +(69, 6920), +(69, 6921), +(69, 6922), +(69, 6923), +(69, 6924), +(69, 6925), +(69, 6926), +(69, 6927), +(69, 6928), +(69, 6929), +(69, 6930), +(69, 6931), +(69, 6932), +(69, 6933), +(69, 6934), +(69, 6935), +(69, 6936), +(69, 6937), +(69, 6938), +(69, 6939), +(69, 6940), +(69, 6941), +(69, 6942), +(69, 6943), +(69, 6944), +(69, 6945), +(69, 6946), +(69, 6947), +(69, 6948), +(69, 6949), +(69, 6950), +(69, 6951), +(69, 6952), +(69, 6953), +(69, 6954), +(69, 6955), +(69, 6956), +(69, 6957), +(69, 6958), +(69, 6959), +(69, 6960), +(69, 6961), +(69, 6962), +(69, 6963), +(69, 6964), +(69, 6965), +(69, 6966), +(69, 6967), +(69, 6968), +(69, 6969), +(69, 6970), +(69, 6971), +(69, 6972), +(69, 6973), +(69, 6974), +(69, 6975), +(69, 6976), +(69, 6977), +(69, 6978), +(69, 6979), +(69, 6980), +(69, 6981), +(69, 6982), +(69, 6983), +(69, 6984), +(69, 6985), +(69, 6986), +(69, 6987), +(69, 6988), +(69, 6989), +(69, 6990), +(69, 6991), +(69, 6992), +(69, 6993), +(69, 6994), +(69, 6995), +(69, 6996), +(69, 6997), +(69, 6998), +(69, 6999), +(69, 7000), +(69, 7001), +(69, 7002), +(69, 7003), +(69, 7004), +(69, 7005), +(69, 7006), +(69, 7007), +(69, 7008), +(69, 7009), +(69, 7010), +(69, 7011), +(69, 7012), +(69, 7013), +(69, 7014), +(69, 7015), +(69, 7016), +(69, 7017), +(69, 7018), +(69, 7019), +(69, 7020), +(69, 7021), +(69, 7022), +(69, 7023), +(69, 7024), +(69, 7025), +(69, 7026), +(69, 7027), +(69, 7028), +(69, 7029), +(69, 7030), +(69, 7031), +(69, 7032), +(69, 7033), +(69, 7034), +(69, 7035), +(69, 7036), +(69, 7037), +(69, 7038), +(69, 7039), +(69, 7040), +(69, 7041), +(69, 7042), +(69, 7043), +(69, 7044), +(69, 7045), +(69, 7046), +(69, 7047), +(69, 7048), +(69, 7049), +(69, 7050), +(69, 7051), +(69, 7052), +(69, 7053), +(69, 7054), +(69, 7055), +(69, 7056), +(69, 7057), +(69, 7058), +(69, 7059), +(69, 7060), +(69, 7061), +(69, 7062), +(69, 7063), +(69, 7064), +(69, 7065), +(69, 7066), +(69, 7067), +(69, 7068), +(69, 7069), +(69, 7070), +(69, 7071), +(69, 7072), +(69, 7073), +(69, 7074), +(69, 7075), +(69, 7076), +(69, 7077), +(69, 7078), +(69, 7079), +(69, 7080), +(69, 7081), +(69, 7082), +(69, 7083), +(69, 7084), +(69, 7085), +(69, 7086), +(69, 7087), +(69, 7088), +(69, 7089), +(69, 7090), +(69, 7091), +(69, 7092), +(69, 7093), +(69, 7094), +(69, 7095), +(69, 7096), +(69, 7097), +(69, 7098), +(69, 7099), +(69, 7100), +(69, 7101), +(69, 7102), +(69, 7103), +(69, 7104), +(69, 7105), +(69, 7106), +(69, 7107), +(69, 7108), +(69, 7109), +(69, 7110), +(69, 7111), +(69, 7112), +(69, 7113), +(69, 7114), +(69, 7115), +(69, 7116), +(69, 7117), +(69, 7118), +(69, 7119), +(69, 7120), +(69, 7121), +(69, 7122), +(69, 7123), +(69, 7124), +(69, 7125), +(69, 7126), +(69, 7127), +(69, 7128), +(69, 7129), +(69, 7130), +(69, 7131), +(69, 7132), +(69, 7133), +(69, 7134), +(69, 7135), +(69, 7136), +(69, 7137), +(69, 7138), +(69, 7139), +(69, 7140), +(69, 7141), +(69, 7142), +(69, 7143), +(69, 7144), +(69, 7145), +(69, 7146), +(69, 7147), +(69, 7148), +(69, 7149), +(69, 7150), +(69, 7151), +(69, 7152), +(69, 7153), +(69, 7154), +(69, 7155), +(69, 7156), +(69, 7157), +(69, 7158), +(69, 7159), +(69, 7160), +(69, 7161), +(69, 7162), +(69, 7163), +(69, 7164), +(69, 7165), +(69, 7166), +(69, 7167), +(69, 7168), +(69, 7169), +(69, 7170), +(69, 7171), +(69, 7172), +(69, 7173), +(69, 7174), +(69, 7175), +(69, 7176), +(69, 7177), +(69, 7178), +(69, 7179), +(69, 7180), +(69, 7181), +(69, 7182), +(69, 7183), +(69, 7184), +(69, 7185), +(69, 7186), +(69, 7187), +(69, 7188), +(69, 7189), +(69, 7190), +(69, 7191), +(69, 7192), +(69, 7193), +(69, 7194), +(69, 7195), +(69, 7196), +(69, 7197), +(69, 7198), +(69, 7199), +(69, 7200), +(69, 7201), +(69, 7202), +(69, 7203), +(69, 7204), +(69, 7205), +(69, 7206), +(69, 7207), +(69, 7208), +(69, 7209), +(69, 7210), +(69, 7211), +(69, 7212), +(69, 7213), +(69, 7214), +(69, 7215), +(69, 7216), +(69, 7217), +(69, 7218), +(69, 7219), +(69, 7220), +(69, 7221), +(69, 7222), +(69, 7223), +(69, 7224), +(69, 7225), +(69, 7226), +(69, 7227), +(69, 7228), +(69, 7229), +(69, 7230), +(69, 7231), +(69, 7232), +(69, 7233), +(69, 7234), +(69, 7235), +(69, 7236), +(69, 7237), +(69, 7238), +(69, 7239), +(69, 7240), +(69, 7241), +(69, 7242), +(69, 7243), +(69, 7244), +(69, 7245), +(69, 7246), +(69, 7247), +(69, 7248), +(69, 7249), +(69, 7250), +(69, 7251), +(69, 7252), +(69, 7253), +(69, 7254), +(69, 7255), +(69, 7256), +(69, 7257), +(69, 7258), +(69, 7259), +(69, 7260), +(69, 7261), +(69, 7262), +(69, 7263), +(69, 7264), +(69, 7265), +(69, 7266), +(69, 7267), +(69, 7268), +(69, 7269), +(69, 7270), +(69, 7271), +(69, 7272), +(69, 7273), +(69, 7274), +(69, 7275), +(69, 7276), +(69, 7277), +(69, 7278), +(69, 7279), +(69, 7280), +(69, 7281), +(69, 7282), +(69, 7283), +(69, 7284), +(69, 7285), +(69, 7286), +(69, 7287), +(69, 7288), +(69, 7289), +(69, 7290), +(69, 7291), +(69, 7292), +(69, 7293), +(69, 7294), +(69, 7295), +(69, 7296), +(69, 7297), +(69, 7298), +(69, 7299), +(69, 7300), +(69, 7301), +(69, 7302), +(69, 7303), +(69, 7304), +(69, 7305), +(69, 7306), +(69, 7307), +(69, 7308), +(69, 7309), +(69, 7310), +(69, 7311), +(69, 7312), +(69, 7313), +(69, 7314), +(69, 7315), +(69, 7316), +(69, 7317), +(69, 7318), +(69, 7319), +(69, 7320), +(69, 7321), +(69, 7322), +(69, 7323), +(69, 7324), +(69, 7325), +(69, 7326), +(69, 7327), +(69, 7328), +(69, 7329), +(69, 7330), +(69, 7331), +(69, 7332), +(69, 7333), +(69, 7334), +(69, 7335), +(69, 7336), +(69, 7337), +(69, 7338), +(69, 7339), +(69, 7340), +(69, 7341), +(69, 7342), +(69, 7343), +(69, 7344), +(69, 7345), +(69, 7346), +(69, 7347), +(69, 7348), +(69, 7349), +(69, 7350), +(69, 7351), +(69, 7352), +(69, 7353), +(69, 7354), +(69, 7355), +(69, 7356), +(69, 7357), +(69, 7358), +(69, 7359), +(69, 7360), +(69, 7361), +(69, 7362), +(69, 7363), +(69, 7364), +(69, 7365), +(69, 7366), +(69, 7367), +(69, 7368), +(69, 7369), +(69, 7370), +(69, 7371), +(69, 7372), +(69, 7373), +(69, 7374), +(69, 7375), +(69, 7376), +(69, 7377), +(69, 7378), +(69, 7379), +(69, 7380), +(69, 7381), +(69, 7382), +(69, 7383), +(69, 7384), +(69, 7385), +(69, 7386), +(69, 7387), +(69, 7388), +(69, 7389), +(69, 7390), +(69, 7391), +(69, 7392), +(69, 7393), +(69, 7394), +(69, 7395), +(69, 7396), +(69, 7397), +(69, 7398), +(69, 7399), +(69, 7400), +(69, 7401), +(69, 7402), +(69, 7403), +(69, 7404), +(69, 7405), +(69, 7406), +(69, 7407), +(69, 7408), +(69, 7409), +(69, 7410), +(69, 7411), +(69, 7412), +(69, 7413), +(69, 7414), +(69, 7415), +(69, 7416), +(69, 7417), +(69, 7418), +(69, 7419), +(69, 7420), +(69, 7421), +(69, 7422), +(69, 7423), +(69, 7424), +(69, 7425), +(69, 7426), +(69, 7427), +(69, 7428), +(69, 7429), +(69, 7430), +(69, 7431), +(69, 7432), +(69, 7433), +(69, 7434), +(69, 7435), +(69, 7436), +(69, 7437), +(69, 7438), +(69, 7439), +(69, 7440), +(69, 7441), +(69, 7442), +(69, 7443), +(69, 7444), +(69, 7445), +(69, 7446), +(69, 7447), +(69, 7448), +(69, 7449), +(69, 7450), +(69, 7451), +(69, 7452), +(69, 7453), +(69, 7454), +(69, 7455), +(69, 7456), +(69, 7457), +(69, 7458), +(69, 7459), +(69, 7460), +(69, 7461), +(69, 7462), +(69, 7463), +(69, 7464), +(69, 7465), +(69, 7466), +(69, 7467), +(69, 7468), +(69, 7469), +(69, 7470), +(69, 7471), +(69, 7472), +(69, 7473), +(69, 7474), +(69, 7475), +(69, 7476), +(69, 7477), +(69, 7478), +(69, 7479), +(69, 7480), +(69, 7481), +(69, 7482), +(69, 7483), +(69, 7484), +(69, 7485), +(69, 7486), +(69, 7487), +(69, 7488), +(69, 7489), +(69, 7490), +(69, 7491), +(69, 7492), +(69, 7493), +(69, 7494), +(69, 7495), +(69, 7496), +(69, 7497), +(69, 7498), +(69, 7499), +(69, 7500), +(69, 7501), +(69, 7502), +(69, 7503), +(69, 7504), +(69, 7505), +(69, 7506), +(69, 7507), +(69, 7508), +(69, 7509), +(69, 7510), +(69, 7511), +(69, 7512), +(69, 7513), +(69, 7514), +(69, 7515), +(69, 7516), +(69, 7517), +(69, 7518), +(69, 7519), +(69, 7520), +(69, 7521), +(69, 7522), +(69, 7523), +(69, 7524), +(69, 7525), +(69, 7526), +(69, 7527), +(69, 7528), +(69, 7529), +(69, 7530), +(69, 7531), +(69, 7532), +(69, 7533), +(69, 7534), +(69, 7535), +(69, 7536), +(69, 7537), +(69, 7538), +(69, 7539), +(69, 7540), +(69, 7541), +(69, 7542), +(69, 7543), +(69, 7544), +(69, 7545), +(69, 7546), +(69, 7547), +(69, 7548), +(69, 7549), +(69, 7550), +(69, 7551), +(69, 7552), +(69, 7553), +(69, 7554), +(69, 7555), +(69, 7556), +(69, 7557), +(69, 7558), +(69, 7559), +(69, 7560), +(69, 7561), +(69, 7562), +(69, 7563), +(69, 7564), +(69, 7565), +(69, 7566), +(69, 7567), +(69, 7568), +(69, 7569), +(69, 7570), +(69, 7571), +(69, 7572), +(69, 7573), +(69, 7574), +(69, 7575), +(69, 7576), +(69, 7577), +(69, 7578), +(69, 7579), +(69, 7580), +(69, 7581), +(69, 7582), +(69, 7583), +(69, 7584), +(69, 7585), +(69, 7586), +(69, 7587), +(69, 7588), +(69, 7589), +(69, 7590), +(69, 7591), +(69, 7592), +(69, 7593), +(69, 7594), +(69, 7595), +(69, 7596), +(69, 7597), +(69, 7598), +(69, 7599), +(69, 7600), +(69, 7601), +(69, 7602), +(69, 7603), +(69, 7604), +(69, 7605), +(69, 7606), +(69, 7607), +(69, 7608), +(69, 7609), +(69, 7610), +(69, 7611), +(69, 7612), +(69, 7613), +(69, 7614), +(69, 7615), +(69, 7616), +(69, 7617), +(69, 7618), +(69, 7619), +(69, 7620), +(69, 7621), +(69, 7622), +(69, 7623), +(69, 7624), +(69, 7625), +(69, 7626), +(69, 7627), +(69, 7628), +(69, 7629), +(69, 7630), +(69, 7631), +(69, 7632), +(69, 7633), +(69, 7634), +(69, 7635), +(69, 7636), +(69, 7637), +(69, 7638), +(69, 7639), +(69, 7640), +(69, 7641), +(69, 7642), +(69, 7643), +(69, 7644), +(69, 7645), +(69, 7646), +(69, 7647), +(69, 7648), +(69, 7649), +(69, 7650), +(69, 7651), +(69, 7652), +(69, 7653), +(69, 7654), +(69, 7655), +(69, 7656), +(69, 7657), +(69, 7658), +(69, 7659), +(69, 7660), +(69, 7661), +(69, 7662), +(69, 7663), +(69, 7664), +(69, 7665), +(69, 7666), +(69, 7667), +(69, 7668), +(69, 7669), +(69, 7670), +(69, 7671), +(69, 7672), +(69, 7673), +(69, 7674), +(69, 7675), +(69, 7676), +(69, 7677), +(69, 7678), +(69, 7679), +(69, 7680), +(69, 7681), +(69, 7682), +(69, 7683), +(69, 7684), +(69, 7685), +(69, 7686), +(69, 7687), +(69, 7688), +(69, 7689), +(69, 7690), +(69, 7691), +(69, 7692), +(69, 7693), +(69, 7694), +(69, 7695), +(69, 7696), +(69, 7697), +(69, 7698), +(69, 7699), +(69, 7700), +(69, 7701), +(69, 7702), +(69, 7703), +(69, 7704), +(69, 7705), +(69, 7706), +(69, 7707), +(69, 7708), +(69, 7709), +(69, 7710), +(69, 7711), +(69, 7712), +(69, 7713), +(69, 7714), +(69, 7715), +(69, 7716), +(69, 7717), +(69, 7718), +(69, 7719), +(69, 7720), +(69, 7721), +(69, 7722), +(69, 7723), +(69, 7724), +(69, 7725), +(69, 7726), +(69, 7727), +(69, 7728), +(69, 7729), +(69, 7730), +(69, 7731), +(69, 7732), +(69, 7733), +(69, 7734), +(69, 7735), +(69, 7736), +(69, 7737), +(69, 7738), +(69, 7739), +(69, 7740), +(69, 7741), +(69, 7742), +(69, 7743), +(69, 7744), +(69, 7745), +(69, 7746), +(69, 7747), +(69, 7748), +(69, 7749), +(69, 7750), +(69, 7751), +(69, 7752), +(69, 7753), +(69, 7754), +(69, 7755), +(69, 7756), +(69, 7757), +(69, 7758), +(69, 7759), +(69, 7760), +(69, 7761), +(69, 7762), +(69, 7763), +(69, 7764), +(69, 7765), +(69, 7766), +(69, 7767), +(69, 7768), +(69, 7769), +(69, 7770), +(69, 7771), +(69, 7772), +(69, 7773), +(69, 7774), +(69, 7775), +(69, 7776), +(69, 7777), +(69, 7778), +(69, 7779), +(69, 7780), +(69, 7781), +(69, 7782), +(69, 7783), +(69, 7784), +(69, 7785), +(69, 7786), +(69, 7787), +(69, 7788), +(69, 7789), +(69, 7790), +(69, 7791), +(69, 7792), +(69, 7793), +(69, 7794), +(69, 7795), +(69, 7796), +(69, 7797), +(69, 7798), +(69, 7799), +(69, 7800), +(69, 7801), +(69, 7802), +(69, 7803), +(69, 7804), +(69, 7805), +(69, 7806), +(69, 7807), +(69, 7808), +(69, 7809), +(69, 7810), +(69, 7811), +(69, 7812), +(69, 7813), +(69, 7814), +(69, 7815), +(69, 7816), +(69, 7817), +(69, 7818), +(69, 7819), +(69, 7820), +(69, 7821), +(69, 7822), +(69, 7823), +(69, 7824), +(69, 7825), +(69, 7826), +(69, 7827), +(69, 7828), +(69, 7829), +(69, 7830), +(69, 7831), +(69, 7832), +(69, 7833), +(69, 7834), +(69, 7835), +(69, 7836), +(69, 7837), +(69, 7838), +(69, 7839), +(69, 7840), +(69, 7841), +(69, 7842), +(69, 7843), +(69, 7844), +(69, 7845), +(69, 7846), +(69, 7847), +(69, 7848), +(69, 7849), +(69, 7850), +(69, 7851), +(69, 7852), +(69, 7853), +(69, 7854), +(69, 7855), +(69, 7856), +(69, 7857), +(69, 7858), +(69, 7859), +(69, 7860), +(69, 7861), +(69, 7862), +(69, 7863), +(69, 7864), +(69, 7865), +(69, 7866), +(69, 7867), +(69, 7868), +(69, 7869), +(69, 7870), +(69, 7871), +(69, 7872), +(69, 7873), +(69, 7874), +(69, 7875), +(69, 7876), +(69, 7877), +(69, 7878), +(69, 7879), +(69, 7880), +(69, 7881), +(69, 7882), +(69, 7883), +(69, 7884), +(69, 7885), +(69, 7886), +(69, 7887), +(69, 7888), +(69, 7889), +(69, 7890), +(69, 7891), +(69, 7892), +(69, 7893), +(69, 7894), +(69, 7895), +(69, 7896), +(69, 7897), +(69, 7898), +(69, 7899), +(69, 7900), +(69, 7901), +(69, 7902), +(69, 7903), +(69, 7904), +(69, 7905), +(69, 7906), +(69, 7907), +(69, 7908), +(69, 7909), +(69, 7910), +(69, 7911), +(69, 7912), +(69, 7913), +(69, 7914), +(69, 7915), +(69, 7916), +(69, 7917), +(69, 7918), +(69, 7919), +(69, 7920), +(69, 7921), +(69, 7922), +(69, 7923), +(69, 7924), +(69, 7925), +(69, 7926), +(69, 7927), +(69, 7928), +(69, 7929), +(69, 7930), +(69, 7931), +(69, 7932), +(69, 7933), +(69, 7934), +(69, 7935), +(69, 7936), +(69, 7937), +(69, 7938), +(69, 7939), +(69, 7940), +(69, 7941), +(69, 7942), +(69, 7943), +(69, 7944), +(69, 7945), +(69, 7946), +(69, 7947), +(69, 7948), +(69, 7949), +(69, 7950), +(69, 7951), +(69, 7952), +(69, 7953), +(69, 7954), +(69, 7955), +(69, 7956), +(69, 7957), +(69, 7958), +(69, 7959), +(69, 7960), +(69, 7961), +(69, 7962), +(69, 7963), +(69, 7964), +(69, 7965), +(69, 7966), +(69, 7967), +(69, 7968), +(69, 7969), +(69, 7970), +(69, 7971), +(69, 7972), +(69, 7973), +(69, 7974), +(69, 7975), +(69, 7976), +(69, 7977), +(69, 7978), +(69, 7979), +(69, 7980), +(69, 7981), +(69, 7982), +(69, 7983), +(69, 7984), +(69, 7985), +(69, 7986), +(69, 7987), +(69, 7988), +(69, 7989), +(69, 7990), +(69, 7991), +(69, 7992), +(69, 7993), +(69, 7994), +(69, 7995), +(69, 7996), +(69, 7997), +(69, 7998), +(69, 7999), +(69, 8000), +(69, 8001), +(69, 8002), +(69, 8003), +(69, 8004), +(69, 8005), +(69, 8006), +(69, 8007), +(69, 8008), +(69, 8009), +(69, 8010), +(69, 8011), +(69, 8012), +(69, 8013), +(69, 8014), +(69, 8015), +(69, 8016), +(69, 8017), +(69, 8018), +(69, 8019), +(69, 8020), +(69, 8021), +(69, 8022), +(69, 8023), +(69, 8024), +(69, 8025), +(69, 8026), +(69, 8027), +(69, 8028), +(69, 8029), +(69, 8030), +(69, 8031), +(69, 8032), +(69, 8033), +(69, 8034), +(69, 8035), +(69, 8036), +(69, 8037), +(69, 8038), +(69, 8039), +(69, 8040), +(69, 8041), +(69, 8042), +(69, 8043), +(69, 8044), +(69, 8045), +(69, 8046), +(69, 8047), +(69, 8048), +(69, 8049), +(69, 8050), +(69, 8051), +(69, 8052), +(69, 8053), +(69, 8054), +(69, 8055), +(69, 8056), +(69, 8057), +(69, 8058), +(69, 8059), +(69, 8060), +(69, 8061), +(69, 8062), +(69, 8063), +(69, 8064), +(69, 8065), +(69, 8066), +(69, 8067), +(69, 8068), +(69, 8069), +(69, 8070), +(69, 8071), +(69, 8072), +(69, 8073), +(69, 8074), +(69, 8075), +(69, 8076), +(69, 8077), +(69, 8078), +(69, 8079), +(69, 8080), +(69, 8081), +(69, 8082), +(69, 8083), +(69, 8084), +(69, 8085), +(69, 8086), +(69, 8087), +(69, 8088), +(69, 8089), +(69, 8090), +(69, 8091), +(69, 8092), +(69, 8093), +(69, 8094), +(69, 8095), +(69, 8096), +(69, 8097), +(69, 8098), +(69, 8099), +(69, 8100), +(69, 8101), +(69, 8102), +(69, 8103), +(69, 8104), +(69, 8105), +(69, 8106), +(69, 8107), +(69, 8108), +(69, 8109), +(69, 8110), +(69, 8111), +(69, 8112), +(69, 8113), +(69, 8114), +(69, 8115), +(69, 8116), +(69, 8117), +(69, 8118), +(69, 8119), +(69, 8120), +(69, 8121), +(69, 8122), +(69, 8123), +(69, 8124), +(69, 8125), +(69, 8126), +(69, 8127), +(69, 8128), +(69, 8129), +(69, 8130), +(69, 8131), +(69, 8132), +(69, 8133), +(69, 8134), +(69, 8135), +(69, 8136), +(69, 8137), +(69, 8138), +(69, 8139), +(69, 8140), +(69, 8141), +(69, 8142), +(69, 8143), +(69, 8144), +(69, 8145), +(69, 8146), +(69, 8147), +(69, 8148), +(69, 8149), +(69, 8150), +(69, 8151), +(69, 8152), +(69, 8153), +(69, 8154), +(69, 8155), +(69, 8156), +(69, 8157), +(69, 8158), +(69, 8159), +(69, 8160), +(69, 8161), +(69, 8162), +(69, 8163), +(69, 8164), +(69, 8165), +(69, 8166), +(69, 8167), +(69, 8168), +(69, 8169), +(69, 8170), +(69, 8171), +(69, 8172), +(69, 8173), +(69, 8174), +(69, 8175), +(69, 8176), +(69, 8177), +(69, 8178), +(69, 8179), +(69, 8180), +(69, 8181), +(69, 8182), +(69, 8183), +(69, 8184), +(69, 8185), +(69, 8186), +(69, 8187), +(69, 8188), +(69, 8189), +(69, 8190), +(69, 8191), +(69, 8192), +(69, 8193), +(69, 8194), +(69, 8195), +(69, 8196), +(69, 8197), +(69, 8198), +(69, 8199), +(69, 8200), +(69, 8201), +(69, 8202), +(69, 8203), +(69, 8204), +(69, 8205), +(69, 8206), +(69, 8207), +(69, 8208), +(69, 8209), +(69, 8210), +(69, 8211), +(69, 8212), +(69, 8213), +(69, 8214), +(69, 8215), +(69, 8216), +(69, 8217), +(69, 8218), +(69, 8219), +(69, 8220), +(69, 8221), +(69, 8222), +(69, 8223), +(69, 8224), +(69, 8225), +(69, 8226), +(69, 8227), +(69, 8228), +(69, 8229), +(69, 8230), +(69, 8231), +(69, 8232), +(69, 8233), +(69, 8234), +(69, 8235), +(69, 8236), +(69, 8237), +(69, 8238), +(69, 8239), +(69, 8240), +(69, 8241), +(69, 8242), +(69, 8243), +(69, 8244), +(69, 8245), +(69, 8246), +(69, 8247), +(69, 8248), +(69, 8249), +(69, 8250), +(69, 8251), +(69, 8252), +(69, 8253), +(69, 8254), +(69, 8255), +(69, 8256), +(69, 8257), +(69, 8258), +(69, 8259), +(69, 8260), +(69, 8261), +(69, 8262), +(69, 8263), +(69, 8264), +(69, 8265), +(69, 8266), +(69, 8267), +(69, 8268), +(69, 8269), +(69, 8270), +(69, 8271), +(69, 8272), +(69, 8273), +(69, 8274), +(69, 8275), +(69, 8276), +(69, 8277), +(69, 8278), +(69, 8279), +(69, 8280), +(69, 8281), +(69, 8282), +(69, 8283), +(69, 8284), +(69, 8285), +(69, 8286), +(69, 8287), +(69, 8288), +(69, 8289), +(69, 8290), +(69, 8291), +(69, 8292), +(69, 8293), +(69, 8294), +(69, 8295), +(69, 8296), +(69, 8297), +(69, 8298), +(69, 8299), +(69, 8300), +(69, 8301), +(69, 8302), +(69, 8303), +(69, 8304), +(69, 8305), +(69, 8306), +(69, 8307), +(69, 8308), +(69, 8309), +(69, 8310), +(69, 8311), +(69, 8312), +(69, 8313), +(69, 8314), +(69, 8315), +(69, 8316), +(69, 8317), +(69, 8318), +(69, 8319), +(69, 8320), +(69, 8321), +(69, 8322), +(69, 8323), +(69, 8324), +(69, 8325), +(69, 8326), +(69, 8327), +(69, 8328), +(69, 8329), +(69, 8330), +(69, 8331), +(69, 8332), +(69, 8333), +(69, 8334), +(69, 8335), +(69, 8336), +(69, 8337), +(69, 8338), +(69, 8339), +(69, 8340), +(69, 8341), +(69, 8342), +(69, 8343), +(69, 8344), +(69, 8345), +(69, 8346), +(69, 8347), +(69, 8348), +(69, 8349), +(69, 8350), +(69, 8351), +(69, 8352), +(69, 8353), +(69, 8354), +(69, 8355), +(69, 8356), +(69, 8357), +(69, 8358), +(69, 8359), +(69, 8360), +(69, 8361), +(69, 8362), +(69, 8363), +(69, 8364), +(69, 8365), +(69, 8366), +(69, 8367), +(69, 8368), +(69, 8369), +(69, 8370), +(69, 8371), +(69, 8372), +(69, 8373), +(69, 8374), +(69, 8375), +(69, 8376), +(69, 8377), +(69, 8378), +(69, 8379), +(69, 8380), +(69, 8381), +(69, 8382), +(69, 8383), +(69, 8384), +(69, 8385), +(69, 8386), +(69, 8387), +(69, 8388), +(69, 8389), +(69, 8390), +(69, 8391), +(69, 8392), +(69, 8393), +(69, 8394), +(69, 8395), +(69, 8396), +(69, 8397), +(69, 8398), +(69, 8399), +(69, 8400), +(69, 8401), +(69, 8402), +(69, 8403), +(69, 8404), +(69, 8405), +(69, 8406), +(69, 8407), +(69, 8408), +(69, 8409), +(69, 8410), +(69, 8411), +(69, 8412), +(69, 8413), +(69, 8414), +(69, 8415), +(69, 8416), +(69, 8417), +(69, 8418), +(69, 8419), +(69, 8420), +(69, 8421), +(69, 8422), +(69, 8423), +(69, 8424), +(69, 8425), +(69, 8426), +(69, 8427), +(69, 8428), +(69, 8429), +(69, 8430), +(69, 8431), +(69, 8432), +(69, 8433), +(69, 8434), +(69, 8435), +(69, 8436), +(69, 8437), +(69, 8438), +(69, 8439), +(69, 8440), +(69, 8441), +(69, 8442), +(69, 8443), +(69, 8444), +(69, 8445), +(69, 8446), +(69, 8447), +(69, 8448), +(69, 8449), +(69, 8450), +(69, 8451), +(69, 8452), +(69, 8453), +(69, 8454), +(69, 8455), +(69, 8456), +(69, 8457), +(69, 8458), +(69, 8459), +(69, 8460), +(69, 8461), +(69, 8462), +(69, 8463), +(69, 8464), +(69, 8465), +(69, 8466), +(69, 8467), +(69, 8468), +(69, 8469), +(69, 8470), +(69, 8471), +(69, 8472), +(69, 8473), +(69, 8474), +(69, 8475), +(69, 8476), +(69, 8477), +(69, 8478), +(69, 8479), +(69, 8480), +(69, 8481), +(69, 8482), +(69, 8483), +(69, 8484), +(69, 8485), +(69, 8486), +(69, 8487), +(69, 8488), +(69, 8489), +(69, 8490), +(69, 8491), +(69, 8492), +(69, 8493), +(69, 8494), +(69, 8495), +(69, 8496), +(69, 8497), +(69, 8498), +(69, 8499), +(69, 8500), +(69, 8501), +(69, 8502), +(69, 8503), +(69, 8504), +(69, 8505), +(69, 8506), +(69, 8507), +(69, 8508), +(69, 8509), +(69, 8510), +(69, 8511), +(69, 8512), +(69, 8513), +(69, 8514), +(69, 8515), +(69, 8516), +(69, 8517), +(69, 8518), +(69, 8519), +(69, 8520), +(69, 8521), +(69, 8522), +(69, 8523), +(69, 8524), +(69, 8525), +(69, 8526), +(69, 8527), +(69, 8528), +(69, 8529), +(69, 8530), +(69, 8531), +(69, 8532), +(69, 8533), +(69, 8534), +(69, 8535), +(69, 8536), +(69, 8537), +(69, 8538), +(69, 8539), +(69, 8540), +(69, 8541), +(69, 8542), +(69, 8543), +(69, 8544), +(69, 8545), +(69, 8546), +(69, 8547), +(69, 8548), +(69, 8549), +(69, 8550), +(69, 8551), +(69, 8552), +(69, 8553), +(69, 8554), +(69, 8555), +(69, 8556), +(69, 8557), +(69, 8558), +(69, 8559), +(69, 8560), +(69, 8561), +(69, 8562), +(69, 8563), +(69, 8564), +(69, 8565), +(69, 8566), +(69, 8567), +(69, 8568), +(69, 8569), +(69, 8570), +(69, 8571), +(69, 8572), +(69, 8573), +(69, 8574), +(69, 8575), +(69, 8576), +(69, 8577), +(69, 8578), +(69, 8579), +(69, 8580), +(69, 8581), +(69, 8582), +(69, 8583), +(69, 8584), +(69, 8585), +(69, 8586), +(69, 8587), +(69, 8588), +(69, 8589), +(69, 8590), +(69, 8591), +(69, 8592), +(69, 8593), +(69, 8594), +(69, 8595), +(69, 8596), +(69, 8597), +(69, 8598), +(69, 8599), +(69, 8600), +(69, 8601), +(69, 8602), +(69, 8603), +(69, 8604), +(69, 8605), +(69, 8606), +(69, 8607), +(69, 8608), +(69, 8609), +(69, 8610), +(69, 8611), +(69, 8612), +(69, 8613), +(69, 8614), +(69, 8615), +(69, 8616), +(69, 8617), +(69, 8618), +(69, 8619), +(69, 8620), +(69, 8621), +(69, 8622), +(69, 8623), +(69, 8624), +(69, 8625), +(69, 8626), +(69, 8627), +(69, 8628), +(69, 8629), +(69, 8630), +(69, 8631), +(69, 8632), +(69, 8633), +(69, 8634), +(69, 8635), +(69, 8636), +(69, 8637), +(69, 8638), +(69, 8639), +(69, 8640), +(69, 8641), +(69, 8642), +(69, 8643), +(69, 8644), +(69, 8645), +(69, 8646), +(69, 8647), +(69, 8648), +(69, 8649), +(69, 8650), +(69, 8651), +(69, 8652), +(69, 8653), +(69, 8654), +(69, 8655), +(69, 8656), +(69, 8657), +(69, 8658), +(69, 8659), +(69, 8660), +(69, 8661), +(69, 8662), +(69, 8663), +(69, 8664), +(69, 8665), +(69, 8666), +(69, 8667), +(69, 8668), +(69, 8669), +(69, 8670), +(69, 8671), +(69, 8672), +(69, 8673), +(69, 8674), +(69, 8675), +(69, 8676), +(69, 8677), +(69, 8678), +(69, 8679), +(69, 8680), +(69, 8681), +(69, 8682), +(69, 8683), +(69, 8684), +(69, 8685), +(69, 8686), +(69, 8687), +(69, 8688), +(69, 8689), +(69, 8690), +(69, 8691), +(69, 8692), +(69, 8693), +(69, 8694), +(69, 8695), +(69, 8696), +(69, 8697), +(69, 8698), +(69, 8699), +(69, 8700), +(69, 8701), +(69, 8702), +(69, 8703), +(69, 8704), +(69, 8705), +(69, 8706), +(69, 8707), +(69, 8708), +(69, 8709), +(69, 8710), +(69, 8711), +(69, 8712), +(69, 8713), +(69, 8714), +(69, 8715), +(69, 8716), +(69, 8717), +(69, 8718), +(69, 8719), +(69, 8720), +(69, 8721), +(69, 8722), +(69, 8723), +(69, 8724), +(69, 8725), +(69, 8726), +(69, 8727), +(69, 8728), +(69, 8729), +(69, 8730), +(69, 8731), +(69, 8732), +(69, 8733), +(69, 8734), +(69, 8735), +(69, 8736), +(69, 8737), +(69, 8738), +(69, 8739), +(69, 8740), +(69, 8741), +(69, 8742), +(69, 8743), +(69, 8744), +(69, 8745), +(69, 8746), +(69, 8747), +(69, 8748), +(69, 8749), +(69, 8750), +(69, 8751), +(69, 8752), +(69, 8753), +(69, 8754), +(69, 8755), +(69, 8756), +(69, 8757), +(69, 8758), +(69, 8759), +(69, 8760), +(69, 8761), +(69, 8762), +(69, 8763), +(69, 8764), +(69, 8765), +(69, 8766), +(69, 8767), +(69, 8768), +(69, 8769), +(69, 8770), +(69, 8771), +(69, 8772), +(69, 8773), +(69, 8774), +(69, 8775), +(69, 8776), +(69, 8777), +(69, 8778), +(69, 8779), +(69, 8780), +(69, 8781), +(69, 8782), +(69, 8783), +(69, 8784), +(69, 8785), +(69, 8786), +(69, 8787), +(69, 8788), +(69, 8789), +(69, 8790), +(69, 8791), +(69, 8792), +(69, 8793), +(69, 8794), +(69, 8795), +(69, 8796), +(69, 8797), +(69, 8798), +(69, 8799), +(69, 8800), +(69, 8801), +(69, 8802), +(69, 8803), +(69, 8804), +(69, 8805), +(69, 8806), +(69, 8807), +(69, 8808), +(69, 8809), +(69, 8810), +(69, 8811), +(69, 8812), +(69, 8813), +(69, 8814), +(69, 8815), +(69, 8816), +(69, 8817), +(69, 8818), +(69, 8819), +(69, 8820), +(69, 8821), +(69, 8822), +(69, 8823), +(69, 8824), +(69, 8825), +(69, 8826), +(69, 8827), +(69, 8828), +(69, 8829), +(69, 8830), +(69, 8831), +(69, 8832), +(69, 8833), +(69, 8834), +(69, 8835), +(69, 8836), +(69, 8837), +(69, 8838), +(69, 8839), +(69, 8840), +(69, 8841), +(69, 8842), +(69, 8843), +(69, 8844), +(69, 8845), +(69, 8846), +(69, 8847), +(69, 8848), +(69, 8849), +(69, 8850), +(69, 8851), +(69, 8852), +(69, 8853), +(69, 8854), +(69, 8855), +(69, 8856), +(69, 8857), +(69, 8858), +(69, 8859), +(69, 8860), +(69, 8861), +(69, 8862), +(69, 8863), +(69, 8864), +(69, 8865), +(69, 8866), +(69, 8867), +(69, 8868), +(69, 8869), +(69, 8870), +(69, 8871), +(69, 8872), +(69, 8873), +(69, 8874), +(69, 8875), +(69, 8876), +(69, 8877), +(69, 8878), +(69, 8879), +(69, 8880), +(69, 8881), +(69, 8882), +(69, 8883), +(69, 8884), +(69, 8885), +(69, 8886), +(69, 8887), +(69, 8888), +(69, 8889), +(69, 8890), +(69, 8891), +(69, 8892), +(69, 8893), +(69, 8894), +(69, 8895), +(69, 8896), +(69, 8897), +(69, 8898), +(69, 8899), +(69, 8900), +(69, 8901), +(69, 8902), +(69, 8903), +(69, 8904), +(69, 8905), +(69, 8906), +(69, 8907), +(69, 8908), +(69, 8909), +(69, 8910), +(69, 8911), +(69, 8912), +(69, 8913), +(69, 8914), +(69, 8915), +(69, 8916), +(69, 8917), +(69, 8918), +(69, 8919), +(69, 8920), +(69, 8921), +(69, 8922), +(69, 8923), +(69, 8924), +(69, 8925), +(69, 8926), +(69, 8927), +(69, 8928), +(69, 8929), +(69, 8930), +(69, 8931), +(69, 8932), +(69, 8933), +(69, 8934), +(69, 8935), +(69, 8936), +(69, 8937), +(69, 8938), +(69, 8939), +(69, 8940), +(69, 8941), +(69, 8942), +(69, 8943), +(69, 8944), +(69, 8945), +(69, 8946), +(69, 8947), +(69, 8948), +(69, 8949), +(69, 8950), +(69, 8951), +(69, 8952), +(69, 8953), +(69, 8954), +(69, 8955), +(69, 8956), +(69, 8957), +(69, 8958), +(69, 8959), +(69, 8960), +(69, 8961), +(69, 8962), +(69, 8963), +(69, 8964), +(69, 8965), +(69, 8966), +(69, 8967), +(69, 8968), +(69, 8969), +(69, 8970), +(69, 8971), +(69, 8972), +(69, 8973), +(69, 8974), +(69, 8975), +(69, 8976), +(69, 8977), +(69, 8978), +(69, 8979), +(69, 8980), +(69, 8981), +(69, 8982), +(69, 8983), +(69, 8984), +(69, 8985), +(69, 8986), +(69, 8987), +(69, 8988), +(69, 8989), +(69, 8990), +(69, 8991), +(69, 8992), +(69, 8993), +(69, 8994), +(69, 8995), +(69, 8996), +(69, 8997), +(69, 8998), +(69, 8999), +(69, 9000), +(69, 9001), +(69, 9002), +(69, 9003), +(69, 9004), +(69, 9005), +(69, 9006), +(69, 9007), +(69, 9008), +(69, 9009), +(69, 9010), +(69, 9011), +(69, 9012), +(69, 9013), +(69, 9014), +(69, 9015), +(69, 9016), +(69, 9017), +(69, 9018), +(69, 9019), +(69, 9020), +(69, 9021), +(69, 9022), +(69, 9023), +(69, 9024), +(69, 9025), +(69, 9026), +(69, 9027), +(69, 9028), +(69, 9029), +(69, 9030), +(69, 9031), +(69, 9032), +(69, 9033), +(69, 9034), +(69, 9035), +(69, 9036), +(69, 9037), +(69, 9038), +(69, 9039), +(69, 9040), +(69, 9041), +(69, 9042), +(69, 9043), +(69, 9044), +(69, 9045), +(69, 9046), +(69, 9047), +(69, 9048), +(69, 9049), +(69, 9050), +(69, 9051), +(69, 9052), +(69, 9053), +(69, 9054), +(69, 9055), +(69, 9056), +(69, 9057), +(69, 9058), +(69, 9059), +(69, 9060), +(69, 9061), +(69, 9062), +(69, 9063), +(69, 9064), +(69, 9065), +(69, 9066), +(69, 9067), +(69, 9068), +(69, 9069), +(69, 9070), +(69, 9071), +(69, 9072), +(69, 9073), +(69, 9074), +(69, 9075), +(69, 9076), +(69, 9077), +(69, 9078), +(69, 9079), +(69, 9080), +(69, 9081), +(69, 9082), +(69, 9083), +(69, 9084), +(69, 9085), +(69, 9086), +(69, 9087), +(69, 9088), +(69, 9089), +(69, 9090), +(69, 9091), +(69, 9092), +(69, 9093), +(69, 9094), +(69, 9095), +(69, 9096), +(69, 9097), +(69, 9098), +(69, 9099), +(69, 9100), +(69, 9101), +(69, 9102), +(69, 9103), +(69, 9104), +(69, 9105), +(69, 9106), +(69, 9107), +(69, 9108), +(69, 9109), +(69, 9110), +(69, 9111), +(69, 9112), +(69, 9113), +(69, 9114), +(69, 9115), +(69, 9116), +(69, 9117), +(69, 9118), +(69, 9119), +(69, 9120), +(69, 9121), +(69, 9122), +(69, 9123), +(69, 9124), +(69, 9125), +(69, 9126), +(69, 9127), +(69, 9128), +(69, 9129), +(69, 9130), +(69, 9131), +(69, 9132), +(69, 9133), +(69, 9134), +(69, 9135), +(69, 9136), +(69, 9137), +(69, 9138), +(69, 9139), +(69, 9140), +(69, 9141), +(69, 9142), +(69, 9143), +(69, 9144), +(69, 9145), +(69, 9146), +(69, 9147), +(69, 9148), +(69, 9149), +(69, 9150), +(69, 9151), +(69, 9152), +(69, 9153), +(69, 9154), +(69, 9155), +(69, 9156), +(69, 9157), +(69, 9158), +(69, 9159), +(69, 9160), +(69, 9161), +(69, 9162), +(69, 9163), +(69, 9164), +(69, 9165), +(69, 9166), +(69, 9167), +(69, 9168), +(69, 9169), +(69, 9170), +(69, 9171), +(69, 9172), +(69, 9173), +(69, 9174), +(69, 9175), +(69, 9176), +(69, 9177), +(69, 9178), +(69, 9179), +(69, 9180), +(69, 9181), +(69, 9182), +(69, 9183), +(69, 9184), +(69, 9185), +(69, 9186), +(69, 9187), +(69, 9188), +(69, 9189), +(69, 9190), +(69, 9191), +(69, 9192), +(69, 9193), +(69, 9194), +(69, 9195), +(69, 9196), +(69, 9197), +(69, 9198), +(69, 9199), +(69, 9200), +(69, 9201), +(69, 9202), +(69, 9203), +(69, 9204), +(69, 9205), +(69, 9206), +(69, 9207), +(69, 9208), +(69, 9209), +(69, 9210), +(69, 9211), +(69, 9212), +(69, 9213), +(69, 9214), +(69, 9215), +(69, 9216), +(69, 9217), +(69, 9218), +(69, 9219), +(69, 9220), +(69, 9221), +(69, 9222), +(69, 9223), +(69, 9224), +(69, 9225), +(69, 9226), +(69, 9227), +(69, 9228), +(69, 9229), +(69, 9230), +(69, 9231), +(69, 9232), +(69, 9233), +(69, 9234), +(69, 9235), +(69, 9236), +(69, 9237), +(69, 9238), +(69, 9239), +(69, 9240), +(69, 9241), +(69, 9242), +(69, 9243), +(69, 9244), +(69, 9245), +(69, 9246), +(69, 9247), +(69, 9248), +(69, 9249), +(69, 9250), +(69, 9251), +(69, 9252), +(69, 9253), +(69, 9254), +(69, 9255), +(69, 9256), +(69, 9257), +(69, 9258), +(69, 9259), +(69, 9260), +(69, 9261), +(69, 9262), +(69, 9263), +(69, 9264), +(69, 9265), +(69, 9266), +(69, 9267), +(69, 9268), +(69, 9269), +(69, 9270), +(69, 9271), +(69, 9272), +(69, 9273), +(69, 9274), +(69, 9275), +(69, 9276), +(69, 9277), +(69, 9278), +(69, 9279), +(69, 9280), +(69, 9281), +(69, 9282), +(69, 9283), +(69, 9284), +(69, 9285), +(69, 9286), +(69, 9287), +(69, 9288), +(69, 9289), +(69, 9290), +(69, 9291), +(69, 9292), +(69, 9293), +(69, 9294), +(69, 9295), +(69, 9296), +(69, 9297), +(69, 9298), +(69, 9299), +(69, 9300), +(69, 9301), +(69, 9302), +(69, 9303), +(69, 9304), +(69, 9305), +(69, 9306), +(69, 9307), +(69, 9308), +(69, 9309), +(69, 9310), +(69, 9311), +(69, 9312), +(69, 9313), +(69, 9314), +(69, 9315), +(69, 9316), +(69, 9317), +(69, 9318), +(69, 9319), +(69, 9320), +(69, 9321), +(69, 9322), +(69, 9323), +(69, 9324), +(69, 9325), +(69, 9326), +(69, 9327), +(69, 9328), +(69, 9329), +(69, 9330), +(69, 9331), +(69, 9332), +(69, 9333), +(69, 9334), +(69, 9335), +(69, 9336), +(69, 9337), +(69, 9338), +(69, 9339), +(69, 9340), +(69, 9341), +(69, 9342), +(69, 9343), +(69, 9344), +(69, 9345), +(69, 9346), +(69, 9347), +(69, 9348), +(69, 9349), +(69, 9350), +(69, 9351), +(69, 9352), +(69, 9353), +(69, 9354), +(69, 9355), +(69, 9356), +(69, 9357), +(69, 9358), +(69, 9359), +(69, 9360), +(69, 9361), +(69, 9362), +(69, 9363), +(69, 9364), +(69, 9365), +(69, 9366), +(69, 9367), +(69, 9368), +(69, 9369), +(69, 9370), +(69, 9371), +(69, 9372), +(69, 9373), +(69, 9374), +(69, 9375), +(69, 9376), +(69, 9377), +(69, 9378), +(69, 9379), +(69, 9380), +(69, 9381), +(69, 9382), +(69, 9383), +(69, 9384), +(69, 9385), +(69, 9386), +(69, 9387), +(69, 9388), +(69, 9389), +(69, 9390), +(69, 9391), +(69, 9392), +(69, 9393), +(69, 9394), +(69, 9395), +(69, 9396), +(69, 9397), +(69, 9398), +(69, 9399), +(69, 9400), +(69, 9401), +(69, 9402), +(69, 9403), +(69, 9404), +(69, 9405), +(69, 9406), +(69, 9407), +(69, 9408), +(69, 9409), +(69, 9410), +(69, 9411), +(69, 9412), +(69, 9413), +(69, 9414), +(69, 9415), +(69, 9416), +(69, 9417), +(69, 9418), +(69, 9419), +(69, 9420), +(69, 9421), +(69, 9422), +(69, 9423), +(69, 9424), +(69, 9425), +(69, 9426), +(69, 9427), +(69, 9428), +(69, 9429), +(69, 9430), +(69, 9431), +(69, 9432), +(69, 9433), +(69, 9434), +(69, 9435), +(69, 9436), +(69, 9437), +(69, 9438), +(69, 9439), +(69, 9440), +(69, 9441), +(69, 9442), +(69, 9443), +(69, 9444), +(69, 9445), +(69, 9446), +(69, 9447), +(69, 9448), +(69, 9449), +(69, 9450), +(69, 9451), +(69, 9452), +(69, 9453), +(69, 9454), +(69, 9455), +(69, 9456), +(69, 9457), +(69, 9458), +(69, 9459), +(69, 9460), +(69, 9461), +(69, 9462), +(69, 9463), +(69, 9464), +(69, 9465), +(69, 9466), +(69, 9467), +(69, 9468), +(69, 9469), +(69, 9470), +(69, 9471), +(69, 9472), +(69, 9473), +(69, 9474), +(69, 9475), +(69, 9476), +(69, 9477), +(69, 9478), +(69, 9479), +(69, 9480), +(69, 9481), +(69, 9482), +(69, 9483), +(69, 9484), +(69, 9485), +(69, 9486), +(69, 9487), +(69, 9488), +(69, 9489), +(69, 9490), +(69, 9491), +(69, 9492), +(69, 9493), +(69, 9494), +(69, 9495), +(69, 9496), +(69, 9497), +(69, 9498), +(69, 9499), +(69, 9500), +(69, 9501), +(69, 9502), +(69, 9503), +(69, 9504), +(69, 9505), +(69, 9506), +(69, 9507), +(69, 9508), +(69, 9509), +(69, 9510), +(69, 9511), +(69, 9512), +(69, 9513), +(69, 9514), +(69, 9515), +(69, 9516), +(69, 9517), +(69, 9518), +(69, 9519), +(69, 9520), +(69, 9521), +(69, 9522), +(69, 9523), +(69, 9524), +(69, 9525), +(69, 9526), +(69, 9527), +(69, 9528), +(69, 9529), +(69, 9530), +(69, 9531), +(69, 9532), +(69, 9533), +(69, 9534), +(69, 9535), +(69, 9536), +(69, 9537), +(69, 9538), +(69, 9539), +(69, 9540), +(69, 9541), +(69, 9542), +(69, 9543), +(69, 9544), +(69, 9545), +(69, 9546), +(69, 9547), +(69, 9548), +(69, 9549), +(69, 9550), +(69, 9551), +(69, 9552), +(69, 9553), +(69, 9554), +(69, 9555), +(69, 9556), +(69, 9557), +(69, 9558), +(69, 9559), +(69, 9560), +(69, 9561), +(69, 9562), +(69, 9563), +(69, 9564), +(69, 9565), +(69, 9566), +(69, 9567), +(69, 9568), +(69, 9569), +(69, 9570), +(69, 9571), +(69, 9572), +(69, 9573), +(69, 9574), +(69, 9575), +(69, 9576), +(69, 9577), +(69, 9578), +(69, 9579), +(69, 9580), +(69, 9581), +(69, 9582), +(69, 9583), +(69, 9584), +(69, 9585), +(69, 9586), +(69, 9587), +(69, 9588), +(69, 9589), +(69, 9590), +(69, 9591), +(69, 9592), +(69, 9593), +(69, 9594), +(69, 9595), +(69, 9596), +(69, 9597), +(69, 9598), +(69, 9599), +(69, 9600), +(69, 9601), +(69, 9602), +(69, 9603), +(69, 9604), +(69, 9605), +(69, 9606), +(69, 9607), +(69, 9608), +(69, 9609), +(69, 9610), +(69, 9611), +(69, 9612), +(69, 9613), +(69, 9614), +(69, 9615), +(69, 9616), +(69, 9617), +(69, 9618), +(69, 9619), +(69, 9620), +(69, 9621), +(69, 9622), +(69, 9623), +(69, 9624), +(69, 9625), +(69, 9626), +(69, 9627), +(69, 9628), +(69, 9629), +(69, 9630), +(69, 9631), +(69, 9632), +(69, 9633), +(69, 9634), +(69, 9635), +(69, 9636), +(69, 9637), +(69, 9638), +(69, 9639), +(69, 9640), +(69, 9641), +(69, 9642), +(69, 9643), +(69, 9644), +(69, 9645), +(69, 9646), +(69, 9647), +(69, 9648), +(69, 9649), +(69, 9650), +(69, 9651), +(69, 9652), +(69, 9653), +(69, 9654), +(69, 9655), +(69, 9656), +(69, 9657), +(69, 9658), +(69, 9659), +(69, 9660), +(69, 9661), +(69, 9662), +(69, 9663), +(69, 9664), +(69, 9665), +(69, 9666), +(69, 9667), +(69, 9668), +(69, 9669), +(69, 9670), +(69, 9671), +(69, 9672), +(69, 9673), +(69, 9674), +(69, 9675), +(69, 9676), +(69, 9677), +(69, 9678), +(69, 9679), +(69, 9680), +(69, 9681), +(69, 9682), +(69, 9683), +(69, 9684), +(69, 9685), +(69, 9686), +(69, 9687), +(69, 9688), +(69, 9689), +(69, 9690), +(69, 9691), +(69, 9692), +(69, 9693), +(69, 9694), +(69, 9695), +(69, 9696), +(69, 9697), +(69, 9698), +(69, 9699), +(69, 9700), +(69, 9701), +(69, 9702), +(69, 9703), +(69, 9704), +(69, 9705), +(69, 9706), +(69, 9707), +(69, 9708), +(69, 9709), +(69, 9710), +(69, 9711), +(69, 9712), +(69, 9713), +(69, 9714), +(69, 9715), +(69, 9716), +(69, 9717), +(69, 9718), +(69, 9719), +(69, 9720), +(69, 9721), +(69, 9722), +(69, 9723), +(69, 9724), +(69, 9725), +(69, 9726), +(69, 9727), +(69, 9728), +(69, 9729), +(69, 9730), +(69, 9731), +(69, 9732), +(69, 9733), +(69, 9734), +(69, 9735), +(69, 9736), +(69, 9737), +(69, 9738), +(69, 9739), +(69, 9740), +(69, 9741), +(69, 9742), +(69, 9743), +(69, 9744), +(69, 9745), +(69, 9746), +(69, 9747), +(69, 9748), +(69, 9749), +(69, 9750), +(69, 9751), +(69, 9752), +(69, 9753), +(69, 9754), +(69, 9755), +(69, 9756), +(69, 9757), +(69, 9758), +(69, 9759), +(69, 9760), +(69, 9761), +(69, 9762), +(69, 9763), +(69, 9764), +(69, 9765), +(69, 9766), +(69, 9767), +(69, 9768), +(69, 9769), +(69, 9770), +(69, 9771), +(69, 9772), +(69, 9773), +(69, 9774), +(69, 9775), +(69, 9776), +(69, 9777), +(69, 9778), +(69, 9779), +(69, 9780), +(69, 9781), +(69, 9782), +(69, 9783), +(69, 9784), +(69, 9785), +(69, 9786), +(69, 9787), +(69, 9788), +(69, 9789), +(69, 9790), +(69, 9791), +(69, 9792), +(69, 9793), +(69, 9794), +(69, 9795), +(69, 9796), +(69, 9797), +(69, 9798), +(69, 9799), +(69, 9800), +(69, 9801), +(69, 9802), +(69, 9803), +(69, 9804), +(69, 9805), +(69, 9806), +(69, 9807), +(69, 9808), +(69, 9809), +(69, 9810), +(69, 9811), +(69, 9812), +(69, 9813), +(69, 9814), +(69, 9815), +(69, 9816), +(69, 9817), +(69, 9818), +(69, 9819), +(69, 9820), +(69, 9821), +(69, 9822), +(69, 9823), +(69, 9824), +(69, 9825), +(69, 9826), +(69, 9827), +(69, 9828), +(69, 9829), +(69, 9830), +(69, 9831), +(183, 9832), +(183, 9833), +(183, 9834), +(183, 9835), +(183, 9836), +(183, 9837), +(183, 9838), +(183, 9839), +(183, 9840), +(183, 9841), +(183, 9842), +(183, 9843), +(183, 9844), +(183, 9845), +(183, 9846), +(183, 9847), +(183, 9848), +(183, 9849), +(183, 9850), +(183, 9851), +(183, 9852), +(183, 9853), +(183, 9854), +(183, 9855), +(183, 9856), +(183, 9857), +(183, 9858), +(183, 9859), +(183, 9860), +(183, 9861), +(183, 9862), +(183, 9863), +(183, 9864), +(183, 9865), +(183, 9866), +(183, 9867), +(183, 9868), +(183, 9869), +(183, 9870), +(183, 9871), +(183, 9872), +(183, 9873), +(183, 9874), +(183, 9875), +(183, 9876), +(183, 9877), +(183, 9878), +(183, 9879), +(183, 9880), +(183, 9881), +(183, 9882), +(183, 9883), +(183, 9884), +(183, 9885), +(183, 9886), +(183, 9887), +(183, 9888), +(183, 9889), +(183, 9890), +(183, 9891), +(183, 9892), +(183, 9893), +(183, 9894), +(183, 9895), +(183, 9896), +(183, 9897), +(183, 9898), +(183, 9899), +(183, 9900), +(183, 9901), +(183, 9902), +(183, 9903), +(183, 9904), +(183, 9905), +(183, 9906), +(183, 9907), +(183, 9908), +(183, 9909), +(183, 9910), +(183, 9911), +(183, 9912), +(183, 9913), +(183, 9914), +(183, 9915), +(183, 9916), +(183, 9917), +(183, 9918), +(183, 9919), +(183, 9920), +(183, 9921), +(183, 9922), +(183, 9923), +(183, 9924), +(183, 9925), +(183, 9926), +(183, 9927), +(183, 9928), +(183, 9929), +(183, 9930), +(183, 9931), +(183, 9932), +(183, 9933), +(183, 9934), +(183, 9935), +(183, 9936), +(183, 9937), +(183, 9938), +(183, 9939), +(183, 9940), +(183, 9941), +(183, 9942), +(183, 9943), +(183, 9944), +(183, 9945), +(183, 9946), +(183, 9947), +(183, 9948), +(183, 9949), +(183, 9950), +(183, 9951), +(183, 9952), +(183, 9953), +(183, 9954), +(183, 9955), +(183, 9956), +(183, 9957), +(183, 9958), +(183, 9959), +(183, 9960), +(183, 9961), +(183, 9962), +(183, 9963), +(183, 9964), +(183, 9965), +(183, 9966), +(183, 9967), +(183, 9968), +(183, 9969), +(183, 9970), +(183, 9971), +(183, 9972), +(183, 9973), +(183, 9974), +(183, 9975), +(183, 9976), +(183, 9977), +(183, 9978), +(183, 9979), +(183, 9980), +(183, 9981), +(183, 9982), +(183, 9983), +(183, 9984), +(183, 9985), +(183, 9986), +(183, 9987), +(183, 9988), +(183, 9989), +(183, 9990), +(183, 9991), +(183, 9992), +(183, 9993), +(183, 9994), +(183, 9995), +(183, 9996), +(183, 9997), +(183, 9998), +(183, 9999), +(183, 10000), +(183, 10001), +(183, 10002), +(183, 10003), +(183, 10004), +(183, 10005), +(183, 10006), +(183, 10007), +(183, 10008), +(183, 10009), +(183, 10010), +(183, 10011), +(183, 10012), +(183, 10013), +(183, 10014), +(183, 10015), +(183, 10016), +(183, 10017), +(183, 10018), +(183, 10019), +(183, 10020), +(183, 10021), +(183, 10022), +(183, 10023), +(183, 10024), +(183, 10025), +(183, 10026), +(183, 10027), +(183, 10028), +(183, 10029), +(183, 10030), +(183, 10031), +(183, 10032), +(183, 10033), +(183, 10034), +(183, 10035), +(183, 10036), +(183, 10037), +(183, 10038), +(183, 10039), +(183, 10040), +(183, 10041), +(183, 10042), +(183, 10043), +(183, 10044), +(183, 10045), +(183, 10046), +(183, 10047), +(183, 10048), +(183, 10049), +(183, 10050), +(183, 10051), +(183, 10052), +(183, 10053), +(183, 10054), +(183, 10055), +(183, 10056), +(183, 10057), +(183, 10058), +(183, 10059), +(183, 10060), +(183, 10061), +(183, 10062), +(183, 10063), +(183, 10064), +(183, 10065), +(183, 10066), +(183, 10067), +(183, 10068), +(183, 10069), +(183, 10070); +INSERT INTO `configuration_change` (`configurationId`, `changeId`) VALUES +(183, 10071), +(183, 10072), +(183, 10073), +(183, 10074), +(183, 10075), +(183, 10076), +(183, 10077), +(183, 10078), +(183, 10079), +(183, 10080), +(183, 10081), +(183, 10082), +(183, 10083), +(183, 10084), +(183, 10085), +(183, 10086), +(183, 10087), +(183, 10088), +(183, 10089), +(183, 10090), +(183, 10091), +(183, 10092), +(183, 10093), +(183, 10094), +(183, 10095), +(183, 10096), +(183, 10097), +(183, 10098), +(183, 10099), +(183, 10100), +(183, 10101), +(183, 10102), +(183, 10103), +(183, 10104), +(183, 10105), +(183, 10106), +(183, 10107), +(183, 10108), +(183, 10109), +(183, 10110), +(183, 10111), +(183, 10112), +(183, 10113), +(183, 10114), +(183, 10115), +(183, 10116), +(183, 10117), +(183, 10118), +(183, 10119), +(183, 10120), +(183, 10121), +(183, 10122), +(183, 10123), +(183, 10124), +(183, 10125), +(183, 10126), +(183, 10127), +(183, 10128), +(183, 10129), +(183, 10130), +(183, 10131), +(183, 10132), +(183, 10133), +(183, 10134), +(183, 10135), +(183, 10136), +(183, 10137), +(183, 10138), +(183, 10139), +(183, 10140), +(183, 10141), +(183, 10142), +(183, 10143), +(183, 10144), +(183, 10145), +(183, 10146), +(183, 10147), +(183, 10148), +(183, 10149), +(183, 10150), +(183, 10151), +(183, 10152), +(183, 10153), +(183, 10154), +(183, 10155), +(183, 10156), +(183, 10157), +(183, 10158), +(183, 10159), +(183, 10160), +(183, 10161), +(183, 10162), +(183, 10163), +(183, 10164), +(183, 10165), +(183, 10166), +(183, 10167), +(183, 10168), +(183, 10169), +(183, 10170), +(183, 10171), +(183, 10172), +(183, 10173), +(183, 10174), +(183, 10175), +(183, 10176), +(183, 10177), +(183, 10178), +(183, 10179), +(183, 10180), +(183, 10181), +(183, 10182), +(183, 10183), +(183, 10184), +(183, 10185), +(183, 10186), +(183, 10187), +(183, 10188), +(183, 10189), +(183, 10190), +(183, 10191), +(183, 10192), +(183, 10193), +(183, 10194), +(183, 10195), +(183, 10196), +(183, 10197), +(183, 10198), +(183, 10199), +(183, 10200), +(183, 10201), +(183, 10202), +(183, 10203), +(183, 10204), +(183, 10205), +(183, 10206), +(183, 10207), +(183, 10208), +(183, 10209), +(183, 10210), +(183, 10211), +(183, 10212), +(183, 10213), +(183, 10214), +(183, 10215), +(183, 10216), +(183, 10217), +(183, 10218), +(183, 10219), +(183, 10220), +(183, 10221), +(183, 10222), +(183, 10223), +(183, 10224), +(183, 10225), +(183, 10226), +(183, 10227), +(183, 10228), +(183, 10229), +(183, 10230), +(183, 10231), +(183, 10232), +(183, 10233), +(183, 10234), +(183, 10235), +(183, 10236), +(183, 10237), +(183, 10238), +(183, 10239), +(183, 10240), +(183, 10241), +(183, 10242), +(183, 10243), +(183, 10244), +(183, 10245), +(183, 10246), +(183, 10247), +(183, 10248), +(183, 10249), +(183, 10250), +(183, 10251), +(183, 10252), +(183, 10253), +(183, 10254), +(183, 10255), +(183, 10256), +(183, 10257), +(183, 10258), +(183, 10259), +(183, 10260), +(183, 10261), +(183, 10262), +(183, 10263), +(183, 10264), +(183, 10265), +(183, 10266), +(183, 10267), +(183, 10268), +(183, 10269), +(183, 10270), +(183, 10271), +(183, 10272), +(183, 10273), +(183, 10274), +(183, 10275), +(183, 10276), +(183, 10277), +(183, 10278), +(183, 10279), +(183, 10280), +(183, 10281), +(183, 10282), +(183, 10283), +(183, 10284), +(183, 10285), +(183, 10286), +(183, 10287), +(183, 10288), +(183, 10289), +(183, 10290), +(183, 10291), +(183, 10292), +(183, 10293), +(183, 10294), +(183, 10295), +(183, 10296), +(183, 10297), +(183, 10298), +(183, 10299), +(183, 10300), +(183, 10301), +(183, 10302), +(183, 10303), +(183, 10304), +(183, 10305), +(183, 10306), +(183, 10307), +(183, 10308), +(183, 10309), +(183, 10310), +(183, 10311), +(183, 10312), +(183, 10313), +(183, 10314), +(183, 10315), +(183, 10316), +(183, 10317), +(183, 10318), +(183, 10319), +(183, 10320), +(183, 10321), +(183, 10322), +(183, 10323), +(183, 10324), +(183, 10325), +(183, 10326), +(183, 10327), +(183, 10328), +(183, 10329), +(183, 10330), +(183, 10331), +(183, 10332), +(183, 10333), +(183, 10334), +(183, 10335), +(183, 10336), +(183, 10337), +(183, 10338), +(183, 10339), +(183, 10340), +(183, 10341), +(183, 10342), +(183, 10343), +(183, 10344), +(183, 10345), +(183, 10346), +(183, 10347), +(183, 10348), +(183, 10349), +(183, 10350), +(183, 10351), +(183, 10352), +(183, 10353), +(183, 10354), +(183, 10355), +(183, 10356), +(183, 10357), +(183, 10358), +(183, 10359), +(183, 10360), +(183, 10361), +(183, 10362), +(183, 10363), +(183, 10364), +(183, 10365), +(183, 10366), +(183, 10367), +(183, 10368), +(183, 10369), +(183, 10370), +(183, 10371), +(183, 10372), +(183, 10373), +(183, 10374), +(183, 10375), +(183, 10376), +(183, 10377), +(183, 10378), +(183, 10379), +(183, 10380), +(183, 10381), +(183, 10382), +(183, 10383), +(183, 10384), +(183, 10385), +(183, 10386), +(183, 10387), +(183, 10388), +(183, 10389), +(183, 10390), +(183, 10391), +(183, 10392), +(183, 10393), +(183, 10394), +(183, 10395), +(183, 10396), +(183, 10397), +(183, 10398), +(183, 10399), +(183, 10400), +(183, 10401), +(183, 10402), +(183, 10403), +(183, 10404), +(183, 10405), +(183, 10406), +(183, 10407), +(183, 10408), +(183, 10409), +(183, 10410), +(183, 10411), +(183, 10412), +(183, 10413), +(183, 10414), +(183, 10415), +(183, 10416), +(183, 10417), +(183, 10418), +(183, 10419), +(183, 10420), +(183, 10421), +(183, 10422), +(183, 10423), +(183, 10424), +(183, 10425), +(183, 10426), +(183, 10427), +(183, 10428), +(183, 10429), +(183, 10430), +(183, 10431), +(183, 10432), +(183, 10433), +(183, 10434), +(183, 10435), +(183, 10436), +(183, 10437), +(183, 10438), +(183, 10439), +(183, 10440), +(183, 10441), +(183, 10442), +(183, 10443), +(183, 10444), +(183, 10445), +(183, 10446), +(183, 10447), +(183, 10448), +(183, 10449), +(183, 10450), +(183, 10451), +(183, 10452), +(183, 10453), +(183, 10454), +(183, 10455), +(183, 10456), +(183, 10457), +(183, 10458), +(183, 10459), +(183, 10460), +(183, 10461), +(183, 10462), +(183, 10463), +(183, 10464), +(183, 10465), +(183, 10466), +(183, 10467), +(183, 10468), +(183, 10469), +(183, 10470), +(183, 10471), +(183, 10472), +(183, 10473), +(183, 10474), +(183, 10475), +(183, 10476), +(183, 10477), +(183, 10478), +(183, 10479), +(183, 10480), +(183, 10481), +(183, 10482), +(183, 10483), +(183, 10484), +(183, 10485), +(183, 10486), +(183, 10487), +(183, 10488), +(183, 10489), +(183, 10490), +(183, 10491), +(183, 10492), +(183, 10493), +(183, 10494), +(183, 10495), +(183, 10496), +(183, 10497), +(183, 10498), +(183, 10499), +(183, 10500), +(183, 10501), +(183, 10502), +(183, 10503), +(183, 10504), +(183, 10505), +(183, 10506), +(183, 10507), +(183, 10508), +(183, 10509), +(183, 10510), +(183, 10511), +(183, 10512), +(183, 10513), +(183, 10514), +(183, 10515), +(183, 10516), +(183, 10517), +(183, 10518), +(183, 10519), +(183, 10520), +(183, 10521), +(183, 10522), +(183, 10523), +(183, 10524), +(183, 10525), +(183, 10526), +(183, 10527), +(183, 10528), +(183, 10529), +(183, 10530), +(183, 10531), +(183, 10532), +(183, 10533), +(183, 10534), +(183, 10535), +(183, 10536), +(183, 10537), +(183, 10538), +(183, 10539), +(183, 10540), +(183, 10541), +(183, 10542), +(183, 10543), +(183, 10544), +(183, 10545), +(183, 10546), +(183, 10547), +(183, 10548), +(183, 10549), +(183, 10550), +(183, 10551), +(183, 10552), +(183, 10553), +(183, 10554), +(183, 10555), +(183, 10556), +(183, 10557), +(183, 10558), +(183, 10559), +(183, 10560), +(183, 10561), +(183, 10562), +(183, 10563), +(183, 10564), +(183, 10565), +(183, 10566), +(183, 10567), +(183, 10568), +(183, 10569), +(183, 10570), +(183, 10571), +(183, 10572), +(183, 10573), +(183, 10574), +(183, 10575), +(183, 10576), +(183, 10577), +(183, 10578), +(183, 10579), +(183, 10580), +(183, 10581), +(183, 10582), +(183, 10583), +(183, 10584), +(183, 10585), +(183, 10586), +(183, 10587), +(183, 10588), +(183, 10589), +(183, 10590), +(183, 10591), +(183, 10592), +(183, 10593), +(183, 10594), +(183, 10595), +(183, 10596), +(183, 10597), +(183, 10598), +(183, 10599), +(183, 10600), +(183, 10601), +(183, 10602), +(183, 10603), +(183, 10604), +(183, 10605), +(183, 10606), +(183, 10607), +(183, 10608), +(183, 10609), +(183, 10610), +(183, 10611), +(183, 10612), +(183, 10613), +(183, 10614), +(183, 10615), +(183, 10616), +(183, 10617), +(183, 10618), +(183, 10619), +(183, 10620), +(183, 10621), +(183, 10622), +(183, 10623), +(183, 10624), +(183, 10625), +(183, 10626), +(183, 10627), +(183, 10628), +(183, 10629), +(183, 10630), +(183, 10631), +(183, 10632), +(183, 10633), +(183, 10634), +(183, 10635), +(183, 10636), +(183, 10637), +(183, 10638), +(183, 10639), +(183, 10640), +(183, 10641), +(183, 10642), +(183, 10643), +(183, 10644), +(183, 10645), +(183, 10646), +(183, 10647), +(183, 10648), +(183, 10649), +(183, 10650), +(183, 10651), +(183, 10652), +(183, 10653), +(183, 10654), +(183, 10655), +(183, 10656), +(183, 10657), +(183, 10658), +(183, 10659), +(183, 10660), +(183, 10661), +(183, 10662), +(183, 10663), +(183, 10664), +(183, 10665), +(183, 10666), +(183, 10667), +(183, 10668), +(183, 10669), +(183, 10670), +(183, 10671), +(183, 10672), +(183, 10673), +(183, 10674), +(183, 10675), +(183, 10676), +(183, 10677), +(183, 10678), +(183, 10679), +(183, 10680), +(183, 10681), +(183, 10682), +(183, 10683), +(183, 10684), +(183, 10685), +(183, 10686), +(183, 10687), +(183, 10688), +(183, 10689), +(183, 10690), +(183, 10691), +(183, 10692), +(183, 10693), +(183, 10694), +(183, 10695), +(183, 10696), +(183, 10697), +(183, 10698), +(183, 10699), +(183, 10700), +(183, 10701), +(183, 10702), +(183, 10703), +(183, 10704), +(183, 10705), +(183, 10706), +(183, 10707), +(183, 10708), +(183, 10709), +(183, 10710), +(183, 10711), +(183, 10712), +(183, 10713), +(183, 10714), +(183, 10715), +(183, 10716), +(183, 10717), +(183, 10718), +(183, 10719), +(183, 10720), +(183, 10721), +(183, 10722), +(183, 10723), +(183, 10724), +(183, 10725), +(183, 10726), +(183, 10727), +(183, 10728), +(183, 10729), +(183, 10730), +(183, 10731), +(183, 10732), +(183, 10733), +(183, 10734), +(183, 10735), +(183, 10736), +(183, 10737), +(183, 10738), +(183, 10739), +(183, 10740), +(183, 10741), +(183, 10742), +(183, 10743), +(183, 10744), +(183, 10745), +(183, 10746), +(183, 10747), +(183, 10748), +(183, 10749), +(183, 10750), +(183, 10751), +(183, 10752), +(183, 10753), +(183, 10754), +(183, 10755), +(183, 10756), +(183, 10757), +(183, 10758), +(183, 10759), +(183, 10760), +(183, 10761), +(183, 10762), +(183, 10763), +(183, 10764), +(183, 10765), +(183, 10766), +(183, 10767), +(183, 10768), +(183, 10769), +(183, 10770), +(183, 10771), +(183, 10772), +(183, 10773), +(183, 10774), +(183, 10775), +(183, 10776), +(183, 10777), +(183, 10778), +(183, 10779), +(183, 10780), +(183, 10781), +(183, 10782), +(183, 10783), +(183, 10784), +(183, 10785), +(183, 10786), +(183, 10787), +(183, 10788), +(183, 10789), +(183, 10790), +(183, 10791), +(183, 10792), +(183, 10793), +(183, 10794), +(183, 10795), +(183, 10796), +(183, 10797), +(183, 10798), +(183, 10799), +(183, 10800), +(183, 10801), +(183, 10802), +(183, 10803), +(183, 10804), +(183, 10805), +(183, 10806), +(183, 10807), +(183, 10808), +(183, 10809), +(183, 10810), +(183, 10811), +(183, 10812), +(183, 10813), +(183, 10814), +(183, 10815), +(183, 10816), +(183, 10817), +(183, 10818), +(183, 10819), +(183, 10820), +(183, 10821), +(183, 10822), +(183, 10823), +(183, 10824), +(183, 10825), +(183, 10826), +(183, 10827), +(183, 10828), +(183, 10829), +(183, 10830), +(183, 10831), +(183, 10832), +(183, 10833), +(183, 10834), +(183, 10835), +(183, 10836), +(183, 10837), +(183, 10838), +(183, 10839), +(183, 10840), +(183, 10841), +(183, 10842), +(183, 10843), +(183, 10844), +(183, 10845), +(183, 10846), +(183, 10847), +(183, 10848), +(183, 10849), +(183, 10850), +(183, 10851), +(183, 10852), +(183, 10853), +(183, 10854), +(183, 10855), +(183, 10856), +(183, 10857), +(183, 10858), +(183, 10859), +(183, 10860), +(183, 10861), +(183, 10862), +(183, 10863), +(183, 10864), +(183, 10865), +(183, 10866), +(183, 10867), +(183, 10868), +(183, 10869), +(183, 10870), +(183, 10871), +(183, 10872), +(183, 10873), +(183, 10874), +(183, 10875), +(183, 10876), +(183, 10877), +(183, 10878), +(183, 10879), +(183, 10880), +(183, 10881), +(183, 10882), +(183, 10883), +(183, 10884), +(183, 10885), +(183, 10886), +(183, 10887), +(183, 10888), +(183, 10889), +(183, 10890), +(183, 10891), +(183, 10892), +(183, 10893), +(183, 10894), +(183, 10895), +(183, 10896), +(183, 10897), +(183, 10898), +(183, 10899), +(183, 10900), +(183, 10901), +(183, 10902), +(183, 10903), +(183, 10904), +(183, 10905), +(183, 10906), +(183, 10907), +(183, 10908), +(183, 10909), +(183, 10910), +(183, 10911), +(183, 10912), +(183, 10913), +(183, 10914), +(183, 10915), +(183, 10916), +(183, 10917), +(183, 10918), +(183, 10919), +(183, 10920), +(183, 10921), +(183, 10922), +(183, 10923), +(183, 10924), +(183, 10925), +(183, 10926), +(183, 10927), +(183, 10928), +(183, 10929), +(183, 10930), +(183, 10931), +(183, 10932), +(183, 10933), +(183, 10934), +(183, 10935), +(183, 10936), +(183, 10937), +(183, 10938), +(183, 10939), +(183, 10940), +(183, 10941), +(183, 10942), +(183, 10943), +(183, 10944), +(183, 10945), +(183, 10946), +(183, 10947), +(183, 10948), +(183, 10949), +(183, 10950), +(183, 10951), +(183, 10952), +(183, 10953), +(183, 10954), +(183, 10955), +(183, 10956), +(183, 10957), +(183, 10958), +(183, 10959), +(183, 10960), +(183, 10961), +(183, 10962), +(183, 10963), +(183, 10964), +(183, 10965), +(183, 10966), +(183, 10967), +(183, 10968), +(183, 10969), +(183, 10970), +(183, 10971), +(183, 10972), +(183, 10973), +(183, 10974), +(183, 10975), +(183, 10976), +(183, 10977), +(183, 10978), +(183, 10979), +(183, 10980), +(183, 10981), +(183, 10982), +(183, 10983), +(183, 10984), +(183, 10985), +(183, 10986), +(183, 10987), +(183, 10988), +(183, 10989), +(183, 10990), +(183, 10991), +(183, 10992), +(183, 10993), +(183, 10994), +(183, 10995), +(183, 10996), +(183, 10997), +(183, 10998), +(183, 10999), +(183, 11000), +(183, 11001), +(183, 11002), +(183, 11003), +(183, 11004), +(183, 11005), +(183, 11006), +(183, 11007), +(183, 11008), +(183, 11009), +(183, 11010), +(183, 11011), +(183, 11012), +(183, 11013), +(183, 11014), +(183, 11015), +(183, 11016), +(183, 11017), +(183, 11018), +(183, 11019), +(183, 11020), +(183, 11021), +(183, 11022), +(183, 11023), +(183, 11024), +(183, 11025), +(183, 11026), +(183, 11027), +(183, 11028), +(183, 11029), +(183, 11030), +(183, 11031), +(183, 11032), +(183, 11033), +(183, 11034), +(183, 11035), +(183, 11036), +(183, 11037), +(183, 11038), +(183, 11039), +(183, 11040), +(183, 11041), +(183, 11042), +(183, 11043), +(183, 11044), +(183, 11045), +(183, 11046), +(183, 11047), +(183, 11048), +(183, 11049), +(183, 11050), +(183, 11051), +(183, 11052), +(183, 11053), +(183, 11054), +(183, 11055), +(183, 11056), +(183, 11057), +(183, 11058), +(183, 11059), +(183, 11060), +(183, 11061), +(183, 11062), +(183, 11063), +(183, 11064), +(183, 11065), +(183, 11066), +(183, 11067), +(183, 11068), +(183, 11069), +(183, 11070), +(183, 11071), +(183, 11072), +(183, 11073), +(183, 11074), +(183, 11075), +(183, 11076), +(183, 11077), +(183, 11078), +(183, 11079), +(183, 11080), +(183, 11081), +(183, 11082), +(183, 11083), +(183, 11084), +(183, 11085), +(183, 11086), +(183, 11087), +(183, 11088), +(183, 11089), +(183, 11090), +(183, 11091), +(183, 11092), +(183, 11093), +(183, 11094), +(183, 11095), +(183, 11096), +(183, 11097), +(183, 11098), +(183, 11099), +(183, 11100), +(183, 11101), +(183, 11102), +(183, 11103), +(183, 11104), +(183, 11105), +(183, 11106), +(183, 11107), +(183, 11108), +(183, 11109), +(183, 11110), +(183, 11111), +(183, 11112), +(183, 11113), +(183, 11114), +(183, 11115), +(183, 11116), +(183, 11117), +(183, 11118), +(183, 11119), +(183, 11120), +(183, 11121), +(183, 11122), +(183, 11123), +(183, 11124), +(183, 11125), +(183, 11126), +(183, 11127), +(183, 11128), +(183, 11129), +(183, 11130), +(183, 11131), +(183, 11132), +(183, 11133), +(183, 11134), +(183, 11135), +(183, 11136), +(183, 11137), +(183, 11138), +(183, 11139), +(183, 11140), +(183, 11141), +(183, 11142), +(183, 11143), +(183, 11144), +(183, 11145), +(183, 11146), +(183, 11147), +(183, 11148), +(183, 11149), +(183, 11150), +(183, 11151), +(183, 11152), +(183, 11153), +(183, 11154), +(183, 11155), +(183, 11156), +(183, 11157), +(183, 11158), +(183, 11159), +(183, 11160), +(183, 11161), +(183, 11162), +(183, 11163), +(183, 11164), +(183, 11165), +(183, 11166), +(183, 11167), +(183, 11168), +(183, 11169), +(183, 11170), +(183, 11171), +(183, 11172), +(183, 11173), +(183, 11174), +(183, 11175), +(183, 11176), +(183, 11177), +(183, 11178), +(183, 11179), +(183, 11180), +(183, 11181), +(183, 11182), +(183, 11183), +(183, 11184), +(183, 11185), +(183, 11186), +(183, 11187), +(183, 11188), +(183, 11189), +(183, 11190), +(183, 11191), +(183, 11192), +(183, 11193), +(183, 11194), +(183, 11195), +(183, 11196), +(183, 11197), +(183, 11198), +(183, 11199), +(183, 11200), +(183, 11201), +(183, 11202), +(183, 11203), +(183, 11204), +(183, 11205), +(183, 11206), +(183, 11207), +(183, 11208), +(183, 11209), +(183, 11210), +(183, 11211), +(183, 11212), +(183, 11213), +(183, 11214), +(183, 11215), +(183, 11216), +(183, 11217), +(183, 11218), +(183, 11219), +(183, 11220), +(183, 11221), +(183, 11222), +(183, 11223), +(183, 11224), +(183, 11225), +(183, 11226), +(183, 11227), +(183, 11228), +(183, 11229), +(183, 11230), +(183, 11231), +(183, 11232), +(183, 11233), +(183, 11234), +(183, 11235), +(183, 11236), +(183, 11237), +(183, 11238), +(183, 11239), +(183, 11240), +(183, 11241), +(183, 11242), +(183, 11243), +(183, 11244), +(183, 11245), +(183, 11246), +(183, 11247), +(183, 11248), +(183, 11249), +(183, 11250), +(183, 11251), +(183, 11252), +(183, 11253), +(183, 11254), +(183, 11255), +(183, 11256), +(183, 11257), +(183, 11258), +(183, 11259), +(183, 11260), +(183, 11261), +(183, 11262), +(183, 11263), +(183, 11264), +(183, 11265), +(183, 11266), +(183, 11267), +(183, 11268), +(183, 11269), +(183, 11270), +(183, 11271), +(183, 11272), +(183, 11273), +(183, 11274), +(183, 11275), +(183, 11276), +(183, 11277), +(183, 11278), +(183, 11279), +(183, 11280), +(183, 11281), +(183, 11282), +(183, 11283), +(183, 11284), +(183, 11285), +(183, 11286), +(183, 11287), +(183, \ No newline at end of file diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/AntiPatternDetectionAppApplication.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/AntiPatternDetectionAppApplication.java index 8b4c5c4..1d4d973 100644 --- a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/AntiPatternDetectionAppApplication.java +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/AntiPatternDetectionAppApplication.java @@ -2,6 +2,7 @@ import cz.zcu.fav.kiv.antipatterndetectionapp.spring.AppConfig; import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.context.annotation.Import; diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/Constants.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/Constants.java index b3e661c..d4ff973 100644 --- a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/Constants.java +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/Constants.java @@ -4,4 +4,10 @@ public class Constants { public static final String ANTI_PATTERN_CATALOGUE_URL = "https://github.com/ReliSA/Software-process-antipatterns-catalogue/blob/master/catalogue/"; public static final String SUBSTRING_DELIMITER = "||"; public static final String ANTI_PATTERN_CATALOGUE_URL_RAW = "https://raw.githubusercontent.com/ReliSA/Software-process-antipatterns-catalogue/master/catalogue/"; + + public static final String HTML_DELIMITER = "_"; + public static final String INDENT = " "; + public static final Long DEFAULT_ID = -1L; + public static final Integer SUBMIT_TYPES = 3; } + diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/controller/AppController.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/controller/AppController.java index 8cf99a1..e8503e8 100644 --- a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/controller/AppController.java +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/controller/AppController.java @@ -3,12 +3,16 @@ import cz.zcu.fav.kiv.antipatterndetectionapp.detecting.AntiPatternManager; import cz.zcu.fav.kiv.antipatterndetectionapp.model.AntiPattern; +import cz.zcu.fav.kiv.antipatterndetectionapp.model.Project; import cz.zcu.fav.kiv.antipatterndetectionapp.model.Query; import cz.zcu.fav.kiv.antipatterndetectionapp.model.QueryResult; import cz.zcu.fav.kiv.antipatterndetectionapp.service.AntiPatternService; import cz.zcu.fav.kiv.antipatterndetectionapp.service.ConfigurationService; import cz.zcu.fav.kiv.antipatterndetectionapp.service.ProjectService; import cz.zcu.fav.kiv.antipatterndetectionapp.service.UserAccountService; +import cz.zcu.fav.kiv.antipatterndetectionapp.v2.model.ProjectDto; +import cz.zcu.fav.kiv.antipatterndetectionapp.v2.utils.converters.ClassToDto; +import cz.zcu.fav.kiv.antipatterndetectionapp.v2.utils.converters.ProjectToDto; import org.jsoup.Jsoup; import org.jsoup.safety.Safelist; import org.slf4j.Logger; @@ -55,9 +59,11 @@ public class AppController { @Autowired private ConfigurationService configurationService; + private final ClassToDto classToDto = new ProjectToDto(); + @GetMapping("/") public String mainPage(Model model) { - model.addAttribute("query", new Query(projectService.getAllProjects(), antiPatternService.antiPatternsToModel(antiPatternService.getAllAntiPatterns()))); + model.addAttribute("query", new Query(classToDto.convert(projectService.getAllProjects()), antiPatternService.antiPatternsToModel(antiPatternService.getAllAntiPatterns()))); return "main-page"; } @@ -71,7 +77,7 @@ public String mainPage(Model model) { */ @GetMapping("/detect") public String index(Model model) { - model.addAttribute("query", new Query(projectService.getAllProjects(), antiPatternService.antiPatternsToModel(antiPatternService.getAllAntiPatterns()))); + model.addAttribute("query", new Query(classToDto.convert(projectService.getAllProjects()), antiPatternService.antiPatternsToModel(antiPatternService.getAllAntiPatterns()))); LOGGER.info("@GetMapping(\"/\") - Accessing main page"); return "index"; } @@ -85,7 +91,7 @@ public String index(Model model) { */ @GetMapping("/projects/{id}") public String getProjectById(@PathVariable Long id, Model model) { - model.addAttribute("query", new Query(projectService.getAllProjects(), antiPatternService.antiPatternsToModel(antiPatternService.getAllAntiPatterns()))); + model.addAttribute("query", new Query(classToDto.convert(projectService.getAllProjects()), antiPatternService.antiPatternsToModel(antiPatternService.getAllAntiPatterns()))); model.addAttribute("project", projectService.getProjectById(id)); LOGGER.info("@GetMapping(\"projects/" + id + ")"); return "project"; @@ -97,7 +103,7 @@ public String getProjectById(@PathVariable Long id, Model model) { */ @GetMapping("/anti-patterns") public @ResponseBody List getAllAntiPatterns(Model model) { - model.addAttribute("query", new Query(projectService.getAllProjects(), antiPatternService.antiPatternsToModel(antiPatternService.getAllAntiPatterns()))); + model.addAttribute("query", new Query(classToDto.convert(projectService.getAllProjects()), antiPatternService.antiPatternsToModel(antiPatternService.getAllAntiPatterns()))); LOGGER.info("GetMapping(\"/anti-patterns\") and obtaining all APs."); return antiPatternService.antiPatternsToModel(antiPatternService.getAllAntiPatterns()); } @@ -112,7 +118,7 @@ public String getProjectById(@PathVariable Long id, Model model) { @GetMapping("/anti-patterns/{id}") public String getAntiPatternById(@PathVariable Long id, Model model, HttpSession session) { String currentConfigurationName = configurationGetFromSession(session); - model.addAttribute("query", new Query(projectService.getAllProjects(), antiPatternService.antiPatternsToModel(antiPatternService.getAllAntiPatterns()))); + model.addAttribute("query", new Query(classToDto.convert(projectService.getAllProjects()), antiPatternService.antiPatternsToModel(antiPatternService.getAllAntiPatterns()))); model.addAttribute("antiPattern", antiPatternService.getAntiPatternById(id).getAntiPatternModel()); model.addAttribute("description", antiPatternService.getDescriptionFromCatalogue(id)); model.addAttribute("operationalizationText", antiPatternService.getOperationalizationText(antiPatternService.getAntiPatternById(id).getAntiPatternModel().getName())); @@ -140,14 +146,14 @@ public String analyze(Model model, if (currentConfigurationName == null) { model.addAttribute("errorMessage", "No configuration was found!"); - model.addAttribute("query", new Query(projectService.getAllProjects(), antiPatternService.antiPatternsToModel(antiPatternService.getAllAntiPatterns()))); + model.addAttribute("query", new Query(classToDto.convert(projectService.getAllProjects()), antiPatternService.antiPatternsToModel(antiPatternService.getAllAntiPatterns()))); return "index"; } if (selectedProjects == null) { model.addAttribute("errorMessage", "No project selected." + " Select at least one project."); - model.addAttribute("query", new Query(projectService.getAllProjects(), antiPatternService.antiPatternsToModel(antiPatternService.getAllAntiPatterns()))); + model.addAttribute("query", new Query(classToDto.convert(projectService.getAllProjects()), antiPatternService.antiPatternsToModel(antiPatternService.getAllAntiPatterns()))); LOGGER.warn("@PostMapping(\"/analyze\") - Processing requirements for analyzing selected projects and AP with an error. " + "selectedProjects are null!"); return "index"; @@ -156,7 +162,7 @@ public String analyze(Model model, if (selectedAntiPatterns == null) { model.addAttribute("errorMessage", "No anti-pattern selected." + " Select at least one anti-pattern."); - model.addAttribute("query", new Query(projectService.getAllProjects(), antiPatternService.antiPatternsToModel(antiPatternService.getAllAntiPatterns()))); + model.addAttribute("query", new Query(classToDto.convert(projectService.getAllProjects()), antiPatternService.antiPatternsToModel(antiPatternService.getAllAntiPatterns()))); LOGGER.warn("@PostMapping(\"/analyze\") - Processing requirements for analyzing selected projects and AP with an error. " + "selectedAntiPatterns are null!"); return "index"; @@ -170,7 +176,7 @@ public String analyze(Model model, antiPatternService.saveResults(results); antiPatternService.setConfigurationChanged(false); - model.addAttribute("query", new Query(projectService.getAllProjects(), antiPatternService.antiPatternsToModel(antiPatternService.getAllAntiPatterns()))); + model.addAttribute("query", new Query(classToDto.convert(projectService.getAllProjects()), antiPatternService.antiPatternsToModel(antiPatternService.getAllAntiPatterns()))); model.addAttribute("queryResults", results); model.addAttribute("recalculationTime", DateTimeFormatter.ofPattern("HH:mm:ss").format(LocalTime.now())); @@ -192,7 +198,7 @@ public String analyzeGet(Model model) { } antiPatternService.setConfigurationChanged(false); - model.addAttribute("query", new Query(projectService.getAllProjects(), antiPatternService.antiPatternsToModel(antiPatternService.getAllAntiPatterns()))); + model.addAttribute("query", new Query(classToDto.convert(projectService.getAllProjects()), antiPatternService.antiPatternsToModel(antiPatternService.getAllAntiPatterns()))); model.addAttribute("queryResults", antiPatternService.getResults()); model.addAttribute("recalculationTime", DateTimeFormatter.ofPattern("HH:mm:ss").format(LocalTime.now())); @@ -207,7 +213,7 @@ public String analyzeGet(Model model) { */ @GetMapping("/about") public String about(Model model) { - model.addAttribute("query", new Query(projectService.getAllProjects(), antiPatternService.antiPatternsToModel(antiPatternService.getAllAntiPatterns()))); + model.addAttribute("query", new Query(classToDto.convert(projectService.getAllProjects()), antiPatternService.antiPatternsToModel(antiPatternService.getAllAntiPatterns()))); LOGGER.info("@GetMapping(\"/about\") - Accessing about page"); return "about"; } @@ -220,7 +226,7 @@ public String about(Model model) { */ @GetMapping("/configuration") public String configuration(Model model, HttpSession session) { - model.addAttribute("query", new Query(projectService.getAllProjects(), antiPatternService.antiPatternsToModel(antiPatternService.getAllAntiPatterns()))); + model.addAttribute("query", new Query(classToDto.convert(projectService.getAllProjects()), antiPatternService.antiPatternsToModel(antiPatternService.getAllAntiPatterns()))); model.addAttribute("antiPatterns", antiPatternService.antiPatternsToModel(antiPatternService.getAllAntiPatterns())); String currentConfigurationName = configurationGetFromSession(session); @@ -245,7 +251,7 @@ public String configurationSavePost(Model model, String currentConfigurationName = configurationGetFromSession(session); - Query query = new Query(projectService.getAllProjects(), antiPatternService.antiPatternsToModel(antiPatternService.getAllAntiPatterns())); + Query query = new Query(classToDto.convert(projectService.getAllProjects()), antiPatternService.antiPatternsToModel(antiPatternService.getAllAntiPatterns())); List wrongParameters = configurationService.saveNewConfiguration(query.getAntiPatterns(), currentConfigurationName, antiPatternNames, thresholdNames, thresholdValues, true); @@ -283,7 +289,7 @@ public String configurationSaveAsPost(Model model, @RequestParam(value = "configuration-save-as-input") String newConfigName, HttpSession session, RedirectAttributes redirectAttributes) { - Query query = new Query(projectService.getAllProjects(), antiPatternService.antiPatternsToModel(antiPatternService.getAllAntiPatterns())); + Query query = new Query(classToDto.convert(projectService.getAllProjects()), antiPatternService.antiPatternsToModel(antiPatternService.getAllAntiPatterns())); String currentConfigurationName = configurationGetFromSession(session); List allConfigurationNames = configurationService.getAllConfigurationNames(); @@ -439,7 +445,7 @@ public ResponseEntity handleFileUpload(@RequestParam("file") MultipartFile fi */ @GetMapping("/login") public String login(Model model) { - model.addAttribute("query", new Query(projectService.getAllProjects(), antiPatternService.antiPatternsToModel(antiPatternService.getAllAntiPatterns()))); + model.addAttribute("query", new Query(classToDto.convert(projectService.getAllProjects()), antiPatternService.antiPatternsToModel(antiPatternService.getAllAntiPatterns()))); return "login"; } diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/controller/management/EnumController.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/controller/management/EnumController.java new file mode 100644 index 0000000..832bb56 --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/controller/management/EnumController.java @@ -0,0 +1,270 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.controller.management; + +import cz.zcu.fav.kiv.antipatterndetectionapp.Constants; +import cz.zcu.fav.kiv.antipatterndetectionapp.model.Project; +import cz.zcu.fav.kiv.antipatterndetectionapp.service.ProjectService; +import cz.zcu.fav.kiv.antipatterndetectionapp.service.managment.enums.*; +import cz.zcu.fav.kiv.antipatterndetectionapp.utils.Utils; +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.FormObject; +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.ProjectInstance; +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.interfaces.Classification; +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.interfaces.EnumType; +import cz.zcu.fav.kiv.antipatterndetectionapp.service.managment.Service; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.util.Pair; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.servlet.mvc.support.RedirectAttributes; + +import javax.annotation.PostConstruct; +import javax.servlet.http.HttpSession; +import java.util.*; + +/** + * This class contains all endpoints of enums.html + */ +@Controller +public class EnumController { + + private final Logger LOGGER = LoggerFactory.getLogger(EnumController.class); + + @Autowired + private PriorityService priorityService; + + @Autowired + private SeverityService severityService; + + @Autowired + private RelationService relationService; + + @Autowired + private ResolutionService resolutionService; + + @Autowired + private RoleService roleService; + + @Autowired + private StatusService statusService; + + @Autowired + private WuTypeService wuTypeService; + + @Autowired + private PriorityClassificationService priorityClassificationService; + + @Autowired + private SeverityClassificationService severityClassificationService; + + @Autowired + private StatusClassificationService statusClassificationService; + + @Autowired + private RoleClassificationService roleClassificationService; + + @Autowired + private ResolutionClassificationService resolutionClassificationService; + + @Autowired + private WuTypeClassificationService wuTypeClassificationService; + + @Autowired + private RelationClassificationService relationClassificationService; + + @Autowired + private ProjectService projectService; + + private Map> services; + + /** + * Method initializing map of enum + * services and their classifications + */ + @PostConstruct + private void initializeMap() { + services = Map.ofEntries( + Map.entry("Priority", Pair.of(priorityClassificationService, priorityService)), + Map.entry("Severity", Pair.of(severityClassificationService, severityService)), + Map.entry("Status", Pair.of(statusClassificationService, statusService)), + Map.entry("Role", Pair.of(roleClassificationService, roleService)), + Map.entry("Resolution", Pair.of(resolutionClassificationService, resolutionService)), + Map.entry("WuType", Pair.of(wuTypeClassificationService, wuTypeService)), + Map.entry("Relation", Pair.of(relationClassificationService, relationService)) + ); + } + + /** + * Method for showing enums in tabs + * @param model Object for passing data to the UI + * @param project Selected project for showing enums + * @param redirectAttrs Attributes for redirection + * @param session Session with attributes + * @return HTML template + */ + @GetMapping("/management/enums") + public String changeTab(Model model, + @RequestParam(value = "selectedProject", required = false) Long project, + RedirectAttributes redirectAttrs, + HttpSession session) { + + // First open in session + if(project == null && session.getAttribute("project") == null) { + model.addAttribute("projects", projectService.getAllProjects()); + LOGGER.info("@GetMapping(\"/management/enums\") - Accessing page"); + return "management/enums"; + } + + // Project selected + if(project != null) { + session.setAttribute("project", project); + Utils.sessionRecreate(session); + } + + project = (long) session.getAttribute("project"); + + Project foundedProject = projectService.getProjectById(project); + if(foundedProject == null) { + if(!Objects.equals(project, Constants.DEFAULT_ID)) { + redirectAttrs.addFlashAttribute("errorMessage", "Project not found"); + LOGGER.info("@GetMapping(\"/management/enums\")- Project not found"); + } else { + LOGGER.info("@GetMapping(\"/management/enums\") - Accessing page"); + } + model.addAttribute("projects", projectService.getAllProjects()); + return "management/enums"; + } + + // For each project instance of project, get all enums + for(Map.Entry> entry : services.entrySet()) { + + Set enums = new HashSet<>(); // Enums of current enum type + Service service = entry.getValue().getFirst(); // Service for current enum type + + // For each project instance, get all enums for current enum type + for(ProjectInstance projectInstance : foundedProject.getProjectInstances()) { + Set enumsByName = (Set) projectInstance.getEnumsByName(entry.getKey()); + if(enumsByName != null) { + enums.addAll(enumsByName); + } + } + + // Create classification pairs with enums + List>> pairs = createClassPairs(service, enums); + + //Calculate rowspan for superclasses + List superClassSpan = calculateSpan(pairs); + + model.addAttribute(entry.getKey(), pairs); + model.addAttribute(entry.getKey() + "All", service.getAllClasses()); + model.addAttribute(entry.getKey() + "Super", superClassSpan); + } + + model.addAttribute("projects", projectService.getAllProjects()); + model.addAttribute("result", new FormObject()); + return "management/enums"; + } + + /** + * Method for changing enum class for selected enums + * @param model Object for passing data to the UI + * @param selectedEnums Selected enums for change of their class + * @param selectedClass Selected class for enums + * @param enumName Name of the current selected tab + * @param redirectAttrs Attributes for redirection + * @return Html template + */ + @PostMapping(value = "/changeEnums") + public String changeEnums(Model model, + @RequestParam(value = "selectedEnums", required = false) List selectedEnums, + @RequestParam(value = "selectedClass", required = false) Long selectedClass, + @RequestParam(value = "enumName", required = false) String enumName, + RedirectAttributes redirectAttrs) { + + if(selectedEnums == null || selectedEnums.isEmpty()) { + redirectAttrs.addFlashAttribute("errorMessage", "ERROR: Nothing was selected"); + LOGGER.info("@PostMapping(\"/management/enums\") - Nothing was selected"); + return "redirect:/management/enums"; + } + + for(Long id : selectedEnums) { + Pair pair = services.get(enumName); + if(pair != null) { + Service service = pair.getFirst(); + EnumService enumService = pair.getSecond(); + + EnumType enumType = enumService.getEnumById(id); + enumType.setClassId(service.getClassById(selectedClass)); + enumService.saveEnum(enumType); + } + } + + redirectAttrs.addFlashAttribute("successMessage", "All selected enums (" + selectedEnums.size() + ") were successfully assigned"); + redirectAttrs.addFlashAttribute("activeTab", enumName); + return "redirect:/management/enums"; + } + + /** + * Method creating pairs with enum type + * classification and list of relevant enums + * @param service Enum service + * @param enums Set of enums in specific project + * @return List of pairs with enum class and relevant enums + */ + private List>> createClassPairs(Service service, Set enums) { + + List>> pairs = new ArrayList<>(); // List with enum types classes and their enums + for(Classification enumClass : service.getAllClasses()) { + Set enumSet = new HashSet<>(); // For each enum classification create new list for enums + + //If enum class is equal to current class, add enum into list + for(EnumType e : enums) { + if(Objects.equals(e.getClassId().getId(), enumClass.getId())) { + enumSet.add(e); + } + } + + //If enum set has some enums in it, add pair to the final list + if(!enumSet.isEmpty()) { + List enumTypes = new ArrayList<>(enumSet); + Collections.sort(enumTypes, Comparator.comparing(EnumType::getName, String.CASE_INSENSITIVE_ORDER)); + Pair> newPair = Pair.of(enumClass, enumTypes); + pairs.add(newPair); + } + } + return pairs; + } + + /** + * Method calculating rowspan for superclasses + * @param pairs Classification and list with enums + * @return List with sizes of rowspan for each classification + */ + private List calculateSpan(List>> pairs) { + List superClassSpan = new ArrayList<>(); // Superclass rowspan for current enum type + String preSuperClass = null; + int preListSize = 0; + int lastI = 0; + for(int i = 0; i < pairs.size(); i++) { + Pair> currentPair = pairs.get(i); + String currentSuperClass = currentPair.getFirst().getSuperClass(); + int currentListSize = currentPair.getSecond().size(); + if(preSuperClass == null || !currentSuperClass.contentEquals(preSuperClass)) { + superClassSpan.add(i, currentListSize); + lastI = i; + } else if(currentSuperClass.contentEquals(preSuperClass)) { + superClassSpan.set(lastI, preListSize + currentListSize); + superClassSpan.add(i, 0); + preListSize = preListSize + currentListSize; + continue; + } + preSuperClass = currentSuperClass; + preListSize = currentListSize; + } + + return superClassSpan; + } +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/controller/management/PersonController.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/controller/management/PersonController.java new file mode 100644 index 0000000..4d20038 --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/controller/management/PersonController.java @@ -0,0 +1,158 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.controller.management; + +import cz.zcu.fav.kiv.antipatterndetectionapp.Constants; +import cz.zcu.fav.kiv.antipatterndetectionapp.model.Project; +import cz.zcu.fav.kiv.antipatterndetectionapp.service.ProjectService; +import cz.zcu.fav.kiv.antipatterndetectionapp.utils.Utils; +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.Person; +import cz.zcu.fav.kiv.antipatterndetectionapp.service.managment.PersonService; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.servlet.mvc.support.RedirectAttributes; + +import javax.servlet.http.HttpSession; +import java.util.Collections; +import java.util.Comparator; +import java.util.List; +import java.util.Objects; + +/** + * This class contains all endpoints of person.html + */ +//@Controller +public class PersonController { + + private final Logger LOGGER = LoggerFactory.getLogger(PersonController.class); + + @Autowired + private PersonService personService; + + @Autowired + private ProjectService projectService; + + /** + * Method for showing people and their identities + * @param model Object for passing data to the UI + * @param project Selected project for showing people + * @param redirectAttrs Attributes for redirection + * @param session Session with attributes + * @return HTML template + */ + //[JT] vyhodit http session + @GetMapping("/management/person") + public String people(Model model, + @RequestParam(value = "selectedProject", required = false) Long project, + RedirectAttributes redirectAttrs, + HttpSession session) { + + // [JT] tohle taky hodit pryc + //session pro nas neni platna - posilat v body requestu z klienta + if(project == null && session.getAttribute("project") == null) { + model.addAttribute("projects", projectService.getAllProjects()); + LOGGER.info("@GetMapping(\"/management/person\") - Accessing page"); + //[JT] prepsat do reactu + return "management/person"; + } + //[JT] tohle pryc + // Project selected + if(project != null) { + session.setAttribute("project", project); + Utils.sessionRecreate(session); + } + //[JT] nerozumim + project = (long) session.getAttribute("project"); + + Project foundedProject = projectService.getProjectById(project); + //[JT] logika do service + if(foundedProject == null) { + if(!Objects.equals(project, Constants.DEFAULT_ID)) { + redirectAttrs.addFlashAttribute("errorMessage", "Project not found"); + LOGGER.info("@GetMapping(\"/management/person\")- Project not found"); + } else { + LOGGER.info("@GetMapping(\"/management/person\") - Accessing page"); + } + //[JT] do reactu + model.addAttribute("projects", projectService.getAllProjects()); + return "management/person"; + } + + List people = foundedProject.getPeople(); + Collections.sort(people, Comparator.comparing(Person::getName, String.CASE_INSENSITIVE_ORDER)); + //[JT] hodit do json response body + model.addAttribute("people", people); + model.addAttribute("projects", projectService.getAllProjects()); + LOGGER.info("@GetMapping(\"/management/person\") - Accessing page"); + + return "management/person"; + } + + /** + * Method for merging people in same project + * @param model Object for passing data to the UI + * @param selectedPeople People selected by user for merge + * @param personName Name of the new person for merge + * @param redirectAttrs Attributes for redirection + * @return HTML template + */ + @PostMapping(value = "/changeIdentities") + public String mergeIdentities(Model model, + @RequestParam(value = "selectedBox", required = false) List selectedPeople, + @RequestParam(value = "personName", required = false) List personName, + @RequestParam(value = "radioBtn", required = false) Integer radioBtn, + @RequestParam(value = "submitId", required = false) Long submitId, + RedirectAttributes redirectAttrs) { + + // Nothing was selected + if(selectedPeople == null || selectedPeople.isEmpty()) { + redirectAttrs.addFlashAttribute("errorMessage", "ERROR: Nothing was selected"); + LOGGER.info("@PostMapping(\"/management/person\") - Nothing was selected or name was empty"); + + } else { + + Person newPerson; + if(Objects.equals(submitId, Constants.DEFAULT_ID)) { // Creating new person + + if(personName == null || personName.isEmpty() || radioBtn == null || personName.get(radioBtn).isEmpty()) { // Person name is not set + redirectAttrs.addFlashAttribute("errorMessage", "ERROR: Name of the new person is empty"); + LOGGER.info("@PostMapping(\"/management/person\") - Name of the new person is empty"); + return "redirect:/management/person"; + } + + Person createdPerson = new Person(personName.get(radioBtn), selectedPeople.get(0).getProject()); + newPerson = personService.savePerson(createdPerson); + + } else { // Merging to existing person + newPerson = personService.getPersonById(submitId); + } + + if(newPerson != null) { // Person was found in database + + if(selectedPeople.contains(newPerson)) { + redirectAttrs.addFlashAttribute("errorMessage", "ERROR: Person cannot be merged with itself"); + LOGGER.info("@PostMapping(\"/management/person\") - Person cannot be merged with itself"); + return "redirect:/management/person"; + } + + for(Person person : selectedPeople) { // Relation update for every selected person + personService.updatePersonRelations(person.getId(), newPerson.getId()); + personService.deletePerson(person.getId()); + } + + redirectAttrs.addFlashAttribute("successMessage", "All identities of selected person were merged to person " + newPerson.getName()); + LOGGER.info("@PostMapping(\"/management/person\") - Selected identities were merged to person with id " + submitId); + + } else { + redirectAttrs.addFlashAttribute("errorMessage", "ERROR: Selected person was not found"); + LOGGER.info("@PostMapping(\"/management/person\") - Selected person with id " + submitId + " was not found"); + } + + } + return "redirect:/management/person"; + } +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/controller/management/ProjectController.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/controller/management/ProjectController.java new file mode 100644 index 0000000..f120934 --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/controller/management/ProjectController.java @@ -0,0 +1,164 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.controller.management; + +import cz.zcu.fav.kiv.antipatterndetectionapp.Constants; +import cz.zcu.fav.kiv.antipatterndetectionapp.model.Project; +import cz.zcu.fav.kiv.antipatterndetectionapp.service.ProjectService; +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.types.Node; +import cz.zcu.fav.kiv.antipatterndetectionapp.v2.model.ProjectDto; +import cz.zcu.fav.kiv.antipatterndetectionapp.v2.utils.converters.ProjectToDto; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.servlet.mvc.support.RedirectAttributes; + +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; + +/** + * This class contains all endpoints of projects.html + */ +//@Controller +public class ProjectController { + + private final Logger LOGGER = LoggerFactory.getLogger(ProjectController.class); + + @Autowired + private ProjectService projectService; + + /** + * Method for visualization of project hierarchy + * @param model Object for passing data to the UI + * @return HTML template + */ + @GetMapping("/management/projects") + public String projects(Model model) { + ProjectToDto projectToDto = new ProjectToDto(); + List parents = new ArrayList<>(); + List parentProjects = projectToDto.convert(projectService.getParentProjects()); + for(ProjectDto parentProject : parentProjects) { + Node n = new Node(); + n.project = parentProject; + n.children = new ArrayList<>(); + parents.add(n); + } + + for(Node n : parents) { + n.children = projectService.calculate(n.project); + } + + model.addAttribute("parents", parents); + LOGGER.info("@GetMapping(\"/management/projects\") - Accessing page"); + return "management/projects"; + } + + /** + * Method for changing superproject of selected projects + * @param model Object for passing data to the UI + * @param selectedProjects Selected projects for changing their parent project + * @param selectedSuperProject Selected project for being parent project + * @param projectName Name of new created project that will take a place as parent project + * @param redirectAttrs Redirect attributes + * @return HTML template + */ + @PostMapping(value = "/superProjectChange") + public String projectChange(Model model, + @RequestParam(value = "selectedBox", required = false) List selectedProjects, + @RequestParam(value = "submitId", required = false) Long selectedSuperProject, + @RequestParam(value = "projectName", required = false) String projectName, + RedirectAttributes redirectAttrs) { + + // Validity check + if(selectedProjects == null) { + redirectAttrs.addFlashAttribute("errorMessage", "ERROR: Nothing was selected before submission"); + LOGGER.warn("@PostMapping(\"/management/projects\") - Cannot proceed: Submission went wrong"); + + } else if(projectService.getProjectById(selectedSuperProject) == null && !Objects.equals(selectedSuperProject, Constants.DEFAULT_ID)) { + redirectAttrs.addFlashAttribute("errorMessage", "ERROR: Superproject was not found"); + LOGGER.warn("@PostMapping(\"/management/projects\") - Cannot proceed: Submission went wrong"); + + } else if(!Objects.equals(selectedSuperProject, Constants.DEFAULT_ID) && selectedProjects.contains(projectService.getProjectById(selectedSuperProject))) { + if(selectedProjects.size() == 1) { + selectedProjects.get(0).setSuperProject(null); + projectService.saveProject(selectedProjects.get(0)); + redirectAttrs.addFlashAttribute("successMessage", "The project was set up as a parent project"); + } else { + redirectAttrs.addFlashAttribute("errorMessage", "ERROR: Project cannot be superproject for self"); + LOGGER.warn("@PostMapping(\"/management/projects\") - Cannot proceed: Submission went wrong"); + } + + } else { + // User creating new superproject + if(Objects.equals(selectedSuperProject, Constants.DEFAULT_ID)) { + if(projectName == null || projectName.isEmpty()) { + redirectAttrs.addFlashAttribute("errorMessage", "ERROR: Name was not found"); + LOGGER.warn("@PostMapping(\"/management/projects\") - Cannot proceed: Submission went wrong"); + } else { + Project project = new Project(projectName); + Project newProject = projectService.saveProject(project); + for(Project subProject : selectedProjects) { + subProject.setSuperProject(newProject); + projectService.saveProject(subProject); + } + redirectAttrs.addFlashAttribute("successMessage", "Selected projects (" + selectedProjects.size() + ") were assign to " + newProject.getName()); + } + return "redirect:/management/projects/"; + } + + // Check if there is no cycle + List childProjects = new ArrayList<>(); + for(Project project : selectedProjects) { + addChildProject(project, childProjects); + } + if(childProjects.contains(projectService.getProjectById(selectedSuperProject))) { + redirectAttrs.addFlashAttribute("errorMessage", "ERROR: Some selected projects cannot be assign - Selected superproject cannot be superior to its parent"); + LOGGER.warn("@PostMapping(\"/management/projects\") - Cannot proceed: Submission went wrong"); + return "redirect:/management/projects/"; + } + + // Changing superproject of all selected projects + for(Project project : selectedProjects) { + project.setSuperProject(projectService.getProjectById(selectedSuperProject)); + projectService.saveProject(project); + } + redirectAttrs.addFlashAttribute("successMessage", "Selected projects (" + selectedProjects.size() + ") were assign to " + projectService.getProjectById(selectedSuperProject).getName()); + } + + return "redirect:/management/projects/"; + } + + /** + * Method for searching all subordinate projects of selected project + * @param project Project for which the search will be done + * @param childProjects Collection of all subordinate projects + */ + private void addChildProject(Project project, List childProjects) { + for(Project childProject : projectService.getSubordinateProjectsTo(project.getId())) { + childProjects.add(childProject); + addChildProject(childProject, childProjects); + } + } + + /** + * Method creating the hierarchy of projects by recursion + * @param p Project for which the hierarchy will be generated + * @return List of project's children with their hierarchy + */ + private ArrayList calculate(ProjectDto p) { + ProjectToDto projectToDto = new ProjectToDto(); + ArrayList nodes = new ArrayList<>(); + List projects = projectToDto.convert(projectService.getSubordinateProjectsTo(p.getId())); + for(ProjectDto project : projects) { + Node n = new Node(); + n.project = project; + n.children = calculate(project); + nodes.add(n); + } + return nodes; + } +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/controller/management/ReleaseController.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/controller/management/ReleaseController.java new file mode 100644 index 0000000..28b0846 --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/controller/management/ReleaseController.java @@ -0,0 +1,165 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.controller.management; + +import cz.zcu.fav.kiv.antipatterndetectionapp.service.ProjectService; +import cz.zcu.fav.kiv.antipatterndetectionapp.utils.Utils; +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.Commit; +import cz.zcu.fav.kiv.antipatterndetectionapp.repository.managment.CommitRepository; +import cz.zcu.fav.kiv.antipatterndetectionapp.repository.managment.ConfigurationPersonRelationRepository; +import cz.zcu.fav.kiv.antipatterndetectionapp.service.managment.BranchService; +import cz.zcu.fav.kiv.antipatterndetectionapp.service.managment.CommitService; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.servlet.mvc.support.RedirectAttributes; + +import javax.servlet.http.HttpSession; + +/** + * This class contains all endpoints of release.html + */ +@Controller +public class ReleaseController { + + private final Logger LOGGER = LoggerFactory.getLogger(ReleaseController.class); + + @Autowired + private ProjectService projectService; + + @Autowired + private CommitService commitService; + + @Autowired + private BranchService branchService; + + @Autowired + private CommitRepository commitRepository; + + @Autowired + private ConfigurationPersonRelationRepository configurationPersonRelationRepository; + + /** + * Method for visualization of released configurations + * @param model Object for passing data to the UI + * @param project Selected project for showing releases + * @param session Session with attributes + * @return HTML template + */ + @GetMapping("/management/release") + public String releases(Model model, + @RequestParam(value = "selectedProject", required = false) Long project, + HttpSession session) { + + // First open in session + if(project == null && session.getAttribute("project") == null) { + model.addAttribute("projects", projectService.getAllProjects()); + LOGGER.info("@GetMapping(\"/management/release\") - Accessing page"); + return "management/release"; + } + + // Project selected + if(project != null) { + session.setAttribute("project", project); + Utils.sessionRecreate(session); + } + + project = (long) session.getAttribute("project"); + model.addAttribute("projectId", project); + + model.addAttribute("projects", projectService.getAllProjects()); + model.addAttribute("commits", commitRepository.getReleasedCommitsByProject(project)); + return "management/release"; + } + + /** + * Method opening specific commit based on identifier + * @param model Object for passing data to the UI + * @param identifier Identifier of commit for visualisation + * @param redirectAttrs Attributes for redirection + * @param session Session with attributes + * @return HTML template + */ + @PostMapping(value = "/openCommit") + public String openCommit(Model model, + @RequestParam(value = "identifier", required = false) String identifier, + RedirectAttributes redirectAttrs, + HttpSession session) { + + Commit commit = commitService.getCommitByIdentifier((long) session.getAttribute("project"), identifier); + if(commit == null) { + redirectAttrs.addFlashAttribute("errorMessage", "ERROR: Commit doesn't exist"); + LOGGER.info("@PostMapping(\"/management/release/\") - Commit not found"); + return "redirect:/management/release"; + } + + model.addAttribute("selectedCommit", commit); + model.addAttribute("committedBy", configurationPersonRelationRepository.getCommittedRelation(commit.getId())); + return "management/commit"; + } + + /** + * Method changing release attribute of specific commit + * @param model Object for passing data to the UI + * @param identifier Identifier of commit for attribute change + * @param release Value of attribute release + * @param redirectAttrs Attributes for redirection + * @param session Session with attributes + * @return HTML template + */ + @PostMapping(value = "/changeRelease") + public String changeRelease(Model model, + @RequestParam(value = "identifier", required = false) String identifier, + @RequestParam(value = "release", required = false) boolean release, + RedirectAttributes redirectAttrs, + HttpSession session) { + + Commit commit = commitService.getCommitByIdentifier((long) session.getAttribute("project"), identifier); + if(commit == null) { + redirectAttrs.addFlashAttribute("errorMessage", "ERROR: Commit doesn't exist"); + LOGGER.info("@PostMapping(\"/management/release/\") - Commit not found"); + return "redirect:/management/release"; + } + + if(release != commit.isRelease()) { + commit.setRelease(release); + commitService.saveCommit(commit); + } + + LOGGER.info("@PostMapping(\"/management/person\") - Commit " + commit.getIdentifier() + " were unreleased"); + model.addAttribute("selectedCommit", commit); + model.addAttribute("committedBy", configurationPersonRelationRepository.getCommittedRelation(commit.getId())); + return "management/commit"; + } + + /** + * Method for marking commit as not released + * @param model Object for passing data to the UI + * @param submitId ID of commit for unreleasing + * @param redirectAttrs Attributes for redirection + * @return + */ + @PostMapping(value = "/unRelease") + public String unRelease(Model model, + @RequestParam(value = "submitId", required = false) Long submitId, + RedirectAttributes redirectAttrs) { + + Commit commit = commitService.getCommitById(submitId); + if(commit == null) { + redirectAttrs.addFlashAttribute("errorMessage", "ERROR: Submitted commit id doesn't exists"); + LOGGER.info("@PostMapping(\"/management/release/\") - Commit not found"); + return "redirect:/management/release"; + } + + commit.setRelease(false); + commitService.saveCommit(commit); + + redirectAttrs.addFlashAttribute("successMessage", "Commit " + commit.getIdentifier() + " were unreleased"); + LOGGER.info("@PostMapping(\"/management/person\") - Commit " + commit.getIdentifier() + " were unreleased"); + return "redirect:/management/release"; + } + +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/controller/management/SegmentActivityController.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/controller/management/SegmentActivityController.java new file mode 100644 index 0000000..8c843ab --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/controller/management/SegmentActivityController.java @@ -0,0 +1,393 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.controller.management; + +import cz.zcu.fav.kiv.antipatterndetectionapp.Constants; +import cz.zcu.fav.kiv.antipatterndetectionapp.model.Project; +import cz.zcu.fav.kiv.antipatterndetectionapp.service.ProjectService; +import cz.zcu.fav.kiv.antipatterndetectionapp.utils.Utils; +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.Activity; +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.Category; +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.ProjectInstance; +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.WorkUnit; +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.enums.WuType; +import cz.zcu.fav.kiv.antipatterndetectionapp.repository.managment.ActivityRepository; +import cz.zcu.fav.kiv.antipatterndetectionapp.repository.managment.WorkUnitRepository; +import cz.zcu.fav.kiv.antipatterndetectionapp.service.managment.CategoryService; +import cz.zcu.fav.kiv.antipatterndetectionapp.service.managment.WorkUnitService; +import cz.zcu.fav.kiv.antipatterndetectionapp.service.managment.enums.WuTypeService; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.servlet.mvc.support.RedirectAttributes; + +import javax.servlet.http.HttpSession; +import java.util.*; + +/** + * This class contains all endpoints of segment-activity.html + */ +@Controller +public class SegmentActivityController { + + private final Logger LOGGER = LoggerFactory.getLogger(SegmentActivityController.class); + + @Autowired + private ProjectService projectService; + + @Autowired + private WorkUnitService workUnitService; + + @Autowired + private CategoryService categoryService; + + @Autowired + private WuTypeService wuTypeService; + + @Autowired + private ActivityRepository activityRepository; + + @Autowired + private WorkUnitRepository workUnitRepository; + + /** + * Method for visualization of activities and work units + * @param model Object for passing data to the UI + * @param project Selected project for showing workunits and activities + * @param redirectAttrs Attributes for redirection + * @param session Session with attributes + * @return HTML template + */ + @GetMapping("/management/segment-activity") + public String changeProject(Model model, + @RequestParam(value = "selectedProject", required = false) Long project, + RedirectAttributes redirectAttrs, + HttpSession session) { + + // Remove activity if different project selected + if(project != null && session.getAttribute("project") != project) { + Utils.sessionRecreate(session); + } + + // First open in session + if(project == null && session.getAttribute("project") == null) { + model.addAttribute("projects", projectService.getAllProjects()); + LOGGER.info("@GetMapping(\"/management/segment-activity\") - Accessing page"); + return "management/segment-activity"; + } + + // Project selected + if(project != null) { + session.setAttribute("project", project); + } + + project = (long) session.getAttribute("project"); + + Project foundedProject = projectService.getProjectById(project); + + if(foundedProject == null) { + if(!Objects.equals(project, Constants.DEFAULT_ID)) { + redirectAttrs.addFlashAttribute("errorMessage", "Project not found"); + LOGGER.info("@GetMapping(\"/management/segment-activity\")- Project not found"); + } else { + session.removeAttribute("activity"); + LOGGER.info("@GetMapping(\"/management/segment-activity\") - Accessing page"); + } + model.addAttribute("projects", projectService.getAllProjects()); + return "management/segment-activity"; + } + + applyFilter(model, foundedProject, session); + + model.addAttribute("activities", foundedProject.getActivities()); + model.addAttribute("projects", projectService.getAllProjects()); + return "management/segment-activity"; + } + + /** + * Method for selection of activity + * @param model Object for passing data to the UI + * @param activityId Selected activity for assigning + * @param redirectAttrs Attributes for redirection + * @param session Session with attributes + * @return HTML template + */ + @PostMapping("/selectActivity") + public String selectActivity(Model model, + @RequestParam(value = "submitId", required = false) Long activityId, + RedirectAttributes redirectAttrs, + HttpSession session) { + +// Activity activity = activityService.getActivityById(activityId); +// if(activity == null) { +// redirectAttrs.addFlashAttribute("errorMessage", "ERROR: Activity not found"); +// LOGGER.info("@GetMapping(\"/management/segment-activity\")- Activity not found"); +// return "redirect:/management/segment-activity"; +// } +// +// session.setAttribute("activity", activity); +// LOGGER.info("@GetMapping(\"/management/segment-activity\") - Accessing page"); +// return "redirect:/management/segment-activity"; + return null; + } + + /** + * Method for reselection of activity (removing activity from session) + * @param session Session with attributes + * @return HTML template + */ + @PostMapping("/reselectActivity") + public String reselectActivity(HttpSession session) { + session.removeAttribute("activity"); + return "redirect:/management/segment-activity"; + } + + /** + * Method adding category to the filter for current work units + * @param model Object for passing data to the UI + * @param categoryId Identifier of type that will be added + * @param session Session with attributes + * @return HTML template + */ + @PostMapping("/addCategoryFilter") + public String addCategory(Model model, + @RequestParam(value = "selectedCategory", required = false) Long categoryId, + HttpSession session) { + + List categoryFilter = (List) session.getAttribute("categoryFilter"); + if(categoryFilter == null) { + categoryFilter = new ArrayList<>(); + } + + Category category = categoryService.getCategoryById(categoryId); + if(category != null) { + categoryFilter.add(category); + } + session.setAttribute("categoryFilter", categoryFilter); + return "redirect:/management/segment-activity"; + } + + /** + * Method removing category from filter for current work units + * @param model Object for passing data to the UI + * @param categoryId Identifier of category that will be removed + * @param session Session with attributes + * @return HTML template + */ + @PostMapping("/removeCategoryFilter") + public String removeCategory(Model model, + @RequestParam(value = "selectedCategory", required = false) Long categoryId, + HttpSession session) { + + + List categoryFilter = (List) session.getAttribute("categoryFilter"); + if(categoryFilter == null) { + return "redirect:/management/segment-activity"; + } + + Category category = categoryService.getCategoryById(categoryId); + if(category != null) { + categoryFilter.remove(category); + } + session.setAttribute("categoryFilter", categoryFilter); + return "redirect:/management/segment-activity"; + } + + /** + * Method adding type to the filter for current work units + * @param model Object for passing data to the UI + * @param typeId Identifier of type that will be added + * @param session Session with attributes + * @return HTML template + */ + @PostMapping("/addTypeFilter") + public String addType(Model model, + @RequestParam(value = "selectedType", required = false) Long typeId, + HttpSession session) { + + List typeFilter = (List) session.getAttribute("typeFilter"); + if(typeFilter == null) { + typeFilter = new ArrayList<>(); + } + + WuType wuType = wuTypeService.getWuTypeById(typeId); + if(wuType != null) { + typeFilter.add(wuType); + } + session.setAttribute("typeFilter", typeFilter); + return "redirect:/management/segment-activity"; + } + + /** + * Method removing type from filter for current work units + * @param model Object for passing data to the UI + * @param typeId Identifier of type that will be removed + * @param session Session with attributes + * @return HTML template + */ + @PostMapping("/removeTypeFilter") + public String removeType(Model model, + @RequestParam(value = "selectedType", required = false) Long typeId, + HttpSession session) { + + List typeFilter = (List) session.getAttribute("typeFilter"); + if(typeFilter == null) { + return "redirect:/management/segment-activity"; + } + + WuType wuType = wuTypeService.getWuTypeById(typeId); + if(wuType != null) { + typeFilter.remove(wuType); + } + session.setAttribute("typeFilter", typeFilter); + return "redirect:/management/segment-activity"; + } + + /** + * Method assigning activity to selected work units + * @param model Object for passing data to the UI + * @param selectedUnits Selected work units + * @param redirectAttrs Attributes for redirection + * @param session Session with attributes + * @return HTML template + */ + @PostMapping("/assignActivity") + public String assignActivity(Model model, + @RequestParam(value = "selectedUnits", required = false) List selectedUnits, + RedirectAttributes redirectAttrs, + HttpSession session) { + + if(selectedUnits == null || selectedUnits.isEmpty()) { + selectedUnits = (List) session.getAttribute("selectedWU"); + session.removeAttribute("selectedWU"); + if(selectedUnits == null || selectedUnits.isEmpty()) { + redirectAttrs.addFlashAttribute("errorMessage", "ERROR: Nothing was selected"); + LOGGER.info("@PostMapping(\"/management/segment-activity\" - Nothing was selected"); + return "redirect:/management/segment-activity"; + } + } + + Activity activity = (Activity) session.getAttribute("activity"); + if(activity != null) { + + for(WorkUnit workUnit : selectedUnits) { + workUnit.setActivity(activity); + workUnitService.saveWorkUnit(workUnit); + } + + } else { + redirectAttrs.addFlashAttribute("errorMessage", "ERROR: Error occurred while getting selected activity"); + LOGGER.info("@PostMapping(\"/management/segment-activity\" - Session has problem with activity extract"); + return "redirect:/management/segment-activity"; + } + + redirectAttrs.addFlashAttribute("successMessage", "Activity was assigned to all selected work units (" + selectedUnits.size() + ")"); + LOGGER.info("@PostMapping(\"/management/segment-activity\" - Activity was assigned to all selected work units"); + return "redirect:/management/segment-activity"; + } + + /** + * Method testing if there are some work units with activities + * @param model Object for passing data to the UI + * @param selectedUnits Selected work units + * @param redirectAttrs Attributes for redirection + * @param session Session with attributes + * @return HTML template + */ + @PostMapping("/testWU") + public String testWU(Model model, + @RequestParam(value = "selectedUnits", required = false) List selectedUnits, + RedirectAttributes redirectAttrs, + HttpSession session) { + + if(selectedUnits == null || selectedUnits.isEmpty()) { + redirectAttrs.addFlashAttribute("errorMessage", "ERROR: Nothing was selected"); + LOGGER.info("@PostMapping(\"/management/segment-activity\" - Nothing was selected"); + return "redirect:/management/segment-activity"; + } + + List ids = new ArrayList<>(); + boolean notEmpty = false; + for(WorkUnit workUnit : selectedUnits) { + ids.add(workUnit.getId()); + if(workUnit.getActivity() != null) { + notEmpty = true; + } + } + + if(notEmpty) { + session.setAttribute("selectedWU", selectedUnits); + redirectAttrs.addFlashAttribute("selectedWU", selectedUnits); + redirectAttrs.addFlashAttribute("selectedIds", ids); + return "redirect:/management/segment-activity"; + } + + return assignActivity(model, selectedUnits, redirectAttrs, session); + } + + /** + * Method for applying filters defined by user into model + * @param model Object for passing data to the UI + * @param foundedProject Selected project for showing template + * @param session Session with attributes + */ + private void applyFilter(Model model, + Project foundedProject, + HttpSession session) { + + Set categories = new HashSet<>(); + Set types = new HashSet<>(); + for(ProjectInstance instance : foundedProject.getProjectInstances()) { + categories.addAll(instance.getCategories()); + types.addAll(instance.getWuTypes()); + } + + //Remove categories in filter + List categoryList = new ArrayList<>(categories); + List categoryFilter = (List) session.getAttribute("categoryFilter"); + if(categoryFilter != null) { + categoryFilter.forEach(categoryList::remove); + } + + List wuTypeList = new ArrayList<>(types); + List wuTypeFilter = (List) session.getAttribute("typeFilter"); + if(wuTypeFilter != null) { + wuTypeFilter.forEach(wuTypeList::remove); + } + + //Sort categories and types + Collections.sort(categoryList, Comparator.comparing(Category::getName, String.CASE_INSENSITIVE_ORDER)); + Collections.sort(wuTypeList, Comparator.comparing(WuType::getName, String.CASE_INSENSITIVE_ORDER)); + + List categoryFilterId = new ArrayList<>(); + List wuTypeFilterId = new ArrayList<>(); + + if(categoryFilter != null) { + for(Category category : categoryFilter) { + categoryFilterId.add(category.getId()); + } + } + + if(wuTypeFilter != null) { + for(WuType type : wuTypeFilter) { + wuTypeFilterId.add(type.getId()); + } + } + + if(session.getAttribute("categoryFilter") != null && !categoryFilter.isEmpty() && session.getAttribute("typeFilter") != null && !wuTypeFilter.isEmpty()) { + model.addAttribute("workunits", workUnitRepository.getFiltredWorkUnits(foundedProject.getId(), categoryFilterId, wuTypeFilterId, categoryFilterId.size())); + } else if(session.getAttribute("categoryFilter") != null && !categoryFilter.isEmpty()) { + model.addAttribute("workunits", workUnitRepository.getCategoryFiltredWorkUnits(foundedProject.getId(), categoryFilterId, categoryFilterId.size())); + } else if(session.getAttribute("typeFilter") != null && !wuTypeFilter.isEmpty()) { + model.addAttribute("workunits", workUnitRepository.getTypeFiltredWorkUnits(foundedProject.getId(), wuTypeFilterId)); + } else { + model.addAttribute("workunits", foundedProject.getWorkUnits()); + } + + model.addAttribute("categories", categoryList); + model.addAttribute("types", wuTypeList); + } +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/controller/management/SegmentCategoryController.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/controller/management/SegmentCategoryController.java new file mode 100644 index 0000000..5e65103 --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/controller/management/SegmentCategoryController.java @@ -0,0 +1,303 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.controller.management; + +import cz.zcu.fav.kiv.antipatterndetectionapp.Constants; +import cz.zcu.fav.kiv.antipatterndetectionapp.model.Project; +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.*; +import cz.zcu.fav.kiv.antipatterndetectionapp.service.ProjectService; +import cz.zcu.fav.kiv.antipatterndetectionapp.service.managment.*; +import cz.zcu.fav.kiv.antipatterndetectionapp.utils.Utils; +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.interfaces.DatabaseObject; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.util.Pair; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.servlet.mvc.support.RedirectAttributes; + +import javax.servlet.http.HttpSession; +import java.util.*; + +/** + * This class contains all endpoints of segment-category.html + */ +@Controller +public class SegmentCategoryController { + + private final Logger LOGGER = LoggerFactory.getLogger(SegmentCategoryController.class); + + @Autowired + private CategoryService categoryService; + + @Autowired + private IterationService iterationService; + + @Autowired + private PhaseService phaseService; + +// //@Autowired + //private ActivityService activityService; + + @Autowired + private ProjectService projectService; + + @Autowired + private ProjectInstanceService projectInstanceService; + + @Autowired + private WorkUnitService workUnitService; + + /** + * Method for showing category page for specific project + * @param model Object for passing data to the UI + * @param project Selected project for showing categories + * @param redirectAttrs Attributes for redirection + * @return HTML template + */ + @GetMapping("/management/segment-category") + public String category(Model model, + @RequestParam(value = "selectedProject", required = false) Long project, + RedirectAttributes redirectAttrs, + HttpSession session) { + + // First open in session + if(project == null && session.getAttribute("project") == null) { + model.addAttribute("projects", projectService.getAllProjects()); + LOGGER.info("@GetMapping(\"/management/segment-category\") - Accessing page"); + return "management/segment-category"; + } + + // Project selected + if(project != null) { + session.setAttribute("project", project); + Utils.sessionRecreate(session); + } + + project = (long) session.getAttribute("project"); + + Project foundedProject = projectService.getProjectById(project); + if(foundedProject == null) { + if(!Objects.equals(project, Constants.DEFAULT_ID)) { + redirectAttrs.addFlashAttribute("errorMessage", "Project not found"); + LOGGER.info("@GetMapping(\"/management/segment-category/\") - Project not found"); + } else { + LOGGER.info("@GetMapping(\"/management/segment-category/\") - Accessing page"); + } + model.addAttribute("projects", projectService.getAllProjects()); + return "management/segment-category"; + } + + //Add all categories into model + List categories = new ArrayList<>(); + for(ProjectInstance projectInstance : foundedProject.getProjectInstances()) { + categories.addAll(projectInstance.getCategories()); + } + Collections.sort(categories, Comparator.comparing(Category::getName, String.CASE_INSENSITIVE_ORDER)); + + model.addAttribute("categories", categories); + model.addAttribute("projects", projectService.getAllProjects()); + LOGGER.info("@GetMapping(\"/management/segment-category/\") - Accessing page"); + + return "/management/segment-category"; + } + + /** + * Method preparing selected categories for transformation into defined type + * @param model Object for passing data to the UI + * @param selectedCategories List of selected categories + * @param submitType Type of required attribute (1 - Iteration, 2 - Phase, 3 - Activity) + * @param submitId String with type of required attribute and id of one selected category + * @param redirectAttrs Attributes for redirection + * @return HTML template + */ + @PostMapping(value = "/categoryChange") + public String categoryChange(Model model, + @RequestParam(value = "selectedBox", required = false) List selectedCategories, + @RequestParam(value = "submitType", required = false) Integer submitType, + @RequestParam(value = "submitId", required = false) String submitId, + RedirectAttributes redirectAttrs) { + + if(selectedCategories != null && submitType != null) { // Selected submit + + if(submitType <= 0 || submitType > Constants.SUBMIT_TYPES) { // ERROR: Unknown submitType + redirectAttrs.addFlashAttribute("errorMessage", "ERROR: Application error occurred"); + LOGGER.warn("@PostMapping(\"/management/segment-category\") - Cannot proceed: Unknown submitType " + submitType); + return "redirect:/management/segment-category"; + } + + } else if(submitId != null) { //Inline submit + + Pair resultPair = extractTypeAndId(submitId); + if(resultPair == null) { // Cannot be extracted + redirectAttrs.addFlashAttribute("errorMessage", "ERROR: Application error occurred"); + LOGGER.warn("@PostMapping(\"/management/segment-category\") - Cannot proceed: Unknown submitId " + submitId); + return "redirect:/management/segment-category"; + } + + // Add one category into new list + submitType = resultPair.getFirst(); + Long id = resultPair.getSecond(); + selectedCategories = new ArrayList<>(); + selectedCategories.add(categoryService.getCategoryById(id)); + + } else { //Unspecific error + redirectAttrs.addFlashAttribute("errorMessage", "ERROR: Nothing was selected before submission"); + LOGGER.warn("@PostMapping(\"/management/segment-category\") - Cannot proceed: Submission went wrong"); + return "redirect:/management/segment-category"; + } + + // Process all selected categories + Pair result = processSelectedCategories(submitType, selectedCategories); + if(!result.getSecond()) { + redirectAttrs.addFlashAttribute("successMessage", "All selected categories (" + selectedCategories.size() + ") were assign"); + } else { + redirectAttrs.addFlashAttribute("informMessage", "Some categories cannot be assign, look at the log for more information"); + } + redirectAttrs.addFlashAttribute("message", result.getFirst()); + + return "redirect:/management/segment-category"; + } + + /** + * Method for transforming selected categories into defined attribute type + * @param submitType Type of required attribute (1 - Iteration, 2 - Phase, 3 - Activity) + * @param selectedCategories Selected categories for transformation + * @return Log message about transformation + */ + private Pair processSelectedCategories(Integer submitType, List selectedCategories) { + + boolean errorOccurred = false; + StringBuilder message = new StringBuilder(); + for(Category category : selectedCategories) { + message.append("Category: ").append(category.getName()).append(System.getProperty("line.separator")); + + if(category.getWorkUnits().size() == 0) { //Inform user that there aren't any WorkUnits + errorOccurred = true; + message.append(Constants.INDENT) + .append("cannot be assigned due to non-existent work unit") + .append(System.getProperty("line.separator")) + .append(System.getProperty("line.separator")); + continue; + } + + DatabaseObject object = getNewObject(category.getWorkUnits(), submitType, category); + + for(WorkUnit workUnit : category.getWorkUnits()) { + + boolean hasAttr = true; + switch (submitType) { + case 1: + if(workUnit.getIteration() == null) { + hasAttr = false; + workUnit.setIteration((Iteration) object); + workUnitService.saveWorkUnit(workUnit); + } + break; + case 2: + if(workUnit.getPhase() == null) { + hasAttr = false; + workUnit.setPhase((Phase) object); + workUnitService.saveWorkUnit(workUnit); + } + break; + case 3: + if(workUnit.getActivity() == null) { + hasAttr = false; + workUnit.setActivity((Activity) object); + workUnitService.saveWorkUnit(workUnit); + } + break; + } + + if(!hasAttr) { // Transformation of selected category was done + + message.append(Constants.INDENT) + .append("successfully assigned to WU with id ").append(workUnit.getId()) + .append(System.getProperty("line.separator")); + + } else { // WorkUnit already has iteration, inform user + + errorOccurred = true; + message.append(Constants.INDENT) + .append("cannot be assigned to WU with id ").append(workUnit.getId()) + .append(" as it already exists with ").append(workUnit.getIteration().getName()) + .append(System.getProperty("line.separator")); + } + } + message.append(System.getProperty("line.separator")); + } + return Pair.of(message.toString(), errorOccurred); + } + + /** + * Method for checking, if any work units in set has empty attribute of submitType + * If any of them is empty, method create and return that new attribute type + * @param workUnits Set of work units, where test will be done + * @param submitType Type of required attribute (1 - Iteration, 2 - Phase, 3 - Activity) + * @param category Category that should be transformed into the new attribute + * @return New attribute for transformation of category, if there is at least one WU with empty attribute + * or NULL if there aren't any empty attribute + */ + private DatabaseObject getNewObject(Set workUnits, Integer submitType, Category category) { + + switch (submitType) { + case 1: + for(WorkUnit workUnit : workUnits) { + if(workUnit.getIteration() == null) { + Iteration iteration = new Iteration(category.getExternalId(), + category.getName(), + category.getDescription(), + category.getProjectInstance().getProjectId()); + return iterationService.saveIteration(iteration); + } + } + break; + case 2: + for(WorkUnit workUnit : workUnits) { + if(workUnit.getPhase() == null) { + Phase phase = new Phase(category.getExternalId(), + category.getName(), + category.getDescription(), + category.getProjectInstance().getProjectId()); + return phaseService.savePhase(phase); + } + } + break; + case 3: + for(WorkUnit workUnit : workUnits) { + if(workUnit.getActivity() == null) { + Activity activity = new Activity(category.getExternalId(), + category.getName(), + category.getDescription(), + category.getProjectInstance().getProjectId()); +// return activityService.saveActivity(activity); + } + } + break; + } + return null; + } + + /** + * Method for parsing type of submission and id of category + * @param submitId String with type and category id + * @return Pair of type and id + */ + private Pair extractTypeAndId(String submitId) { + String[] parts = submitId.split(Constants.HTML_DELIMITER); + //Project ahoj = Project.builder().projectName("").projectName2("das").build(); + + try { + Integer type = Integer.parseInt(parts[0]); + Long id = Long.parseLong(parts[1]); + return Pair.of(type, id); + + } catch (NumberFormatException e) { + return null; + } + + } +} \ No newline at end of file diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/controller/management/SegmentIterationPhaseController.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/controller/management/SegmentIterationPhaseController.java new file mode 100644 index 0000000..a91f006 --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/controller/management/SegmentIterationPhaseController.java @@ -0,0 +1,279 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.controller.management; + +import cz.zcu.fav.kiv.antipatterndetectionapp.Constants; +import cz.zcu.fav.kiv.antipatterndetectionapp.model.Project; +import cz.zcu.fav.kiv.antipatterndetectionapp.service.ProjectService; +import cz.zcu.fav.kiv.antipatterndetectionapp.utils.Utils; +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.Iteration; +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.Phase; +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.WorkUnit; +import cz.zcu.fav.kiv.antipatterndetectionapp.service.managment.IterationService; +import cz.zcu.fav.kiv.antipatterndetectionapp.service.managment.PhaseService; +import cz.zcu.fav.kiv.antipatterndetectionapp.service.managment.WorkUnitService; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.servlet.mvc.support.RedirectAttributes; + +import javax.servlet.http.HttpSession; +import java.util.Collections; +import java.util.Comparator; +import java.util.List; +import java.util.Objects; + +/** + * This class contains all endpoints of segment-iteration-phase.html + */ +@Controller +public class SegmentIterationPhaseController { + + private final Logger LOGGER = LoggerFactory.getLogger(SegmentIterationPhaseController.class); + + @Autowired + private IterationService iterationService; + + @Autowired + private PhaseService phaseService; + + @Autowired + private ProjectService projectService; + + @Autowired + private WorkUnitService workUnitService; + + /** + * Method for showing iteration and phase page for specific project + * @param model Object for passing data to the UI + * @param project Selected project for showing categories + * @param redirectAttrs Attributes for redirection + * @param session Session with attributes + * @return HTML template + */ + @GetMapping("/management/segment-iteration-phase") + public String changeProject(Model model, + @RequestParam(value = "selectedProject", required = false) Long project, + RedirectAttributes redirectAttrs, + HttpSession session) { + + // First open in session + if(project == null && session.getAttribute("project") == null) { + model.addAttribute("projects", projectService.getAllProjects()); + LOGGER.info("@GetMapping(\"/management/segment-iteration-phase\") - Accessing page"); + return "management/segment-iteration-phase"; + } + + // Project selected + if(project != null) { + session.setAttribute("project", project); + Utils.sessionRecreate(session); + } + + project = (long) session.getAttribute("project"); + + Project foundedProject = projectService.getProjectById(project); + if(foundedProject == null) { + if(!Objects.equals(project, Constants.DEFAULT_ID)) { + redirectAttrs.addFlashAttribute("errorMessage", "ERROR: Project not found"); + LOGGER.info("@GetMapping(\"/management/segment-iteration-phase\")- Project not found"); + } else { + LOGGER.info("@GetMapping(\"/management/segment-iteration-phase\") - Accessing page"); + } + model.addAttribute("projects", projectService.getAllProjects()); + return "management/segment-iteration-phase"; + } + + List iterations = foundedProject.getIterations(); + List phases = foundedProject.getPhases(); + Collections.sort(iterations, Comparator.comparing(Iteration::getName, String.CASE_INSENSITIVE_ORDER)); + Collections.sort(phases, Comparator.comparing(Phase::getName, String.CASE_INSENSITIVE_ORDER)); + + model.addAttribute("iterations", iterations); + model.addAttribute("phases", phases); + model.addAttribute("projects", projectService.getAllProjects()); + LOGGER.info("@GetMapping(\"/management/segment-iteration-phase\") - Accessing page"); + + return "/management/segment-iteration-phase"; + } + + /** + * Method for changing iteration to phase + * @param model Object for passing data to the UI + * @param selectedIterations Iterations selected by user for change + * @param redirectAttrs Attributes for redirection + * @return HTML template + */ + @PostMapping(value = "/changeIteration") + public String changeToPhase(Model model, + @RequestParam(value = "selectedIterations", required = false) List selectedIterations, + RedirectAttributes redirectAttrs) { + + if(selectedIterations == null || selectedIterations.isEmpty()) { + + model.addAttribute("iterations", iterationService.getAllIterations()); + model.addAttribute("phases", phaseService.getAllPhases()); + redirectAttrs.addFlashAttribute("errorMessage", "ERROR: Nothing was selected before submission"); + LOGGER.info("@PostMapping(\"/management/segment-iteration-phase\") - Cannot proceed: Submission went wrong"); + + } else { + + StringBuilder message = new StringBuilder(); + int errors = 0; + + for(Iteration iteration : selectedIterations) { + message.append("Iteration: ").append(iteration.getName()).append(System.getProperty("line.separator")); + + if(iteration.getWorkUnits().size() == 0) { + errors += 1; + message.append(Constants.INDENT) + .append("cannot be changed to Phase due to non-existent work unit") + .append(System.getProperty("line.separator")) + .append(System.getProperty("line.separator")); + continue; + } + + Phase phase = null; + for(WorkUnit workUnit : iteration.getWorkUnits()) { // If exists WorkUnit with empty Phase - create Phase from Iteration + if(workUnit.getPhase() == null) { + phase = new Phase(iteration.getExternalId(), + iteration.getName(), + iteration.getDescription(), + iteration.getEndDate(), + iteration.getStartDate(), + iteration.getCreated(), + iteration.getSuperProjectId()); + phaseService.savePhase(phase); + break; + } + } + + for(WorkUnit workUnit : iteration.getWorkUnits()) { // For every WorkUnit with empty Phase - assign created Phase + if(workUnit.getPhase() == null) { + workUnit.setPhase(phase); + message.append(Constants.INDENT) + .append("successfully assigned to WU with id ").append(workUnit.getId()) + .append(System.getProperty("line.separator")); + } else { + errors += 1; + message.append(Constants.INDENT) + .append("cannot be assigned to WU with id ").append(workUnit.getId()) + .append(" as it already exists with Phase ").append(workUnit.getPhase().getName()) + .append(System.getProperty("line.separator")); + } + if(phase != null) { + workUnit.setIteration(null); + } + workUnitService.saveWorkUnit(workUnit); + } + message.append(System.getProperty("line.separator")); + if(phase != null) { + iteration.setWorkUnits(null); + iterationService.deleteIteration(iteration); + } + } + + if(errors == 0) { + redirectAttrs.addFlashAttribute("successMessage", "All selected iterations (" + selectedIterations.size() + ") were transformed to phases"); + } else { + redirectAttrs.addFlashAttribute("informMessage", "Some iterations cannot be assign, look at the log for more information"); + } + redirectAttrs.addFlashAttribute("message", message); + LOGGER.info("@PostMapping(\"/management/segment-iteration-phase\") - Iterations were changed"); + } + + return "redirect:/management/segment-iteration-phase"; + } + + /** + * Method for changing phase to iteration + * @param model Object for passing data to the UI + * @param selectedPhases Phases selected by user for change + * @param redirectAttrs Attributes for redirection + * @return HTML template + */ + @PostMapping(value = "/changePhase") + public String changeToIteration(Model model, + @RequestParam(value = "selectedPhases", required = false) List selectedPhases, + RedirectAttributes redirectAttrs) { + + if(selectedPhases == null || selectedPhases.isEmpty()) { + + model.addAttribute("iterations", iterationService.getAllIterations()); + model.addAttribute("phases", phaseService.getAllPhases()); + redirectAttrs.addFlashAttribute("errorMessage", "ERROR: Nothing was selected before submission"); + LOGGER.info("@PostMapping(\"/management/segment-iteration-phase\") - Cannot proceed: Submission went wrong"); + + } else { + + StringBuilder message = new StringBuilder(); + int errors = 0; + + for(Phase phase : selectedPhases) { + message.append("Phase: ").append(phase.getName()).append(System.getProperty("line.separator")); + + if(phase.getWorkUnits().size() == 0) { + errors += 1; + message.append(Constants.INDENT) + .append("cannot be changed to Phase due to non-existent work unit") + .append(System.getProperty("line.separator")) + .append(System.getProperty("line.separator")); + continue; + } + + Iteration iteration = null; + for(WorkUnit workUnit : phase.getWorkUnits()) { // If exists WorkUnit with empty Phase - create Phase from Iteration + if(workUnit.getIteration() == null) { + iteration = new Iteration(phase.getExternalId(), + phase.getName(), + phase.getDescription(), + phase.getEndDate(), + phase.getStartDate(), + phase.getCreated(), + phase.getSuperProjectId()); + iterationService.saveIteration(iteration); + break; + } + } + + for(WorkUnit workUnit : phase.getWorkUnits()) { // For every WorkUnit with empty Phase - assign created Phase + if(workUnit.getIteration() == null) { + workUnit.setIteration(iteration); + workUnitService.saveWorkUnit(workUnit); + message.append(Constants.INDENT) + .append("successfully assigned to WU with id ").append(workUnit.getId()) + .append(System.getProperty("line.separator")); + } else { + errors += 1; + message.append(Constants.INDENT) + .append("cannot be assigned to WU with id ").append(workUnit.getId()) + .append(" as it already exists with Iteration ").append(workUnit.getIteration().getName()) + .append(System.getProperty("line.separator")); + } + if(iteration != null) { + workUnit.setPhase(null); + } + workUnitService.saveWorkUnit(workUnit); + } + message.append(System.getProperty("line.separator")); + if(iteration != null) { + phase.setWorkUnits(null); + phaseService.deletePhase(phase); + } + } + + if(errors == 0) { + redirectAttrs.addFlashAttribute("successMessage", "All selected phases (" + selectedPhases.size() + ") were transformed to iterations"); + } else { + redirectAttrs.addFlashAttribute("informMessage", "Some phases cannot be assign, look at the log for more information"); + } + redirectAttrs.addFlashAttribute("message", message); + LOGGER.info("@PostMapping(\"/management/segment-iteration-phase\") - Phases were changed"); + } + + return "redirect:/management/segment-iteration-phase"; + } +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/detecting/AntiPatternManagerImpl.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/detecting/AntiPatternManagerImpl.java index eae9100..a58c3e6 100644 --- a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/detecting/AntiPatternManagerImpl.java +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/detecting/AntiPatternManagerImpl.java @@ -8,6 +8,7 @@ import cz.zcu.fav.kiv.antipatterndetectionapp.service.AntiPatternService; import cz.zcu.fav.kiv.antipatterndetectionapp.service.ProjectService; import cz.zcu.fav.kiv.antipatterndetectionapp.utils.Utils; +import cz.zcu.fav.kiv.antipatterndetectionapp.v2.utils.converters.ProjectToDto; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -26,6 +27,12 @@ public class AntiPatternManagerImpl implements AntiPatternManager { @Override public List analyze(String[] selectedProjects, String[] selectedAntiPatterns, Map> configuration) { + //not null is assured via controllers and dtos + //but the array might be empty + //the analysis should not run + if(selectedProjects.length == 0 || selectedAntiPatterns.length == 0){ + return new ArrayList<>(); + } return this.analyze(projectService.getAllProjectsForGivenIds(Utils.arrayOfStringsToArrayOfLongs(selectedProjects)), antiPatternService.getAllAntiPatternsForGivenIds(Utils.arrayOfStringsToArrayOfLongs(selectedAntiPatterns)), configuration); @@ -45,7 +52,8 @@ private List analyze(List projects, List queryResultItems = new ArrayList<>(); for (AntiPatternDetector antiPattern : antiPatternDetectors) { diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/detecting/DatabaseConnection.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/detecting/DatabaseConnection.java index 379d642..8cc0adc 100644 --- a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/detecting/DatabaseConnection.java +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/detecting/DatabaseConnection.java @@ -18,7 +18,7 @@ public class DatabaseConnection { private final Logger LOGGER = LoggerFactory.getLogger(DatabaseConnection.class); - private Connection databaseConnection; + private final Connection databaseConnection; /** * Constructor that takes application properties from configuration file name application.properties @@ -85,10 +85,8 @@ public Connection getDatabaseConnection() { * @return result set of results */ public ResultSet executeQueries(Project project, List queries) { - Statement stmt; ResultSet resultSet = null; - try { - stmt = this.getDatabaseConnection().createStatement(); + try (Statement stmt = this.getDatabaseConnection().createStatement()) { for (String query : queries) { if (queries.indexOf(query) != queries.size() - 1) { @@ -114,25 +112,21 @@ public ResultSet executeQueries(Project project, List queries) { * @return object of results */ public List>> executeQueriesWithMultipleResults(Project project, List queries) { - Statement stmt; List>> allResults = new ArrayList<>(); - ResultSet resultSet = null; - try { - stmt = this.getDatabaseConnection().createStatement(); + ResultSet resultSet; + try(Statement stmt = this.getDatabaseConnection().createStatement()) { for (String query : queries) { if (queries.indexOf(query) != queries.size() - 1) { - if (query.contains("?")) + if (query.contains("?")) { query = query.replace("?", project.getId().toString()); - resultSet = stmt.executeQuery(query); - } else { - resultSet = stmt.executeQuery(query); + } } + resultSet = stmt.executeQuery(query); if (query.toLowerCase().startsWith("select")) { allResults.add(Utils.resultSetToArrayList(resultSet)); } - } } catch (SQLException e) { LOGGER.error("DB query with multiple results could not be performed!"); diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/detecting/detectors/BusinessAsUsualDetectorImpl.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/detecting/detectors/BusinessAsUsualDetectorImpl.java index d2ef02f..2cb47f2 100644 --- a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/detecting/detectors/BusinessAsUsualDetectorImpl.java +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/detecting/detectors/BusinessAsUsualDetectorImpl.java @@ -4,7 +4,6 @@ import cz.zcu.fav.kiv.antipatterndetectionapp.model.*; import cz.zcu.fav.kiv.antipatterndetectionapp.model.types.Percentage; import cz.zcu.fav.kiv.antipatterndetectionapp.utils.Utils; -import cz.zcu.fav.kiv.antipatterndetectionapp.service.*; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/detecting/detectors/LongOrNonExistentFeedbackLoopsDetectorImpl.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/detecting/detectors/LongOrNonExistentFeedbackLoopsDetectorImpl.java index 18e0ed7..ccd6652 100644 --- a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/detecting/detectors/LongOrNonExistentFeedbackLoopsDetectorImpl.java +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/detecting/detectors/LongOrNonExistentFeedbackLoopsDetectorImpl.java @@ -4,8 +4,6 @@ import cz.zcu.fav.kiv.antipatterndetectionapp.model.*; import cz.zcu.fav.kiv.antipatterndetectionapp.model.types.Percentage; import cz.zcu.fav.kiv.antipatterndetectionapp.model.types.PositiveFloat; -import cz.zcu.fav.kiv.antipatterndetectionapp.service.AntiPatternService; -import cz.zcu.fav.kiv.antipatterndetectionapp.service.AntiPatternServiceImpl; import cz.zcu.fav.kiv.antipatterndetectionapp.utils.Utils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/detecting/detectors/NinetyNinetyRuleDetectorImpl.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/detecting/detectors/NinetyNinetyRuleDetectorImpl.java index 9f89f13..70230ab 100644 --- a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/detecting/detectors/NinetyNinetyRuleDetectorImpl.java +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/detecting/detectors/NinetyNinetyRuleDetectorImpl.java @@ -2,11 +2,8 @@ import cz.zcu.fav.kiv.antipatterndetectionapp.detecting.DatabaseConnection; import cz.zcu.fav.kiv.antipatterndetectionapp.model.*; -import cz.zcu.fav.kiv.antipatterndetectionapp.model.types.Percentage; import cz.zcu.fav.kiv.antipatterndetectionapp.model.types.PositiveFloat; import cz.zcu.fav.kiv.antipatterndetectionapp.model.types.PositiveInteger; -import cz.zcu.fav.kiv.antipatterndetectionapp.service.AntiPatternService; -import cz.zcu.fav.kiv.antipatterndetectionapp.service.AntiPatternServiceImpl; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/detecting/detectors/RoadToNowhereDetectorImpl.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/detecting/detectors/RoadToNowhereDetectorImpl.java index a094ff9..1d9b8a5 100644 --- a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/detecting/detectors/RoadToNowhereDetectorImpl.java +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/detecting/detectors/RoadToNowhereDetectorImpl.java @@ -2,11 +2,7 @@ import cz.zcu.fav.kiv.antipatterndetectionapp.detecting.DatabaseConnection; import cz.zcu.fav.kiv.antipatterndetectionapp.model.*; -import cz.zcu.fav.kiv.antipatterndetectionapp.model.types.Percentage; -import cz.zcu.fav.kiv.antipatterndetectionapp.model.types.PositiveFloat; import cz.zcu.fav.kiv.antipatterndetectionapp.model.types.PositiveInteger; -import cz.zcu.fav.kiv.antipatterndetectionapp.service.AntiPatternService; -import cz.zcu.fav.kiv.antipatterndetectionapp.service.AntiPatternServiceImpl; import cz.zcu.fav.kiv.antipatterndetectionapp.utils.Utils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/detecting/detectors/SpecifyNothingDetectorImpl.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/detecting/detectors/SpecifyNothingDetectorImpl.java index 5fcbf44..143b835 100644 --- a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/detecting/detectors/SpecifyNothingDetectorImpl.java +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/detecting/detectors/SpecifyNothingDetectorImpl.java @@ -3,8 +3,6 @@ import cz.zcu.fav.kiv.antipatterndetectionapp.detecting.DatabaseConnection; import cz.zcu.fav.kiv.antipatterndetectionapp.model.*; import cz.zcu.fav.kiv.antipatterndetectionapp.model.types.PositiveInteger; -import cz.zcu.fav.kiv.antipatterndetectionapp.service.AntiPatternService; -import cz.zcu.fav.kiv.antipatterndetectionapp.service.AntiPatternServiceImpl; import cz.zcu.fav.kiv.antipatterndetectionapp.utils.Utils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/detecting/detectors/TooLongSprintDetectorImpl.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/detecting/detectors/TooLongSprintDetectorImpl.java index 3781682..ead40be 100644 --- a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/detecting/detectors/TooLongSprintDetectorImpl.java +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/detecting/detectors/TooLongSprintDetectorImpl.java @@ -3,8 +3,6 @@ import cz.zcu.fav.kiv.antipatterndetectionapp.detecting.DatabaseConnection; import cz.zcu.fav.kiv.antipatterndetectionapp.model.*; import cz.zcu.fav.kiv.antipatterndetectionapp.model.types.PositiveInteger; -import cz.zcu.fav.kiv.antipatterndetectionapp.service.AntiPatternService; -import cz.zcu.fav.kiv.antipatterndetectionapp.service.AntiPatternServiceImpl; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/detecting/detectors/UnknownPosterDetectorImpl.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/detecting/detectors/UnknownPosterDetectorImpl.java index 01b92bd..837ea23 100644 --- a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/detecting/detectors/UnknownPosterDetectorImpl.java +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/detecting/detectors/UnknownPosterDetectorImpl.java @@ -5,13 +5,10 @@ import cz.zcu.fav.kiv.antipatterndetectionapp.model.Project; import cz.zcu.fav.kiv.antipatterndetectionapp.model.QueryResultItem; import cz.zcu.fav.kiv.antipatterndetectionapp.model.ResultDetail; -import cz.zcu.fav.kiv.antipatterndetectionapp.model.types.Percentage; import cz.zcu.fav.kiv.antipatterndetectionapp.utils.Utils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import java.sql.ResultSet; -import java.sql.SQLException; import java.util.*; public class UnknownPosterDetectorImpl implements AntiPatternDetector { diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/detecting/detectors/VaryingSprintLengthDetectorImpl.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/detecting/detectors/VaryingSprintLengthDetectorImpl.java index 5e5bc85..94d6cc6 100644 --- a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/detecting/detectors/VaryingSprintLengthDetectorImpl.java +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/detecting/detectors/VaryingSprintLengthDetectorImpl.java @@ -3,8 +3,6 @@ import cz.zcu.fav.kiv.antipatterndetectionapp.detecting.DatabaseConnection; import cz.zcu.fav.kiv.antipatterndetectionapp.model.*; import cz.zcu.fav.kiv.antipatterndetectionapp.model.types.PositiveInteger; -import cz.zcu.fav.kiv.antipatterndetectionapp.service.AntiPatternService; -import cz.zcu.fav.kiv.antipatterndetectionapp.service.AntiPatternServiceImpl; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/detecting/detectors/YetAnotherProgrammerDetectorImpl.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/detecting/detectors/YetAnotherProgrammerDetectorImpl.java index 9e4a968..326475e 100644 --- a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/detecting/detectors/YetAnotherProgrammerDetectorImpl.java +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/detecting/detectors/YetAnotherProgrammerDetectorImpl.java @@ -5,11 +5,9 @@ import cz.zcu.fav.kiv.antipatterndetectionapp.model.Project; import cz.zcu.fav.kiv.antipatterndetectionapp.model.QueryResultItem; import cz.zcu.fav.kiv.antipatterndetectionapp.model.ResultDetail; -import cz.zcu.fav.kiv.antipatterndetectionapp.model.types.Percentage; import cz.zcu.fav.kiv.antipatterndetectionapp.utils.Utils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.thymeleaf.spring5.processor.SpringTextareaFieldTagProcessor; import java.time.LocalDate; import java.time.LocalDateTime; diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/exception/CustomErrorController.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/exception/CustomErrorController.java index 6a9ea63..8446077 100644 --- a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/exception/CustomErrorController.java +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/exception/CustomErrorController.java @@ -1,8 +1,12 @@ package cz.zcu.fav.kiv.antipatterndetectionapp.exception; +import cz.zcu.fav.kiv.antipatterndetectionapp.model.Project; import cz.zcu.fav.kiv.antipatterndetectionapp.model.Query; import cz.zcu.fav.kiv.antipatterndetectionapp.service.AntiPatternService; import cz.zcu.fav.kiv.antipatterndetectionapp.service.ProjectService; +import cz.zcu.fav.kiv.antipatterndetectionapp.v2.model.ProjectDto; +import cz.zcu.fav.kiv.antipatterndetectionapp.v2.utils.converters.ClassToDto; +import cz.zcu.fav.kiv.antipatterndetectionapp.v2.utils.converters.ProjectToDto; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; @@ -49,7 +53,8 @@ public String handleError(HttpServletRequest request, Model model) { } } - model.addAttribute("query", new Query(projectService.getAllProjects(), antiPatternService.antiPatternsToModel(antiPatternService.getAllAntiPatterns()))); + ClassToDto classToDto = new ProjectToDto(); + model.addAttribute("query", new Query(classToDto.convert(projectService.getAllProjects()), antiPatternService.antiPatternsToModel(antiPatternService.getAllAntiPatterns()))); model.addAttribute("antiPatterns", antiPatternService.antiPatternsToModel(antiPatternService.getAllAntiPatterns())); if (exception != null) { diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/model/Project.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/model/Project.java index 15610ff..857b9e5 100644 --- a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/model/Project.java +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/model/Project.java @@ -1,9 +1,12 @@ package cz.zcu.fav.kiv.antipatterndetectionapp.model; -import javax.persistence.Entity; -import javax.persistence.GeneratedValue; -import javax.persistence.GenerationType; -import javax.persistence.Id; +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.*; + +import javax.persistence.*; +import java.util.ArrayList; +import java.util.LinkedHashSet; +import java.util.List; +import java.util.Set; /** * Model class for project. This is Entity class that is loaded from db. @@ -12,14 +15,88 @@ public class Project { @Id - @GeneratedValue(strategy = GenerationType.AUTO) + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "id", nullable = false) private Long id; + + @Column(name="name") private String name; + + @Column(name="description") private String description; + @ManyToOne + @JoinColumn(name = "superprojectid") + private Project superProject; + + @OneToMany(mappedBy = "project", orphanRemoval = true) + private List people = new ArrayList<>(); + + @OneToMany(mappedBy = "projectId", orphanRemoval = true) + private List projectInstances = new ArrayList<>(); + + @OneToMany(mappedBy = "superProjectId", orphanRemoval = true) + private List iterations = new ArrayList<>(); + + @OneToMany(mappedBy = "superProjectId", orphanRemoval = true) + private List phases = new ArrayList<>(); + + @OneToMany(mappedBy = "superProjectId", orphanRemoval = true) + private List activities = new ArrayList<>(); + + @OneToMany(mappedBy = "project", orphanRemoval = true) + private Set configurations = new LinkedHashSet<>(); + + @OneToMany(mappedBy = "project", orphanRemoval = true) + private List workUnits = new ArrayList<>(); + + public Set getConfigurations() { + return configurations; + } + + public void setConfigurations(Set configurations) { + this.configurations = configurations; + } + + public Project getSuperProject() { + return superProject; + } + + public void setSuperProject(Project superProject) { + this.superProject = superProject; + } + + public List getActivities() { + return activities; + } + + public void setActivities(List activities) { + this.activities = activities; + } + + public List getPhases() { + return phases; + } + + public void setPhases(List phases) { + this.phases = phases; + } + + public List getIterations() { + return iterations; + } + + public void setIterations(List iterations) { + this.iterations = iterations; + } + public Project() { } + public Project(String name) { + this.name = name; + } + public Project(String name, String description) { this.name = name; this.description = description; @@ -49,6 +126,30 @@ public void setDescription(String description) { this.description = description; } + public List getPeople() { + return people; + } + + public void setPeople(List people) { + this.people = people; + } + + public List getProjectInstances() { + return projectInstances; + } + + public void setProjectInstances(List projectInstances) { + this.projectInstances = projectInstances; + } + + public List getWorkUnits() { + return workUnits; + } + + public void setWorkUnits(List workUnits) { + this.workUnits = workUnits; + } + @Override public String toString() { return "Project{" + diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/model/Query.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/model/Query.java index 180b3bd..c9f8cb3 100644 --- a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/model/Query.java +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/model/Query.java @@ -1,24 +1,26 @@ package cz.zcu.fav.kiv.antipatterndetectionapp.model; +import cz.zcu.fav.kiv.antipatterndetectionapp.v2.model.ProjectDto; + import java.util.List; /** * Model class for query. */ public class Query { - private List projects; + private List projects; private List antiPatterns; - public Query(List projects, List antiPatterns) { + public Query(List projects, List antiPatterns) { this.projects = projects; this.antiPatterns = antiPatterns; } - public List getProjects() { + public List getProjects() { return projects; } - public void setProjects(List projects) { + public void setProjects(List projects) { this.projects = projects; } diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/model/QueryResult.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/model/QueryResult.java index 3c1d236..f5dcf8c 100644 --- a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/model/QueryResult.java +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/model/QueryResult.java @@ -1,5 +1,7 @@ package cz.zcu.fav.kiv.antipatterndetectionapp.model; +import cz.zcu.fav.kiv.antipatterndetectionapp.v2.model.ProjectDto; + import java.util.List; /** @@ -9,14 +11,14 @@ * queryResultItems: all analyzed anti-patterns with results and results details */ public class QueryResult { - private Project project; + private ProjectDto project; private List queryResultItems; - public Project getProject() { + public ProjectDto getProject() { return project; } - public void setProject(Project project) { + public void setProject(ProjectDto project) { this.project = project; } @@ -31,7 +33,7 @@ public void setQueryResultItems(List queryResultItems) { public QueryResult() { } - public QueryResult(Project project, List queryResultItems) { + public QueryResult(ProjectDto project, List queryResultItems) { this.project = project; this.queryResultItems = queryResultItems; } diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/model/management/Activity.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/model/management/Activity.java new file mode 100644 index 0000000..5091ed1 --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/model/management/Activity.java @@ -0,0 +1,161 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.model.management; + +import cz.zcu.fav.kiv.antipatterndetectionapp.model.Project; +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.interfaces.DatabaseObject; +import org.springframework.format.annotation.DateTimeFormat; + +import javax.persistence.*; +import java.sql.Timestamp; +import java.util.ArrayList; +import java.util.List; + +/** + * Model class for category. This is Entity class that is loaded from db. + */ +@Entity +public class Activity implements DatabaseObject { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "id", nullable = false) + private Long id; + + @Column(name="externalid") + private String externalId; + + @Column(name="name") + private String name; + + @Column(name="description") + private String description; + + @Column(name="startdate") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm") + private Timestamp startDate; + + @Column(name="enddate") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm") + private Timestamp endDate; + + @ManyToOne + @JoinColumn(name = "superprojectid") + private Project superProjectId; + + @OneToMany(mappedBy = "activity", orphanRemoval = true) + private List workUnits = new ArrayList<>(); + + /** + * Default constructor for Activity + */ + public Activity() {} + + /** + * Constructor for new Activity + * @param externalId External id from ALM tool + * @param name Name of the activity + * @param description Description of the activity + */ + public Activity(String externalId, String name, String description) { + this.externalId = externalId; + this.name = name; + this.description = description; + } + + /** + * Constructor for new activity with project relation + * @param externalId External id from ALM tool + * @param name Name of the activity + * @param description Description of the activity + * @param superProjectId Project belonging to activity + */ + public Activity(String externalId, String name, String description, Project superProjectId) { + this.externalId = externalId; + this.name = name; + this.description = description; + this.superProjectId = superProjectId; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getExternalId() { + return externalId; + } + + public void setExternalId(String externalId) { + this.externalId = externalId; + } + + public Project getSuperProjectId() { + return superProjectId; + } + + public void setSuperProjectId(Project superProjectId) { + this.superProjectId = superProjectId; + } + + public List getWorkUnits() { + return workUnits; + } + + public void setWorkUnits(List workUnits) { + this.workUnits = workUnits; + } + + public Timestamp getStartDate() { + return startDate; + } + + public void setStartDate(Timestamp startDate) { + this.startDate = startDate; + } + + public Timestamp getEndDate() { + return endDate; + } + + public void setEndDate(Timestamp endDate) { + this.endDate = endDate; + } + + @Override + public String getObjectName() { + return "activity"; + } + + @Override + public String getAttributeValue(String attr) { + if(attr.compareTo("id") == 0) { + return getId().toString(); + } else if(attr.compareTo("name") == 0) { + return getName(); + } else if (attr.compareTo("description") == 0) { + return getDescription(); + } else if (attr.compareTo("externalId") == 0) { + return getExternalId(); + } else { + return ""; + } + } +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/model/management/Branch.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/model/management/Branch.java new file mode 100644 index 0000000..347feaa --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/model/management/Branch.java @@ -0,0 +1,72 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.model.management; + +import javax.persistence.*; +import java.util.LinkedHashSet; +import java.util.Set; + +/** + * Model class for branches. This is Entity class that is loaded from db. + */ +@Entity +public class Branch { + + @Id + @GeneratedValue(strategy = GenerationType.AUTO) + @Column(name = "id", nullable = false) + private Long id; + + @Column(name="externalid") + private String externalId; + + @Column(name="name") + private String name; + + @Column(name="ismain") + private boolean isMain; + + @ManyToMany + @JoinTable(name = "configuration_branch", + joinColumns = @JoinColumn(name = "branchid"), + inverseJoinColumns = @JoinColumn(name = "configurationid")) + private Set commits = new LinkedHashSet<>(); + + public Set getCommits() { + return commits; + } + + public void setCommits(Set commits) { + this.commits = commits; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getExternalId() { + return externalId; + } + + public void setExternalId(String externalId) { + this.externalId = externalId; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public boolean isMain() { + return isMain; + } + + public void setMain(boolean main) { + isMain = main; + } +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/model/management/Category.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/model/management/Category.java new file mode 100644 index 0000000..d7d957e --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/model/management/Category.java @@ -0,0 +1,112 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.model.management; + +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.interfaces.DatabaseObject; + +import javax.persistence.*; +import java.util.LinkedHashSet; +import java.util.Set; + +/** + * Model class for category. This is Entity class that is loaded from db. + */ +@Entity +public class Category implements DatabaseObject { + + @Id + @GeneratedValue(strategy = GenerationType.AUTO) + @Column(name = "id", nullable = false) + private Long id; + + @Column(name="externalid") + private String externalId; + + @Column(name="name") + private String name; + + @Column(name="description") + private String description; + + @ManyToOne + @JoinColumn(name = "projectinstanceid") + private ProjectInstance projectInstance; + + @ManyToMany(mappedBy = "categories") + private Set workUnits = new LinkedHashSet<>(); + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getExternalId() { + return externalId; + } + + public void setExternalId(String externalId) { + this.externalId = externalId; + } + + public ProjectInstance getProjectInstance() { + return projectInstance; + } + + public void setProjectInstance(ProjectInstance projectInstance) { + this.projectInstance = projectInstance; + } + + public Set getWorkUnits() { + return workUnits; + } + + public void setWorkUnits(Set workUnits) { + this.workUnits = workUnits; + } + + @Override + public String getObjectName() { + return "category"; + } + + @Override + public String getAttributeValue(String attr) { + if(attr.compareTo("id") == 0) { + return getId().toString(); + } else if(attr.compareTo("name") == 0) { + return getName(); + } else if (attr.compareTo("description") == 0) { + return getDescription(); + } else if (attr.compareTo("externalId") == 0) { + return getExternalId(); + } else { + return ""; + } + } + + @Override + public boolean equals(Object o) { + if(!(o instanceof Category)) { + return false; + } + Category category = (Category) o; + return category.getId().equals(getId()); + } +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/model/management/Commit.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/model/management/Commit.java new file mode 100644 index 0000000..650e1ad --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/model/management/Commit.java @@ -0,0 +1,121 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.model.management; + +import javax.persistence.*; +import java.util.LinkedHashSet; +import java.util.Set; + +/** + * Model class for commit. This is Entity class that is loaded from db. + */ +@Entity +public class Commit { + + @OneToOne + @JoinColumn(name = "id") + @MapsId + private CommittedConfiguration committedConfiguration; + + @OneToOne + @JoinColumn(name = "id") + @MapsId + private Configuration configuration; + + @OneToOne + @JoinColumn(name = "id") + @MapsId + private WorkItem workItem; + + @Id + @Column(name = "id", nullable = false) + private Long id; + + @Column(name = "isrelease", nullable = false) + private boolean isRelease; + + @Column(name = "identifier", nullable = true) + private String identifier; + + @ManyToMany + @JoinTable(name = "configuration_branch", + joinColumns = @JoinColumn(name = "configurationid"), + inverseJoinColumns = @JoinColumn(name = "branchid")) + private Set branches = new LinkedHashSet<>(); + + @OneToMany(mappedBy = "configuration", orphanRemoval = true) + private Set tags = new LinkedHashSet<>(); + + @OneToMany(mappedBy = "commit", orphanRemoval = true) + private Set personRelation = new LinkedHashSet<>(); + + public Set getPersonRelation() { + return personRelation; + } + + public void setPersonRelation(Set personRelation) { + this.personRelation = personRelation; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public boolean isRelease() { + return isRelease; + } + + public void setRelease(boolean release) { + isRelease = release; + } + + public String getIdentifier() { + return identifier; + } + + public void setIdentifier(String identifier) { + this.identifier = identifier; + } + + public Set getBranches() { + return branches; + } + + public void setBranches(Set branches) { + this.branches = branches; + } + + public Set getTags() { + return tags; + } + + public void setTags(Set tags) { + this.tags = tags; + } + + public CommittedConfiguration getCommittedConfiguration() { + return committedConfiguration; + } + + public void setCommittedConfiguration(CommittedConfiguration committedConfiguration) { + this.committedConfiguration = committedConfiguration; + } + + public Configuration getConfiguration() { + return configuration; + } + + public void setConfiguration(Configuration configuration) { + this.configuration = configuration; + } + + public WorkItem getWorkItem() { + return workItem; + } + + public void setWorkItem(WorkItem workItem) { + this.workItem = workItem; + } +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/model/management/CommittedConfiguration.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/model/management/CommittedConfiguration.java new file mode 100644 index 0000000..8618b7b --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/model/management/CommittedConfiguration.java @@ -0,0 +1,62 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.model.management; + +import org.springframework.format.annotation.DateTimeFormat; + +import javax.persistence.*; +import java.sql.Timestamp; + +/** + * Model class for configurations. This is Entity class that is loaded from db. + */ +@Entity +@Table(name = "committed_configuration") +public class CommittedConfiguration { + + @OneToOne + @JoinColumn(name = "id") + @MapsId + private Configuration configuration; + + @Id + @Column(name = "id", nullable = false) + private Long id; + + @Column(name = "committed") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm") + private Timestamp committed; + + @OneToOne(mappedBy = "committedConfiguration") + private Commit commit; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Timestamp getCommitted() { + return committed; + } + + public void setCommitted(Timestamp committed) { + this.committed = committed; + } + + public Commit getCommit() { + return commit; + } + + public void setCommit(Commit commit) { + this.commit = commit; + } + + public Configuration getConfiguration() { + return configuration; + } + + public void setConfiguration(Configuration configuration) { + this.configuration = configuration; + } +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/model/management/Configuration.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/model/management/Configuration.java new file mode 100644 index 0000000..b8fae47 --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/model/management/Configuration.java @@ -0,0 +1,59 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.model.management; + +import cz.zcu.fav.kiv.antipatterndetectionapp.model.Project; + +import javax.persistence.*; + +/** + * Model class for configurations. This is Entity class that is loaded from db. + */ +@Entity +public class Configuration { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "id", nullable = false) + private Long id; + + @ManyToOne + @JoinColumn(name = "projectid") + private Project project; + + @OneToOne(mappedBy = "configuration") + private CommittedConfiguration committedConfiguration; + + @OneToOne(mappedBy = "configuration") + private Commit commit; + + public Project getProject() { + return project; + } + + public void setProject(Project project) { + this.project = project; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public CommittedConfiguration getCommittedConfiguration() { + return committedConfiguration; + } + + public void setCommittedConfiguration(CommittedConfiguration committedConfiguration) { + this.committedConfiguration = committedConfiguration; + } + + public Commit getCommit() { + return commit; + } + + public void setCommit(Commit commit) { + this.commit = commit; + } +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/model/management/ConfigurationPersonRelation.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/model/management/ConfigurationPersonRelation.java new file mode 100644 index 0000000..c5a200d --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/model/management/ConfigurationPersonRelation.java @@ -0,0 +1,57 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.model.management; + +import javax.persistence.*; + +/** + * Model class for configuration person relation. This is Entity class that is loaded from db. + */ +@Entity +public class ConfigurationPersonRelation { + + @Id + @GeneratedValue(strategy = GenerationType.AUTO) + @Column(name = "id", nullable = false) + private Long id; + + @Column(name="externalid") + private String externalId; + + @Column(name="name") + private String name; + + @Column(name="description") + private String description; + + @ManyToOne + @JoinColumn(name = "personid") + private Person person; + + @ManyToOne + @JoinColumn(name = "configurationid") + private Commit commit; + + public Commit getCommit() { + return commit; + } + + public void setCommit(Commit commit) { + this.commit = commit; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Person getPerson() { + return person; + } + + public void setPerson(Person person) { + this.person = person; + } + +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/model/management/FormObject.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/model/management/FormObject.java new file mode 100644 index 0000000..0367df8 --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/model/management/FormObject.java @@ -0,0 +1,16 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.model.management; + +import java.util.List; + +public class FormObject { + + List selected; + + public List getSelected() { + return selected; + } + + public void setSelected(List selected) { + this.selected = selected; + } +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/model/management/Identity.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/model/management/Identity.java new file mode 100644 index 0000000..68f52a3 --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/model/management/Identity.java @@ -0,0 +1,105 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.model.management; + +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.interfaces.DatabaseObject; + +import javax.persistence.*; + +/** + * Model class for identities. This is Entity class that is loaded from db. + */ +@Entity +public class Identity implements DatabaseObject { + + @Id + @GeneratedValue(strategy = GenerationType.AUTO) + @Column(name = "id", nullable = false) + private Long id; + + @Column(name="externalid") + private String externalId; + + @Column(name="name") + private String name; + + @Column(name="description") + private String description; + + @Column(name="email") + private String email; + + @ManyToOne + @JoinColumn(name = "personid") + private Person person; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getExternalId() { + return externalId; + } + + public void setExternalId(String externalId) { + this.externalId = externalId; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getEmail() { + return email; + } + + public void setEmail(String email) { + this.email = email; + } + + public Person getPerson() { + return person; + } + + public void setPerson(Person person) { + this.person = person; + } + + @Override + public String getObjectName() { + return "identity"; + } + + @Override + public String getAttributeValue(String attr) { + if(attr.compareTo("id") == 0) { + return getId().toString(); + } else if(attr.compareTo("name") == 0) { + return getName(); + } else if (attr.compareTo("description") == 0) { + return getDescription(); + } else if (attr.compareTo("externalId") == 0) { + return getExternalId(); + } else if (attr.compareTo("email") == 0) { + return getEmail(); + } else if (attr.compareTo("personId") == 0) { + return getPerson().toString(); + } else { + return ""; + } + } +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/model/management/Iteration.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/model/management/Iteration.java new file mode 100644 index 0000000..09bdf8c --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/model/management/Iteration.java @@ -0,0 +1,197 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.model.management; + +import cz.zcu.fav.kiv.antipatterndetectionapp.model.Project; +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.interfaces.DatabaseObject; + +import javax.persistence.*; +import java.sql.Date; +import java.sql.Timestamp; +import java.util.ArrayList; +import java.util.List; + +/** + * Model class for iteration. This is Entity class that is loaded from db. + */ +@Entity +public class Iteration implements DatabaseObject { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "id", nullable = false) + private Long id; + + @Column(name="externalid") + private String externalId; + + @Column(name="name") + private String name; + + @Column(name="description") + private String description; + + @Column(name="enddate") + private Date endDate; + + @Column(name="startdate") + private Date startDate; + + @Column(name="created") + private Timestamp created; + + @ManyToOne + @JoinColumn(name = "superprojectid") + private Project superProjectId; + + @OneToMany(mappedBy = "iteration", orphanRemoval = true) + private List workUnits = new ArrayList<>(); + + /** + * Default constructor for Iteration + */ + public Iteration() {} + + /** + * Constructor for Iteration + * @param externalId External ID from ALM tool + * @param name Name of the Iteration + * @param description Description of the Iteration + */ + public Iteration(String externalId, String name, String description) { + this.externalId = externalId; + this.name = name; + this.description = description; + } + + /** + * Constructor for Iteration with project relation + * @param externalId External ID from ALM tool + * @param name Name of the Iteration + * @param description Description of the Iteration + * @param superProjectId Project belonging to Iteration + */ + public Iteration(String externalId, String name, String description, Project superProjectId) { + this.externalId = externalId; + this.name = name; + this.description = description; + this.superProjectId = superProjectId; + } + + /** + * Constructor for Iteration with all attributes + * @param externalId External ID from ALM tool + * @param name Name of the Iteration + * @param description Description of the Iteration + * @param endDate End date of Iteration + * @param startDate Start date of Iteration + * @param created Created date of Iteration + * @param superProjectId Project belonging to Iteration + */ + public Iteration(String externalId, String name, String description, Date endDate, + Date startDate, Timestamp created, Project superProjectId) { + this.externalId = externalId; + this.name = name; + this.description = description; + this.endDate = endDate; + this.startDate = startDate; + this.created = created; + this.superProjectId = superProjectId; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getExternalId() { + return externalId; + } + + public void setExternalId(String externalId) { + this.externalId = externalId; + } + + public Date getEndDate() { + return endDate; + } + + public void setEndDate(Date endDate) { + this.endDate = endDate; + } + + public Date getStartDate() { + return startDate; + } + + public void setStartDate(Date startDate) { + this.startDate = startDate; + } + + public Timestamp getCreated() { + return created; + } + + public void setCreated(Timestamp created) { + this.created = created; + } + + public Project getSuperProjectId() { + return superProjectId; + } + + public void setSuperProjectId(Project superProjectId) { + this.superProjectId = superProjectId; + } + + public List getWorkUnits() { + return workUnits; + } + + public void setWorkUnits(List workUnits) { + this.workUnits = workUnits; + } + + @Override + public String getObjectName() { + return "iteration"; + } + + @Override + public String getAttributeValue(String attr) { + if(attr.compareTo("id") == 0) { + return getId().toString(); + } else if(attr.compareTo("name") == 0) { + return getName(); + } else if (attr.compareTo("description") == 0) { + return getDescription(); + } else if (attr.compareTo("externalId") == 0) { + return getExternalId(); + } else if (attr.compareTo("endDate") == 0) { + return getEndDate().toString(); + } else if (attr.compareTo("startDate") == 0) { + return getStartDate().toString(); + } else if (attr.compareTo("created") == 0) { + return getCreated().toString(); + } else { + return ""; + } + } +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/model/management/Person.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/model/management/Person.java new file mode 100644 index 0000000..c4886ef --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/model/management/Person.java @@ -0,0 +1,136 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.model.management; + +import cz.zcu.fav.kiv.antipatterndetectionapp.model.Project; +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.interfaces.DatabaseObject; + +import javax.persistence.*; +import java.util.ArrayList; +import java.util.LinkedHashSet; +import java.util.List; +import java.util.Set; + +/** + * Model class for people. This is Entity class that is loaded from db. + */ +@Entity +public class Person implements DatabaseObject { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "id", nullable = false) + private Long id; + + @Column(name="externalid") + private String externalId; + + @Column(name="name") + private String name; + + @OneToMany(mappedBy = "person", orphanRemoval = true) + private List identities = new ArrayList<>(); + + @ManyToOne + @JoinColumn(name = "projectid") + private Project project; + + @OneToMany(mappedBy = "author", orphanRemoval = true) + private Set workItems = new LinkedHashSet<>(); + + public Set getWorkItems() { + return workItems; + } + + public void setWorkItems(Set workItems) { + this.workItems = workItems; + } + + /** + * Default constructor for Person + */ + public Person() {} + + /** + * Constructor for Person + * @param name Name of the Person + * @param project Project belonging to person + */ + public Person(String name, Project project) { + this.name = name; + this.project = project; + } + + /** + * Method adding new identity to person + * @param identity Identity of person + */ + public void addIdentity(Identity identity) { + this.identities.add(identity); + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getExternalId() { + return externalId; + } + + public void setExternalId(String externalId) { + this.externalId = externalId; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public List getIdentities() { + return identities; + } + + public void setIdentities(List identities) { + this.identities = identities; + } + + public Project getProject() { + return project; + } + + public void setProject(Project project) { + this.project = project; + } + + @Override + public String getObjectName() { + return "person"; + } + + @Override + public boolean equals(Object o) { + if(!(o instanceof Person)) { + return false; + } + Person person = (Person) o; + return person.getId().equals(getId()); + } + + @Override + public String getAttributeValue(String attr) { + if(attr.compareTo("id") == 0) { + return getId().toString(); + } else if(attr.compareTo("name") == 0) { + return getName(); + } else if (attr.compareTo("externalId") == 0) { + return getExternalId(); + } else { + return ""; + } + } +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/model/management/Phase.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/model/management/Phase.java new file mode 100644 index 0000000..f9fcd9e --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/model/management/Phase.java @@ -0,0 +1,196 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.model.management; + +import cz.zcu.fav.kiv.antipatterndetectionapp.model.Project; +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.interfaces.DatabaseObject; + +import javax.persistence.*; +import java.sql.Date; +import java.sql.Timestamp; +import java.util.ArrayList; +import java.util.List; + +/** + * Model class for phases. This is Entity class that is loaded from db. + */ +@Entity +public class Phase implements DatabaseObject { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "id", nullable = false) + private Long id; + + @Column(name="externalid") + private String externalId; + + @Column(name="name") + private String name; + + @Column(name="description") + private String description; + + @Column(name="enddate") + private Date endDate; + + @Column(name="startdate") + private Date startDate; + + @Column(name="created") + private Timestamp created; + + @ManyToOne + @JoinColumn(name = "superprojectid") + private Project superProjectId; + + @OneToMany(mappedBy = "phase", orphanRemoval = true) + private List workUnits = new ArrayList<>(); + + /** + * Default constructor for Phase + */ + public Phase() {} + + /** + * Constructor for Phase + * @param externalId External ID from ALM tool + * @param name Name of the Phase + * @param description Description of the Phase + */ + public Phase(String externalId, String name, String description) { + this.externalId = externalId; + this.name = name; + this.description = description; + } + + /** + * Constructor for Phase with project relation + * @param externalId External ID from ALM tool + * @param name Name of the Phase + * @param description Description of the Phase + * @param superProjectId Project belonging to phase + */ + public Phase(String externalId, String name, String description, Project superProjectId) { + this.externalId = externalId; + this.name = name; + this.description = description; + this.superProjectId = superProjectId; + } + + /** + * Constructor for Phase with all attributes + * @param externalId External ID from ALM tool + * @param name Name of the Phase + * @param description Description of the Phase + * @param endDate End date of Phase + * @param startDate Start date of Phase + * @param created Created date of Phase + * @param superProjectId Project belonging to phase + */ + public Phase(String externalId, String name, String description, Date endDate, Date startDate, Timestamp created, Project superProjectId) { + this.externalId = externalId; + this.name = name; + this.description = description; + this.endDate = endDate; + this.startDate = startDate; + this.created = created; + this.superProjectId = superProjectId; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getExternalId() { + return externalId; + } + + public void setExternalId(String externalId) { + this.externalId = externalId; + } + + public Date getEndDate() { + return endDate; + } + + public void setEndDate(Date endDate) { + this.endDate = endDate; + } + + public Date getStartDate() { + return startDate; + } + + public void setStartDate(Date startDate) { + this.startDate = startDate; + } + + public Timestamp getCreated() { + return created; + } + + public void setCreated(Timestamp created) { + this.created = created; + } + + public Project getSuperProjectId() { + return superProjectId; + } + + public void setSuperProjectId(Project superProjectId) { + this.superProjectId = superProjectId; + } + + public List getWorkUnits() { + return workUnits; + } + + public void setWorkUnits(List workUnits) { + this.workUnits = workUnits; + } + + @Override + public String getObjectName() { + return "phase"; + } + + @Override + public String getAttributeValue(String attr) { + if(attr.compareTo("id") == 0) { + return getId().toString(); + } else if(attr.compareTo("name") == 0) { + return getName(); + } else if (attr.compareTo("description") == 0) { + return getDescription(); + } else if (attr.compareTo("externalId") == 0) { + return getExternalId(); + } else if (attr.compareTo("endDate") == 0) { + return getEndDate().toString(); + } else if (attr.compareTo("startDate") == 0) { + return getStartDate().toString(); + } else if (attr.compareTo("created") == 0) { + return getCreated().toString(); + } else { + return ""; + } + } +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/model/management/ProjectInstance.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/model/management/ProjectInstance.java new file mode 100644 index 0000000..051858f --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/model/management/ProjectInstance.java @@ -0,0 +1,197 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.model.management; + +import cz.zcu.fav.kiv.antipatterndetectionapp.model.Project; +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.enums.*; +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.interfaces.EnumType; + +import javax.persistence.*; +import java.util.ArrayList; +import java.util.HashSet; +import java.util.List; +import java.util.Set; + +/** + * Model class for project instances. This is Entity class that is loaded from db. + */ +@Entity +@Table(name = "project_instance") +public class ProjectInstance { + + @Id + @GeneratedValue(strategy = GenerationType.AUTO) + @Column(name = "id", nullable = false) + private Long id; + + @Column(name="externalid") + private String externalId; + + @Column(name="name") + private String name; + + @Column(name="description") + private String description; + + @Column(name="url") + private String url; + + @ManyToOne + @JoinColumn(name = "projectid") + private Project projectId; + + @OneToMany(mappedBy = "projectInstance", orphanRemoval = true) + private List categories = new ArrayList<>(); + + @OneToMany(mappedBy = "projectInstance", orphanRemoval = true) + private Set priorities = new HashSet<>(); + + @OneToMany(mappedBy = "projectInstance", orphanRemoval = true) + private Set severities = new HashSet<>(); + + @OneToMany(mappedBy = "projectInstance", orphanRemoval = true) + private Set statuses = new HashSet<>(); + + @OneToMany(mappedBy = "projectInstance", orphanRemoval = true) + private Set roles = new HashSet<>(); + + @OneToMany(mappedBy = "projectInstance", orphanRemoval = true) + private Set resolutions = new HashSet<>(); + + @OneToMany(mappedBy = "projectInstance", orphanRemoval = true) + private Set wuTypes = new HashSet<>(); + + @OneToMany(mappedBy = "projectInstance", orphanRemoval = true) + private Set relations = new HashSet<>(); + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getExternalId() { + return externalId; + } + + public void setExternalId(String externalId) { + this.externalId = externalId; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public String getUrl() { + return url; + } + + public void setUrl(String url) { + this.url = url; + } + + public Project getProjectId() { + return projectId; + } + + public void setProjectId(Project projectId) { + this.projectId = projectId; + } + + public List getCategories() { + return categories; + } + + public void setCategories(List categories) { + this.categories = categories; + } + + public Set getPriorities() { + return priorities; + } + + public void setPriorities(Set priorities) { + this.priorities = priorities; + } + + public Set getSeverities() { + return severities; + } + + public void setSeverities(Set severities) { + this.severities = severities; + } + + public Set getStatuses() { + return statuses; + } + + public void setStatuses(Set statuses) { + this.statuses = statuses; + } + + public Set getRoles() { + return roles; + } + + public void setRoles(Set roles) { + this.roles = roles; + } + + public Set getResolutions() { + return resolutions; + } + + public void setResolutions(Set resolutions) { + this.resolutions = resolutions; + } + + public Set getWuTypes() { + return wuTypes; + } + + public void setWuTypes(Set wuTypes) { + this.wuTypes = wuTypes; + } + + public Set getRelations() { + return relations; + } + + public void setRelations(Set relations) { + this.relations = relations; + } + + public Set getEnumsByName(String enumName) { + + if(enumName.contentEquals("Priority")) { + return getPriorities(); + } else if(enumName.contentEquals("Severity")) { + return getSeverities(); + } else if(enumName.contentEquals("Status")) { + return getStatuses(); + } else if(enumName.contentEquals("Role")) { + return getRoles(); + } else if(enumName.contentEquals("Resolution")) { + return getResolutions(); + } else if(enumName.contentEquals("WuType")) { + return getWuTypes(); + } else if(enumName.contentEquals("Relation")) { + return getRelations(); + } else { + return null; + } + } +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/model/management/Tag.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/model/management/Tag.java new file mode 100644 index 0000000..8c5562a --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/model/management/Tag.java @@ -0,0 +1,68 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.model.management; + +import javax.persistence.*; + +/** + * Model class for tags. This is Entity class that is loaded from db. + */ +@Entity +public class Tag { + + @Id + @GeneratedValue(strategy = GenerationType.AUTO) + @Column(name = "id", nullable = false) + private Long id; + + @Column(name="externalid") + private String externalId; + + @Column(name="name") + private String name; + + @Column(name="description") + private String description; + + @ManyToOne + @JoinColumn(name = "configurationid") + private Commit configuration; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Commit getConfiguration() { + return configuration; + } + + public void setConfiguration(Commit configuration) { + this.configuration = configuration; + } + + public String getExternalId() { + return externalId; + } + + public void setExternalId(String externalId) { + this.externalId = externalId; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/model/management/WorkItem.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/model/management/WorkItem.java new file mode 100644 index 0000000..8231d54 --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/model/management/WorkItem.java @@ -0,0 +1,95 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.model.management; + +import org.springframework.format.annotation.DateTimeFormat; + +import javax.persistence.*; +import java.sql.Timestamp; + +/** + * Model class for workitems. This is Entity class that is loaded from db. + */ +@Entity +@Table(name = "work_item") +public class WorkItem { + + @Id + @GeneratedValue(strategy = GenerationType.AUTO) + @Column(name = "id", nullable = false) + private Long id; + + @Column(name="externalid") + private String externalId; + + @Column(name="name") + private String name; + + @Column(name="description") + private String description; + + @Column(name = "created") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm") + private Timestamp created; + + @ManyToOne + @JoinColumn(name = "authorid") + private Person author; + + @OneToOne(mappedBy = "workItem") + private Commit commit; + + public String getExternalId() { + return externalId; + } + + public void setExternalId(String externalId) { + this.externalId = externalId; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public Timestamp getCreated() { + return created; + } + + public void setCreated(Timestamp created) { + this.created = created; + } + + public Person getAuthor() { + return author; + } + + public void setAuthor(Person author) { + this.author = author; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Commit getCommit() { + return commit; + } + + public void setCommit(Commit commit) { + this.commit = commit; + } +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/model/management/WorkUnit.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/model/management/WorkUnit.java new file mode 100644 index 0000000..d2c28f1 --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/model/management/WorkUnit.java @@ -0,0 +1,152 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.model.management; + +import cz.zcu.fav.kiv.antipatterndetectionapp.model.Project; +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.enums.WuType; +import org.springframework.format.annotation.DateTimeFormat; + +import javax.persistence.*; +import java.sql.Timestamp; +import java.util.LinkedHashSet; +import java.util.Set; + +/** + * Model class for work units. This is Entity class that is loaded from db. + */ +@Entity +@Table(name = "work_unit") +public class WorkUnit { + + @Id + @GeneratedValue(strategy = GenerationType.AUTO) + @Column(name = "id", nullable = false) + private Long id; + + @Column(name = "number") + private Integer number; + + @Column(name = "startdate") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm") + private Timestamp startDate; + + @Column(name = "duedate") + @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm") + private Timestamp dueDate; + + @ManyToOne + @JoinColumn(name = "assigneeid") + private Person assignee; + + @ManyToOne + @JoinColumn(name = "wutypeid") + private WuType type; + + @ManyToOne + @JoinColumn(name = "activityid") + private Activity activity; + + @ManyToOne + @JoinColumn(name = "iterationid") + private Iteration iteration; + + @ManyToOne + @JoinColumn(name = "phaseid") + private Phase phase; + + @ManyToOne + @JoinColumn(name = "projectid") + private Project project; + + @ManyToMany + @JoinTable(name = "work_unit_category", + joinColumns = @JoinColumn(name = "workunitid"), + inverseJoinColumns = @JoinColumn(name = "categoryid")) + private Set categories = new LinkedHashSet<>(); + + public WuType getType() { + return type; + } + + public void setType(WuType type) { + this.type = type; + } + + public Person getAssignee() { + return assignee; + } + + public void setAssignee(Person assignee) { + this.assignee = assignee; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Activity getActivity() { + return activity; + } + + public void setActivity(Activity activity) { + this.activity = activity; + } + + public Iteration getIteration() { + return iteration; + } + + public void setIteration(Iteration iteration) { + this.iteration = iteration; + } + + public Phase getPhase() { + return phase; + } + + public void setPhase(Phase phase) { + this.phase = phase; + } + + public Set getCategories() { + return categories; + } + + public void setCategories(Set categories) { + this.categories = categories; + } + + public Project getProject() { + return project; + } + + public void setProject(Project project) { + this.project = project; + } + + public Integer getNumber() { + return number; + } + + public void setNumber(Integer number) { + this.number = number; + } + + public Timestamp getStartDate() { + return startDate; + } + + public void setStartDate(Timestamp startDate) { + this.startDate = startDate; + } + + public Timestamp getDueDate() { + return dueDate; + } + + public void setDueDate(Timestamp dueDate) { + this.dueDate = dueDate; + } +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/model/management/enums/Priority.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/model/management/enums/Priority.java new file mode 100644 index 0000000..e5cffd8 --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/model/management/enums/Priority.java @@ -0,0 +1,97 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.model.management.enums; + +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.ProjectInstance; +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.interfaces.Classification; +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.interfaces.EnumType; + +import javax.persistence.*; + +/** + * Model class for priority. This is Entity class that is loaded from db. + */ +@Entity +public class Priority implements EnumType { + + @Id + @GeneratedValue(strategy = GenerationType.AUTO) + @Column(name = "id", nullable = false) + private Long id; + + @Column(name="externalid") + private String externalId; + + @Column(name="name") + private String name; + + @Column(name="description") + private String description; + + @ManyToOne + @JoinColumn(name = "classid") + private PriorityClassification classId; + + @ManyToOne + @JoinColumn(name = "projectinstanceid") + private ProjectInstance projectInstance; + + public Priority() {} + + public Priority(String externalId, String name, String description) { + this.externalId = externalId; + this.name = name; + this.description = description; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getExternalId() { + return externalId; + } + + public void setExternalId(String externalId) { + this.externalId = externalId; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public PriorityClassification getClassId() { + return classId; + } + + @Override + public void setClassId(Classification classId) { + setClassId((PriorityClassification) classId); + } + + public void setClassId(PriorityClassification classId) { + this.classId = classId; + } + + public ProjectInstance getProjectInstance() { + return projectInstance; + } + + public void setProjectInstance(ProjectInstance projectInstance) { + this.projectInstance = projectInstance; + } +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/model/management/enums/PriorityClassification.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/model/management/enums/PriorityClassification.java new file mode 100644 index 0000000..e256e46 --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/model/management/enums/PriorityClassification.java @@ -0,0 +1,60 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.model.management.enums; + +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.interfaces.Classification; + +import javax.persistence.*; +import java.util.ArrayList; +import java.util.List; + +/** + * Model class for priority classes. This is Entity class that is loaded from db. + */ +@Entity +public class PriorityClassification implements Classification { + + @Id + @GeneratedValue(strategy = GenerationType.AUTO) + @Column(name = "id", nullable = false) + private Long id; + + @Column(name="class") + private String name; + + @Column(name="superclass") + private String superClass; + + @OneToMany(mappedBy = "classId", orphanRemoval = true) + private List priorities = new ArrayList<>(); + + public String getName() { + return name; + } + + public void setClassification(String classification) { + this.name = classification; + } + + public String getSuperClass() { + return superClass; + } + + public void setSuperClass(String superClass) { + this.superClass = superClass; + } + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public List getPriorities() { + return priorities; + } + + public void setPriorities(List priorities) { + this.priorities = priorities; + } +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/model/management/enums/Relation.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/model/management/enums/Relation.java new file mode 100644 index 0000000..276b5b1 --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/model/management/enums/Relation.java @@ -0,0 +1,89 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.model.management.enums; + +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.ProjectInstance; +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.interfaces.Classification; +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.interfaces.EnumType; + +import javax.persistence.*; + +/** + * Model class for relations. This is Entity class that is loaded from db. + */ +@Entity +public class Relation implements EnumType { + + @Id + @GeneratedValue(strategy = GenerationType.AUTO) + @Column(name = "id", nullable = false) + private Long id; + + @Column(name="externalid") + private String externalId; + + @Column(name="name") + private String name; + + @Column(name="description") + private String description; + + @ManyToOne + @JoinColumn(name = "classid") + private RelationClassification classId; + + @ManyToOne + @JoinColumn(name = "projectinstanceid") + private ProjectInstance projectInstance; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getExternalId() { + return externalId; + } + + public void setExternalId(String externalId) { + this.externalId = externalId; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public RelationClassification getClassId() { + return classId; + } + + @Override + public void setClassId(Classification classId) { + setClassId((RelationClassification) classId); + } + + public void setClassId(RelationClassification classId) { + this.classId = classId; + } + + public ProjectInstance getProjectInstance() { + return projectInstance; + } + + public void setProjectInstance(ProjectInstance projectInstance) { + this.projectInstance = projectInstance; + } +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/model/management/enums/RelationClassification.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/model/management/enums/RelationClassification.java new file mode 100644 index 0000000..7c9e420 --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/model/management/enums/RelationClassification.java @@ -0,0 +1,60 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.model.management.enums; + +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.interfaces.Classification; + +import javax.persistence.*; +import java.util.ArrayList; +import java.util.List; + +/** + * Model class for relation classes. This is Entity class that is loaded from db. + */ +@Entity +public class RelationClassification implements Classification { + + @Id + @GeneratedValue(strategy = GenerationType.AUTO) + @Column(name = "id", nullable = false) + private Long id; + + @Column(name="class") + private String name; + + @Column(name="superclass") + private String superClass; + + @OneToMany(mappedBy = "classId", orphanRemoval = true) + private List relations = new ArrayList<>(); + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getSuperClass() { + return superClass; + } + + public void setSuperClass(String superClass) { + this.superClass = superClass; + } + + public List getRelations() { + return relations; + } + + public void setRelations(List relations) { + this.relations = relations; + } +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/model/management/enums/Resolution.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/model/management/enums/Resolution.java new file mode 100644 index 0000000..d5340ee --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/model/management/enums/Resolution.java @@ -0,0 +1,89 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.model.management.enums; + +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.ProjectInstance; +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.interfaces.Classification; +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.interfaces.EnumType; + +import javax.persistence.*; + +/** + * Model class for resolution. This is Entity class that is loaded from db. + */ +@Entity +public class Resolution implements EnumType { + + @Id + @GeneratedValue(strategy = GenerationType.AUTO) + @Column(name = "id", nullable = false) + private Long id; + + @Column(name="externalid") + private String externalId; + + @Column(name="name") + private String name; + + @Column(name="description") + private String description; + + @ManyToOne + @JoinColumn(name = "classid") + private ResolutionClassification classId; + + @ManyToOne + @JoinColumn(name = "projectinstanceid") + private ProjectInstance projectInstance; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getExternalId() { + return externalId; + } + + public void setExternalId(String externalId) { + this.externalId = externalId; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public ResolutionClassification getClassId() { + return classId; + } + + @Override + public void setClassId(Classification classId) { + setClassId((ResolutionClassification) classId); + } + + public void setClassId(ResolutionClassification classId) { + this.classId = classId; + } + + public ProjectInstance getProjectInstance() { + return projectInstance; + } + + public void setProjectInstance(ProjectInstance projectInstance) { + this.projectInstance = projectInstance; + } +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/model/management/enums/ResolutionClassification.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/model/management/enums/ResolutionClassification.java new file mode 100644 index 0000000..d0e9edf --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/model/management/enums/ResolutionClassification.java @@ -0,0 +1,60 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.model.management.enums; + +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.interfaces.Classification; + +import javax.persistence.*; +import java.util.ArrayList; +import java.util.List; + +/** + * Model class for resolution classes. This is Entity class that is loaded from db. + */ +@Entity +public class ResolutionClassification implements Classification { + + @Id + @GeneratedValue(strategy = GenerationType.AUTO) + @Column(name = "id", nullable = false) + private Long id; + + @Column(name="class") + private String name; + + @Column(name="superclass") + private String superClass; + + @OneToMany(mappedBy = "classId", orphanRemoval = true) + private List resolutions = new ArrayList<>(); + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getSuperClass() { + return superClass; + } + + public void setSuperClass(String superClass) { + this.superClass = superClass; + } + + public List getResolutions() { + return resolutions; + } + + public void setResolutions(List resolutions) { + this.resolutions = resolutions; + } +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/model/management/enums/Role.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/model/management/enums/Role.java new file mode 100644 index 0000000..811ef59 --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/model/management/enums/Role.java @@ -0,0 +1,90 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.model.management.enums; + + +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.ProjectInstance; +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.interfaces.Classification; +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.interfaces.EnumType; + +import javax.persistence.*; + +/** + * Model class for role. This is Entity class that is loaded from db. + */ +@Entity +public class Role implements EnumType { + + @Id + @GeneratedValue(strategy = GenerationType.AUTO) + @Column(name = "id", nullable = false) + private Long id; + + @Column(name="externalid") + private String externalId; + + @Column(name="name") + private String name; + + @Column(name="description") + private String description; + + @ManyToOne + @JoinColumn(name = "classid") + private RoleClassification classId; + + @ManyToOne + @JoinColumn(name = "projectinstanceid") + private ProjectInstance projectInstance; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getExternalId() { + return externalId; + } + + public void setExternalId(String externalId) { + this.externalId = externalId; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public RoleClassification getClassId() { + return classId; + } + + @Override + public void setClassId(Classification classId) { + setClassId((RoleClassification) classId); + } + + public void setClassId(RoleClassification classId) { + this.classId = classId; + } + + public ProjectInstance getProjectInstance() { + return projectInstance; + } + + public void setProjectInstance(ProjectInstance projectInstance) { + this.projectInstance = projectInstance; + } +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/model/management/enums/RoleClassification.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/model/management/enums/RoleClassification.java new file mode 100644 index 0000000..ae204c1 --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/model/management/enums/RoleClassification.java @@ -0,0 +1,60 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.model.management.enums; + +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.interfaces.Classification; + +import javax.persistence.*; +import java.util.ArrayList; +import java.util.List; + +/** + * Model class for role classes. This is Entity class that is loaded from db. + */ +@Entity +public class RoleClassification implements Classification { + + @Id + @GeneratedValue(strategy = GenerationType.AUTO) + @Column(name = "id", nullable = false) + private Long id; + + @Column(name="class") + private String name; + + @Column(name="superclass") + private String superClass; + + @OneToMany(mappedBy = "classId", orphanRemoval = true) + private List roles = new ArrayList<>(); + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getSuperClass() { + return superClass; + } + + public void setSuperClass(String superClass) { + this.superClass = superClass; + } + + public List getRoles() { + return roles; + } + + public void setRoles(List roles) { + this.roles = roles; + } +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/model/management/enums/Severity.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/model/management/enums/Severity.java new file mode 100644 index 0000000..0c50c18 --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/model/management/enums/Severity.java @@ -0,0 +1,89 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.model.management.enums; + +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.ProjectInstance; +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.interfaces.Classification; +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.interfaces.EnumType; + +import javax.persistence.*; + +/** + * Model class for severity. This is Entity class that is loaded from db. + */ +@Entity +public class Severity implements EnumType { + + @Id + @GeneratedValue(strategy = GenerationType.AUTO) + @Column(name = "id", nullable = false) + private Long id; + + @Column(name="externalid") + private String externalId; + + @Column(name="name") + private String name; + + @Column(name="description") + private String description; + + @ManyToOne + @JoinColumn(name = "classid") + private SeverityClassification classId; + + @ManyToOne + @JoinColumn(name = "projectinstanceid") + private ProjectInstance projectInstance; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getExternalId() { + return externalId; + } + + public void setExternalId(String externalId) { + this.externalId = externalId; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public SeverityClassification getClassId() { + return classId; + } + + @Override + public void setClassId(Classification classId) { + setClassId((SeverityClassification) classId); + } + + public void setClassId(SeverityClassification classId) { + this.classId = classId; + } + + public ProjectInstance getProjectInstance() { + return projectInstance; + } + + public void setProjectInstance(ProjectInstance projectInstance) { + this.projectInstance = projectInstance; + } +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/model/management/enums/SeverityClassification.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/model/management/enums/SeverityClassification.java new file mode 100644 index 0000000..31e5f03 --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/model/management/enums/SeverityClassification.java @@ -0,0 +1,60 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.model.management.enums; + +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.interfaces.Classification; + +import javax.persistence.*; +import java.util.ArrayList; +import java.util.List; + +/** + * Model class for severity classes. This is Entity class that is loaded from db. + */ +@Entity +public class SeverityClassification implements Classification { + + @Id + @GeneratedValue(strategy = GenerationType.AUTO) + @Column(name = "id", nullable = false) + private Long id; + + @Column(name="class") + private String name; + + @Column(name="superclass") + private String superClass; + + @OneToMany(mappedBy = "classId", orphanRemoval = true) + private List severities = new ArrayList<>(); + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getSuperClass() { + return superClass; + } + + public void setSuperClass(String superClass) { + this.superClass = superClass; + } + + public List getSeverities() { + return severities; + } + + public void setSeverities(List severities) { + this.severities = severities; + } +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/model/management/enums/Status.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/model/management/enums/Status.java new file mode 100644 index 0000000..2e375cc --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/model/management/enums/Status.java @@ -0,0 +1,89 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.model.management.enums; + +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.ProjectInstance; +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.interfaces.Classification; +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.interfaces.EnumType; + +import javax.persistence.*; + +/** + * Model class for statuses. This is Entity class that is loaded from db. + */ +@Entity +public class Status implements EnumType { + + @Id + @GeneratedValue(strategy = GenerationType.AUTO) + @Column(name = "id", nullable = false) + private Long id; + + @Column(name="externalid") + private String externalId; + + @Column(name="name") + private String name; + + @Column(name="description") + private String description; + + @ManyToOne + @JoinColumn(name = "classid") + private StatusClassification classId; + + @ManyToOne + @JoinColumn(name = "projectinstanceid") + private ProjectInstance projectInstance; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getExternalId() { + return externalId; + } + + public void setExternalId(String externalId) { + this.externalId = externalId; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public StatusClassification getClassId() { + return classId; + } + + @Override + public void setClassId(Classification classId) { + setClassId((StatusClassification) classId); + } + + public void setClassId(StatusClassification classId) { + this.classId = classId; + } + + public ProjectInstance getProjectInstance() { + return projectInstance; + } + + public void setProjectInstance(ProjectInstance projectInstance) { + this.projectInstance = projectInstance; + } +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/model/management/enums/StatusClassification.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/model/management/enums/StatusClassification.java new file mode 100644 index 0000000..6827fb7 --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/model/management/enums/StatusClassification.java @@ -0,0 +1,60 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.model.management.enums; + +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.interfaces.Classification; + +import javax.persistence.*; +import java.util.ArrayList; +import java.util.List; + +/** + * Model class for status classes. This is Entity class that is loaded from db. + */ +@Entity +public class StatusClassification implements Classification { + + @Id + @GeneratedValue(strategy = GenerationType.AUTO) + @Column(name = "id", nullable = false) + private Long id; + + @Column(name="class") + private String name; + + @Column(name="superclass") + private String superClass; + + @OneToMany(mappedBy = "classId", orphanRemoval = true) + private List statuses = new ArrayList<>(); + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getSuperClass() { + return superClass; + } + + public void setSuperClass(String superClass) { + this.superClass = superClass; + } + + public List getStatuses() { + return statuses; + } + + public void setStatuses(List statuses) { + this.statuses = statuses; + } +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/model/management/enums/WuType.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/model/management/enums/WuType.java new file mode 100644 index 0000000..bdd3878 --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/model/management/enums/WuType.java @@ -0,0 +1,99 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.model.management.enums; + +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.ProjectInstance; +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.interfaces.Classification; +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.interfaces.EnumType; + +import javax.persistence.*; + +/** + * Model class for work unit types. This is Entity class that is loaded from db. + */ +@Entity +@Table(name = "wu_type") +public class WuType implements EnumType { + + @Id + @GeneratedValue(strategy = GenerationType.AUTO) + @Column(name = "id", nullable = false) + private Long id; + + @Column(name="externalid") + private String externalId; + + @Column(name="name") + private String name; + + @Column(name="description") + private String description; + + @ManyToOne + @JoinColumn(name = "classid") + private WuTypeClassification classId; + + @ManyToOne + @JoinColumn(name = "projectinstanceid") + private ProjectInstance projectInstance; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getExternalId() { + return externalId; + } + + public void setExternalId(String externalId) { + this.externalId = externalId; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + + public WuTypeClassification getClassId() { + return classId; + } + + @Override + public void setClassId(Classification classId) { + setClassId((WuTypeClassification) classId); + } + + public void setClassId(WuTypeClassification classId) { + this.classId = classId; + } + + public ProjectInstance getProjectInstance() { + return projectInstance; + } + + public void setProjectInstance(ProjectInstance projectInstance) { + this.projectInstance = projectInstance; + } + + @Override + public boolean equals(Object o) { + if(!(o instanceof WuType)) { + return false; + } + WuType wuType = (WuType) o; + return wuType.getId().equals(getId()); + } +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/model/management/enums/WuTypeClassification.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/model/management/enums/WuTypeClassification.java new file mode 100644 index 0000000..83c611b --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/model/management/enums/WuTypeClassification.java @@ -0,0 +1,55 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.model.management.enums; + +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.interfaces.Classification; + +import javax.persistence.*; +import java.util.ArrayList; +import java.util.List; + +/** + * Model class for work unit types classes. This is Entity class that is loaded from db. + */ +@Entity +@Table(name = "wu_type_classification") +public class WuTypeClassification implements Classification { + + @Id + @GeneratedValue(strategy = GenerationType.AUTO) + @Column(name = "id", nullable = false) + private Long id; + + @Column(name="class") + private String name; + + @OneToMany(mappedBy = "classId", orphanRemoval = true) + private List wuTypes = new ArrayList<>(); + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public String getName() { + return name; + } + + @Override + public String getSuperClass() { + return null; + } + + public void setName(String name) { + this.name = name; + } + + public List getWuTypes() { + return wuTypes; + } + + public void setWuTypes(List wuTypes) { + this.wuTypes = wuTypes; + } +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/model/management/interfaces/Classification.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/model/management/interfaces/Classification.java new file mode 100644 index 0000000..3b2fa1a --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/model/management/interfaces/Classification.java @@ -0,0 +1,22 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.model.management.interfaces; + +public interface Classification { + + /** + * Method getting ID of class + * @return Classification ID + */ + Long getId(); + + /** + * Method getting name of class + * @return Classification name + */ + String getName(); + + /** + * Method getting super class name + * @return Superclass name + */ + String getSuperClass(); +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/model/management/interfaces/DatabaseObject.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/model/management/interfaces/DatabaseObject.java new file mode 100644 index 0000000..5472e87 --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/model/management/interfaces/DatabaseObject.java @@ -0,0 +1,8 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.model.management.interfaces; + +public interface DatabaseObject { + + String getObjectName(); + + String getAttributeValue(String attr); +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/model/management/interfaces/EnumType.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/model/management/interfaces/EnumType.java new file mode 100644 index 0000000..18a5160 --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/model/management/interfaces/EnumType.java @@ -0,0 +1,28 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.model.management.interfaces; + +public interface EnumType { + + /** + * Method getting ID of enum + * @return ID of EnumType instance + */ + Long getId(); + + /** + * Method getting name of enum + * @return Name of EnumType instance + */ + String getName(); + + /** + * Method getting class of enum + * @return Classification of EnumType instance + */ + Classification getClassId(); + + /** + * Method setting class of enum + * @param classId New classification of EnumType instance + */ + void setClassId(Classification classId); +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/model/management/types/Node.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/model/management/types/Node.java new file mode 100644 index 0000000..8d59841 --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/model/management/types/Node.java @@ -0,0 +1,11 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.model.management.types; + +import cz.zcu.fav.kiv.antipatterndetectionapp.model.Project; +import cz.zcu.fav.kiv.antipatterndetectionapp.v2.model.ProjectDto; + +import java.util.ArrayList; + +public class Node { + public ProjectDto project; + public ArrayList children; +} \ No newline at end of file diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/repository/AntiPatternRepository.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/repository/AntiPatternRepository.java index 354d92a..c2313bb 100644 --- a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/repository/AntiPatternRepository.java +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/repository/AntiPatternRepository.java @@ -3,7 +3,6 @@ import com.fasterxml.jackson.databind.JsonNode; import cz.zcu.fav.kiv.antipatterndetectionapp.detecting.detectors.AntiPatternDetector; import cz.zcu.fav.kiv.antipatterndetectionapp.model.AntiPattern; -import cz.zcu.fav.kiv.antipatterndetectionapp.model.Project; import cz.zcu.fav.kiv.antipatterndetectionapp.model.Threshold; import cz.zcu.fav.kiv.antipatterndetectionapp.utils.JsonParser; import org.reflections.Reflections; @@ -138,7 +137,7 @@ private List loadSqlFile(List fileNames) { * @param jsonFileName Name of the file * @return AntiPattern object */ - private AntiPattern getAntiPatternFromJsonFile(String jsonFileName){ + public AntiPattern getAntiPatternFromJsonFile(String jsonFileName){ String json = ""; // json configuration file content as string LOGGER.info("Reading anti-pattern from json file " + jsonFileName); diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/repository/ProjectRepository.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/repository/ProjectRepository.java index dd67def..6c7d457 100644 --- a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/repository/ProjectRepository.java +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/repository/ProjectRepository.java @@ -2,9 +2,18 @@ import cz.zcu.fav.kiv.antipatterndetectionapp.model.Project; import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.Query; + +import java.util.List; /** * Simple class that is implements JPA for easy loading project from DB. */ public interface ProjectRepository extends JpaRepository { + + @Query(value = "SELECT * FROM project WHERE superProjectId IS NULL", nativeQuery = true) + List getParentProjects(); + + @Query(value = "SELECT * FROM project WHERE superProjectId = :superProjectId", nativeQuery = true) + List getSubordinateProjectsTo(Long superProjectId); } diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/repository/managment/ActivityRepository.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/repository/managment/ActivityRepository.java new file mode 100644 index 0000000..c1e8898 --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/repository/managment/ActivityRepository.java @@ -0,0 +1,10 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.repository.managment; + +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.Activity; +import org.springframework.data.jpa.repository.JpaRepository; + +/** + * Simple class that is implements JPA for easy loading project from DB. + */ +public interface ActivityRepository extends JpaRepository { +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/repository/managment/BranchRepository.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/repository/managment/BranchRepository.java new file mode 100644 index 0000000..9f5e5ab --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/repository/managment/BranchRepository.java @@ -0,0 +1,10 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.repository.managment; + +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.Branch; +import org.springframework.data.jpa.repository.JpaRepository; + +/** + * Simple class that is implements JPA for easy loading project from DB. + */ +public interface BranchRepository extends JpaRepository { +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/repository/managment/CategoryRepository.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/repository/managment/CategoryRepository.java new file mode 100644 index 0000000..6103926 --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/repository/managment/CategoryRepository.java @@ -0,0 +1,10 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.repository.managment; + +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.Category; +import org.springframework.data.jpa.repository.JpaRepository; + +/** + * Simple class that is implements JPA for easy loading project from DB. + */ +public interface CategoryRepository extends JpaRepository { +} \ No newline at end of file diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/repository/managment/CommitRepository.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/repository/managment/CommitRepository.java new file mode 100644 index 0000000..3d12535 --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/repository/managment/CommitRepository.java @@ -0,0 +1,20 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.repository.managment; + +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.Commit; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.Query; + +import java.util.List; + +/** + * Simple class that is implements JPA for easy loading project from DB. + */ +public interface CommitRepository extends JpaRepository { + +// @Query(value = "SELECT * FROM commit INNER JOIN configuration ON commit.id = configuration.id WHERE configuration.projectId = ?1", nativeQuery = true) + @Query(value = "SELECT * FROM commit INNER JOIN configuration ON commit.id = configuration.id WHERE configuration.projectId = ?1 AND commit.isRelease = 1", nativeQuery = true) + List getReleasedCommitsByProject(Long projectId); + + @Query(value = "SELECT * FROM commit INNER JOIN configuration ON commit.id = configuration.id WHERE configuration.projectId = ?1 AND commit.identifier = ?2", nativeQuery = true) + Commit getCommitByIdentifier(Long projectId, String identifier); +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/repository/managment/CommittedConfigurationRepository.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/repository/managment/CommittedConfigurationRepository.java new file mode 100644 index 0000000..0f6c671 --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/repository/managment/CommittedConfigurationRepository.java @@ -0,0 +1,10 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.repository.managment; + +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.CommittedConfiguration; +import org.springframework.data.jpa.repository.JpaRepository; + +/** + * Simple class that is implements JPA for easy loading project from DB. + */ +public interface CommittedConfigurationRepository extends JpaRepository { +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/repository/managment/ConfigurationPersonRelationRepository.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/repository/managment/ConfigurationPersonRelationRepository.java new file mode 100644 index 0000000..e2649f2 --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/repository/managment/ConfigurationPersonRelationRepository.java @@ -0,0 +1,11 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.repository.managment; + +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.ConfigurationPersonRelation; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.Query; + +public interface ConfigurationPersonRelationRepository extends JpaRepository { + + @Query(value = "SELECT * FROM configuration_person_relation INNER JOIN person ON configuration_person_relation.personId = person.id WHERE configuration_person_relation.configurationId = 1 AND configuration_person_relation.name = 'Committed-by'", nativeQuery = true) + ConfigurationPersonRelation getCommittedRelation(Long projectId); +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/repository/managment/EntityConfigurationRepository.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/repository/managment/EntityConfigurationRepository.java new file mode 100644 index 0000000..e1d9d70 --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/repository/managment/EntityConfigurationRepository.java @@ -0,0 +1,11 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.repository.managment; + +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.Configuration; +import org.springframework.data.jpa.repository.JpaRepository; + +/** + * Simple class that is implements JPA for easy loading project from DB. + */ +public interface EntityConfigurationRepository extends JpaRepository { + +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/repository/managment/IdentityRepository.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/repository/managment/IdentityRepository.java new file mode 100644 index 0000000..56edfc4 --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/repository/managment/IdentityRepository.java @@ -0,0 +1,10 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.repository.managment; + +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.Identity; +import org.springframework.data.jpa.repository.JpaRepository; + +/** + * Simple class that is implements JPA for easy loading project from DB. + */ +public interface IdentityRepository extends JpaRepository { +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/repository/managment/IterationRepository.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/repository/managment/IterationRepository.java new file mode 100644 index 0000000..d2e2b6a --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/repository/managment/IterationRepository.java @@ -0,0 +1,17 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.repository.managment; + +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.Iteration; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.Query; + +import java.util.List; + +/** + * Simple class that is implements JPA for easy loading project from DB. + */ +public interface IterationRepository extends JpaRepository { + + @Query("select it from Iteration it where it.id IN :ids") + List fetchIterationsByIds(List ids); + +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/repository/managment/PersonRepository.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/repository/managment/PersonRepository.java new file mode 100644 index 0000000..0875894 --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/repository/managment/PersonRepository.java @@ -0,0 +1,48 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.repository.managment; + +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.Person; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.Modifying; +import org.springframework.data.jpa.repository.Query; +import org.springframework.transaction.annotation.Transactional; + +/** + * Simple class that is implements JPA for easy loading project from DB. + */ +public interface PersonRepository extends JpaRepository { + + @Modifying + @Transactional + @Query(value = "UPDATE work_unit SET assigneeId = :newPersonId WHERE assigneeId = :personId", nativeQuery = true) + void updatePersonUnits(Long personId, Long newPersonId); + + @Modifying + @Transactional + @Query(value = "UPDATE work_item SET authorId = :newPersonId WHERE authorId = :personId", nativeQuery = true) + void updatePersonItems(Long personId, Long newPersonId); + + @Modifying + @Transactional + @Query(value = "UPDATE configuration_person_relation SET personId = :newPersonId WHERE personId = :personId", nativeQuery = true) + void updatePersonConfigurationRelation(Long personId, Long newPersonId); + + @Modifying + @Transactional + @Query(value = "UPDATE person_role SET personId = :newPersonId WHERE personId = :personId", nativeQuery = true) + void updatePersonRole(Long personId, Long newPersonId); + + @Modifying + @Transactional + @Query(value = "UPDATE identity SET personId = :newPersonId WHERE personId = :personId", nativeQuery = true) + void updatePersonIdentities(Long personId, Long newPersonId); + + @Modifying + @Transactional + @Query(value = "UPDATE person_competency SET personId = :newPersonId WHERE personId = :personId", nativeQuery = true) + void updatePersonCompetencies(Long personId, Long newPersonId); + + @Modifying + @Transactional + @Query(value = "UPDATE group_member SET memberId = :newPersonId WHERE memberId = :personId", nativeQuery = true) + void updatePersonGroups(Long personId, Long newPersonId); +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/repository/managment/PhaseRepository.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/repository/managment/PhaseRepository.java new file mode 100644 index 0000000..a3c264b --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/repository/managment/PhaseRepository.java @@ -0,0 +1,18 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.repository.managment; + +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.Iteration; +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.Phase; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.Query; + +import java.util.List; + +/** + * Simple class that is implements JPA for easy loading project from DB. + */ +public interface PhaseRepository extends JpaRepository { + + @Query("select ph from Phase ph where ph.id IN :ids") + List fetchPhasesByIds(List ids); + +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/repository/managment/ProjectInstanceRepository.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/repository/managment/ProjectInstanceRepository.java new file mode 100644 index 0000000..555f3d7 --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/repository/managment/ProjectInstanceRepository.java @@ -0,0 +1,10 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.repository.managment; + +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.ProjectInstance; +import org.springframework.data.jpa.repository.JpaRepository; + +/** + * Simple class that is implements JPA for easy loading project from DB. + */ +public interface ProjectInstanceRepository extends JpaRepository { +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/repository/managment/TagRepository.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/repository/managment/TagRepository.java new file mode 100644 index 0000000..9b26ac3 --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/repository/managment/TagRepository.java @@ -0,0 +1,10 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.repository.managment; + +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.Tag; +import org.springframework.data.jpa.repository.JpaRepository; + +/** + * Simple class that is implements JPA for easy loading project from DB. + */ +public interface TagRepository extends JpaRepository { +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/repository/managment/WorkItemRepository.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/repository/managment/WorkItemRepository.java new file mode 100644 index 0000000..bf57fc0 --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/repository/managment/WorkItemRepository.java @@ -0,0 +1,10 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.repository.managment; + +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.WorkItem; +import org.springframework.data.jpa.repository.JpaRepository; + +/** + * Simple class that is implements JPA for easy loading project from DB. + */ +public interface WorkItemRepository extends JpaRepository { +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/repository/managment/WorkUnitRepository.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/repository/managment/WorkUnitRepository.java new file mode 100644 index 0000000..0cfe3bc --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/repository/managment/WorkUnitRepository.java @@ -0,0 +1,71 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.repository.managment; + +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.WorkUnit; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.Modifying; +import org.springframework.data.jpa.repository.Query; +import org.springframework.data.repository.query.Param; + +import javax.transaction.Transactional; +import java.util.Collection; +import java.util.List; + +/** + * Simple class that is implements JPA for easy loading project from DB. + */ +public interface WorkUnitRepository extends JpaRepository { + + @Query(value = "SELECT * FROM work_unit " + + "JOIN work_unit_category ON work_unit.id = work_unit_category.workUnitId " + + "JOIN category ON category.id = work_unit_category.categoryId " + + "WHERE category.id IN :categories " + + "AND work_unit.wuTypeId IN :types " + + "AND work_unit.projectId = :projectId " + + "GROUP BY work_unit.id " + + "HAVING COUNT(DISTINCT category.id) = :size", nativeQuery = true) + List getFiltredWorkUnits(Long projectId, Collection categories, Collection types, Integer size); + + @Query(value = "SELECT DISTINCT * FROM work_unit " + + "JOIN work_unit_category ON work_unit.id = work_unit_category.workUnitId " + + "JOIN category ON category.id = work_unit_category.categoryId " + + "WHERE category.id IN :categories " + + "AND work_unit.projectId = :projectId " + + "GROUP BY work_unit.id " + + "HAVING COUNT(DISTINCT category.id) = :size", nativeQuery = true) + List getCategoryFiltredWorkUnits(Long projectId, Collection categories, Integer size); + + @Query(value = "SELECT DISTINCT * FROM work_unit " + + "WHERE work_unit.wuTypeId IN :types " + + "AND work_unit.projectId = :projectId", nativeQuery = true) + List getTypeFiltredWorkUnits(Long projectId, Collection types); + @Query("SELECT unit FROM WorkUnit unit WHERE unit.activity.id = ?1 ") + List fetchActivityWorkUnits(Long activityId); + @Query("SELECT unit from WorkUnit unit WHERE unit.project.id = ?1") + List fetchAllProjectWorkUnits(Long projectId); + + @Query("SELECT unit FROM WorkUnit unit " + + "INNER JOIN Category cat " + + "ON cat member OF unit.categories " + + "WHERE unit.project.id = :projectId AND cat.name in :categoryName") + List fetchActivityWorkUnitsFilteredByCategory(@Param("projectId") Long projectId, @Param("categoryName") List category); + + @Query("SELECT unit from WorkUnit unit WHERE unit.project.id = :projectId and unit.type.name in :typeNames") + List fetchActivityWorkUnitsFilteredByType(@Param("projectId") Long projectId, @Param("typeNames") List wuTypes); + @Query("SELECT unit from WorkUnit unit " + + "INNER JOIN Category cat " + + "ON cat MEMBER OF unit.categories " + + "WHERE unit.project.id = :projectId AND cat.name in :categoryName AND unit.type.name in :typeNames") + List fetchActivityWorkUnitsFilteredByTypeAndCategory(@Param("projectId")Long projectId,@Param("categoryName") List category,@Param("typeNames") List type); + @Query("SELECT unit from WorkUnit unit ") + List fetchCategoryNames(Long projectId); + @Query("UPDATE WorkUnit unit SET unit.activity.id = :activityId WHERE unit.id in :wuIds") + @Modifying + @Transactional + int updateWuActivity(@Param("activityId")Long activityId, @Param("wuIds") List wuIds); + @Query("SELECT DISTINCT cat.name from WorkUnit unit INNER JOIN Category cat on cat MEMBER OF unit.categories AND unit.project.id = ?1") + List fetchProjectWorkUnitsCategories(Long projectId); + @Query("SELECT DISTINCT unit.type.name from WorkUnit unit WHERE unit.project.id = ?1") + List fetchProjectWorkUnitsTypes(Long projectId); + + +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/repository/managment/enums/PriorityClassificationRepository.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/repository/managment/enums/PriorityClassificationRepository.java new file mode 100644 index 0000000..3f9c796 --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/repository/managment/enums/PriorityClassificationRepository.java @@ -0,0 +1,10 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.repository.managment.enums; + +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.enums.PriorityClassification; +import org.springframework.data.jpa.repository.JpaRepository; + +/** + * Simple class that is implements JPA for easy loading project from DB. + */ +public interface PriorityClassificationRepository extends JpaRepository { +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/repository/managment/enums/PriorityRepository.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/repository/managment/enums/PriorityRepository.java new file mode 100644 index 0000000..afae7bf --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/repository/managment/enums/PriorityRepository.java @@ -0,0 +1,11 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.repository.managment.enums; + +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.enums.Priority; +import org.springframework.data.jpa.repository.JpaRepository; + +/** + * Simple class that is implements JPA for easy loading project from DB. + */ +public interface PriorityRepository extends JpaRepository { +} + diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/repository/managment/enums/RelationClassificationRepository.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/repository/managment/enums/RelationClassificationRepository.java new file mode 100644 index 0000000..022fbc0 --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/repository/managment/enums/RelationClassificationRepository.java @@ -0,0 +1,10 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.repository.managment.enums; + +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.enums.RelationClassification; +import org.springframework.data.jpa.repository.JpaRepository; + +/** + * Simple class that is implements JPA for easy loading project from DB. + */ +public interface RelationClassificationRepository extends JpaRepository { +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/repository/managment/enums/RelationRepository.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/repository/managment/enums/RelationRepository.java new file mode 100644 index 0000000..72b7983 --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/repository/managment/enums/RelationRepository.java @@ -0,0 +1,10 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.repository.managment.enums; + +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.enums.Relation; +import org.springframework.data.jpa.repository.JpaRepository; + +/** + * Simple class that is implements JPA for easy loading project from DB. + */ +public interface RelationRepository extends JpaRepository { +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/repository/managment/enums/ResolutionClassificationRepository.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/repository/managment/enums/ResolutionClassificationRepository.java new file mode 100644 index 0000000..d42189c --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/repository/managment/enums/ResolutionClassificationRepository.java @@ -0,0 +1,10 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.repository.managment.enums; + +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.enums.ResolutionClassification; +import org.springframework.data.jpa.repository.JpaRepository; + +/** + * Simple class that is implements JPA for easy loading project from DB. + */ +public interface ResolutionClassificationRepository extends JpaRepository { +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/repository/managment/enums/ResolutionRepository.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/repository/managment/enums/ResolutionRepository.java new file mode 100644 index 0000000..99d701a --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/repository/managment/enums/ResolutionRepository.java @@ -0,0 +1,10 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.repository.managment.enums; + +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.enums.Resolution; +import org.springframework.data.jpa.repository.JpaRepository; + +/** + * Simple class that is implements JPA for easy loading project from DB. + */ +public interface ResolutionRepository extends JpaRepository { +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/repository/managment/enums/RoleClassificationRepository.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/repository/managment/enums/RoleClassificationRepository.java new file mode 100644 index 0000000..23c604d --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/repository/managment/enums/RoleClassificationRepository.java @@ -0,0 +1,10 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.repository.managment.enums; + +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.enums.RoleClassification; +import org.springframework.data.jpa.repository.JpaRepository; + +/** + * Simple class that is implements JPA for easy loading project from DB. + */ +public interface RoleClassificationRepository extends JpaRepository { +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/repository/managment/enums/RoleRepository.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/repository/managment/enums/RoleRepository.java new file mode 100644 index 0000000..558d04a --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/repository/managment/enums/RoleRepository.java @@ -0,0 +1,10 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.repository.managment.enums; + +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.enums.Role; +import org.springframework.data.jpa.repository.JpaRepository; + +/** + * Simple class that is implements JPA for easy loading project from DB. + */ +public interface RoleRepository extends JpaRepository { +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/repository/managment/enums/SeverityClassificationRepository.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/repository/managment/enums/SeverityClassificationRepository.java new file mode 100644 index 0000000..cc909a8 --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/repository/managment/enums/SeverityClassificationRepository.java @@ -0,0 +1,10 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.repository.managment.enums; + +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.enums.SeverityClassification; +import org.springframework.data.jpa.repository.JpaRepository; + +/** + * Simple class that is implements JPA for easy loading project from DB. + */ +public interface SeverityClassificationRepository extends JpaRepository { +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/repository/managment/enums/SeverityRepository.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/repository/managment/enums/SeverityRepository.java new file mode 100644 index 0000000..0af5102 --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/repository/managment/enums/SeverityRepository.java @@ -0,0 +1,10 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.repository.managment.enums; + +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.enums.Severity; +import org.springframework.data.jpa.repository.JpaRepository; + +/** + * Simple class that is implements JPA for easy loading project from DB. + */ +public interface SeverityRepository extends JpaRepository { +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/repository/managment/enums/StatusClassificationRepository.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/repository/managment/enums/StatusClassificationRepository.java new file mode 100644 index 0000000..975723a --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/repository/managment/enums/StatusClassificationRepository.java @@ -0,0 +1,10 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.repository.managment.enums; + +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.enums.StatusClassification; +import org.springframework.data.jpa.repository.JpaRepository; + +/** + * Simple class that is implements JPA for easy loading project from DB. + */ +public interface StatusClassificationRepository extends JpaRepository { +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/repository/managment/enums/StatusRepository.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/repository/managment/enums/StatusRepository.java new file mode 100644 index 0000000..5ae401c --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/repository/managment/enums/StatusRepository.java @@ -0,0 +1,10 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.repository.managment.enums; + +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.enums.Status; +import org.springframework.data.jpa.repository.JpaRepository; + +/** + * Simple class that is implements JPA for easy loading project from DB. + */ +public interface StatusRepository extends JpaRepository { +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/repository/managment/enums/WuTypeClassificationRepository.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/repository/managment/enums/WuTypeClassificationRepository.java new file mode 100644 index 0000000..bc3b1e6 --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/repository/managment/enums/WuTypeClassificationRepository.java @@ -0,0 +1,10 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.repository.managment.enums; + +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.enums.WuTypeClassification; +import org.springframework.data.jpa.repository.JpaRepository; + +/** + * Simple class that is implements JPA for easy loading project from DB. + */ +public interface WuTypeClassificationRepository extends JpaRepository { +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/repository/managment/enums/WuTypeRepository.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/repository/managment/enums/WuTypeRepository.java new file mode 100644 index 0000000..ce0bcee --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/repository/managment/enums/WuTypeRepository.java @@ -0,0 +1,10 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.repository.managment.enums; + +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.enums.WuType; +import org.springframework.data.jpa.repository.JpaRepository; + +/** + * Simple class that is implements JPA for easy loading project from DB. + */ +public interface WuTypeRepository extends JpaRepository { +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/service/ProjectService.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/service/ProjectService.java index 75291a9..94d6170 100644 --- a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/service/ProjectService.java +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/service/ProjectService.java @@ -1,14 +1,67 @@ package cz.zcu.fav.kiv.antipatterndetectionapp.service; import cz.zcu.fav.kiv.antipatterndetectionapp.model.Project; +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.types.Node; +import cz.zcu.fav.kiv.antipatterndetectionapp.v2.model.ProjectDto; +import java.util.ArrayList; import java.util.List; public interface ProjectService { + /** + * Method obtaining all projects sorted by name + * @return List of all existing projects + */ List getAllProjects(); + /** + * Method obtaining project based on id + * @param id Identifier of project + * @return Project for given id or null + */ Project getProjectById(Long id); + /** + * Method obtaining projects for given ids + * @param ids Array of project's identifiers + * @return List of projects + */ List getAllProjectsForGivenIds(Long[] ids); + + /** + * Method saving project into database + * @param project Project for saving + * @return Saved project + */ + Project saveProject(Project project); + + /** + * Method obtaining all projects without superproject + * @return List of parent projects + */ + List getParentProjects(); + + /** + * Method obtaining all subordinate projects + * to project defined by identifier + * @param id Identifier of project + * @return List of subordinate projects + */ + List getSubordinateProjectsTo(Long id); + + /** + * Method creating the hierarchy of projects by recursion + * @param p Project for which the hierarchy will be generated + * @return List of project's children with their hierarchy + */ + ArrayList calculate(ProjectDto p); + + /** + * Method saving new structure of the projects and superprojects + * @param nodes List of the nodes with projects to save + * @param superProject Parent of the projects in the list + * @return true if successful + */ + boolean saveProjectsStructure(List nodes, Project superProject); } diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/service/ProjectServiceImpl.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/service/ProjectServiceImpl.java index 044739f..b20c2bb 100644 --- a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/service/ProjectServiceImpl.java +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/service/ProjectServiceImpl.java @@ -1,7 +1,10 @@ package cz.zcu.fav.kiv.antipatterndetectionapp.service; import cz.zcu.fav.kiv.antipatterndetectionapp.model.Project; +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.types.Node; import cz.zcu.fav.kiv.antipatterndetectionapp.repository.ProjectRepository; +import cz.zcu.fav.kiv.antipatterndetectionapp.v2.model.ProjectDto; +import cz.zcu.fav.kiv.antipatterndetectionapp.v2.utils.converters.ProjectToDto; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -25,11 +28,7 @@ public List getAllProjects() { @Override public Project getProjectById(Long id) { Optional result = projectRepository.findById(id); - if (result.isEmpty()) { - return null; - } else { - return result.get(); - } + return result.orElse(null); } @Override @@ -41,4 +40,65 @@ public List getAllProjectsForGivenIds(Long[] ids) { } return projects; } + + @Override + public Project saveProject(Project project) { + Project newProject = projectRepository.save(project); + projectRepository.flush(); + return newProject; + } + + @Override + public List getParentProjects() { + return projectRepository.getParentProjects(); + } + + @Override + public List getSubordinateProjectsTo(Long id) { + return projectRepository.getSubordinateProjectsTo(id); + } + + @Override + public ArrayList calculate(ProjectDto p) { + ProjectToDto projectToDto = new ProjectToDto(); + ArrayList nodes = new ArrayList<>(); + List projects = projectToDto.convert(getSubordinateProjectsTo(p.getId())); + for(ProjectDto project : projects) { + Node n = new Node(); + n.project = project; + n.children = calculate(project); + nodes.add(n); + } + return nodes; + } + + @Override + public boolean saveProjectsStructure(List nodes, Project superProject) { + if (nodes != null && !nodes.isEmpty()) { + for (Node node : nodes) { + ProjectDto projectDto = node.project; + Project project = new Project(); + + if(projectDto.getId() > 0) { + project.setId(projectDto.getId()); + } + + project.setName(projectDto.getName()); + project.setDescription(projectDto.getDescription()); + + if(superProject != null) { + project.setSuperProject(superProject); + } + + project = projectRepository.save(project); // This may update an existing project or insert a new one + + if (node.children != null && !node.children.isEmpty()) { + List children = node.children; + saveProjectsStructure(children, project); + } + } + return true; // Success + } + return false; // No data to save + } } diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/service/managment/BranchService.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/service/managment/BranchService.java new file mode 100644 index 0000000..e0b5d39 --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/service/managment/BranchService.java @@ -0,0 +1,21 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.service.managment; + +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.Branch; + +import java.util.List; + +public interface BranchService { + + /** + * Method for getting all branches from database + * @return List of all branches in databse + */ + List getAllBranches(); + + /** + * Method getting branch by id + * @param id ID of branch + * @return Branch with that ID + */ + Branch getBranchById(Long id); +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/service/managment/BranchServiceImpl.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/service/managment/BranchServiceImpl.java new file mode 100644 index 0000000..90e5769 --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/service/managment/BranchServiceImpl.java @@ -0,0 +1,37 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.service.managment; + +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.Branch; +import cz.zcu.fav.kiv.antipatterndetectionapp.repository.managment.BranchRepository; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import javax.transaction.Transactional; +import java.util.Collections; +import java.util.Comparator; +import java.util.List; +import java.util.Optional; + +@Service +@Transactional +public class BranchServiceImpl implements BranchService { + + @Autowired + private BranchRepository branchRepository; + + @Override + public List getAllBranches() { + List branches = branchRepository.findAll(); + Collections.sort(branches, Comparator.comparing(Branch::getName, String.CASE_INSENSITIVE_ORDER)); + return branches; + } + + @Override + public Branch getBranchById(Long id) { + Optional result = branchRepository.findById(id); + if (result.isEmpty()) { + return null; + } else { + return result.get(); + } + } +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/service/managment/CategoryService.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/service/managment/CategoryService.java new file mode 100644 index 0000000..7745bcb --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/service/managment/CategoryService.java @@ -0,0 +1,27 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.service.managment; + +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.Category; + +import java.util.List; + +public interface CategoryService { + + /** + * Method getting all categories from database + * @return List of all categories in database + */ + List getAllCategories(); + + /** + * Method getting category by ID + * @param id ID of category + * @return Category with that ID + */ + Category getCategoryById(Long id); + + /** + * Method for deleting categories from database + * @param categories List of categories for deletion + */ + void deleteCategories(List categories); +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/service/managment/CategoryServiceImpl.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/service/managment/CategoryServiceImpl.java new file mode 100644 index 0000000..7cadf70 --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/service/managment/CategoryServiceImpl.java @@ -0,0 +1,42 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.service.managment; + +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.Category; +import cz.zcu.fav.kiv.antipatterndetectionapp.repository.managment.CategoryRepository; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import javax.transaction.Transactional; +import java.util.Collections; +import java.util.Comparator; +import java.util.List; +import java.util.Optional; + +@Service +@Transactional +public class CategoryServiceImpl implements CategoryService { + + @Autowired + private CategoryRepository categoryRepository; + + @Override + public List getAllCategories() { + List categories = categoryRepository.findAll(); + Collections.sort(categories, Comparator.comparing(Category::getName, String.CASE_INSENSITIVE_ORDER)); + return categories; + } + + @Override + public Category getCategoryById(Long id) { + Optional result = categoryRepository.findById(id); + if (result.isEmpty()) { + return null; + } else { + return result.get(); + } + } + + @Override + public void deleteCategories(List categories) { + categoryRepository.deleteAll(categories); + } +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/service/managment/CommitService.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/service/managment/CommitService.java new file mode 100644 index 0000000..5d519c0 --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/service/managment/CommitService.java @@ -0,0 +1,43 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.service.managment; + +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.Commit; + +import java.util.List; + +public interface CommitService { + + /** + * Method getting all commits from database + * @return List of all commits in database + */ + List getAllCommits(); + + /** + * Method getting commit by ID + * @param id ID of commit + * @return Commit with that ID + */ + Commit getCommitById(Long id); + + /** + * Method saving commit into database + * @param commit Commit tha will be safe + * @return Commit saved in database + */ + Commit saveCommit(Commit commit); + + /** + * Method getting released commits by project ID + * @param id Project's ID of released commits + * @return List of released commits in project + */ + List getReleasedCommitsByProject(Long id); + + /** + * Method getting commit by identifier + * @param projectId Project ID + * @param identifier Identifier of commit + * @return Commit with that identifier + */ + Commit getCommitByIdentifier(Long projectId, String identifier); +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/service/managment/CommitServiceImpl.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/service/managment/CommitServiceImpl.java new file mode 100644 index 0000000..b1cda09 --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/service/managment/CommitServiceImpl.java @@ -0,0 +1,63 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.service.managment; + +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.Commit; +import cz.zcu.fav.kiv.antipatterndetectionapp.repository.managment.CommitRepository; +import cz.zcu.fav.kiv.antipatterndetectionapp.repository.managment.CommittedConfigurationRepository; +import cz.zcu.fav.kiv.antipatterndetectionapp.repository.managment.EntityConfigurationRepository; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import javax.transaction.Transactional; +import java.util.Collections; +import java.util.Comparator; +import java.util.List; +import java.util.Optional; + +@Service +@Transactional +public class CommitServiceImpl implements CommitService { + + @Autowired + private CommitRepository commitRepository; + + @Autowired + private EntityConfigurationRepository configurationRepository; + + @Autowired + private CommittedConfigurationRepository committedConfigurationRepository; + + @Override + public List getAllCommits() { + List commits = commitRepository.findAll(); + Collections.sort(commits, Comparator.comparing(Commit::getId)); + return commits; + } + + @Override + public Commit getCommitById(Long id) { + Optional result = commitRepository.findById(id); + if (result.isEmpty()) { + return null; + } else { + return result.get(); + } + } + + @Override + public Commit saveCommit(Commit commit) { + Commit newCommit = commitRepository.save(commit); + commitRepository.flush(); + return newCommit; + } + + @Override + public List getReleasedCommitsByProject(Long id) { + return commitRepository.getReleasedCommitsByProject(id); + } + + @Override + public Commit getCommitByIdentifier(Long projectId, String identifier) { + return commitRepository.getCommitByIdentifier(projectId, identifier); + } + +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/service/managment/IdentityService.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/service/managment/IdentityService.java new file mode 100644 index 0000000..a994a97 --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/service/managment/IdentityService.java @@ -0,0 +1,28 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.service.managment; + +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.Identity; + +import java.util.List; + +public interface IdentityService { + + /** + * Method getting all identities from database + * @return List of all identities in database + */ + List getAllIdentities(); + + /** + * Method getting identity by ID + * @param id ID of identity + * @return Identity with that ID + */ + Identity getIdentityById(Long id); + + /** + * Method saving identity into database + * @param identity Identity tha will be safe + * @return Identity saved in database + */ + Identity saveIdentity(Identity identity); +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/service/managment/IdentityServiceImpl.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/service/managment/IdentityServiceImpl.java new file mode 100644 index 0000000..a6ef57c --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/service/managment/IdentityServiceImpl.java @@ -0,0 +1,45 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.service.managment; + +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.Identity; +import cz.zcu.fav.kiv.antipatterndetectionapp.repository.managment.IdentityRepository; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import javax.transaction.Transactional; +import java.util.Collections; +import java.util.Comparator; +import java.util.List; +import java.util.Optional; + +@Service +@Transactional +public class IdentityServiceImpl implements IdentityService { + + @Autowired + private IdentityRepository identityRepository; + + + @Override + public List getAllIdentities() { + List identities = identityRepository.findAll(); + Collections.sort(identities, Comparator.comparing(Identity::getName, String.CASE_INSENSITIVE_ORDER)); + return identities; + } + + @Override + public Identity getIdentityById(Long id) { + Optional result = identityRepository.findById(id); + if (result.isEmpty()) { + return null; + } else { + return result.get(); + } + } + + @Override + public Identity saveIdentity(Identity identity) { + Identity newIdentity = identityRepository.save(identity); + identityRepository.flush(); + return newIdentity; + } +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/service/managment/IterationService.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/service/managment/IterationService.java new file mode 100644 index 0000000..f8c9f23 --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/service/managment/IterationService.java @@ -0,0 +1,33 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.service.managment; + +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.Iteration; + +import java.util.List; + +public interface IterationService { + + /** + * Method getting all iterations from database + * @return List of all iterations in database + */ + List getAllIterations(); + + /** + * Method saving iteration into database + * @param iteration Iteration tha will be safe + * @return Iteration saved in database + */ + Iteration saveIteration(Iteration iteration); + + /** + * Method for deleting iterations from database + * @param iterations List of iterations for deletion + */ + void deleteIterations(List iterations); + + /** + * Method for deleting iteration from database + * @param iteration Iteration for deletion + */ + void deleteIteration(Iteration iteration); +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/service/managment/IterationServiceImpl.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/service/managment/IterationServiceImpl.java new file mode 100644 index 0000000..12d793e --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/service/managment/IterationServiceImpl.java @@ -0,0 +1,45 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.service.managment; + +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.Iteration; +import cz.zcu.fav.kiv.antipatterndetectionapp.repository.managment.IterationRepository; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import javax.transaction.Transactional; +import java.util.Collections; +import java.util.Comparator; +import java.util.List; + +@Service +@Transactional +public class IterationServiceImpl implements IterationService { + + @Autowired + private IterationRepository iterationRepository; + + @Override + public List getAllIterations() { + List iterations = iterationRepository.findAll(); + Collections.sort(iterations, Comparator.comparing(Iteration::getName, String.CASE_INSENSITIVE_ORDER)); + return iterations; + } + + @Override + public Iteration saveIteration(Iteration iteration) { + Iteration newIteration = iterationRepository.save(iteration); + iterationRepository.flush(); + return newIteration; + } + + @Override + public void deleteIterations(List iterations) { + iterationRepository.deleteAll(iterations); + } + + @Override + public void deleteIteration(Iteration iteration) { + iterationRepository.delete(iteration); + } + + +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/service/managment/PersonService.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/service/managment/PersonService.java new file mode 100644 index 0000000..0d61212 --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/service/managment/PersonService.java @@ -0,0 +1,55 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.service.managment; + +import cz.zcu.fav.kiv.antipatterndetectionapp.model.Project; +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.Person; +import cz.zcu.fav.kiv.antipatterndetectionapp.v2.model.PersonDto; + +import java.util.List; + +public interface PersonService { + + /** + * Method obtaining all people sorted by name + * @return List of all people from database + */ + List getAllPeople(); + + /** + * Method obtaining person based on id + * @param id Identifier of person + * @return Person for given id or null + */ + Person getPersonById(Long id); + + /** + * Method saving person into database + * @param person Person for saving + * @return Saved person + */ + Person savePerson(Person person); + + /** + * Method for updating all relations with person + * from the old one to new one + * @param oldPersonId Identifier of obsolete person + * @param newPersonId Identifier of new person + */ + void updatePersonRelations(Long oldPersonId, Long newPersonId); + + /** + * Method for deleting person based on id + * @param id Identifier of person + */ + void deletePerson(Long id); + + /** + * Method for merging selected persons to the new or selected one + * personToMergeIn OR newName should be null + * @param project project persons are from + * @param personsToMerge list of the persons to be merged + * @param personToMergeIn person into whom others will be merged + * @param newName name of the new person + * @return true if the merge was successful + */ + boolean mergePersons(Project project, List personsToMerge, PersonDto personToMergeIn, String newName); +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/service/managment/PersonServiceImpl.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/service/managment/PersonServiceImpl.java new file mode 100644 index 0000000..7fdd2a5 --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/service/managment/PersonServiceImpl.java @@ -0,0 +1,97 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.service.managment; + +import cz.zcu.fav.kiv.antipatterndetectionapp.model.Project; +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.Person; +import cz.zcu.fav.kiv.antipatterndetectionapp.repository.managment.PersonRepository; +import cz.zcu.fav.kiv.antipatterndetectionapp.v2.model.PersonDto; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import javax.transaction.Transactional; +import java.util.Collections; +import java.util.Comparator; +import java.util.List; +import java.util.Optional; + +@Service +@Transactional +public class PersonServiceImpl implements PersonService { + + private final int MAX_INPUT_LENGTH = 50; + + @Autowired + private PersonRepository personRepository; + + @Override + public List getAllPeople() { + List people = personRepository.findAll(); + Collections.sort(people, Comparator.comparing(Person::getName, String.CASE_INSENSITIVE_ORDER)); + return people; + } + + @Override + public Person getPersonById(Long id) { + Optional result = personRepository.findById(id); + if (result.isEmpty()) { + return null; + } else { + return result.get(); + } + } + + @Override + public Person savePerson(Person person) { + Person newPerson = personRepository.save(person); + personRepository.flush(); + return newPerson; + } + + @Override + public void updatePersonRelations(Long oldPersonId, Long newPersonId) { + personRepository.updatePersonUnits(oldPersonId, newPersonId); + personRepository.updatePersonItems(oldPersonId, newPersonId); + personRepository.updatePersonConfigurationRelation(oldPersonId, newPersonId); + personRepository.updatePersonRole(oldPersonId, newPersonId); + personRepository.updatePersonIdentities(oldPersonId, newPersonId); + personRepository.updatePersonCompetencies(oldPersonId, newPersonId); + personRepository.updatePersonGroups(oldPersonId, newPersonId); + } + + @Override + public void deletePerson(Long id) { + personRepository.deleteById(id); + } + + public boolean mergePersons(Project project, List personsToMerge, PersonDto personToMergeIn, String newName) { + Person newPerson = null; + + if (newName == null) { + newPerson = getPersonById(personToMergeIn.getId()); + } + else if (personToMergeIn == null) { + if (newName.length() > MAX_INPUT_LENGTH) + newName = newName.substring(0, MAX_INPUT_LENGTH); + + newPerson = new Person(newName, project); + newPerson = savePerson(newPerson); + } + else { + return false; + } + + if (newPerson == null || project == null || personsToMerge == null) + return false; + + + for(PersonDto personDto : personsToMerge) { // Relation update for every selected person + if (personDto.getId().longValue() == newPerson.getId().longValue()) + continue; + + Person person = getPersonById(personDto.getId()); + updatePersonRelations(person.getId(), newPerson.getId()); + deletePerson(person.getId()); + } + + return true; + } +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/service/managment/PhaseService.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/service/managment/PhaseService.java new file mode 100644 index 0000000..24c2b03 --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/service/managment/PhaseService.java @@ -0,0 +1,33 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.service.managment; + +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.Phase; + +import java.util.List; + +public interface PhaseService { + + /** + * Method getting all phases from database + * @return List of all phases in database + */ + List getAllPhases(); + + /** + * Method saving phase into database + * @param phase Phase tha will be safe + * @return Phase saved in database + */ + Phase savePhase(Phase phase); + + /** + * Method for deleting phases from database + * @param phases List of phases for deletion + */ + void deletePhases(List phases); + + /** + * Method for deleting phase from database + * @param phase Phase for deletion + */ + void deletePhase(Phase phase); +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/service/managment/PhaseServiceImpl.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/service/managment/PhaseServiceImpl.java new file mode 100644 index 0000000..088c0c2 --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/service/managment/PhaseServiceImpl.java @@ -0,0 +1,43 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.service.managment; + +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.Phase; +import cz.zcu.fav.kiv.antipatterndetectionapp.repository.managment.PhaseRepository; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import javax.transaction.Transactional; +import java.util.Collections; +import java.util.Comparator; +import java.util.List; + +@Service +@Transactional +public class PhaseServiceImpl implements PhaseService { + + @Autowired + private PhaseRepository phaseRepository; + + @Override + public List getAllPhases() { + List phases = phaseRepository.findAll(); + Collections.sort(phases, Comparator.comparing(Phase::getName, String.CASE_INSENSITIVE_ORDER)); + return phases; + } + + @Override + public Phase savePhase(Phase phase) { + Phase newPhase = phaseRepository.save(phase); + //phaseRepository.flush(); + return newPhase; + } + + @Override + public void deletePhases(List phases) { + phaseRepository.deleteAll(phases); + } + + @Override + public void deletePhase(Phase phase) { + phaseRepository.delete(phase); + } +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/service/managment/ProjectInstanceService.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/service/managment/ProjectInstanceService.java new file mode 100644 index 0000000..451f9c3 --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/service/managment/ProjectInstanceService.java @@ -0,0 +1,14 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.service.managment; + +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.ProjectInstance; + +import java.util.List; + +public interface ProjectInstanceService { + + /** + * Method getting all project instances from database + * @return List of all project instances in database + */ + List getAllProjectInstances(); +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/service/managment/ProjectInstanceServiceImpl.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/service/managment/ProjectInstanceServiceImpl.java new file mode 100644 index 0000000..955563a --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/service/managment/ProjectInstanceServiceImpl.java @@ -0,0 +1,26 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.service.managment; + +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.ProjectInstance; +import cz.zcu.fav.kiv.antipatterndetectionapp.repository.managment.ProjectInstanceRepository; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import javax.transaction.Transactional; +import java.util.Collections; +import java.util.Comparator; +import java.util.List; + +@Service +@Transactional +public class ProjectInstanceServiceImpl implements ProjectInstanceService { + + @Autowired + private ProjectInstanceRepository projectInstanceRepository; + + @Override + public List getAllProjectInstances() { + List instances = projectInstanceRepository.findAll(); + Collections.sort(instances, Comparator.comparing(ProjectInstance::getName, String.CASE_INSENSITIVE_ORDER)); + return instances; + } +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/service/managment/Service.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/service/managment/Service.java new file mode 100644 index 0000000..d5b0254 --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/service/managment/Service.java @@ -0,0 +1,21 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.service.managment; + +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.interfaces.Classification; + +import java.util.List; + +public interface Service { + + /** + * Method getting all classes of enum type + * @return List of classifications + */ + List getAllClasses(); + + /** + * Method getting class by ID + * @param id ID of classification + * @return Classification with that ID + */ + Classification getClassById(Long id); +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/service/managment/TagService.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/service/managment/TagService.java new file mode 100644 index 0000000..032e1a6 --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/service/managment/TagService.java @@ -0,0 +1,21 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.service.managment; + +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.Tag; + +import java.util.List; + +public interface TagService { + + /** + * Method getting all tags from database + * @return List of all tags in database + */ + List getAllTags(); + + /** + * Method getting tag by ID + * @param id ID of tag + * @return Tag with that ID + */ + Tag getTagById(Long id); +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/service/managment/TagServiceImpl.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/service/managment/TagServiceImpl.java new file mode 100644 index 0000000..ddce625 --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/service/managment/TagServiceImpl.java @@ -0,0 +1,38 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.service.managment; + +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.Tag; +import cz.zcu.fav.kiv.antipatterndetectionapp.repository.managment.TagRepository; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import javax.transaction.Transactional; +import java.util.Collections; +import java.util.Comparator; +import java.util.List; +import java.util.Optional; + +@Service +@Transactional +public class TagServiceImpl implements TagService { + + @Autowired + private TagRepository tagRepository; + + + @Override + public List getAllTags() { + List tags = tagRepository.findAll(); + Collections.sort(tags, Comparator.comparing(Tag::getId)); + return tags; + } + + @Override + public Tag getTagById(Long id) { + Optional result = tagRepository.findById(id); + if (result.isEmpty()) { + return null; + } else { + return result.get(); + } + } +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/service/managment/WorkUnitService.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/service/managment/WorkUnitService.java new file mode 100644 index 0000000..8e1c3b8 --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/service/managment/WorkUnitService.java @@ -0,0 +1,21 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.service.managment; + +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.WorkUnit; + +import java.util.List; + +public interface WorkUnitService { + + /** + * Method getting all work units from database + * @return List of all work units in database + */ + List getAllProjects(); + + /** + * Method saving work unit into database + * @param workUnit WorkUnit tha will be safe + * @return WorkUnit saved in database + */ + WorkUnit saveWorkUnit(WorkUnit workUnit); +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/service/managment/WorkUnitServiceImpl.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/service/managment/WorkUnitServiceImpl.java new file mode 100644 index 0000000..910a215 --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/service/managment/WorkUnitServiceImpl.java @@ -0,0 +1,34 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.service.managment; + +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.WorkUnit; +import cz.zcu.fav.kiv.antipatterndetectionapp.repository.managment.WorkUnitRepository; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import javax.transaction.Transactional; +import java.util.Collections; +import java.util.Comparator; +import java.util.List; + +@Service +@Transactional +public class WorkUnitServiceImpl implements WorkUnitService { + + @Autowired + private WorkUnitRepository workUnitRepository; + + + @Override + public List getAllProjects() { + List workUnits = workUnitRepository.findAll(); + Collections.sort(workUnits, Comparator.comparing(WorkUnit::getId)); + return workUnits; + } + + @Override + public WorkUnit saveWorkUnit(WorkUnit workUnit) { + WorkUnit newWorkUnit = workUnitRepository.save(workUnit); + workUnitRepository.flush(); + return newWorkUnit; + } +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/service/managment/enums/EnumService.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/service/managment/enums/EnumService.java new file mode 100644 index 0000000..ea1711f --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/service/managment/enums/EnumService.java @@ -0,0 +1,20 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.service.managment.enums; + +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.interfaces.EnumType; + +public interface EnumService { + + /** + * Method getting enum by ID + * @param id ID of enum + * @return EnumType instance + */ + EnumType getEnumById(Long id); + + /** + * Method saving EnumType instance + * @param enumType Instance for save + * @return Saved instance of EnumType + */ + EnumType saveEnum(EnumType enumType); +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/service/managment/enums/PriorityClassificationService.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/service/managment/enums/PriorityClassificationService.java new file mode 100644 index 0000000..10d654e --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/service/managment/enums/PriorityClassificationService.java @@ -0,0 +1,11 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.service.managment.enums; + +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.enums.PriorityClassification; +import cz.zcu.fav.kiv.antipatterndetectionapp.service.managment.Service; + +import java.util.List; + +public interface PriorityClassificationService extends Service { + + List getAllPriorityClasses(); +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/service/managment/enums/PriorityClassificationServiceImpl.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/service/managment/enums/PriorityClassificationServiceImpl.java new file mode 100644 index 0000000..1bd382d --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/service/managment/enums/PriorityClassificationServiceImpl.java @@ -0,0 +1,39 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.service.managment.enums; + +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.enums.PriorityClassification; +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.interfaces.Classification; +import cz.zcu.fav.kiv.antipatterndetectionapp.repository.managment.enums.PriorityClassificationRepository; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import javax.transaction.Transactional; +import java.util.ArrayList; +import java.util.Collections; +import java.util.Comparator; +import java.util.List; + +@Service +@Transactional +public class PriorityClassificationServiceImpl implements PriorityClassificationService { + + @Autowired + private PriorityClassificationRepository priorityClassificationRepository; + + @Override + public List getAllClasses() { + List priorities = getAllPriorityClasses(); + return new ArrayList<>(priorities); + } + + @Override + public List getAllPriorityClasses() { + List priorities = priorityClassificationRepository.findAll(); + Collections.sort(priorities, Comparator.comparing(PriorityClassification::getId)); + return priorities; + } + + @Override + public Classification getClassById(Long id) { + return priorityClassificationRepository.getOne(id); + } +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/service/managment/enums/PriorityService.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/service/managment/enums/PriorityService.java new file mode 100644 index 0000000..7426d17 --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/service/managment/enums/PriorityService.java @@ -0,0 +1,10 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.service.managment.enums; + +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.enums.Priority; + +import java.util.List; + +public interface PriorityService extends EnumService { + + List getAllPriorities(); +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/service/managment/enums/PriorityServiceImpl.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/service/managment/enums/PriorityServiceImpl.java new file mode 100644 index 0000000..62c38ba --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/service/managment/enums/PriorityServiceImpl.java @@ -0,0 +1,40 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.service.managment.enums; + + +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.enums.Priority; +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.interfaces.EnumType; +import cz.zcu.fav.kiv.antipatterndetectionapp.repository.managment.enums.PriorityRepository; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import javax.transaction.Transactional; +import java.util.Collections; +import java.util.Comparator; +import java.util.List; + +@Service +@Transactional +public class PriorityServiceImpl implements PriorityService { + + @Autowired + private PriorityRepository priorityRepository; + + @Override + public List getAllPriorities() { + List priorities = priorityRepository.findAll(); + Collections.sort(priorities, Comparator.comparing(Priority::getName, String.CASE_INSENSITIVE_ORDER)); + return priorities; + } + + @Override + public EnumType getEnumById(Long id) { + return priorityRepository.getOne(id); + } + + @Override + public EnumType saveEnum(EnumType enumType) { + Priority newEnum = priorityRepository.save((Priority) enumType); + priorityRepository.flush(); + return newEnum; + } +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/service/managment/enums/RelationClassificationService.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/service/managment/enums/RelationClassificationService.java new file mode 100644 index 0000000..cde103a --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/service/managment/enums/RelationClassificationService.java @@ -0,0 +1,10 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.service.managment.enums; + +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.enums.RelationClassification; +import cz.zcu.fav.kiv.antipatterndetectionapp.service.managment.Service; + +import java.util.List; + +public interface RelationClassificationService extends Service { + List getAllRelationClasses(); +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/service/managment/enums/RelationClassificationServiceImpl.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/service/managment/enums/RelationClassificationServiceImpl.java new file mode 100644 index 0000000..bc31692 --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/service/managment/enums/RelationClassificationServiceImpl.java @@ -0,0 +1,40 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.service.managment.enums; + +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.enums.RelationClassification; +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.interfaces.Classification; +import cz.zcu.fav.kiv.antipatterndetectionapp.repository.managment.enums.RelationClassificationRepository; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import javax.transaction.Transactional; +import java.util.ArrayList; +import java.util.Collections; +import java.util.Comparator; +import java.util.List; + +@Service +@Transactional +public class RelationClassificationServiceImpl implements RelationClassificationService { + + @Autowired + private RelationClassificationRepository relationClassificationRepository; + + @Override + public List getAllClasses() { + List relations = getAllRelationClasses(); + Collections.sort(relations, Comparator.comparing(RelationClassification::getSuperClass, String.CASE_INSENSITIVE_ORDER)); + return new ArrayList<>(relations); + } + + @Override + public List getAllRelationClasses() { + List relations = relationClassificationRepository.findAll(); + Collections.sort(relations, Comparator.comparing(RelationClassification::getId)); + return relations; + } + + @Override + public Classification getClassById(Long id) { + return relationClassificationRepository.getOne(id); + } +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/service/managment/enums/RelationService.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/service/managment/enums/RelationService.java new file mode 100644 index 0000000..95a24b1 --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/service/managment/enums/RelationService.java @@ -0,0 +1,9 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.service.managment.enums; + +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.enums.Relation; + +import java.util.List; + +public interface RelationService extends EnumService { + List getAllRelations(); +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/service/managment/enums/RelationServiceImpl.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/service/managment/enums/RelationServiceImpl.java new file mode 100644 index 0000000..59915b5 --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/service/managment/enums/RelationServiceImpl.java @@ -0,0 +1,39 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.service.managment.enums; + +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.enums.Relation; +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.interfaces.EnumType; +import cz.zcu.fav.kiv.antipatterndetectionapp.repository.managment.enums.RelationRepository; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import javax.transaction.Transactional; +import java.util.Collections; +import java.util.Comparator; +import java.util.List; + +@Service +@Transactional +public class RelationServiceImpl implements RelationService { + + @Autowired + private RelationRepository relationRepository; + + @Override + public List getAllRelations() { + List relations = relationRepository.findAll(); + Collections.sort(relations, Comparator.comparing(Relation::getName, String.CASE_INSENSITIVE_ORDER)); + return relations; + } + + @Override + public EnumType getEnumById(Long id) { + return relationRepository.getOne(id); + } + + @Override + public EnumType saveEnum(EnumType enumType) { + Relation newEnum = relationRepository.save((Relation) enumType); + relationRepository.flush(); + return newEnum; + } +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/service/managment/enums/ResolutionClassificationService.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/service/managment/enums/ResolutionClassificationService.java new file mode 100644 index 0000000..69f410a --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/service/managment/enums/ResolutionClassificationService.java @@ -0,0 +1,10 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.service.managment.enums; + +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.enums.ResolutionClassification; +import cz.zcu.fav.kiv.antipatterndetectionapp.service.managment.Service; + +import java.util.List; + +public interface ResolutionClassificationService extends Service { + List getAllResolutionClasses(); +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/service/managment/enums/ResolutionClassificationServiceImpl.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/service/managment/enums/ResolutionClassificationServiceImpl.java new file mode 100644 index 0000000..60c4344 --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/service/managment/enums/ResolutionClassificationServiceImpl.java @@ -0,0 +1,39 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.service.managment.enums; + +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.enums.ResolutionClassification; +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.interfaces.Classification; +import cz.zcu.fav.kiv.antipatterndetectionapp.repository.managment.enums.ResolutionClassificationRepository; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import javax.transaction.Transactional; +import java.util.ArrayList; +import java.util.Collections; +import java.util.Comparator; +import java.util.List; + +@Service +@Transactional +public class ResolutionClassificationServiceImpl implements ResolutionClassificationService { + + @Autowired + private ResolutionClassificationRepository resolutionClassificationRepository; + + @Override + public List getAllClasses() { + List resolutions = getAllResolutionClasses(); + return new ArrayList<>(resolutions); + } + + @Override + public List getAllResolutionClasses() { + List resolutions = resolutionClassificationRepository.findAll(); + Collections.sort(resolutions, Comparator.comparing(ResolutionClassification::getId)); + return resolutions; + } + + @Override + public Classification getClassById(Long id) { + return resolutionClassificationRepository.getOne(id); + } +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/service/managment/enums/ResolutionService.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/service/managment/enums/ResolutionService.java new file mode 100644 index 0000000..8223789 --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/service/managment/enums/ResolutionService.java @@ -0,0 +1,9 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.service.managment.enums; + +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.enums.Resolution; + +import java.util.List; + +public interface ResolutionService extends EnumService { + List getAllResolutions(); +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/service/managment/enums/ResolutionServiceImpl.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/service/managment/enums/ResolutionServiceImpl.java new file mode 100644 index 0000000..f16da3d --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/service/managment/enums/ResolutionServiceImpl.java @@ -0,0 +1,39 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.service.managment.enums; + +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.enums.Resolution; +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.interfaces.EnumType; +import cz.zcu.fav.kiv.antipatterndetectionapp.repository.managment.enums.ResolutionRepository; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import javax.transaction.Transactional; +import java.util.Collections; +import java.util.Comparator; +import java.util.List; + +@Service +@Transactional +public class ResolutionServiceImpl implements ResolutionService { + + @Autowired + private ResolutionRepository resolutionRepository; + + @Override + public List getAllResolutions() { + List resolutions = resolutionRepository.findAll(); + Collections.sort(resolutions, Comparator.comparing(Resolution::getName, String.CASE_INSENSITIVE_ORDER)); + return resolutions; + } + + @Override + public EnumType getEnumById(Long id) { + return resolutionRepository.getOne(id); + } + + @Override + public EnumType saveEnum(EnumType enumType) { + Resolution newEnum = resolutionRepository.save((Resolution) enumType); + resolutionRepository.flush(); + return newEnum; + } +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/service/managment/enums/RoleClassificationService.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/service/managment/enums/RoleClassificationService.java new file mode 100644 index 0000000..b3a39f3 --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/service/managment/enums/RoleClassificationService.java @@ -0,0 +1,10 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.service.managment.enums; + +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.enums.RoleClassification; +import cz.zcu.fav.kiv.antipatterndetectionapp.service.managment.Service; + +import java.util.List; + +public interface RoleClassificationService extends Service { + List getAllRoleClasses(); +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/service/managment/enums/RoleClassificationServiceImpl.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/service/managment/enums/RoleClassificationServiceImpl.java new file mode 100644 index 0000000..21736b5 --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/service/managment/enums/RoleClassificationServiceImpl.java @@ -0,0 +1,39 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.service.managment.enums; + +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.enums.RoleClassification; +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.interfaces.Classification; +import cz.zcu.fav.kiv.antipatterndetectionapp.repository.managment.enums.RoleClassificationRepository; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import javax.transaction.Transactional; +import java.util.ArrayList; +import java.util.Collections; +import java.util.Comparator; +import java.util.List; + +@Service +@Transactional +public class RoleClassificationServiceImpl implements RoleClassificationService { + + @Autowired + private RoleClassificationRepository roleClassificationRepository; + + @Override + public List getAllClasses() { + List roles = getAllRoleClasses(); + return new ArrayList<>(roles); + } + + @Override + public List getAllRoleClasses() { + List roles = roleClassificationRepository.findAll(); + Collections.sort(roles, Comparator.comparing(RoleClassification::getId)); + return roles; + } + + @Override + public Classification getClassById(Long id) { + return roleClassificationRepository.getOne(id); + } +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/service/managment/enums/RoleService.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/service/managment/enums/RoleService.java new file mode 100644 index 0000000..0f7ce8c --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/service/managment/enums/RoleService.java @@ -0,0 +1,9 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.service.managment.enums; + +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.enums.Role; + +import java.util.List; + +public interface RoleService extends EnumService { + List getAllRoles(); +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/service/managment/enums/RoleServiceImpl.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/service/managment/enums/RoleServiceImpl.java new file mode 100644 index 0000000..6a0ae05 --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/service/managment/enums/RoleServiceImpl.java @@ -0,0 +1,39 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.service.managment.enums; + +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.enums.Role; +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.interfaces.EnumType; +import cz.zcu.fav.kiv.antipatterndetectionapp.repository.managment.enums.RoleRepository; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import javax.transaction.Transactional; +import java.util.Collections; +import java.util.Comparator; +import java.util.List; + +@Service +@Transactional +public class RoleServiceImpl implements RoleService { + + @Autowired + private RoleRepository roleRepository; + + @Override + public List getAllRoles() { + List roles = roleRepository.findAll(); + Collections.sort(roles, Comparator.comparing(Role::getName, String.CASE_INSENSITIVE_ORDER)); + return roles; + } + + @Override + public EnumType getEnumById(Long id) { + return roleRepository.getOne(id); + } + + @Override + public EnumType saveEnum(EnumType enumType) { + Role newEnum = roleRepository.save((Role) enumType); + roleRepository.flush(); + return newEnum; + } +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/service/managment/enums/SeverityClassificationService.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/service/managment/enums/SeverityClassificationService.java new file mode 100644 index 0000000..528163b --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/service/managment/enums/SeverityClassificationService.java @@ -0,0 +1,11 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.service.managment.enums; + +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.enums.SeverityClassification; +import cz.zcu.fav.kiv.antipatterndetectionapp.service.managment.Service; + +import java.util.List; + +public interface SeverityClassificationService extends Service { + + List getAllSeverityClasses(); +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/service/managment/enums/SeverityClassificationServiceImpl.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/service/managment/enums/SeverityClassificationServiceImpl.java new file mode 100644 index 0000000..94c4039 --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/service/managment/enums/SeverityClassificationServiceImpl.java @@ -0,0 +1,39 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.service.managment.enums; + +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.enums.SeverityClassification; +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.interfaces.Classification; +import cz.zcu.fav.kiv.antipatterndetectionapp.repository.managment.enums.SeverityClassificationRepository; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import javax.transaction.Transactional; +import java.util.ArrayList; +import java.util.Collections; +import java.util.Comparator; +import java.util.List; + +@Service +@Transactional +public class SeverityClassificationServiceImpl implements SeverityClassificationService{ + + @Autowired + private SeverityClassificationRepository severityClassificationRepository; + + @Override + public List getAllSeverityClasses() { + List severities = severityClassificationRepository.findAll(); + Collections.sort(severities, Comparator.comparing(SeverityClassification::getId)); + return severities; + } + + @Override + public List getAllClasses() { + List severities = getAllSeverityClasses(); + return new ArrayList<>(severities); + } + + @Override + public Classification getClassById(Long id) { + return severityClassificationRepository.getOne(id); + } +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/service/managment/enums/SeverityService.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/service/managment/enums/SeverityService.java new file mode 100644 index 0000000..2a3019a --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/service/managment/enums/SeverityService.java @@ -0,0 +1,10 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.service.managment.enums; + +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.enums.Severity; + +import java.util.List; + +public interface SeverityService extends EnumService { + + List getAllSeverities(); +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/service/managment/enums/SeverityServiceImpl.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/service/managment/enums/SeverityServiceImpl.java new file mode 100644 index 0000000..2fb3cb1 --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/service/managment/enums/SeverityServiceImpl.java @@ -0,0 +1,39 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.service.managment.enums; + +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.enums.Severity; +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.interfaces.EnumType; +import cz.zcu.fav.kiv.antipatterndetectionapp.repository.managment.enums.SeverityRepository; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import javax.transaction.Transactional; +import java.util.Collections; +import java.util.Comparator; +import java.util.List; + +@Service +@Transactional +public class SeverityServiceImpl implements SeverityService { + + @Autowired + private SeverityRepository severityRepository; + + @Override + public List getAllSeverities() { + List severities = severityRepository.findAll(); + Collections.sort(severities, Comparator.comparing(Severity::getName, String.CASE_INSENSITIVE_ORDER)); + return severities; + } + + @Override + public EnumType getEnumById(Long id) { + return severityRepository.getOne(id); + } + + @Override + public EnumType saveEnum(EnumType enumType) { + Severity newEnum = severityRepository.save((Severity) enumType); + severityRepository.flush(); + return newEnum; + } +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/service/managment/enums/StatusClassificationService.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/service/managment/enums/StatusClassificationService.java new file mode 100644 index 0000000..d2d2f8a --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/service/managment/enums/StatusClassificationService.java @@ -0,0 +1,10 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.service.managment.enums; + +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.enums.StatusClassification; +import cz.zcu.fav.kiv.antipatterndetectionapp.service.managment.Service; + +import java.util.List; + +public interface StatusClassificationService extends Service { + List getAllStatusClasses(); +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/service/managment/enums/StatusClassificationServiceImpl.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/service/managment/enums/StatusClassificationServiceImpl.java new file mode 100644 index 0000000..02ea1a2 --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/service/managment/enums/StatusClassificationServiceImpl.java @@ -0,0 +1,39 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.service.managment.enums; + +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.enums.StatusClassification; +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.interfaces.Classification; +import cz.zcu.fav.kiv.antipatterndetectionapp.repository.managment.enums.StatusClassificationRepository; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import javax.transaction.Transactional; +import java.util.ArrayList; +import java.util.Collections; +import java.util.Comparator; +import java.util.List; + +@Service +@Transactional +public class StatusClassificationServiceImpl implements StatusClassificationService { + + @Autowired + private StatusClassificationRepository statusClassificationRepository; + + @Override + public List getAllClasses() { + List statuses = getAllStatusClasses(); + return new ArrayList<>(statuses); + } + + @Override + public List getAllStatusClasses() { + List statuses = statusClassificationRepository.findAll(); + Collections.sort(statuses, Comparator.comparing(StatusClassification::getId)); + return statuses; + } + + @Override + public Classification getClassById(Long id) { + return statusClassificationRepository.getOne(id); + } +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/service/managment/enums/StatusService.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/service/managment/enums/StatusService.java new file mode 100644 index 0000000..8b5c4b3 --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/service/managment/enums/StatusService.java @@ -0,0 +1,9 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.service.managment.enums; + +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.enums.Status; + +import java.util.List; + +public interface StatusService extends EnumService { + List getAllStatuses(); +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/service/managment/enums/StatusServiceImpl.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/service/managment/enums/StatusServiceImpl.java new file mode 100644 index 0000000..f649277 --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/service/managment/enums/StatusServiceImpl.java @@ -0,0 +1,39 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.service.managment.enums; + +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.enums.Status; +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.interfaces.EnumType; +import cz.zcu.fav.kiv.antipatterndetectionapp.repository.managment.enums.StatusRepository; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import javax.transaction.Transactional; +import java.util.Collections; +import java.util.Comparator; +import java.util.List; + +@Service +@Transactional +public class StatusServiceImpl implements StatusService { + + @Autowired + private StatusRepository statusRepository; + + @Override + public List getAllStatuses() { + List statuses = statusRepository.findAll(); + Collections.sort(statuses, Comparator.comparing(Status::getName, String.CASE_INSENSITIVE_ORDER)); + return statuses; + } + + @Override + public EnumType getEnumById(Long id) { + return statusRepository.getOne(id); + } + + @Override + public EnumType saveEnum(EnumType enumType) { + Status newEnum = statusRepository.save((Status) enumType); + statusRepository.flush(); + return newEnum; + } +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/service/managment/enums/WuTypeClassificationService.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/service/managment/enums/WuTypeClassificationService.java new file mode 100644 index 0000000..ad74e47 --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/service/managment/enums/WuTypeClassificationService.java @@ -0,0 +1,10 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.service.managment.enums; + +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.enums.WuTypeClassification; +import cz.zcu.fav.kiv.antipatterndetectionapp.service.managment.Service; + +import java.util.List; + +public interface WuTypeClassificationService extends Service { + List getAllWuTypeClasses(); +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/service/managment/enums/WuTypeClassificationServiceImpl.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/service/managment/enums/WuTypeClassificationServiceImpl.java new file mode 100644 index 0000000..d5736b5 --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/service/managment/enums/WuTypeClassificationServiceImpl.java @@ -0,0 +1,39 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.service.managment.enums; + +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.enums.WuTypeClassification; +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.interfaces.Classification; +import cz.zcu.fav.kiv.antipatterndetectionapp.repository.managment.enums.WuTypeClassificationRepository; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import javax.transaction.Transactional; +import java.util.ArrayList; +import java.util.Collections; +import java.util.Comparator; +import java.util.List; + +@Service +@Transactional +public class WuTypeClassificationServiceImpl implements WuTypeClassificationService { + + @Autowired + private WuTypeClassificationRepository wuTypeClassificationRepository; + + @Override + public List getAllClasses() { + List wuTypes = getAllWuTypeClasses(); + return new ArrayList<>(wuTypes); + } + + @Override + public List getAllWuTypeClasses() { + List wuTypes = wuTypeClassificationRepository.findAll(); + Collections.sort(wuTypes, Comparator.comparing(WuTypeClassification::getId)); + return wuTypes; + } + + @Override + public Classification getClassById(Long id) { + return wuTypeClassificationRepository.getOne(id); + } +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/service/managment/enums/WuTypeService.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/service/managment/enums/WuTypeService.java new file mode 100644 index 0000000..073a180 --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/service/managment/enums/WuTypeService.java @@ -0,0 +1,12 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.service.managment.enums; + +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.enums.WuType; + +import java.util.List; + +public interface WuTypeService extends EnumService { + + List getAllWuTypes(); + + WuType getWuTypeById(Long id); +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/service/managment/enums/WuTypeServiceImpl.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/service/managment/enums/WuTypeServiceImpl.java new file mode 100644 index 0000000..53256cf --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/service/managment/enums/WuTypeServiceImpl.java @@ -0,0 +1,50 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.service.managment.enums; + +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.enums.WuType; +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.interfaces.EnumType; +import cz.zcu.fav.kiv.antipatterndetectionapp.repository.managment.enums.WuTypeRepository; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import javax.transaction.Transactional; +import java.util.Collections; +import java.util.Comparator; +import java.util.List; +import java.util.Optional; + +@Service +@Transactional +public class WuTypeServiceImpl implements WuTypeService { + + @Autowired + private WuTypeRepository wuTypeRepository; + + @Override + public List getAllWuTypes() { + List wuTypes = wuTypeRepository.findAll(); + Collections.sort(wuTypes, Comparator.comparing(WuType::getName, String.CASE_INSENSITIVE_ORDER)); + return wuTypes; + } + + @Override + public WuType getWuTypeById(Long id) { + Optional result = wuTypeRepository.findById(id); + if (result.isEmpty()) { + return null; + } else { + return result.get(); + } + } + + @Override + public EnumType getEnumById(Long id) { + return wuTypeRepository.getOne(id); + } + + @Override + public EnumType saveEnum(EnumType enumType) { + WuType newEnum = wuTypeRepository.save((WuType) enumType); + wuTypeRepository.flush(); + return newEnum; + } +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/spring/ApplicationProperties.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/spring/ApplicationProperties.java index 964591e..9db9c0a 100644 --- a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/spring/ApplicationProperties.java +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/spring/ApplicationProperties.java @@ -11,7 +11,7 @@ public class ApplicationProperties { private Environment environment; public String getDataSourceUrl () { - return environment.getProperty("spring.datasource.url"); + return environment.getProperty("spring.datasource.jdbc-url"); } public String getDataSourceUsername() { diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/utils/Utils.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/utils/Utils.java index 8f78bcb..332b744 100644 --- a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/utils/Utils.java +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/utils/Utils.java @@ -5,6 +5,7 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import javax.servlet.http.HttpSession; import java.sql.Date; import java.sql.ResultSet; import java.sql.ResultSetMetaData; @@ -14,7 +15,7 @@ import java.util.*; public class Utils { - + //[JT] pouzit, nebo zahodit private final Logger LOGGER = LoggerFactory.getLogger(Utils.class); /** @@ -107,6 +108,7 @@ public static List fillQueryWithSearchSubstrings(List queries, L * @return is valid */ public static boolean checkStringSubstrings(String substrings) { + //[JT] prepsat do regexu - tohle je zrudne if (substrings.startsWith(Constants.SUBSTRING_DELIMITER)) { return false; } @@ -121,4 +123,10 @@ public static boolean checkStringSubstrings(String substrings) { return true; } + //[JT] tohle taky hodit pryc - session neni validni + public static void sessionRecreate(HttpSession session) { + session.removeAttribute("activity"); + session.removeAttribute("categoryFilter"); + session.removeAttribute("typeFilter"); + } } diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/config/AuthDbConfig.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/config/AuthDbConfig.java new file mode 100644 index 0000000..ad5d1ad --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/config/AuthDbConfig.java @@ -0,0 +1,45 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.v2.config; + +import javax.persistence.EntityManagerFactory; +import javax.sql.DataSource; + +import org.springframework.beans.factory.annotation.Qualifier; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.boot.jdbc.DataSourceBuilder; +import org.springframework.boot.orm.jpa.EntityManagerFactoryBuilder; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.data.jpa.repository.config.EnableJpaRepositories; +import org.springframework.orm.jpa.JpaTransactionManager; +import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean; +import org.springframework.transaction.PlatformTransactionManager; +import org.springframework.transaction.annotation.EnableTransactionManagement; + +@Configuration +@EnableTransactionManagement +@EnableJpaRepositories( + entityManagerFactoryRef = "secondaryEntityManagerFactory", + transactionManagerRef = "secondaryTransactionManager", + basePackages = { "cz.zcu.fav.kiv.antipatterndetectionapp.v2.repository" } +) +public class AuthDbConfig { + + @Bean(name="secondaryDataSource") + @ConfigurationProperties(prefix="spring.second-datasource") + public DataSource secondaryDataSource() { + return DataSourceBuilder.create().build(); + } + + @Bean(name = "secondaryEntityManagerFactory") + public LocalContainerEntityManagerFactoryBean + secondaryEntityManagerFactory(EntityManagerFactoryBuilder builder, + @Qualifier("secondaryDataSource") DataSource secondaryDataSource) { + return builder.dataSource(secondaryDataSource).packages("cz.zcu.fav.kiv.antipatterndetectionapp.v2.model").build(); + } + + @Bean(name = "secondaryTransactionManager") + public PlatformTransactionManager secondaryTransactionManager( + @Qualifier("secondaryEntityManagerFactory") EntityManagerFactory secondaryEntityManagerFactory) { + return new JpaTransactionManager(secondaryEntityManagerFactory); + } +} \ No newline at end of file diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/config/ProjectsDbConfig.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/config/ProjectsDbConfig.java new file mode 100644 index 0000000..90df950 --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/config/ProjectsDbConfig.java @@ -0,0 +1,50 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.v2.config; + +import org.springframework.beans.factory.annotation.Qualifier; +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.boot.jdbc.DataSourceBuilder; +import org.springframework.boot.orm.jpa.EntityManagerFactoryBuilder; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.context.annotation.Primary; +import org.springframework.data.jpa.repository.config.EnableJpaRepositories; +import org.springframework.orm.jpa.JpaTransactionManager; +import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean; +import org.springframework.transaction.PlatformTransactionManager; +import org.springframework.transaction.annotation.EnableTransactionManagement; + +import javax.persistence.EntityManagerFactory; +import javax.sql.DataSource; + +@Configuration +@EnableTransactionManagement +@EnableJpaRepositories( + entityManagerFactoryRef = "primaryEntityManagerFactory", + transactionManagerRef = "primaryTransactionManager", + basePackages = {"cz.zcu.fav.kiv.antipatterndetectionapp.repository"} +) +public class ProjectsDbConfig { + + @Primary + @Bean(name = "primaryDataSource") + @ConfigurationProperties(prefix = "spring.datasource") + public DataSource primaryDataSource() { + return DataSourceBuilder.create().build(); + } + + @Primary + @Bean(name = "primaryEntityManagerFactory") + public LocalContainerEntityManagerFactoryBean + entityManagerFactory( + EntityManagerFactoryBuilder builder, + @Qualifier("primaryDataSource") DataSource dataSource) { + return builder.dataSource(dataSource).packages("cz.zcu.fav.kiv.antipatterndetectionapp.model").build(); + } + + @Primary + @Bean(name = "primaryTransactionManager") + public PlatformTransactionManager primaryTransactionManager( + @Qualifier("primaryEntityManagerFactory") EntityManagerFactory primaryEntityManagerFactory ) { + return new JpaTransactionManager(primaryEntityManagerFactory); + } +} \ No newline at end of file diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/config/SecurityBasics.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/config/SecurityBasics.java new file mode 100644 index 0000000..7b841be --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/config/SecurityBasics.java @@ -0,0 +1,13 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.v2.config; + +public class SecurityBasics { + + public static final String[] NO_AUTHORIZATION_NEEDED = new String[]{ + "/v2/user/register", + "/v2/user/login", + "/v2/user/refresh", + "/v2/user/logout", + "/v2/app/metadata/about" + }; + +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/controller/AboutPageController.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/controller/AboutPageController.java new file mode 100644 index 0000000..5557412 --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/controller/AboutPageController.java @@ -0,0 +1,55 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.v2.controller; + +import com.google.gson.Gson; +import cz.zcu.fav.kiv.antipatterndetectionapp.v2.model.AboutPageDto; +import cz.zcu.fav.kiv.antipatterndetectionapp.v2.model.Metadata; +import cz.zcu.fav.kiv.antipatterndetectionapp.v2.service.about.AboutPageService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import java.util.ArrayList; +import java.util.List; + +/** + * Controller for dealing with requests that wants to obtain specific data related to the project. + * Those data are mostly metadata to provide basic information, so there is no need for authentication at most cases. + * + * @author Petr Urban + * @since 2023-04-26 + * @version 1.0.0 + */ + +@RestController +@RequestMapping("/v2/app/metadata") +public class AboutPageController { + + @Autowired + private AboutPageService aboutPageService; + + private final String BASIC_INFO_COLUMN_KEY_VALUE = "basics"; + + @GetMapping("/about") + public ResponseEntity getAboutPageData() { + List data = aboutPageService.findAll(); + return ResponseEntity.status(data.size() > 0 ? HttpStatus.OK : HttpStatus.NO_CONTENT).body(new Gson().toJson(findAboutData(data))); + } + + private List findAboutData(List metadata) { + if (metadata == null || metadata.isEmpty()) { + return new ArrayList<>(); + } + + for (Metadata cursor : metadata) { + if (cursor.getAppDataKey().equals(BASIC_INFO_COLUMN_KEY_VALUE)) { + return new Gson().fromJson(cursor.getAppDataValue(), List.class); + } + } + + return new ArrayList<>(); + } + +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/controller/ConfigurationController.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/controller/ConfigurationController.java new file mode 100644 index 0000000..71b51ca --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/controller/ConfigurationController.java @@ -0,0 +1,124 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.v2.controller; + +import com.google.gson.Gson; +import cz.zcu.fav.kiv.antipatterndetectionapp.model.AntiPattern; +import cz.zcu.fav.kiv.antipatterndetectionapp.repository.AntiPatternRepository; +import cz.zcu.fav.kiv.antipatterndetectionapp.v2.dials.ConfigurationControllerStatusCodes; +import cz.zcu.fav.kiv.antipatterndetectionapp.v2.model.*; +import cz.zcu.fav.kiv.antipatterndetectionapp.v2.service.configuration.ConfigService; +import cz.zcu.fav.kiv.antipatterndetectionapp.v2.utils.JSONBuilder; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.*; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * @Author Jiri Trefil + * Controller providing API for configuration management + */ +@RestController +@RequestMapping("v2/configuration") +public class ConfigurationController { + @Autowired + private ConfigService configurationService; + + /** + * Endpoint for user to save his custom configuration + * @param userConfiguration Wrapper around http request - contains User and Configuration objects + * which point to the user uploading the configuration and the definition of his configuration + * @return ResponseEntity with json body appropriate status code indicating result of the operation + */ + @PostMapping(value="/upload_configuration") + public ResponseEntity uploadConfiguration(@RequestBody UserConfiguration userConfiguration) { + ConfigurationControllerStatusCodes returnCode = configurationService.addConfiguration(userConfiguration); + String message = returnCode.getLabel(); + Map json = new HashMap<>(); + json.put("message", message); + json.put("id", userConfiguration.getId()); + //ResponseEntity response = configurationService.addConfiguration(userConfiguration); + return new ResponseEntity<>(JSONBuilder.buildJSON(json),HttpStatus.valueOf(returnCode.getStatusCode())); + } + + /** + * Method updates existing configuration + * @param userConfiguration wrapper around client request for update - same as for inserting a new configuration + * @return ResponseEntity with status code and message informing client about result of the update operation + */ + @PutMapping(value="/update_configuration") + public ResponseEntity updateConfiguration(@RequestBody UserConfiguration userConfiguration) { + ConfigurationControllerStatusCodes returnCode = configurationService.updateConfiguration(userConfiguration); + String message = returnCode.getLabel(); + Map json = new HashMap<>(); + json.put("message",message); + //ResponseEntity response = configurationService.addConfiguration(userConfiguration); + return new ResponseEntity<>(JSONBuilder.buildJSON(json),HttpStatus.valueOf(returnCode.getStatusCode())); + } + + /** + * Endpoint for accessing anti-patterns and configurations + * @param userConfiguration Wrapper around client request body + * @return ResponseEntity with anti-pattern array and configuration array if everything went well + * ResponseEntity with error status code otherwise + */ + @PostMapping(value="/configuration") + public ResponseEntity getConfiguration(@RequestBody UserConfiguration userConfiguration) { + Map json = new HashMap<>(); + + Configuration config = this.configurationService.getConfiguration(userConfiguration.getUser().getName(), Integer.parseInt(userConfiguration.getId())); + + Map antiPatterns = this.configurationService.getAntiPatterns(); + + if (config == null) { + json.put("message", "no configurations found"); + return new ResponseEntity<>(JSONBuilder.buildJSON(json), HttpStatus.BAD_REQUEST); + } + + if (antiPatterns == null) { + json.put("message", "no anti patterns found"); + return new ResponseEntity<>(JSONBuilder.buildJSON(json), HttpStatus.NOT_FOUND); + } + + json.put("configuration", config.getConfig()); + json.put("antiPatterns", antiPatterns); + + return new ResponseEntity<>(new Gson().toJson(json),HttpStatus.OK); + + } + + /** + * Endpoint which retrieves configuration names and their ids + * @param user wrapper around username send in body of the request + * @return ResponseEntity with json body appropriate status code indicating result of the operation + */ + @PostMapping(value="/configuration_name") + public ResponseEntity getConfigurationNames(@RequestBody User user) { + Map json = new HashMap<>(); + List configuration = this.configurationService.getUserConfigurations(user); + //this can only happen if db server is offline + //or no default configuration exists in database + if(configuration == null) { + json.put("message", "internal sever error"); + return new ResponseEntity<>(JSONBuilder.buildJSON(json), HttpStatus.INTERNAL_SERVER_ERROR); + } + List configurationNames = new ArrayList<>(); + List configurationIds = new ArrayList<>(); + for(Configuration o : configuration){ + configurationNames.add(o.getIsDefault().equals("Y") ? o.getDefaultConfigName() : o.getConfigurationName()); + configurationIds.add(o.getId()); + } + + Map toJsonString = new HashMap<>(); + toJsonString.put("configuration_names", configurationNames); + toJsonString.put("configuration_ids", configurationIds); + + return new ResponseEntity<>(new Gson().toJson(toJsonString), HttpStatus.OK); + } + + + +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/controller/DetectController.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/controller/DetectController.java new file mode 100644 index 0000000..1a14d1a --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/controller/DetectController.java @@ -0,0 +1,55 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.v2.controller; + +import com.google.gson.Gson; +import cz.zcu.fav.kiv.antipatterndetectionapp.model.Query; +import cz.zcu.fav.kiv.antipatterndetectionapp.model.QueryResult; +import cz.zcu.fav.kiv.antipatterndetectionapp.v2.model.UserDetectionDto; +import cz.zcu.fav.kiv.antipatterndetectionapp.v2.service.detection.DetectionService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.*; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@RestController +@RequestMapping("v2/detect") +public class DetectController { + @Autowired + DetectionService detectionService; + + @GetMapping("/list") + public ResponseEntity getAntipatternsAndProjects() { + //List projects = projectService.getAllProjects(); + //List antiPatterns = antiPatternService.antiPatternsToModel(antiPatternService.getAllAntiPatterns()); + //List antiPatterns = antiPatternService.antiPatternsToModel(antiPatternService.getAllAntiPatterns()); + Query query = detectionService.getAllProjectsAndAntipatterns(); + return ResponseEntity.ok(new Gson().toJson(query)); + } + + @PostMapping("/analyze") + public ResponseEntity detect(@RequestBody UserDetectionDto detectionRequest) { + final String[] projects = detectionRequest.getSelectedProjects(); + if(projects == null ||projects.length == 0){ + return sendDetectionBadRequest("No projects provided in request"); + } + final String[] patterns = detectionRequest.getSelectedAntipatterns(); + if(patterns == null ||patterns.length == 0){ + return sendDetectionBadRequest("No antipatterns provided in request"); + } + List results = detectionService.analyze(detectionRequest); + //Map> currentConfiguration = configurationService.getConfigurationByName(); + return ResponseEntity.ok(new Gson().toJson(results)); + } + + + private ResponseEntity sendDetectionBadRequest(String message){ + Map error = new HashMap<>(); + error.put("message",message); + return new ResponseEntity<>(new Gson().toJson(error), HttpStatus.BAD_REQUEST); + } + + +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/controller/MainController.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/controller/MainController.java new file mode 100644 index 0000000..4b1da46 --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/controller/MainController.java @@ -0,0 +1,19 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.v2.controller; + +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@RestController +@RequestMapping("/v2") +public class MainController { + + @GetMapping(value = "/testCall", produces = "application/json") + public ResponseEntity TestController() { + String response = "{\"response\": \"successfully called\"}"; + + return ResponseEntity.ok().body(response); + } + +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/controller/UserController.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/controller/UserController.java new file mode 100644 index 0000000..b36d8d6 --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/controller/UserController.java @@ -0,0 +1,139 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.v2.controller; + +import cz.zcu.fav.kiv.antipatterndetectionapp.v2.dials.UserModelStatusCodes; +import cz.zcu.fav.kiv.antipatterndetectionapp.v2.model.User; +import cz.zcu.fav.kiv.antipatterndetectionapp.v2.service.oauth.OAuthService; +import cz.zcu.fav.kiv.antipatterndetectionapp.v2.service.user.UserService; +import cz.zcu.fav.kiv.antipatterndetectionapp.v2.utils.JSONBuilder; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpHeaders; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.security.authentication.AuthenticationManager; +import org.springframework.web.bind.annotation.*; + +import java.util.HashMap; + +/** + * Controller for providing basic support for user management + * + * @author Vaclav Hrabik, Jiri Trefil + * @version 1.0 + */ +@RestController +@RequestMapping("v2/user") +public class UserController { + + @Autowired + private AuthenticationManager authenticationManager; + + /** + * Service for work with user management + */ + @Autowired + private UserService userService; + + /** + * Service for login, logout and authenticate + */ + @Autowired + private OAuthService aOuthService; + + /** + * Method to register new user in the app + * + * @param user User who wants register in to the app + * @return message + */ + @PostMapping(value = "/register") + public ResponseEntity registerUser(@RequestBody User user) { + UserModelStatusCodes statusCode = userService.registerUser(user); + return getResponseEntity(statusCode, null); + } + + /** + * Method to login user in to the app + * + * @param user User who wants to login in to the app + * @return message + */ + @PostMapping(value = "/login") + public ResponseEntity loginUser(@RequestBody User user) { + UserModelStatusCodes statusCode = userService.verifyUser(user); +// ResponseEntity response = aOuthService.loginUser(user); + + String jwtToken = null; + if (statusCode.getStatusCode() == 200) { + ResponseEntity response = aOuthService.loginUser(user); + jwtToken = response.getBody(); + } + + return getResponseEntity(statusCode, jwtToken); + } + + /** + * Method to logout user from the app + * + * @param user User who wants logout from the app + * @return message after logout + */ + @PostMapping(value = "/logout") + public ResponseEntity logoutUser(@RequestHeader HttpHeaders headers, @RequestBody User user) { + final String authHeader = headers.getFirst(HttpHeaders.AUTHORIZATION); + if(authHeader == null || !authHeader.startsWith("Bearer")){ + //chyba + } + final String token = authHeader.substring(7); + user.setToken(token); + return aOuthService.logoutUser(user); + } + + @GetMapping("/refresh") + public ResponseEntity refreshToken(@RequestHeader HttpHeaders headers) { + final String authHeader = headers.getFirst(HttpHeaders.AUTHORIZATION); + if (authHeader == null || !authHeader.startsWith("Bearer")) { + return getResponseEntity(UserModelStatusCodes.USER_LOGIN_FAILED, UserModelStatusCodes.USER_LOGIN_FAILED.getLabel()); + } + final String token = authHeader.substring(7); + + String jwtToken = null; + ResponseEntity response = aOuthService.refreshToken(token); + + if (response.getStatusCode().is2xxSuccessful()) { + jwtToken = response.getBody(); + return getResponseEntity(UserModelStatusCodes.TOKEN_REFRESHED, jwtToken); + } + + return getResponseEntity(UserModelStatusCodes.TOKEN_EXPIRED, UserModelStatusCodes.TOKEN_EXPIRED.getLabel()); + + } + + /** + * Method to create response + * + * @param statusCode UserModelStatusCodes code + * @return ResponseEntity with code and msg + */ + private ResponseEntity getResponseEntity(UserModelStatusCodes statusCode, String jwtToken) { + String message = this.generateResponseObject(statusCode, jwtToken); + int code = statusCode.getStatusCode(); + return new ResponseEntity<>(message, HttpStatus.valueOf(code)); + } + + /** + * Method to create JSON object + * + * @param code UserModelStatusCodes code + * @return String that represents JSON object + */ + private String generateResponseObject(UserModelStatusCodes code, String jwtToken) { + HashMap json = new HashMap<>(); + json.put("message", code.getLabel()); + if (jwtToken != null) { + json.put("jwtToken", jwtToken); + } + return JSONBuilder.buildJSON(json); + } + + +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/controller/management/ActivityController.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/controller/management/ActivityController.java new file mode 100644 index 0000000..fa388b2 --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/controller/management/ActivityController.java @@ -0,0 +1,49 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.v2.controller.management; + +import com.google.gson.Gson; +import cz.zcu.fav.kiv.antipatterndetectionapp.Constants; +import cz.zcu.fav.kiv.antipatterndetectionapp.model.Project; +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.Activity; +import cz.zcu.fav.kiv.antipatterndetectionapp.service.ProjectService; +import cz.zcu.fav.kiv.antipatterndetectionapp.utils.Utils; +import cz.zcu.fav.kiv.antipatterndetectionapp.v2.model.ActivityDto; +import cz.zcu.fav.kiv.antipatterndetectionapp.v2.model.ProjectDto; +import cz.zcu.fav.kiv.antipatterndetectionapp.v2.service.activity.ActivityService; +import cz.zcu.fav.kiv.antipatterndetectionapp.v2.utils.converters.ActivityToDto; +import cz.zcu.fav.kiv.antipatterndetectionapp.v2.utils.converters.ClassToDto; +import cz.zcu.fav.kiv.antipatterndetectionapp.v2.utils.converters.ProjectToDto; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import java.util.List; +import java.util.Map; + +@RestController +@RequestMapping("v2/management") +public class ActivityController { + + @Autowired + ActivityService activityService; + + //"/v2/management/activity_list" + @GetMapping("/activity_list") + public ResponseEntity getProjectsList(@RequestParam Long projectId) { + + //ProjectToDto projectToDto = new ProjectToDto(); + //List projects = projectToDto.convert(projectService.getAllProjects()); + List projectActivities = activityService.fetchAllProjectActivities(projectId); + if(projectActivities == null) { + return new ResponseEntity<>(HttpStatus.NOT_FOUND); + } + ClassToDto mapper = new ActivityToDto(); + List activityDto = mapper.convert(projectActivities); + + return ResponseEntity.status(HttpStatus.OK).body(new Gson().toJson(activityDto )); + } + +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/controller/management/CategoryController.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/controller/management/CategoryController.java new file mode 100644 index 0000000..1c2ae95 --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/controller/management/CategoryController.java @@ -0,0 +1,39 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.v2.controller.management; + +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.Category; +import cz.zcu.fav.kiv.antipatterndetectionapp.v2.model.AdditionalInformationDto; +import cz.zcu.fav.kiv.antipatterndetectionapp.v2.model.CategoryChangeRequest; +import cz.zcu.fav.kiv.antipatterndetectionapp.v2.model.CategoryDto; +import cz.zcu.fav.kiv.antipatterndetectionapp.v2.model.GeneralResponseDto; +import cz.zcu.fav.kiv.antipatterndetectionapp.v2.service.management.category.ICategories; +import lombok.RequiredArgsConstructor; +import org.springframework.http.ResponseEntity; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; + +import java.util.List; +import java.util.Map; + +/** + * This class contains all endpoints connected to Categories + */ +@Controller +@RequiredArgsConstructor +@RequestMapping("v2/management") +public class CategoryController { + + private final ICategories categories; + + @PostMapping("/getCategories") + public ResponseEntity>> getCategories(@RequestBody Map requestData) { + return categories.findCategoriesForProject(requestData.get("projectId")); + } + + @PostMapping("/changeCategory") + public ResponseEntity>> changeCategory(@RequestBody CategoryChangeRequest categoryChangeRequest) { + return categories.handleCategoryChangeRequest(categoryChangeRequest); + } +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/controller/management/IterationAndPhasesController.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/controller/management/IterationAndPhasesController.java new file mode 100644 index 0000000..6342919 --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/controller/management/IterationAndPhasesController.java @@ -0,0 +1,63 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.v2.controller.management; + + +import cz.zcu.fav.kiv.antipatterndetectionapp.model.Project; +import cz.zcu.fav.kiv.antipatterndetectionapp.service.ProjectService; +import cz.zcu.fav.kiv.antipatterndetectionapp.v2.service.managment.IterationsAndPhasesService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.*; + +import java.util.*; + +/** + * This class contains all endpoints of management/persons + */ +@Controller +@RequestMapping("v2/management") +public class IterationAndPhasesController { + + @Autowired + private IterationsAndPhasesService iterationsAndPhasesService; + + @Autowired + private ProjectService projectService; + + @GetMapping("/segment-iteration-phase") + public ResponseEntity getIterationAndPhasesFromProject(@RequestParam Map requestData) { + long ProjectId = Long.parseLong(requestData.get("projectId").toString()); + + Project project = projectService.getProjectById(ProjectId); + + if (project == null) { + return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("Project not found."); + } + + return iterationsAndPhasesService.getIterationAndPhases(project); + } + + @PostMapping("/changeIteration") + public ResponseEntity> changeIteration(@RequestBody Map requestData) { + if (requestData.get("Ids").length == 0) { + Map json = new HashMap<>(); + json.put("errormessage", "No Iterations send."); + return ResponseEntity.status(HttpStatus.BAD_REQUEST).body(json); + } + + return iterationsAndPhasesService.changeToPhase(requestData.get("Ids")); + } + + @PostMapping("/changePhase") + public ResponseEntity> changePhase(@RequestBody Map requestData) { + if (requestData.get("Ids").length == 0) { + Map json = new HashMap<>(); + json.put("errormessage", "No Phases send."); + return ResponseEntity.status(HttpStatus.BAD_REQUEST).body(json); + } + + return iterationsAndPhasesService.changeToIteration(requestData.get("Ids")); + } + +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/controller/management/PersonController.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/controller/management/PersonController.java new file mode 100644 index 0000000..f868328 --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/controller/management/PersonController.java @@ -0,0 +1,75 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.v2.controller.management; + +import com.fasterxml.jackson.databind.ObjectMapper; +import cz.zcu.fav.kiv.antipatterndetectionapp.model.Project; +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.Person; +import cz.zcu.fav.kiv.antipatterndetectionapp.service.ProjectService; +import cz.zcu.fav.kiv.antipatterndetectionapp.service.managment.PersonService; +import cz.zcu.fav.kiv.antipatterndetectionapp.v2.model.PersonDto; +import cz.zcu.fav.kiv.antipatterndetectionapp.v2.model.PersonMergeRequest; +import cz.zcu.fav.kiv.antipatterndetectionapp.v2.utils.converters.PersonToDto; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; + +import java.util.Collections; +import java.util.Comparator; +import java.util.List; +import java.util.Map; + +/** + * This class contains all endpoints of management/persons + */ +@Controller +@RequestMapping("v2/management") +public class PersonController { + + @Autowired + private ProjectService projectService; + + @Autowired + private PersonService personService; + + @PostMapping("/personsFromProject") + public ResponseEntity getPersonsFromProject(@RequestBody Map requestData) { + long ProjectId = Long.parseLong(requestData.get("projectId").toString()); + ObjectMapper objectMapper = new ObjectMapper(); + + Project project = projectService.getProjectById(ProjectId); + + if (project == null) { + return ResponseEntity.status(HttpStatus.NOT_FOUND).body("Project not found"); + } + List persons = project.getPeople(); + List personDtos = new PersonToDto().convert(persons); + Collections.sort(personDtos, Comparator.comparing(PersonDto::getName, String.CASE_INSENSITIVE_ORDER)); + + try { + String json = objectMapper.writeValueAsString(personDtos); + return ResponseEntity.status(persons != null ? HttpStatus.OK : HttpStatus.NO_CONTENT).body(json); + } catch (Exception e) { + e.printStackTrace(); + return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("Failed to serialize data to JSON"); + } + } + + @PostMapping("/mergePersons") + public ResponseEntity mergeToSelected(@RequestBody PersonMergeRequest mergeRequest) { + long projectId = mergeRequest.getProjectId(); + Project personProject = projectService.getProjectById(projectId); + + List personsToMerge = mergeRequest.getPersons(); + PersonDto personToMergeIn = mergeRequest.getPerson(); + String newName = mergeRequest.getNewPersonName(); + + if (personService.mergePersons(personProject, personsToMerge, personToMergeIn, newName)) { + return ResponseEntity.status(HttpStatus.OK).body("Persons successfully merged"); + } + return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("Persons merge failed"); + } +} + diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/controller/management/ProjectController.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/controller/management/ProjectController.java new file mode 100644 index 0000000..f848c70 --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/controller/management/ProjectController.java @@ -0,0 +1,81 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.v2.controller.management; + +import com.fasterxml.jackson.core.JsonProcessingException; +import com.google.gson.Gson; +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.types.Node; +import cz.zcu.fav.kiv.antipatterndetectionapp.service.ProjectService; +import cz.zcu.fav.kiv.antipatterndetectionapp.v2.model.ProjectDto; +import cz.zcu.fav.kiv.antipatterndetectionapp.v2.utils.JSONBuilder; +import cz.zcu.fav.kiv.antipatterndetectionapp.v2.utils.converters.ProjectToDto; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import com.fasterxml.jackson.databind.ObjectMapper; + +import java.util.*; + + +/** + * This class contains all endpoints connected to Projects + */ +@Controller +@RequestMapping("v2/management") +public class ProjectController { + + @Autowired + private ProjectService projectService; + + @GetMapping("/projectsList") + public ResponseEntity getProjectsList() { + ProjectToDto projectToDto = new ProjectToDto(); + List projects = projectToDto.convert(projectService.getAllProjects()); + return ResponseEntity.status(projects.size() > 0 ? HttpStatus.OK : HttpStatus.NO_CONTENT).body(new Gson().toJson(projects)); + } + + @GetMapping("/projectsHierarchy") + public ResponseEntity getProjectsHierarchy() { + ProjectToDto projectToDto = new ProjectToDto(); + List parents = new ArrayList<>(); + List parentProjects = projectToDto.convert(projectService.getParentProjects()); + for(ProjectDto parentProject : parentProjects) { + Node n = new Node(); + n.project = parentProject; + n.children = new ArrayList<>(); + parents.add(n); + } + + for(Node n : parents) { + n.children = projectService.calculate(n.project); + } + + return ResponseEntity.status(parents.size() > 0 ? HttpStatus.OK : HttpStatus.NO_CONTENT).body(new Gson().toJson(parents)); + } + + @PostMapping("/saveProjects") + public ResponseEntity saveProjects(@RequestBody Map requestData) throws JsonProcessingException { + ObjectMapper objectMapper = new ObjectMapper(); + + String nodesString = objectMapper.writeValueAsString(requestData.get("projects")); + Node[] nodes = objectMapper.readValue(nodesString, Node[].class); + + Map json = new HashMap<>(); + + if(projectService.saveProjectsStructure(Arrays.asList(nodes), null)) { + json.put("message", "Project data saved successfully."); + return new ResponseEntity<>(JSONBuilder.buildJSON(json), HttpStatus.OK); + } + else { + json.put("message", "Project data save failed."); + return new ResponseEntity<>(JSONBuilder.buildJSON(json), HttpStatus.INTERNAL_SERVER_ERROR); + + } + } + + +} + diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/controller/management/WorkUnitController.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/controller/management/WorkUnitController.java new file mode 100644 index 0000000..c6bc7a2 --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/controller/management/WorkUnitController.java @@ -0,0 +1,66 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.v2.controller.management; + +import com.google.gson.Gson; +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.Category; +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.WorkUnit; +import cz.zcu.fav.kiv.antipatterndetectionapp.v2.model.SelectedWorkUnitsDto; +import cz.zcu.fav.kiv.antipatterndetectionapp.v2.model.WorkUnitDto; +import cz.zcu.fav.kiv.antipatterndetectionapp.v2.service.workUnit.WorkUnitServiceV2; +import cz.zcu.fav.kiv.antipatterndetectionapp.v2.utils.converters.ClassToDto; +import cz.zcu.fav.kiv.antipatterndetectionapp.v2.utils.converters.WorkUnitToDto; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Nullable; +import javax.persistence.criteria.CriteriaBuilder; +import java.util.*; + +@RequestMapping("v2/management") +@Controller +public class WorkUnitController { + @Autowired + WorkUnitServiceV2 workUnitService; + + @GetMapping("/activity_work_units") + public ResponseEntity getActivityWorkUnits(Long projectId, @Nullable @RequestParam String category, @Nullable @RequestParam List type) { + if(projectId == null) { + return new ResponseEntity<>(HttpStatus.BAD_REQUEST); + } + List units = this.workUnitService.fetchProjectWorkUnits(projectId, category, type); + //jde optimalizovat - neni cas + List workUnitCategories = this.workUnitService.fetchProjectWorkUnitCategories(projectId); + List workUnitTypes = this.workUnitService.fetchProjectWorkUnitTypes(projectId); + + ClassToDto mapper = new WorkUnitToDto(); + List dto = mapper.convert(units); + Map data = new HashMap<>(); + data.put("units", dto); + data.put("unit_distinct_categories", workUnitCategories); + data.put("unit_distinct_types", workUnitTypes); + + return ResponseEntity.ok(new Gson().toJson(data)); + } + + @PutMapping("/activity_work_units") + public ResponseEntity updateActivityWorkUnits(@RequestBody SelectedWorkUnitsDto selectedWorkUnitsRequest) { + if(selectedWorkUnitsRequest == null) { + return new ResponseEntity<>(HttpStatus.BAD_REQUEST); + } + long activityId = selectedWorkUnitsRequest.getActivityId(); + List wuIds = selectedWorkUnitsRequest.getWuIds(); + boolean updated = this.workUnitService.updateWorkUnitsActivity(activityId, wuIds); + if(!updated) { + return new ResponseEntity<>(HttpStatus.INTERNAL_SERVER_ERROR); + } + + return new ResponseEntity<>(HttpStatus.OK); + } + + + + + +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/dials/ConfigurationControllerStatusCodes.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/dials/ConfigurationControllerStatusCodes.java new file mode 100644 index 0000000..912d26c --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/dials/ConfigurationControllerStatusCodes.java @@ -0,0 +1,42 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.v2.dials; + +/** + * enum codes for configuration service + * this enum is used by configuration controller for the purpose of building response entities + */ +public enum ConfigurationControllerStatusCodes { + + EMPTY_CONFIGURATION_DEFINITION("No configuration definition provided",400), + EMPTY_CONFIGURATION_NAME("No configuration name provided",400), + + CONFIGURATION_IS_DEFAULT("Default configurations can not be changed", 400), + + USER_DONT_HAVE_RIGHTS_TO_CHANGE_CONFIGURATION("You don't have rights to change configuration", 403 ), + + INSERT_FAILED("Failed to save configuration",500), + + INSERT_SUCCESSFUL("Configuration saved",201), + UPDATE_SUCCESSFUL("Configuration updated",200), + + CONFIGURATION_PAIRING_EXISTS("Configuration already exists in your collection",400), + CONFIGURATION_PAIRING_CREATED("Configuration added to collection",200); + + + + + private final String label; + private final int statusCode; + + ConfigurationControllerStatusCodes(String s, int i) { + this.label = s; + this.statusCode = i; + } + + public int getStatusCode(){ + return this.statusCode; + } + public String getLabel(){ + return this.label; + } + +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/dials/UserModelStatusCodes.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/dials/UserModelStatusCodes.java new file mode 100644 index 0000000..3047949 --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/dials/UserModelStatusCodes.java @@ -0,0 +1,33 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.v2.dials; + +/** + * Enum for status codes + */ +public enum UserModelStatusCodes { + INVALID_USER_ARGUMENTS("Invalid user arguments for registration",400), + USER_EXISTS("User exists",400), + HASH_FAILED("Error occurred while creating user",500), + USER_CREATED("User successfully created",201), + USER_LOGGED_IN("User logged in successfully",200), + USER_LOGIN_FAILED("User login failed",401), + USER_CREATION_FAILED("Error occurred while creating user",503), + USER_LOGGED_OUT("User logged out.",200), + TOKEN_REFRESHED("User token refreshed.",200), + TOKEN_EXPIRED("User token is expired.",401); + + private final String label; + private final int statusCode; + + UserModelStatusCodes(String s, int i) { + this.label = s; + this.statusCode = i; + } + + public int getStatusCode(){ + return this.statusCode; + } + public String getLabel(){ + return this.label; + } + +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/httpErrorHandler/CustomErrorHandler.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/httpErrorHandler/CustomErrorHandler.java new file mode 100644 index 0000000..933d3ec --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/httpErrorHandler/CustomErrorHandler.java @@ -0,0 +1,40 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.v2.httpErrorHandler; + +import org.springframework.http.HttpStatus; +import org.springframework.http.client.ClientHttpResponse; +import org.springframework.util.StreamUtils; +import org.springframework.web.client.DefaultResponseErrorHandler; +import org.springframework.web.client.HttpClientErrorException; + +import java.io.IOException; +import java.io.InputStream; +import java.nio.charset.StandardCharsets; + +/** + * @author Jiri Trefil + * Custom HTTP error handler for RestTemplate class + * + */ +public class CustomErrorHandler extends DefaultResponseErrorHandler { + /** + * + * Override default custom behavior of Response Handler to be able to read body of error responses + * because default error handle can only parse body of generic errors. + * @param response Http response containing error code + * @throws IOException if file descriptor (socket) is no longer valid in the response + */ + @Override + public void handleError(ClientHttpResponse response) throws IOException { + if (response.getStatusCode() == HttpStatus.UNAUTHORIZED) { + final InputStream inputStream = response.getBody(); + byte[] responseBody = inputStream.readAllBytes(); + inputStream.close(); + //String responseBody = StreamUtils.copyToString(response.getBody(),StandardCharsets.UTF_8); + throw new HttpClientErrorException(response.getStatusCode(),response.getStatusText(),responseBody,StandardCharsets.UTF_8); + } else { + super.handleError(response); + } + } + + +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/httpExceptions/CustomExceptionHandler.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/httpExceptions/CustomExceptionHandler.java new file mode 100644 index 0000000..a5a1319 --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/httpExceptions/CustomExceptionHandler.java @@ -0,0 +1,17 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.v2.httpExceptions; + +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.ControllerAdvice; +import org.springframework.web.bind.annotation.ExceptionHandler; +import org.springframework.web.client.HttpClientErrorException; + +@ControllerAdvice +public class CustomExceptionHandler { + + @ExceptionHandler(HttpClientErrorException.Unauthorized.class) + public ResponseEntity handleUnauthorizedException(HttpClientErrorException.Unauthorized ex) { + return ResponseEntity.status(HttpStatus.UNAUTHORIZED).body(ex.getResponseBodyAsString()); + } + +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/model/AboutPageDto.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/model/AboutPageDto.java new file mode 100644 index 0000000..c29a957 --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/model/AboutPageDto.java @@ -0,0 +1,44 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.v2.model; + +import java.util.List; + +/** + * + * Dto for deserialization of the obtained data from the dbo.app_metadata table, respectively for the "basics" key value + * + * @author Petr Urban + * @since 2023-04-26 + * @version 1.0.0 + */ +public class AboutPageDto { + + private int version; + + private List authors; + + private String description; + + public int getVersion() { + return version; + } + + public void setVersion(int version) { + this.version = version; + } + + public List getAuthors() { + return authors; + } + + public void setAuthors(List authors) { + this.authors = authors; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/model/ActivityDto.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/model/ActivityDto.java new file mode 100644 index 0000000..22b1ae1 --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/model/ActivityDto.java @@ -0,0 +1,25 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.v2.model; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Date; +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class ActivityDto { + + private String name; + private String description; + private long externalId; + private Date startDate; + private Date endDate; + private long id; + + + public static ActivityDto.ActivityDtoBuilder builder() {return new ActivityDto.ActivityDtoBuilder();} + +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/model/AdditionalInformationDto.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/model/AdditionalInformationDto.java new file mode 100644 index 0000000..d462f2d --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/model/AdditionalInformationDto.java @@ -0,0 +1,23 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.v2.model; + +import lombok.Data; +import lombok.NonNull; + +import java.util.HashMap; +import java.util.Map; + +@Data +public class AdditionalInformationDto { + + Map additionalFields; + + public AdditionalInformationDto() { + this.additionalFields = new HashMap<>(); + } + + public void addIntoCollection(@NonNull String key, + @NonNull T value) { + this.additionalFields.putIfAbsent(key, value); + } + +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/model/AntiPatternDto.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/model/AntiPatternDto.java new file mode 100644 index 0000000..60f5df4 --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/model/AntiPatternDto.java @@ -0,0 +1,25 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.v2.model; + +import java.util.List; + +public class AntiPatternDto { + + private String antiPattern; + private List thresholds; + + public String getAntiPattern() { + return antiPattern; + } + + public void setAntiPattern(String antiPattern) { + this.antiPattern = antiPattern; + } + + public List getThresholds() { + return thresholds; + } + + public void setThresholds(List thresholds) { + this.thresholds = thresholds; + } +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/model/CategoryChangeRequest.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/model/CategoryChangeRequest.java new file mode 100644 index 0000000..5ec136f --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/model/CategoryChangeRequest.java @@ -0,0 +1,36 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.v2.model; + +import java.util.List; + +public class CategoryChangeRequest { + + private List categories; + + private Integer submitType; + + private long projectId; + + public List getCategories() { + return categories; + } + + public void setCategories(List categories) { + this.categories = categories; + } + + public Integer getSubmitType() { + return submitType; + } + + public void setSubmitType(Integer submitType) { + this.submitType = submitType; + } + + public long getProjectId() { + return projectId; + } + + public void setProjectId(long projectId) { + this.projectId = projectId; + } +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/model/CategoryDto.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/model/CategoryDto.java new file mode 100644 index 0000000..2e1efe7 --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/model/CategoryDto.java @@ -0,0 +1,25 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.v2.model; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class CategoryDto { + + private Long id; + + private String name; + + private String description; + + public static CategoryDtoBuilder builder() { return new CategoryDtoBuilder(); } + + public Long getId() { + return id; + } +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/model/Configuration.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/model/Configuration.java new file mode 100644 index 0000000..a9c0b77 --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/model/Configuration.java @@ -0,0 +1,94 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.v2.model; + +import javax.persistence.*; + +@Entity +@Table(name="configurations") +public class Configuration { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private int id; + //configuration json file + private String config; + //hash of the configuration so users cant upload duplicates + private String configHash; + // 'Y' if the configuration is accessible to everyone, 'N' if its user defined + private String isDefault; + // name of the configuration + + private String defaultConfigName; + + @Transient + private String configurationName; + + public Configuration(){} + + public Configuration(String config, String configHash, String isDefault, String configurationName, String defaultConfigName) { + this.config = config; + this.configHash = configHash; + this.isDefault = isDefault; + this.configurationName = configurationName; + this.defaultConfigName = defaultConfigName; + } + + public Configuration(int id){ + this.id = id; + } + + public Configuration(String config) { + this.config = config; + } + + public Configuration(String config, String isDefault, String configurationName, String defaultConfigName) { + this.config = config; + this.configHash = null; + this.isDefault = isDefault; + this.configurationName = configurationName; + this.defaultConfigName = defaultConfigName; + } + + public int getId() { + return id; + } + + public String getConfig() { + return config; + } + + public String getConfigHash() { + return configHash; + } + + public String getIsDefault() { + return isDefault; + } + + public String getDefaultConfigName() { + return defaultConfigName; + } + + public void setDefaultConfigName(String defaultConfigName) { + this.defaultConfigName = defaultConfigName; + } + + public void setHash(String hash){ + this.configHash = hash; + } + + public void setConfigurationName(String configurationName) { + this.configurationName = configurationName; + } + + public String getConfigurationName() { + return configurationName; + } + + @Override + public String toString(){ + return this.config; + } + + + + +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/model/ConfigurationDto.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/model/ConfigurationDto.java new file mode 100644 index 0000000..a836c6f --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/model/ConfigurationDto.java @@ -0,0 +1,15 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.v2.model; + +import java.util.List; + +public class ConfigurationDto { + private List configuration; + + public List getConfiguration() { + return configuration; + } + + public void setConfiguration(List configuration) { + this.configuration = configuration; + } +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/model/GeneralResponseDto.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/model/GeneralResponseDto.java new file mode 100644 index 0000000..28d036d --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/model/GeneralResponseDto.java @@ -0,0 +1,18 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.v2.model; + +import lombok.Builder; +import lombok.Data; + +import java.util.List; + +@Data +@Builder +public class GeneralResponseDto { + private String message; + private List responseBody; + private S additionalInformation; + public static GeneralResponseDtoBuilder builder() { + return new GeneralResponseDtoBuilder(); + } + +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/model/IdentityDto.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/model/IdentityDto.java new file mode 100644 index 0000000..2f904eb --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/model/IdentityDto.java @@ -0,0 +1,23 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.v2.model; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class IdentityDto { + + private Long id; + private String name; + + private String description; + + private String email; + + + public static IdentityDtoBuilder builder() {return new IdentityDtoBuilder();} +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/model/IterationAndPhasesDto.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/model/IterationAndPhasesDto.java new file mode 100644 index 0000000..6cb1f21 --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/model/IterationAndPhasesDto.java @@ -0,0 +1,21 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.v2.model; + +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.Iteration; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class IterationAndPhasesDto { + + private List iterationDtos; + private List phaseDtos; + + public static IterationAndPhasesDtoBuilder builder() {return new IterationAndPhasesDtoBuilder();} +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/model/IterationDto.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/model/IterationDto.java new file mode 100644 index 0000000..392b56d --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/model/IterationDto.java @@ -0,0 +1,20 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.v2.model; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class IterationDto { + + private long id; + private String externalId; + private String name; + private String description; + + public static IterationDtoBuilder builder() {return new IterationDtoBuilder();} +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/model/Metadata.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/model/Metadata.java new file mode 100644 index 0000000..a276f8b --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/model/Metadata.java @@ -0,0 +1,45 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.v2.model; + +import javax.persistence.*; + +/** + * @author Petr Urban + * @since 2023-04-26 + * @version 1.0.0 + */ +@Entity +@Table(name = "app_metadata") +public class Metadata { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private Long id; + + private String appDataKey; + + private String appDataValue; + + public String getAppDataKey() { + return appDataKey; + } + + public void setAppDataKey(String appDataKey) { + this.appDataKey = appDataKey; + } + + public String getAppDataValue() { + return appDataValue; + } + + public void setAppDataValue(String appDataValue) { + this.appDataValue = appDataValue; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getId() { + return id; + } +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/model/PersonDto.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/model/PersonDto.java new file mode 100644 index 0000000..b76c877 --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/model/PersonDto.java @@ -0,0 +1,22 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.v2.model; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.List; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class PersonDto { + + private Long id; + private String name; + + private List identities; + + public static PersonDtoBuilder builder() {return new PersonDtoBuilder();} +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/model/PersonMergeRequest.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/model/PersonMergeRequest.java new file mode 100644 index 0000000..9231803 --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/model/PersonMergeRequest.java @@ -0,0 +1,49 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.v2.model; + +import java.util.List; + +/** + * Wrapper for the merge of the persons request + */ +public class PersonMergeRequest { + + private List persons; + + private String newPersonName; + + private PersonDto person; + + private long projectId; + + public List getPersons() { + return persons; + } + + public void setPersons(List persons) { + this.persons = persons; + } + + public String getNewPersonName() { + return newPersonName; + } + + public void setNewPersonName(String newPersonName) { + this.newPersonName = newPersonName; + } + + public PersonDto getPerson() { + return person; + } + + public void setPerson(PersonDto person) { + this.person = person; + } + + public long getProjectId() { + return projectId; + } + + public void setProjectId(long projectId) { + this.projectId = projectId; + } +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/model/PhaseDto.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/model/PhaseDto.java new file mode 100644 index 0000000..9914ba3 --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/model/PhaseDto.java @@ -0,0 +1,20 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.v2.model; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class PhaseDto { + + private long id; + private String externalId; + private String name; + private String description; + + public static PhaseDtoBuilder builder() {return new PhaseDtoBuilder();} +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/model/ProjectDto.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/model/ProjectDto.java new file mode 100644 index 0000000..2035743 --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/model/ProjectDto.java @@ -0,0 +1,19 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.v2.model; + +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class ProjectDto { + private Long id; + private String name; + + private String description; + + public static ProjectDtoBuilder builder() {return new ProjectDtoBuilder();} +} \ No newline at end of file diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/model/SelectedWorkUnitsDto.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/model/SelectedWorkUnitsDto.java new file mode 100644 index 0000000..97944a0 --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/model/SelectedWorkUnitsDto.java @@ -0,0 +1,31 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.v2.model; + +import com.fasterxml.jackson.annotation.JsonProperty; + +import java.util.List; + +public class SelectedWorkUnitsDto { + @JsonProperty("activityId") + private long activityId; + + @JsonProperty("wuIds") + private List wuIds; + + // Getter and Setter methods + + public long getActivityId() { + return activityId; + } + + public void setActivityId(int activityId) { + this.activityId = activityId; + } + + public List getWuIds() { + return wuIds; + } + + public void setWuIds(List wuIds) { + this.wuIds = wuIds; + } +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/model/ThresholdDto.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/model/ThresholdDto.java new file mode 100644 index 0000000..4770872 --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/model/ThresholdDto.java @@ -0,0 +1,23 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.v2.model; + +public class ThresholdDto { + + private String thresholdName; + private String value; + + public String getThresholdName() { + return thresholdName; + } + + public void setThresholdName(String thresholdName) { + this.thresholdName = thresholdName; + } + + public String getValue() { + return value; + } + + public void setValue(String value) { + this.value = value; + } +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/model/User.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/model/User.java new file mode 100644 index 0000000..270f225 --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/model/User.java @@ -0,0 +1,135 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.v2.model; + +import javax.persistence.*; + +/** + * Model of database table represents one user + * @version 1.0 + * @author Vaclav Hrabik, Jiri Trefil + */ +@Entity +@Table(name = "Users") +public class User { + + /** + * Max length of column in the table + */ + @Transient + private static final int MAX_COLUMN_LENGTH = 255; + + /** + * Max length of column in the table + */ + @Transient + private String token; + + /** + * Unique key of table + */ + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + private int id; + + /** + * Name of the User + */ + @Column(unique = true,length = MAX_COLUMN_LENGTH) + private String name; + + /** + * Email of the User + */ + @Column(length = MAX_COLUMN_LENGTH) + private String email; + + /** + * Password of the User + */ + @Column(length = MAX_COLUMN_LENGTH) + private String password; + + public User() { + } + + public User(String name, String token) { + this.name = name; + this.token = token; + } + public User(String name){ + this.name = name; + } + public User(String name, String email, String password){ + this.name = name; + this.email = email; + this.password = password; + } + + + /** + * Getter of id + * @return id of the user + */ + public int getId() { + return id; + } + + /** + * Getter of name + * @return name of the user + */ + public String getName() { + return name; + } + + /** + * Getter of email + * @return email of the user + */ + public String getEmail() { + return email; + } + + /** + * Getter for email constraint + * @return email constraint + */ + public static int getEmailConstraint(){ + return MAX_COLUMN_LENGTH; + } + + /** + * Getter for name constraint + * @return name constraint + */ + public static int getNameConstraint(){ + return MAX_COLUMN_LENGTH; + } + + /** + * Getter for password of user + * @return user password + */ + public String getPassword() { + return this.password; + } + + /** + * Getter for token of user + * @return user token + */ + public String getToken() { + return this.token; + } + + /** + * Setter of user token + * @param token user token + */ + public void setToken(String token) { + this.token = token; + } + + public void setId(int id) { + this.id = id; + } +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/model/UserConfigKey.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/model/UserConfigKey.java new file mode 100644 index 0000000..4b54e34 --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/model/UserConfigKey.java @@ -0,0 +1,42 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.v2.model; + +import javax.persistence.Embeddable; +import java.io.Serializable; + +/** + * @Author Jiri Trefil + * primary key of table user_configuration is compound (userId,configurationId) pair is unique + * the business logic involving this table is in ConfigurationRepository interface + */ +@Embeddable +public class UserConfigKey implements Serializable { + +private int userId; +private int configId; + +public UserConfigKey(int userId,int configId){ + this.userId = userId; + this.configId = configId; +} + + public int getUserId() { + return userId; + } + + public int getConfigId() { + return configId; + } + + public void setUserId(int userId) { + this.userId = userId; + } + + public void setConfigId(int configId) { + this.configId = configId; + } + + public UserConfigKey() { + this.userId = -1; + this.configId = -1; + } +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/model/UserConfiguration.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/model/UserConfiguration.java new file mode 100644 index 0000000..926f25f --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/model/UserConfiguration.java @@ -0,0 +1,71 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.v2.model; + +/** + * @author Jiri Trefil + * Wrapper for http request for uploading a new configuration by user + * DTO pattern + */ +public class UserConfiguration { + private User user; + private ConfigurationDto configuration; + private String isDefault; + private String configurationName; + private String id; + + public UserConfiguration(User user, ConfigurationDto configuration, String isDefault, String configurationName) { + this.user = user; + this.configuration = configuration; + this.isDefault = isDefault; + this.configurationName = configurationName; + this.id = null; + } + public UserConfiguration(){} + + public UserConfiguration(User user, String id) { + this.user = user; + this.configuration = null; + this.configurationName = null; + this.isDefault = null; + this.id = id; + } + + public User getUser() { + return this.user; + } + + public ConfigurationDto getConfiguration() { + return this.configuration; + } + + public void setUser(User user) { + this.user = user; + } + + public void setConfiguration(ConfigurationDto configuration) { + this.configuration = configuration; + } + + public String getIsDefault() { + return isDefault; + } + + public void setIsDefault(String isDefault) { + this.isDefault = isDefault; + } + + public String getConfigurationName() { + return configurationName; + } + + public void setConfigurationName(String configurationName) { + this.configurationName = configurationName; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/model/UserConfigurationJoin.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/model/UserConfigurationJoin.java new file mode 100644 index 0000000..045f283 --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/model/UserConfigurationJoin.java @@ -0,0 +1,35 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.v2.model; + +import javax.persistence.*; + +/** + * @Author Jiri Trefil + * Join table between user and configuration + * One user can have multiple (or none) configurations associated with him + * One configuration can have associated multiple users + * there this Many:Many relationship has to be decomposed with this table + * Primary key is a Composite key (userId+configId is always a unique pair) + */ +@Entity +@Table(name="user_configurations") +public class UserConfigurationJoin { + @EmbeddedId + private UserConfigKey id; + private String configurationName; + + public UserConfigurationJoin(){ + } + + public UserConfigurationJoin(UserConfigKey id, String configurationName){ + this.configurationName = configurationName; + this.id = id; + } + + public String getConfigurationName() { + return configurationName; + } + + public UserConfigKey getUserConfigKey(){ + return this.id; + } +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/model/UserDetectionDto.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/model/UserDetectionDto.java new file mode 100644 index 0000000..3552a77 --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/model/UserDetectionDto.java @@ -0,0 +1,52 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.v2.model; + +public class UserDetectionDto { + + private int configurationId; + private String userName; + + + + private String[] selectedProjects; + private String[] selectedAntipatterns; + + public UserDetectionDto(String userName,int configurationId, String[] selectedProjects, String[] selectedAntipatterns) { + this.configurationId = configurationId; + this.selectedProjects = selectedProjects; + this.selectedAntipatterns = selectedAntipatterns; + this.userName = userName; + } + public String getUserName(){ + return this.userName; + } + public UserDetectionDto() { + } + + public void setConfigurationId(int configurationId) { + this.configurationId = configurationId; + } + + public void setSelectedProjects(String[] selectedProjects) { + this.selectedProjects = selectedProjects; + } + + public void setSelectedAntipatterns(String[] selectedAntipatterns) { + this.selectedAntipatterns = selectedAntipatterns; + } + public void setUserName(String userName) { + this.userName = userName; + } + + public int getConfigurationId() { + return configurationId; + } + + public String[] getSelectedProjects() { + return selectedProjects; + } + + public String[] getSelectedAntipatterns() { + return selectedAntipatterns; + } + +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/model/WorkUnitDto.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/model/WorkUnitDto.java new file mode 100644 index 0000000..bd4103f --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/model/WorkUnitDto.java @@ -0,0 +1,27 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.v2.model; + +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.Category; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +import java.util.Date; +import java.util.Set; + +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class WorkUnitDto { + + private String assignee; + private String type; + private Set category; + private long id; + private Date startDate; + private Date endDate; + private String activity; + + public static WorkUnitDto.WorkUnitDtoBuilder builder() {return new WorkUnitDto.WorkUnitDtoBuilder();} +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/repository/AboutPageRepository.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/repository/AboutPageRepository.java new file mode 100644 index 0000000..c0bf1a6 --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/repository/AboutPageRepository.java @@ -0,0 +1,8 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.v2.repository; + +import cz.zcu.fav.kiv.antipatterndetectionapp.v2.model.Metadata; +import org.springframework.data.jpa.repository.JpaRepository; + +public interface AboutPageRepository extends JpaRepository { + +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/repository/ConfigRepository.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/repository/ConfigRepository.java new file mode 100644 index 0000000..03d9a1b --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/repository/ConfigRepository.java @@ -0,0 +1,49 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.v2.repository; + +import cz.zcu.fav.kiv.antipatterndetectionapp.v2.model.Configuration; +import cz.zcu.fav.kiv.antipatterndetectionapp.v2.model.User; +import cz.zcu.fav.kiv.antipatterndetectionapp.v2.model.UserConfigKey; +import cz.zcu.fav.kiv.antipatterndetectionapp.v2.model.UserConfigurationJoin; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.jpa.repository.Modifying; +import org.springframework.data.jpa.repository.Query; +import org.springframework.data.repository.query.Param; +import org.springframework.stereotype.Repository; +import org.springframework.transaction.annotation.Transactional; + +import java.util.List; +@Repository +public interface ConfigRepository extends JpaRepository { + + Configuration findConfigurationById(int id); + Configuration findConfigurationByConfigHash(String hash); + //query to get all public configurations + @Query("Select config from Configuration config where config.isDefault = 'Y'") + List getPublicConfigurations(); + //retrieve all public configurations and configurations available to the user + //assumption - default configurations are not assigned to any user explicitly + @Query("select config, userconfig from Configuration config left join UserConfigurationJoin userconfig on config.id = userconfig.id.configId where userconfig.id.userId = ?1 or config.isDefault = 'Y'") + List getAllUserConfigurations(int userId); + + @Modifying + @Transactional + @Query("UPDATE Configuration cfg SET cfg.config = ?2, cfg.configHash= ?3 WHERE cfg.id = ?1") + int updateHashAndConfigurationDefinition(int configurationId, String configurationDefinition, String configurationHash); + + + + @Query("select userconfig.configurationName,userconfig.id.configId from UserConfigurationJoin userconfig where userconfig.id.userId = ?1") + List getAllUserConfigurationNames(int userId); + + @Query("select userconfig.configurationName from UserConfigurationJoin userconfig where userconfig.id = ?1") + String findConfigurationByCompoundKey(UserConfigKey key); + + @Query("SELECT cfg FROM UserConfigurationJoin userconfig RIGHT JOIN Configuration cfg " + + "ON userconfig.id.configId = cfg.id " + + "WHERE userconfig.id = ?1 or (cfg.isDefault = 'Y' and cfg.id = ?2)") + Configuration findConfigurationByUserNameAndID(UserConfigKey key,int configId); + + + +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/repository/UserConfigurationJoinRepository.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/repository/UserConfigurationJoinRepository.java new file mode 100644 index 0000000..6a27e46 --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/repository/UserConfigurationJoinRepository.java @@ -0,0 +1,13 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.v2.repository; + +import cz.zcu.fav.kiv.antipatterndetectionapp.v2.model.UserConfigKey; +import cz.zcu.fav.kiv.antipatterndetectionapp.v2.model.UserConfigurationJoin; +import org.springframework.data.jpa.repository.JpaRepository; + +/** + * this repository is not being used (29.04.2023) + * but it provides and API to work with Join table user_configurations + * the logic is contained in ConfigurationRepository interface (the pairing of user and configuration) + */ +public interface UserConfigurationJoinRepository extends JpaRepository { +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/repository/UserRepository.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/repository/UserRepository.java new file mode 100644 index 0000000..9df9155 --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/repository/UserRepository.java @@ -0,0 +1,18 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.v2.repository; + +import cz.zcu.fav.kiv.antipatterndetectionapp.v2.model.User; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.stereotype.Repository; + +import java.util.List; + +/** + * Interface as database object + * @version 1.0 + * @author Vaclav Hrabik, Jiri Trefil + */ +@Repository +public interface UserRepository extends JpaRepository { + List findUserByEmail(String email); + User findByName(String name); +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/security/JwtAuthenticationFilter.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/security/JwtAuthenticationFilter.java new file mode 100644 index 0000000..3914200 --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/security/JwtAuthenticationFilter.java @@ -0,0 +1,87 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.v2.security; + +import cz.zcu.fav.kiv.antipatterndetectionapp.v2.config.SecurityBasics; +import cz.zcu.fav.kiv.antipatterndetectionapp.v2.service.oauth.OAuthService; +import org.springframework.http.*; +import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; +import org.springframework.security.core.Authentication; +import org.springframework.security.core.context.SecurityContextHolder; +import org.springframework.security.core.userdetails.User; +import org.springframework.security.core.userdetails.UserDetails; +import org.springframework.stereotype.Component; +import org.springframework.web.client.HttpClientErrorException; +import org.springframework.web.filter.OncePerRequestFilter; + +import javax.servlet.FilterChain; +import javax.servlet.ServletException; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import java.io.IOException; +import java.util.Arrays; +import java.util.Collections; + +@Component +public class JwtAuthenticationFilter extends OncePerRequestFilter { + + private final OAuthService oAuthService; + + public JwtAuthenticationFilter(OAuthService oAuthService) { + this.oAuthService = oAuthService; + } + + @Override + protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain chain) + throws IOException, ServletException { + + String authorizationHeader = request.getHeader("Authorization"); + if (authorizationHeader == null || !authorizationHeader.startsWith("Bearer ")) { +// chain.doFilter(request, response); + SecurityContextHolder.clearContext(); + response.setStatus(HttpServletResponse.SC_UNAUTHORIZED); + response.getOutputStream().println("{\"message\" : \"Authentication failed\"}"); + return; + } + + try { + String token = authorizationHeader.replace("Bearer ", ""); + ResponseEntity responseEntity = oAuthService.authenticate(token); + + UserDetails userDetails = User.builder() + .username(responseEntity.getBody()) + .password("") + .authorities(Collections.emptyList()) + .build(); + + Authentication auth = new UsernamePasswordAuthenticationToken(userDetails, token, userDetails.getAuthorities()); + SecurityContextHolder.getContext().setAuthentication(auth); + /* + else { + SecurityContextHolder.clearContext(); + response.setStatus(HttpServletResponse.SC_UNAUTHORIZED); + response.getOutputStream().println("{\"error\" : \"Token timed out!\"}"); + return; + }*/ + } + //4xx or 5xx http response from auth application + //basically copies the response from auth app and send it to client + catch (HttpClientErrorException e){ + SecurityContextHolder.clearContext(); + //read response body + String responseBody = e.getResponseBodyAsString(); + response.setStatus(e.getStatusCode().value()); + response.getOutputStream().println(responseBody); + return; + } + + chain.doFilter(request, response); + } + + @Override + protected boolean shouldNotFilter(HttpServletRequest request) throws ServletException { + String path = request.getRequestURI().substring(request.getContextPath().length()); + return Arrays.stream(SecurityBasics.NO_AUTHORIZATION_NEEDED).anyMatch(path::startsWith); + } + + +} + diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/security/WebSecurityConfig.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/security/WebSecurityConfig.java new file mode 100644 index 0000000..cb59ef2 --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/security/WebSecurityConfig.java @@ -0,0 +1,98 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.v2.security; + +import cz.zcu.fav.kiv.antipatterndetectionapp.v2.config.SecurityBasics; +import cz.zcu.fav.kiv.antipatterndetectionapp.v2.service.oauth.AuthProvider; +import cz.zcu.fav.kiv.antipatterndetectionapp.v2.service.oauth.OAuthService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.web.servlet.FilterRegistrationBean; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.security.authentication.AuthenticationManager; +import org.springframework.security.authentication.AuthenticationProvider; +import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder; +import org.springframework.security.config.annotation.web.builders.HttpSecurity; +import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; +import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; +import org.springframework.security.config.http.SessionCreationPolicy; +import org.springframework.security.core.userdetails.UserDetailsService; +import org.springframework.security.web.authentication.UsernamePasswordAuthenticationFilter; +import org.springframework.web.client.RestTemplate; +import org.springframework.web.cors.CorsConfiguration; +import org.springframework.web.cors.CorsConfigurationSource; +import org.springframework.web.cors.UrlBasedCorsConfigurationSource; + +import java.util.Arrays; + +@Configuration +@EnableWebSecurity(debug = true) +public class WebSecurityConfig extends WebSecurityConfigurerAdapter { + + @Autowired + private UserDetailsService userService; + + @Autowired + private JwtAuthenticationFilter jwtAuthenticationFilter; + + @Autowired + public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception { + auth.userDetailsService(userService); + } + + @Bean + public AuthenticationProvider provider() { + return new AuthProvider(template()); + } + + @Bean + public RestTemplate template() { + return new RestTemplate(); + } + + @Bean + public UserDetailsService userDetailsService() { + return super.userDetailsService(); + } + + @Bean + public FilterRegistrationBean filterRegistrationBean(OAuthService oAuthService) { + FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean(); + filterRegistrationBean.setFilter(jwtAuthenticationFilter); + return filterRegistrationBean; + } + + @Override + @Bean + public AuthenticationManager authenticationManagerBean() throws Exception { + return super.authenticationManagerBean(); + } + + + @Override + protected void configure(HttpSecurity httpSecurity) throws Exception { + httpSecurity + .addFilterBefore(jwtAuthenticationFilter, UsernamePasswordAuthenticationFilter.class) + .cors().configurationSource(corsConfigurationSource()) + .and() + .csrf().disable() + .authorizeRequests() + .mvcMatchers(SecurityBasics.NO_AUTHORIZATION_NEEDED).permitAll() + .anyRequest().authenticated() + .and() + .sessionManagement() + .sessionCreationPolicy(SessionCreationPolicy.STATELESS); + } + + @Bean + public CorsConfigurationSource corsConfigurationSource() { + CorsConfiguration configuration = new CorsConfiguration(); + configuration.setAllowedOrigins(Arrays.asList("http://localhost:3000")); + configuration.setAllowedMethods(Arrays.asList("GET", "POST", "PUT", "PATCH", "DELETE", "OPTIONS")); + configuration.setAllowedHeaders(Arrays.asList("authorization", "content-type", "x-auth-token")); + configuration.setExposedHeaders(Arrays.asList("x-auth-token")); + configuration.setAllowCredentials(true); + UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource(); + source.registerCorsConfiguration("/**", configuration); + return source; + } + +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/service/about/AboutPageService.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/service/about/AboutPageService.java new file mode 100644 index 0000000..c2c1db7 --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/service/about/AboutPageService.java @@ -0,0 +1,22 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.v2.service.about; + +import cz.zcu.fav.kiv.antipatterndetectionapp.v2.model.Metadata; + +import java.util.List; + +/** + * Interface used in the AboutPageServiceImpl + * + * @author Petr Urban + * @since 2023-04-26 + * @version 1.0.0 + */ +public interface AboutPageService { + + /** + * method in which it's a great time to call findAll to jdbc repository + * @return list of obtained rows from the database + */ + List findAll(); + +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/service/about/AboutPageServiceImpl.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/service/about/AboutPageServiceImpl.java new file mode 100644 index 0000000..d23d17a --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/service/about/AboutPageServiceImpl.java @@ -0,0 +1,28 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.v2.service.about; + +import cz.zcu.fav.kiv.antipatterndetectionapp.v2.model.Metadata; +import cz.zcu.fav.kiv.antipatterndetectionapp.v2.repository.AboutPageRepository; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * Implementation of service that processes data required from AboutPageController.java + * + * @author Petr Urban + * @since 2023-04-26 + * @version 1.0.0 + */ +@Service +public class AboutPageServiceImpl implements AboutPageService { + + @Autowired + private AboutPageRepository repository; + + @Override + public List findAll() { + return repository.findAll(); + } + +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/service/activity/ActivityService.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/service/activity/ActivityService.java new file mode 100644 index 0000000..d9ffa59 --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/service/activity/ActivityService.java @@ -0,0 +1,14 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.v2.service.activity; + + +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.Activity; +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.interfaces.DatabaseObject; + +import java.util.List; + +public interface ActivityService { + List fetchAllProjectActivities(long projectId); + + DatabaseObject saveActivity(Activity activity); + +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/service/activity/ActivityServiceImpl.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/service/activity/ActivityServiceImpl.java new file mode 100644 index 0000000..6533788 --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/service/activity/ActivityServiceImpl.java @@ -0,0 +1,69 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.v2.service.activity; + +import cz.zcu.fav.kiv.antipatterndetectionapp.Constants; +import cz.zcu.fav.kiv.antipatterndetectionapp.controller.management.SegmentActivityController; +import cz.zcu.fav.kiv.antipatterndetectionapp.model.Project; +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.Activity; +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.Category; +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.ProjectInstance; +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.WorkUnit; +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.enums.WuType; +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.interfaces.DatabaseObject; +import cz.zcu.fav.kiv.antipatterndetectionapp.repository.managment.ActivityRepository; +import cz.zcu.fav.kiv.antipatterndetectionapp.repository.managment.WorkUnitRepository; +import cz.zcu.fav.kiv.antipatterndetectionapp.service.ProjectService; +import cz.zcu.fav.kiv.antipatterndetectionapp.service.managment.CategoryService; +import cz.zcu.fav.kiv.antipatterndetectionapp.service.managment.WorkUnitService; +import cz.zcu.fav.kiv.antipatterndetectionapp.service.managment.enums.WuTypeService; +import cz.zcu.fav.kiv.antipatterndetectionapp.utils.Utils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.ui.Model; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.servlet.mvc.support.RedirectAttributes; + +import javax.servlet.http.HttpSession; +import java.util.*; + +import org.springframework.stereotype.Service; + +@Service +public class ActivityServiceImpl implements ActivityService { + private final Logger LOGGER = LoggerFactory.getLogger(SegmentActivityController.class); + + @Autowired + private ProjectService projectService; + + @Autowired + private WorkUnitService workUnitService; + + @Autowired + private CategoryService categoryService; + + @Autowired + private WuTypeService wuTypeService; + + @Autowired + private ActivityRepository activityRepository; + + @Autowired + private WorkUnitRepository workUnitRepository; + + @Override + public List fetchAllProjectActivities(long projectId) { + Project p = this.projectService.getProjectById(projectId); + if(p == null){ + return null; + } + List activities = p.getActivities(); + return activities; + } + + @Override + public DatabaseObject saveActivity(Activity activity) { + return activityRepository.save(activity); + } +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/service/configuration/ConfigService.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/service/configuration/ConfigService.java new file mode 100644 index 0000000..d6ec348 --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/service/configuration/ConfigService.java @@ -0,0 +1,27 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.v2.service.configuration; +import cz.zcu.fav.kiv.antipatterndetectionapp.model.AntiPattern; +import cz.zcu.fav.kiv.antipatterndetectionapp.v2.dials.ConfigurationControllerStatusCodes; +import cz.zcu.fav.kiv.antipatterndetectionapp.v2.model.Configuration; +import cz.zcu.fav.kiv.antipatterndetectionapp.v2.model.User; +import cz.zcu.fav.kiv.antipatterndetectionapp.v2.model.UserConfiguration; + +import java.util.List; +import java.util.Map; + +public interface ConfigService { + //upload configuration + ConfigurationControllerStatusCodes addConfiguration(UserConfiguration cfg); + ConfigurationControllerStatusCodes updateConfiguration(UserConfiguration cfg); + + ConfigurationControllerStatusCodes pairConfigurationWithUser(User user, Configuration configuration); + + + List getUserConfigurations(User user); + + Configuration getConfigurationById(int id); + + Configuration getConfiguration(String userName, int id); + String getConfigurationName(int userId, int configurationId); + + Map getAntiPatterns(); +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/service/configuration/ConfigurationServiceImplementation.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/service/configuration/ConfigurationServiceImplementation.java new file mode 100644 index 0000000..d43caa0 --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/service/configuration/ConfigurationServiceImplementation.java @@ -0,0 +1,273 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.v2.service.configuration; + +import com.google.gson.Gson; +import cz.zcu.fav.kiv.antipatterndetectionapp.model.AntiPattern; +import cz.zcu.fav.kiv.antipatterndetectionapp.repository.AntiPatternRepository; +import cz.zcu.fav.kiv.antipatterndetectionapp.v2.dials.ConfigurationControllerStatusCodes; +import cz.zcu.fav.kiv.antipatterndetectionapp.v2.model.*; +import cz.zcu.fav.kiv.antipatterndetectionapp.v2.repository.ConfigRepository; +import cz.zcu.fav.kiv.antipatterndetectionapp.v2.repository.UserConfigurationJoinRepository; +import cz.zcu.fav.kiv.antipatterndetectionapp.v2.service.user.UserService; +import cz.zcu.fav.kiv.antipatterndetectionapp.v2.utils.Crypto; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +@Service +public class ConfigurationServiceImplementation implements ConfigService { + //repository which represents connection to database and the configuration table in particular + @Autowired + private ConfigRepository configurationRepository; + //repository for Join table, necessary to add associations between users and configurations + @Autowired + private UserConfigurationJoinRepository userConfigurationJoinRepository; + + @Autowired + private AntiPatternRepository antiPatternRepository; + + private String[] configJsonFileNames = {"BusinessAsUsual.json", "BystanderApathy.json", "LongOrNonExistentFeedbackLoops.json", + "NinetyNinetyRule.json", "RoadToNowhere.json", "SpecifyNothing.json", "TooLongSprint.json", "UnknownPoster.json", + "VaryingSprintLength.json", "YetAnotherProgrammer.json"}; + + + //user service is also necessary for retrieving information about users (primarily database query for fetching id) + @Autowired + private UserService userService; + + /** + * Saves configuration to database + * the configuration is available to the user who sent the request + * @param cfg Configuration - JSON format of configuration with antipatterns and thresholds + * @return ResponseEntity with status code and message with more information about operation + */ + @Override + public ConfigurationControllerStatusCodes addConfiguration(UserConfiguration cfg) { + Configuration configuration = parseUserConfiguration(cfg); + //if the request is missing the configuration definition then we kill it + if (configuration == null) { + return ConfigurationControllerStatusCodes.EMPTY_CONFIGURATION_DEFINITION; + } + if (isConfigurationNameInvalid(cfg)) { + return ConfigurationControllerStatusCodes.EMPTY_CONFIGURATION_NAME; + } + //fetch the user from db because user in UserConfiguration does not contain id + User user = this.getUser(cfg.getUser()); + + //create the hash of the configuration (w/o salting) + String configHash = createConfigurationHash(configuration); + Configuration existingConfiguration = this.configurationRepository.findConfigurationByConfigHash(configHash); + //configuration definition does not exist => upload the configuration into database + if (existingConfiguration == null) { + configuration.setHash(configHash); + //save the configuration itself + this.configurationRepository.save(configuration); + //can only happen if db server fails or a constraint is breached + if (configuration == null) { + return ConfigurationControllerStatusCodes.INSERT_FAILED; + } + } + //already exists, update pointer to instance with id + else { + configuration = existingConfiguration; + } + + cfg.setId(String.valueOf(configuration.getId())); + + //pair the configuration to the user + return pairConfigurationWithUser(user, configuration); + } + + /** + * Wrapper around user service for fetching user from database by username + * @param user Userdto with username only + * @return User from db or null if user does not exist + */ + + private User getUser(User user) { + String userName = user.getName(); + //fetch the user from db because user in UserConfiguration does not contain id + return this.userService.getUserByName(userName); + } + + /** + * Quick verification if configuration name is empty + * @param cfg dto wrapper around user update / insert configuration request + * @return true if configuration name is empty or empty string + */ + private boolean isConfigurationNameInvalid(UserConfiguration cfg) { + return cfg.getConfigurationName() == null || cfg.getConfigurationName().equals(""); + } + + /** + * Util function for creating hash of configuration definition + * @param configuration Configuration instance with configuration definition as string + * @return String hash created from configuration definition + * empty string if configuration definition is null + */ + private String createConfigurationHash(Configuration configuration) { + if(configuration == null) {return "";} + return Crypto.hashString(configuration.getConfig()); + } + + /** + * Method updates existing non default user configuration + * the user in request must have the rights to access the configuration, ie entry userId,configId must exist in join table + * @param cfg UserConfiguration wrapper around update request + * @return enum with http code and message informing about the result of the operation + */ + @Override + public ConfigurationControllerStatusCodes updateConfiguration(UserConfiguration cfg) { + Configuration configuration = parseUserConfiguration(cfg); + //if the request is missing the configuration definition then we kill it + if (configuration == null) { + return ConfigurationControllerStatusCodes.EMPTY_CONFIGURATION_DEFINITION; + } + + if (isConfigurationNameInvalid(cfg)) { + return ConfigurationControllerStatusCodes.EMPTY_CONFIGURATION_NAME; + } + int configurationId = Integer.parseInt(cfg.getConfigurationName()); + Configuration oldConfiguration = this.getConfiguration(cfg.getUser().getName(), configurationId); + + if (oldConfiguration == null) { + return ConfigurationControllerStatusCodes.USER_DONT_HAVE_RIGHTS_TO_CHANGE_CONFIGURATION; + } + + if (oldConfiguration.getIsDefault().equals("Y")) { + return ConfigurationControllerStatusCodes.CONFIGURATION_IS_DEFAULT; + } + String updatedConfigHash = this.createConfigurationHash(configuration); + int configuration1 = this.configurationRepository.updateHashAndConfigurationDefinition(configurationId,configuration.getConfig(),updatedConfigHash); + + if (configuration1 == 0) { + return ConfigurationControllerStatusCodes.INSERT_FAILED; + } + + return ConfigurationControllerStatusCodes.UPDATE_SUCCESSFUL; + } + + /** + * Parser for user request wrapped around configuration + * @param cfg UserConfiguration instance - wrapper around user request + * @return Configuration or Null - null if the request wrapper does not containt json defition of antipatterns + * Instace of Configuration if the request is Okay + */ + private Configuration parseUserConfiguration(UserConfiguration cfg){ + ConfigurationDto configurationDto = cfg.getConfiguration(); + String configurationDefinition = new Gson().toJson(configurationDto); + String userConfigurationName = cfg.getConfigurationName(); + String defaultConfigName = null; + if (configurationDefinition == null) { + return null; + } + if (userConfigurationName == null) { + defaultConfigName = "ahoj_svete"; + } + + return new Configuration(configurationDefinition,null,cfg.getIsDefault(),userConfigurationName,defaultConfigName); + } + + /** + * This method saves user and configuration id into join table + * creates association between user and configuration in the sense of: "User @param user owns configuration @param configuration" + * (Multiple users can own the same configuration but the configuration is not public) + * @param user User - user who will be associated with configuration @param configuration. + * @param configuration Configuration - the configuration that will be associated with user (just the id is necessary) + * @return ResponseEntity - Http response with status code and message about the operation + */ + @Override + public ConfigurationControllerStatusCodes pairConfigurationWithUser(User user, Configuration configuration) { + final UserConfigKey key = new UserConfigKey(user.getId(),configuration.getId()); + boolean exists = this.userConfigurationJoinRepository.existsById(key); + //the configuration pairing already exists, we do not have to do anything + //request like this should not happen from client, something fishy might be going on + //or the request is a duplicate + if (exists) { + return ConfigurationControllerStatusCodes.CONFIGURATION_PAIRING_EXISTS; + } + //save the relation between user and configuration + this.userConfigurationJoinRepository.save(new UserConfigurationJoin(key,configuration.getConfigurationName())); + return ConfigurationControllerStatusCodes.INSERT_SUCCESSFUL; + } + + + /** + * Method queries db to retrieve all configurations available to @param user + * if he/she does not have any of his/her (inclusive for netflix) only default configurations are returned + * @param user user querying configuration - ONLY username is valid in this object + * @return List list of available configurations + */ + @Override + public List getUserConfigurations(User user) { + final String userName = user.getName(); + if (userName == null) { + return null; + } + //client can only send his name - he obviously does not know his id in db, we have to query that + User userInfo = this.userService.getUserByName(userName); + //fetch all configurations this particular user can see + //ie all public configs + configurations uploaded by this particular user + List configurations = this.configurationRepository.getAllUserConfigurations(userInfo.getId()); + List configurationList = new ArrayList<>(); + for (Object[] o : configurations) { + Configuration cof = (Configuration) (o[0]); + UserConfigurationJoin cofJoin = (UserConfigurationJoin) (o[1]); + if (cofJoin != null) { + cof.setConfigurationName(cofJoin.getConfigurationName()); + } + configurationList.add(cof); + } + return configurationList; + } + + /** + * finds configuration by id + * @param id integer id of configuration to be retrieved + */ + @Override + public Configuration getConfigurationById(int id) { + return this.configurationRepository.findConfigurationById(id); + } + + /** + * Method fetches configuration with id @param id from database + * @param userName String username + * @param id int configuration id + * @return Configuration if configuration with id @param id exists and user @param userName has access to it + * null otherwise + */ + @Override + public Configuration getConfiguration(String userName, int id) { + User user = this.userService.getUserByName(userName); + if (user == null) { + return null; + } + UserConfigKey key = new UserConfigKey(user.getId(), id); + Configuration configuration = this.configurationRepository.findConfigurationByUserNameAndID(key,key.getConfigId()); + return configuration; + } + + @Override + public String getConfigurationName(int userId, int configurationId) { + return this.configurationRepository.findConfigurationByCompoundKey(new UserConfigKey(userId, configurationId)); + } + + /** + * Method loads antipatterns from json files on file system for metadata about anti patterns + * @return Map of antipatterns + */ + @Override + public Map getAntiPatterns() { + Map antiPatterns = new HashMap<>(); + AntiPattern tmp = null; + for (int i = 0; i < this.configJsonFileNames.length; i++) { + tmp = this.antiPatternRepository.getAntiPatternFromJsonFile(configJsonFileNames[i]); + antiPatterns.put(tmp.getName(), tmp); + } + return antiPatterns; + } +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/service/detection/DetectionService.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/service/detection/DetectionService.java new file mode 100644 index 0000000..ae4f0a4 --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/service/detection/DetectionService.java @@ -0,0 +1,14 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.v2.service.detection; + +import cz.zcu.fav.kiv.antipatterndetectionapp.model.Query; +import cz.zcu.fav.kiv.antipatterndetectionapp.model.QueryResult; +import cz.zcu.fav.kiv.antipatterndetectionapp.v2.model.UserDetectionDto; +import org.springframework.stereotype.Service; + +import java.util.List; + +public interface DetectionService { + Query getAllProjectsAndAntipatterns(); + List analyze(UserDetectionDto detectionRequest); + +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/service/detection/DetectionServiceImpl.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/service/detection/DetectionServiceImpl.java new file mode 100644 index 0000000..f1ee5b4 --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/service/detection/DetectionServiceImpl.java @@ -0,0 +1,74 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.v2.service.detection; + +import cz.zcu.fav.kiv.antipatterndetectionapp.detecting.AntiPatternManager; +import cz.zcu.fav.kiv.antipatterndetectionapp.model.*; +import cz.zcu.fav.kiv.antipatterndetectionapp.service.AntiPatternService; +import cz.zcu.fav.kiv.antipatterndetectionapp.service.ConfigurationService; +import cz.zcu.fav.kiv.antipatterndetectionapp.service.ProjectService; +import cz.zcu.fav.kiv.antipatterndetectionapp.v2.model.Configuration; +import cz.zcu.fav.kiv.antipatterndetectionapp.v2.model.ProjectDto; +import cz.zcu.fav.kiv.antipatterndetectionapp.v2.model.UserDetectionDto; +import cz.zcu.fav.kiv.antipatterndetectionapp.v2.service.user.UserService; +import cz.zcu.fav.kiv.antipatterndetectionapp.v2.service.configuration.ConfigService; +import cz.zcu.fav.kiv.antipatterndetectionapp.v2.utils.JSONBuilder; +import cz.zcu.fav.kiv.antipatterndetectionapp.v2.utils.converters.ClassToDto; +import cz.zcu.fav.kiv.antipatterndetectionapp.v2.utils.converters.ProjectToDto; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; +import java.util.Map; + +@Service +public class DetectionServiceImpl implements DetectionService{ + @Autowired + ConfigService configService; + + @Autowired + private ProjectService projectService; + + @Autowired + private AntiPatternService antiPatternService; + + @Autowired + private AntiPatternManager antiPatternManager; + + @Autowired + private UserService userService; + + @Autowired + private ConfigurationService configurationService; + + @Override + public Query getAllProjectsAndAntipatterns() { + ClassToDto classToDto = new ProjectToDto(); + Query q = new Query(classToDto.convert(projectService.getAllProjects()), antiPatternService.antiPatternsToModel(antiPatternService.getAllAntiPatterns())); + + return q; + } + + @Override + public List analyze(UserDetectionDto detectionRequest) { + //User user = userService.getUserByName(detectionRequest.getUserName()); + int configurationId = detectionRequest.getConfigurationId(); + //String currentConfigurationName = this.configService.getConfigurationName(user.getId(), configurationId); + Configuration cfg = this.configService.getConfigurationById(configurationId); + + //namapovat cfg do jsonu + Map> currentConfiguration = JSONBuilder.createMapFromString(cfg.getConfig()); + + String[] selectedProjects = detectionRequest.getSelectedProjects(); + String[] selectedAntiPatterns = detectionRequest.getSelectedAntipatterns(); + List results = antiPatternManager.analyze(selectedProjects, selectedAntiPatterns, currentConfiguration); + + /* List i = new ArrayList<>(); + Map thresholds = new HashMap<>(); + thresholds.put("divisionOfIterationsWithRetrospective",new Threshold("divisionOfIterationsWithRetrospective","Division of iterations with retrospective","Minimum percentage of the total number of iterations with a retrospective (0,100)","Percentage must be float number between 0 and 100","Percentage")); + i.add(new QueryResultItem(new AntiPattern(3,"Business As Usual","BusinessAsUsual","Absence of a retrospective after individual iterations or after the completion project."))) + QueryResult q = new QueryResult(new Project("Rozšíření nástroje IMiGEr (KIV) - HKMM",""),new ArrayList<>()); + */ + + + return results; + } +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/service/management/category/ICategories.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/service/management/category/ICategories.java new file mode 100644 index 0000000..083423e --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/service/management/category/ICategories.java @@ -0,0 +1,29 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.v2.service.management.category; + +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.Category; +import cz.zcu.fav.kiv.antipatterndetectionapp.v2.model.AdditionalInformationDto; +import cz.zcu.fav.kiv.antipatterndetectionapp.v2.model.CategoryChangeRequest; +import cz.zcu.fav.kiv.antipatterndetectionapp.v2.model.CategoryDto; +import cz.zcu.fav.kiv.antipatterndetectionapp.v2.model.GeneralResponseDto; +import org.springframework.http.ResponseEntity; +import org.springframework.lang.Nullable; + +import java.util.List; + +public interface ICategories { + + /** + * Returns the list of categories for given project id + * @param projectId project ID + * @return ResponseEntity with the list of categories + */ + ResponseEntity>> findCategoriesForProject(String projectId); + + /** + * Manage the request for categories change according to the given data + * @param categoryChangeRequest Input data with categories to change and type of the operation + * @return ResponseEntity with the results of the operation + */ + ResponseEntity>> handleCategoryChangeRequest(CategoryChangeRequest categoryChangeRequest); + +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/service/management/category/impl/CategoriesImpl.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/service/management/category/impl/CategoriesImpl.java new file mode 100644 index 0000000..91bc887 --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/service/management/category/impl/CategoriesImpl.java @@ -0,0 +1,268 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.v2.service.management.category.impl; + +import cz.zcu.fav.kiv.antipatterndetectionapp.Constants; +import cz.zcu.fav.kiv.antipatterndetectionapp.model.Project; +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.*; +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.interfaces.DatabaseObject; +import cz.zcu.fav.kiv.antipatterndetectionapp.service.ProjectService; +import cz.zcu.fav.kiv.antipatterndetectionapp.service.managment.*; +import cz.zcu.fav.kiv.antipatterndetectionapp.v2.model.AdditionalInformationDto; +import cz.zcu.fav.kiv.antipatterndetectionapp.v2.model.CategoryChangeRequest; +import cz.zcu.fav.kiv.antipatterndetectionapp.v2.model.CategoryDto; +import cz.zcu.fav.kiv.antipatterndetectionapp.v2.model.GeneralResponseDto; +import cz.zcu.fav.kiv.antipatterndetectionapp.v2.service.activity.ActivityService; +import cz.zcu.fav.kiv.antipatterndetectionapp.v2.service.management.category.ICategories; +import cz.zcu.fav.kiv.antipatterndetectionapp.v2.utils.converters.CategoryToDto; +import lombok.NonNull; +import lombok.RequiredArgsConstructor; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.util.Pair; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.lang.Nullable; +import org.springframework.stereotype.Service; + +import java.util.*; + +@Service +@RequiredArgsConstructor +public class CategoriesImpl implements ICategories { + private final Logger logger = LoggerFactory.getLogger(this.getClass().getName()); + private final ProjectService projectService; + private final CategoryService categoryService; + private final WorkUnitService workUnitService; + private final IterationService iterationService; + private final ActivityService activityService; + private final PhaseService phaseService; + private final String GENERAL_ERROR_MESSAGE = "ERROR: Application error occurred"; + private final CategoryToDto categoryMapper = new CategoryToDto(); + private final String PROJECT_NOT_FOUND_MESSAGE = "Project not found!"; + private final String CATEGORIES_NOT_FOUND_MESSAGE = "Categories not found for the project!"; + private final String INVALID_PROJECT_ID = "Provided project ID is in invalid format!"; + private final String CATEGORY_NOT_FOUND = "Category not found!"; + + private Project getProjectById(Long id) { + return projectService.getProjectById(id); + } + + @Override + public ResponseEntity>> handleCategoryChangeRequest(CategoryChangeRequest categoryChangeRequest) { + List categoryDtos = categoryChangeRequest.getCategories(); + Integer submitType = categoryChangeRequest.getSubmitType(); + + // Checking input data + if (categoryDtos != null && submitType != null) { + if (submitType <= 0 || submitType > Constants.SUBMIT_TYPES) { // ERROR: Unknown submitType + return createResponseEntity(HttpStatus.BAD_REQUEST, GENERAL_ERROR_MESSAGE, null, null); + } + } + + // Mapping CategoryDto to Category + List categories = new ArrayList<>(); + for (CategoryDto categoryDto : categoryDtos) { + Category categoryTmp = categoryService.getCategoryById(categoryDto.getId()); + if (categoryTmp != null) { + categories.add(categoryTmp); + } + else { + return createResponseEntity(HttpStatus.BAD_REQUEST, CATEGORY_NOT_FOUND, null, null); + } + } + + // Processing all selected categories + Pair result = processSelectedCategories(submitType, categories); + + // Creating reponse information + AdditionalInformationDto additionalInformation = new AdditionalInformationDto<>(); + + if (!result.getSecond()) { + additionalInformation.addIntoCollection("successMessage", "All selected categories (" + categories.size() + ") were assign"); + } else { + additionalInformation.addIntoCollection("informMessage", "Some categories cannot be assign, look at the log for more information"); + } + additionalInformation.addIntoCollection("message", result.getFirst()); + + return createResponseEntity(HttpStatus.OK, null, categoryMapper.convert(categories), additionalInformation); + } + + private List getCategories(Project project) { + + if (project == null) { + return null; + } + + List categories = new ArrayList<>(); + for (ProjectInstance projectInstance : project.getProjectInstances()) { + categories.addAll(projectInstance.getCategories()); + } + + List categoriesDto = categoryMapper.convert(categories); + categoriesDto.sort(Comparator.comparing(CategoryDto::getName, String.CASE_INSENSITIVE_ORDER)); + + return categoriesDto; + } + + @Override + public ResponseEntity>> findCategoriesForProject(String projectId) { + // --- The value from the request body is String, so there must be a validation if the string is number or not. + final Long id = tryParse(projectId); + if (id == Long.MIN_VALUE) + return createResponseEntity(HttpStatus.BAD_REQUEST, INVALID_PROJECT_ID, null, null); + + // --- get project by ID + final Project project = getProjectById(id); + + if (project == null) + return createResponseEntity(HttpStatus.NOT_FOUND, PROJECT_NOT_FOUND_MESSAGE, null, null); + + // --- Get all categories for the specific project + final List categories = getCategories(project); + + if (categories == null) + return createResponseEntity(HttpStatus.NOT_FOUND, CATEGORIES_NOT_FOUND_MESSAGE, null, null); + + return createResponseEntity(HttpStatus.OK, null, categories, null); + } + + private ResponseEntity>> createResponseEntity(@NonNull HttpStatus status, + @Nullable String message, + @Nullable List categories, + @Nullable AdditionalInformationDto additionalInfo) { + return new ResponseEntity<>( + GeneralResponseDto + .>builder() + .message(message) + .responseBody(categories) + .additionalInformation(additionalInfo) + .build(), status); + } + + private Long tryParse(String valueToParse) { + try { + return Long.parseLong(valueToParse); + } catch (NumberFormatException e) { + return Long.MIN_VALUE; + } + } + + private Pair extractTypeAndId(String submitId) { + String[] parts = submitId.split(Constants.HTML_DELIMITER); + try { + Integer type = Integer.parseInt(parts[0]); + Long id = Long.parseLong(parts[1]); + return Pair.of(type, id); + + } catch (NumberFormatException e) { + return null; + } + + } + + private Pair processSelectedCategories(Integer submitType, List selectedCategories) { + + boolean errorOccurred = false; + StringBuilder message = new StringBuilder(); + for (Category category : selectedCategories) { + message.append("Category: ").append(category.getName()).append(System.getProperty("line.separator")); + + if (category.getWorkUnits().size() == 0) { //Inform user that there aren't any WorkUnits + errorOccurred = true; + message.append(Constants.INDENT) + .append("cannot be assigned due to non-existent work unit") + .append(System.getProperty("line.separator")) + .append(System.getProperty("line.separator")); + continue; + } + + DatabaseObject object = getNewObject(category.getWorkUnits(), submitType, category); + + for (WorkUnit workUnit : category.getWorkUnits()) { + + boolean hasAttr = true; + switch (submitType) { + case 1: + if (workUnit.getIteration() == null) { + hasAttr = false; + workUnit.setIteration((Iteration) object); + workUnitService.saveWorkUnit(workUnit); + } + break; + case 2: + if (workUnit.getPhase() == null) { + hasAttr = false; + workUnit.setPhase((Phase) object); + workUnitService.saveWorkUnit(workUnit); + } + break; + case 3: + if (workUnit.getActivity() == null) { + hasAttr = false; + workUnit.setActivity((Activity) object); + workUnitService.saveWorkUnit(workUnit); + } + break; + } + + if (!hasAttr) { // Transformation of selected category was done + + message.append(Constants.INDENT) + .append("successfully assigned to WU with id ").append(workUnit.getId()) + .append(System.getProperty("line.separator")); + + } else { // WorkUnit already has iteration, inform user + + errorOccurred = true; + message.append(Constants.INDENT) + .append("cannot be assigned to WU with id ").append(workUnit.getId()) + .append(" as it already exists with ").append(workUnit.getIteration().getName()) + .append(System.getProperty("line.separator")); + } + } + message.append(System.getProperty("line.separator")); + } + return Pair.of(message.toString(), errorOccurred); + } + + private DatabaseObject getNewObject(Set workUnits, Integer submitType, Category category) { + + switch (submitType) { + case 1: + for (WorkUnit workUnit : workUnits) { + if (workUnit.getIteration() == null) { + Iteration iteration = new Iteration(category.getExternalId(), + category.getName(), + category.getDescription(), + category.getProjectInstance().getProjectId()); + return iterationService.saveIteration(iteration); + } + } + break; + case 2: + for (WorkUnit workUnit : workUnits) { + if (workUnit.getPhase() == null) { + Phase phase = new Phase(category.getExternalId(), + category.getName(), + category.getDescription(), + category.getProjectInstance().getProjectId()); + return phaseService.savePhase(phase); + } + } + break; + case 3: + for (WorkUnit workUnit : workUnits) { + if (workUnit.getActivity() == null) { + Activity activity = new Activity(category.getExternalId(), + category.getName(), + category.getDescription(), + category.getProjectInstance().getProjectId()); + return activityService.saveActivity(activity); + } + } + break; + } + return null; + } + +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/service/managment/IterationsAndPhasesService.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/service/managment/IterationsAndPhasesService.java new file mode 100644 index 0000000..832bf2e --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/service/managment/IterationsAndPhasesService.java @@ -0,0 +1,15 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.v2.service.managment; + +import cz.zcu.fav.kiv.antipatterndetectionapp.model.Project; +import org.springframework.http.ResponseEntity; + +import java.util.Map; + +public interface IterationsAndPhasesService { + + public ResponseEntity getIterationAndPhases(Project project); + + public ResponseEntity> changeToPhase(String[] iterationsIds); + + public ResponseEntity> changeToIteration(String[] phasesIds); +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/service/managment/IterationsAndPhasesServiceImpl.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/service/managment/IterationsAndPhasesServiceImpl.java new file mode 100644 index 0000000..fc1d2cb --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/service/managment/IterationsAndPhasesServiceImpl.java @@ -0,0 +1,226 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.v2.service.managment; + +import com.fasterxml.jackson.databind.ObjectMapper; +import cz.zcu.fav.kiv.antipatterndetectionapp.Constants; +import cz.zcu.fav.kiv.antipatterndetectionapp.model.Project; +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.Iteration; +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.Phase; +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.WorkUnit; +import cz.zcu.fav.kiv.antipatterndetectionapp.repository.managment.IterationRepository; +import cz.zcu.fav.kiv.antipatterndetectionapp.repository.managment.PhaseRepository; +import cz.zcu.fav.kiv.antipatterndetectionapp.service.managment.IterationService; +import cz.zcu.fav.kiv.antipatterndetectionapp.service.managment.PhaseService; +import cz.zcu.fav.kiv.antipatterndetectionapp.service.managment.WorkUnitService; +import cz.zcu.fav.kiv.antipatterndetectionapp.v2.model.IterationAndPhasesDto; +import cz.zcu.fav.kiv.antipatterndetectionapp.v2.model.IterationDto; +import cz.zcu.fav.kiv.antipatterndetectionapp.v2.model.PhaseDto; +import cz.zcu.fav.kiv.antipatterndetectionapp.v2.utils.converters.IterationAndPhasesToDto; +import cz.zcu.fav.kiv.antipatterndetectionapp.v2.utils.converters.IterationToDto; +import cz.zcu.fav.kiv.antipatterndetectionapp.v2.utils.converters.PhaseToDto; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.stereotype.Service; + +import java.util.*; + +@Service +public class IterationsAndPhasesServiceImpl implements IterationsAndPhasesService { + + @Autowired + private IterationRepository iterationRepository; + + @Autowired + private PhaseRepository phaseRepository; + + @Autowired + private PhaseService phaseService; + + @Autowired + private WorkUnitService workUnitService; + + @Autowired + private IterationService iterationService; + + @Override + public ResponseEntity getIterationAndPhases(Project project) { + ObjectMapper objectMapper = new ObjectMapper(); + + List iterations = project.getIterations(); + List phases = project.getPhases(); + + List iterationDtos = new IterationToDto().convert(iterations); + List phasesDtos = new PhaseToDto().convert(phases); + + + Collections.sort(iterationDtos, Comparator.comparing(IterationDto::getName, String.CASE_INSENSITIVE_ORDER)); + Collections.sort(phasesDtos, Comparator.comparing(PhaseDto::getName, String.CASE_INSENSITIVE_ORDER)); + + IterationAndPhasesDto iterationAndPhasesDto = new IterationAndPhasesToDto().convert(iterationDtos, phasesDtos); + + try { + String json = objectMapper.writeValueAsString(iterationAndPhasesDto); + return ResponseEntity.status((iterations != null && phases != null) ? HttpStatus.OK : HttpStatus.NO_CONTENT).body(json); + } catch (Exception e) { + e.printStackTrace(); + return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("Failed to serialize data to JSON"); + } + } + + @Override + public ResponseEntity> changeToPhase(String[] iterationsIds) { + List iterationIds = new ArrayList<>(); + for (String id : iterationsIds) + iterationIds.add(Long.parseLong(id)); + List selectedIterations = iterationRepository.fetchIterationsByIds(iterationIds); + + + StringBuilder message = new StringBuilder(); + int errors = 0; + + for (Iteration iteration : selectedIterations) { + message.append("Iteration: ").append(iteration.getName()).append(System.getProperty("line.separator")); + + if (iteration.getWorkUnits().size() == 0) { + errors += 1; + message.append(Constants.INDENT) + .append("cannot be changed to Phase due to non-existent work unit") + .append(System.getProperty("line.separator")) + .append(System.getProperty("line.separator")); + continue; + } + + Phase phase = null; + for (WorkUnit workUnit : iteration.getWorkUnits()) { // If exists WorkUnit with empty Phase - create Phase from Iteration + if (workUnit.getPhase() == null) { + phase = new Phase(iteration.getExternalId(), + iteration.getName(), + iteration.getDescription(), + iteration.getEndDate(), + iteration.getStartDate(), + iteration.getCreated(), + iteration.getSuperProjectId()); + phaseService.savePhase(phase); + break; + } + } + + for (WorkUnit workUnit : iteration.getWorkUnits()) { // For every WorkUnit with empty Phase - assign created Phase + Phase workUnitPhrase = workUnit.getPhase(); + if (workUnitPhrase == null) { + workUnit.setPhase(phase); + message.append(Constants.INDENT) + .append("successfully assigned to WU with id ").append(workUnit.getId()) + .append(System.getProperty("line.separator")); + workUnitService.saveWorkUnit(workUnit); + + } else { + errors += 1; + message.append(Constants.INDENT) + .append("cannot be assigned to WU with id ").append(workUnit.getId()) + .append(" as it already exists with Phase ").append(workUnit.getPhase().getName()) + .append(System.getProperty("line.separator")); + } + if (phase != null) { + workUnit.setIteration(null); + } + if(phase != null || workUnitPhrase == null){ + workUnitService.saveWorkUnit(workUnit); + } + } + message.append(System.getProperty("line.separator")); + if (phase != null) { + iteration.setWorkUnits(null); + iterationService.deleteIteration(iteration); + } + } + + Map json = new HashMap<>(); + json.put("message", message); + + if (errors == 0) { + json.put("successMessage", "All selected iterations (" + selectedIterations.size() + ") were transformed to phases"); + } else { + json.put("informMessage", "Some iterations cannot be assign, look at the log for more information"); + } + + return ResponseEntity.status(HttpStatus.OK).body(json); + } + + //TODO kontrola, proc tenhle zhavej odpad nefunguje + @Override + public ResponseEntity> changeToIteration(String[] phasesIds) { + List phaseIds = new ArrayList<>(); + for (String id : phasesIds) + phaseIds.add(Long.parseLong(id)); + List selectedPhases = phaseRepository.fetchPhasesByIds(phaseIds); + + StringBuilder message = new StringBuilder(); + int errors = 0; + + for (Phase phase : selectedPhases) { + message.append("Phase: ").append(phase.getName()).append(System.getProperty("line.separator")); + + if (phase.getWorkUnits().size() == 0) { + errors += 1; + message.append(Constants.INDENT) + .append("cannot be changed to Phase due to non-existent work unit") + .append(System.getProperty("line.separator")) + .append(System.getProperty("line.separator")); + continue; + } + + Iteration iteration = null; + for (WorkUnit workUnit : phase.getWorkUnits()) { // If exists WorkUnit with empty Phase - create Phase from Iteration + if (workUnit.getIteration() == null) { + iteration = new Iteration(phase.getExternalId(), + phase.getName(), + phase.getDescription(), + phase.getEndDate(), + phase.getStartDate(), + phase.getCreated(), + phase.getSuperProjectId()); + iterationService.saveIteration(iteration); + break; + } + } + + for (WorkUnit workUnit : phase.getWorkUnits()) { // For every WorkUnit with empty Phase - assign created Phase + if (workUnit.getIteration() == null) { + workUnit.setIteration(iteration); + workUnitService.saveWorkUnit(workUnit); + message.append(Constants.INDENT) + .append("successfully assigned to WU with id ").append(workUnit.getId()) + .append(System.getProperty("line.separator")); + } else { + errors += 1; + message.append(Constants.INDENT) + .append("cannot be assigned to WU with id ").append(workUnit.getId()) + .append(" as it already exists with Iteration ").append(workUnit.getIteration().getName()) + .append(System.getProperty("line.separator")); + } + if (iteration != null) { + workUnit.setPhase(null); + } + workUnitService.saveWorkUnit(workUnit); + } + message.append(System.getProperty("line.separator")); + if (iteration != null) { + phase.setWorkUnits(null); + phaseService.deletePhase(phase); + } + } + + Map json = new HashMap<>(); + json.put("message", message); + + if (errors == 0) { + json.put("successMessage", "All selected iterations (" + selectedPhases.size() + ") were transformed to phases"); + } else { + json.put("informMessage", "Some iterations cannot be assign, look at the log for more information"); + } + + return ResponseEntity.status(HttpStatus.OK).body(json); + } + +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/service/oauth/AuthProvider.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/service/oauth/AuthProvider.java new file mode 100644 index 0000000..7240326 --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/service/oauth/AuthProvider.java @@ -0,0 +1,71 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.v2.service.oauth; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.boot.web.client.RestTemplateBuilder; +import org.springframework.http.HttpEntity; +import org.springframework.http.HttpHeaders; +import org.springframework.http.HttpMethod; +import org.springframework.http.ResponseEntity; +import org.springframework.security.authentication.AuthenticationProvider; +import org.springframework.security.authentication.BadCredentialsException; +import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; + +import org.springframework.security.core.Authentication; +import org.springframework.security.core.AuthenticationException; +import org.springframework.security.core.userdetails.UserDetails; +import org.springframework.stereotype.Service; +import org.springframework.web.client.RestTemplate; + +@Service +public class AuthProvider implements AuthenticationProvider { + + @Value("${auth.realm.authenticate}") + private String auth_url; + + private RestTemplate template; + + public AuthProvider(RestTemplate restTemplate){ + this.template = restTemplate; + } + + + @Override + public Authentication authenticate(Authentication authentication) throws AuthenticationException { + + RestTemplate restTemplate = new RestTemplate(); + String jwtToken = (String) authentication.getCredentials(); + + HttpHeaders headers = new HttpHeaders(); + headers.setBearerAuth(jwtToken); + HttpEntity entity = new HttpEntity<>(headers); + + try { + ResponseEntity responseEntity = restTemplate.exchange( + auth_url, + HttpMethod.POST, + entity, + UserDetails.class); + + UserDetails userDetails = responseEntity.getBody(); +// List authorities = new ArrayList<>(); +// authorities.add(new SimpleGrantedAuthority(userDetails.getRole())); + + if (userDetails != null && userDetails.getUsername() != null) { + return new UsernamePasswordAuthenticationToken(userDetails.getUsername(), jwtToken); + } + + return new UsernamePasswordAuthenticationToken(null, null); + + } catch (Exception e) { + throw new BadCredentialsException("Invalid JWT token"); + } + } + + @Override + public boolean supports(Class authentication) { + return authentication.equals(UsernamePasswordAuthenticationToken.class); + } + + +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/service/oauth/OAuthService.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/service/oauth/OAuthService.java new file mode 100644 index 0000000..70ada33 --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/service/oauth/OAuthService.java @@ -0,0 +1,16 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.v2.service.oauth; + +import cz.zcu.fav.kiv.antipatterndetectionapp.v2.model.User; +import org.springframework.http.HttpRequest; +import org.springframework.http.ResponseEntity; + +import javax.servlet.http.HttpServletRequest; + +public interface OAuthService { + public ResponseEntity authenticate(String token); + public ResponseEntity loginUser(User user); + public ResponseEntity logoutUser(User user); + + ResponseEntity refreshToken(String token); + +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/service/oauth/OAuthServiceImpl.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/service/oauth/OAuthServiceImpl.java new file mode 100644 index 0000000..448bbeb --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/service/oauth/OAuthServiceImpl.java @@ -0,0 +1,100 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.v2.service.oauth; + +import cz.zcu.fav.kiv.antipatterndetectionapp.v2.model.User; +import cz.zcu.fav.kiv.antipatterndetectionapp.v2.service.user.UserService; +import cz.zcu.fav.kiv.antipatterndetectionapp.v2.utils.RequestBuilder; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.ResponseEntity; +import org.springframework.security.core.userdetails.UserDetails; +import org.springframework.security.core.userdetails.UserDetailsService; +import org.springframework.security.core.userdetails.UsernameNotFoundException; +import org.springframework.stereotype.Service; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.Map; + +/** + * Service which communicate with OAuth application + */ +@Service +public class OAuthServiceImpl implements OAuthService, UserDetailsService { + + /** + * URL path to authenticate endpoint of OAuth application + */ +// @Value("${auth.realm.authenticate}") + private String AUTH_URL_AUTH = "http://localhost:8081/authenticate"; + + /** + * URL path to login endpoint of OAuth application + */ +// @Value("${auth.realm.login}") + private String AUTH_URL_LOGIN = "http://localhost:8081/login"; + + /** + * URL path to logout endpoint of OAuth application + */ +// @Value("${auth.realm.logout}") + private String AUTH_URL_LOGOUT = "http://localhost:8081/logout"; + + private String AUTH_URL_REFRESH = "http://localhost:8081/refresh"; + + @Autowired + private RequestBuilder requestBuilder; + /** + * + */ + @Autowired + private UserService userService; + + + //private RequestBuilder requestBuilder = new RequestBuilder(); + + public ResponseEntity authenticate(String token) { + + return requestBuilder.sendRequestResponse(AUTH_URL_AUTH, token); + } + + public ResponseEntity loginUser(User user) { + final String userName = user.getName(); + + if(userName == null) { + return null; + } + //HttpURLConnection con = RequestBuilder.createConnection(AUTH_URL); + Map requestBody = new HashMap<>(); + + requestBody.put("name", userName); + + return requestBuilder.sendRequestResponse(AUTH_URL_LOGIN, requestBody); + } + + public ResponseEntity logoutUser(User user) { + final String userName = user.getName(); + final String token = user.getToken(); + + if(userName == null || token == null) { + return null; + } + + //HttpURLConnection con = RequestBuilder.createConnection(AUTH_URL); + HashMap requestBody = new HashMap<>(); + + requestBody.put("name", userName); + requestBody.put("token", token); + + return requestBuilder.sendRequestResponse(AUTH_URL_LOGOUT, requestBody); + } + + @Override + public ResponseEntity refreshToken(String token) { + return requestBuilder.sendRequestResponse(AUTH_URL_REFRESH, token, true); + } + + @Override + public UserDetails loadUserByUsername(String s) throws UsernameNotFoundException { + final User user = this.userService.getUserByName(s); + return new org.springframework.security.core.userdetails.User(user.getName(), user.getPassword(),new ArrayList<>()); + } +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/service/user/UserService.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/service/user/UserService.java new file mode 100644 index 0000000..f8f2f85 --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/service/user/UserService.java @@ -0,0 +1,27 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.v2.service.user; + +import cz.zcu.fav.kiv.antipatterndetectionapp.v2.dials.UserModelStatusCodes; +import cz.zcu.fav.kiv.antipatterndetectionapp.v2.model.User; + +/** + * Interface implemented by service(s) which are responsible for user management (registration, login, logout) + * @version 1.0 + * @author Vaclav Hrabik, Jiri Trefil + */ +public interface UserService { + /** + * Method attempts to register a user and returns status code indicating registration result + * @param user serialized JSON object representing user + * @return Integer - status code of the operation, ie 1 - successful, 0 - name taken, ... + */ + public UserModelStatusCodes registerUser(User user); + /** + * Method attempts to log in a user and returns status code indicating login result + * @param user serialized JSON object representing user + * @return Integer - status code of the operation, ie 1 - successful, 0 - failed, .... + */ + public UserModelStatusCodes verifyUser(User user); + + public User getUserByName(String name); + +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/service/user/UserServiceImpl.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/service/user/UserServiceImpl.java new file mode 100644 index 0000000..857eb9f --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/service/user/UserServiceImpl.java @@ -0,0 +1,118 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.v2.service.user; + +import cz.zcu.fav.kiv.antipatterndetectionapp.v2.dials.UserModelStatusCodes; +import cz.zcu.fav.kiv.antipatterndetectionapp.v2.model.User; +import cz.zcu.fav.kiv.antipatterndetectionapp.v2.repository.UserRepository; +import cz.zcu.fav.kiv.antipatterndetectionapp.v2.utils.Crypto; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import java.util.regex.Pattern; + +/** + * Service provides functionality for user login/register/logout + * @author Vaclav Hrabik, Jiri Trefil + */ +@Service +public class UserServiceImpl implements UserService { + + @Autowired + private UserRepository userRepository; + + /** + * Method attempts to register a user + * @param user serialized JSON object representing user + * @return Enum code UserModelStatusCodes. + * INVALID_USER_ARGUMENTS if user send invalid name, email or password + * USER_EXISTS if user send name, which is already taken + * HASH_FAILED if hash function failed + * USER_CREATION_FAILED if there is problem with database + * USER_CREATED if user were created (happy-day) + */ + @Override + public UserModelStatusCodes registerUser(User user) { + final String email = user.getEmail(); + final String name = user.getName(); + final String password = user.getPassword(); + + if (!verifyUserParameters(name, email, password)) + return UserModelStatusCodes.INVALID_USER_ARGUMENTS; + + //if the username is taken, kill the request as well + if (userRepository.findByName(user.getName()) != null) { + return UserModelStatusCodes.USER_EXISTS; + } + + String passwordHash = Crypto.hashString(password); + //server side fault + if (passwordHash == null) { + return UserModelStatusCodes.HASH_FAILED; + } + //save the user + User u = userRepository.save(new User(name, email, passwordHash)); + //database insert failed for some reason + if(u == null) { + return UserModelStatusCodes.USER_CREATION_FAILED; + } + + //return okay status code, the user was created + return UserModelStatusCodes.USER_CREATED; + } + + /** + * @param email String - user email provided by client + * @param name String - username provided by client + * @return true if @param User is valid + */ + private boolean verifyUserParameters(String name, String email, String password) { + //if client send somehow not whole register request. + if (email == null || name == null || password == null) { + return false; + } + //if client request violates constraints - kill the request. User will not be registered. + if (email.length() > User.getEmailConstraint() || name.length() > User.getNameConstraint()) { + return false; + } + //regex for email validation + String emailRegex = "^[\\w-\\.]+@([\\w-]+\\.)+[\\w-]{2,4}$"; + final Pattern emailPattern = Pattern.compile(emailRegex); + //return true if email is valid (pattern wise) + return emailPattern.matcher(email).find(); + } + + + + /** + * Method + * @param user serialized JSON object representing user + * @return Enum flag UserModelStatusCodes. + * USER_LOGGED_IN if user has right name and password + * USER_LOGIN_FAILED if user has wrong name or password + */ + + @Override + public UserModelStatusCodes verifyUser(User user) { + final String name = user.getName(); + final String password = user.getPassword(); + if(name == null || password == null) { + return UserModelStatusCodes.USER_LOGIN_FAILED; + } + + User u = userRepository.findByName(user.getName()); + + if (u == null) { + return UserModelStatusCodes.USER_LOGIN_FAILED; + } + final boolean passwordMatches = Crypto.compareHashes(password, u.getPassword()); + + return (!passwordMatches ? UserModelStatusCodes.USER_LOGIN_FAILED : UserModelStatusCodes.USER_LOGGED_IN); + } + + + + @Override + public User getUserByName(String name) { + return this.userRepository.findByName(name); + } + + +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/service/workUnit/WorkUnitServiceV2.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/service/workUnit/WorkUnitServiceV2.java new file mode 100644 index 0000000..4b55f02 --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/service/workUnit/WorkUnitServiceV2.java @@ -0,0 +1,19 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.v2.service.workUnit; + +import com.sun.istack.NotNull; +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.WorkUnit; + +import javax.annotation.Nullable; +import java.util.List; +import java.util.Set; + +public interface WorkUnitServiceV2 { + List fetchProjectWorkUnits(long activityId, String category, List type); + boolean updateWorkUnitsActivity(long activityId, List wuIds); + + List fetchProjectWorkUnitCategories(Long projectId); + List fetchProjectWorkUnitTypes(Long projectId); + + + +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/service/workUnit/WorkUnitServiceV2Impl.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/service/workUnit/WorkUnitServiceV2Impl.java new file mode 100644 index 0000000..c81fecc --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/service/workUnit/WorkUnitServiceV2Impl.java @@ -0,0 +1,57 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.v2.service.workUnit; + +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.Category; +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.WorkUnit; +import cz.zcu.fav.kiv.antipatterndetectionapp.repository.managment.WorkUnitRepository; +import cz.zcu.fav.kiv.antipatterndetectionapp.service.managment.WorkUnitService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.Arrays; +import java.util.HashSet; +import java.util.List; +import java.util.Set; + +@Service +public class WorkUnitServiceV2Impl implements WorkUnitServiceV2 { + + @Autowired + WorkUnitRepository workUnitRepository; + + @Autowired + WorkUnitService workUnitService; + + @Override + public List fetchProjectWorkUnits(long projectId, String category, List type) { + //no filter applied - return everything + if(category == null && type == null) + return this.workUnitRepository.fetchAllProjectWorkUnits(projectId); + if (category != null){ + //necessary to parse the category string a transform it into a list + List categories = Arrays.asList(category.split(";")); + return type == null ? + this.workUnitRepository.fetchActivityWorkUnitsFilteredByCategory(projectId, categories) : + this.workUnitRepository.fetchActivityWorkUnitsFilteredByTypeAndCategory(projectId, categories, type); + } + return this.workUnitRepository.fetchActivityWorkUnitsFilteredByType(projectId, type); + } + @Override + public boolean updateWorkUnitsActivity(long activityId, List wuIds) { + int wuCount= wuIds.size(); + int updatedRows = this.workUnitRepository.updateWuActivity(activityId,wuIds); + return updatedRows == wuCount; + } + + @Override + public List fetchProjectWorkUnitCategories(Long projectId) { + + return this.workUnitRepository.fetchProjectWorkUnitsCategories(projectId); + } + + @Override + public List fetchProjectWorkUnitTypes(Long projectId) { + return this.workUnitRepository.fetchProjectWorkUnitsTypes(projectId); + } + + +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/utils/Crypto.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/utils/Crypto.java new file mode 100644 index 0000000..4e470f7 --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/utils/Crypto.java @@ -0,0 +1,77 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.v2.utils; + +import javax.xml.bind.annotation.adapters.HexBinaryAdapter; +import java.nio.charset.StandardCharsets; +import java.security.MessageDigest; +import java.security.NoSuchAlgorithmException; +import java.util.Random; +//TODO should probably be replaced by some third party encryption lib in the future +public class Crypto { + protected static final int SALT_LEN = 32; + protected static final int PASS_LEN = 64; + /** + * Method to hash password + * @param password password from client + * @return hashed password for database + */ + public static String hashString(String password) { + //standard java security encryption module + MessageDigest digest = null; + try { + //try to instance the class - throws an error if algorithm + digest = MessageDigest.getInstance("SHA3-256"); + } + catch(NoSuchAlgorithmException exception){ + exception.printStackTrace(); + return null; + } + byte [] tmp = digest.digest(password.getBytes(StandardCharsets.UTF_8)); + //convert byte array into string + return (new HexBinaryAdapter()).marshal(tmp); + } + + /** + * Hash string and add salt to the end + * prevention against rainbow table attacks + * @param password String to be hashed + * @return String salted hash of the input + */ + public static String hashStringSalt(String password){ + String hash = hashString(password); + Random r = new Random(); + StringBuffer sb = new StringBuffer(); + while(sb.length() < SALT_LEN){ + sb.append(Integer.toHexString(r.nextInt())); + } + String salt = sb.substring(0,SALT_LEN); + hash += salt; + return hash; + } + + + + /** + * Method compares user password with stored hash + * @param password String user provided password + * @param hash String hash saved in database + * @return true if hashes are the same + */ + public static boolean compareHashes(String password, String hash) { + final String passwordHash = hashString(password); + return hash.equals(passwordHash); + } + + /** + * Method compares user password with stored hash with salt + * @param password String user provided password + * @param hash String hash saved in database + * @return true if hashes are the same + */ + public static boolean compareHashesSalt(String password, String hash){ + //toss the salt aside + String strippedHash = hash.substring(0,PASS_LEN); + return compareHashes(password,strippedHash); + } + + +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/utils/JSONBuilder.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/utils/JSONBuilder.java new file mode 100644 index 0000000..64ae230 --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/utils/JSONBuilder.java @@ -0,0 +1,110 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.v2.utils; +import com.google.gson.Gson; +import cz.zcu.fav.kiv.antipatterndetectionapp.v2.model.AntiPatternDto; +import cz.zcu.fav.kiv.antipatterndetectionapp.v2.model.ConfigurationDto; +import cz.zcu.fav.kiv.antipatterndetectionapp.v2.model.ThresholdDto; +import org.json.simple.JSONArray; +import org.json.simple.JSONObject; +import org.json.simple.parser.JSONParser; +import org.json.simple.parser.ParseException; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.Map; + +/** + * Version 1.0 - only simple json can be built + * @version 1.0 + * @author Vaclav Hrabik, Jiri Trefil + */ +public class JSONBuilder { + /** + * Method transforms map into string representation of JSON object + * @param json key value pair that will be generated as json line + * @return String representation of JSON object + * */ + + public static String buildJSON(Map json){ + + JSONObject jsonObject = new JSONObject(); + for(String key : json.keySet()){ + jsonObject.put(key,parseJSONValue(json.get(key))); + } + String jsonString = jsonObject.toJSONString(); + + return jsonString; + } + + private static Object parseJSONValue(Object value){ + + if(value instanceof HashMap){ + Map map = null; + try{ + map = (HashMap) value; + } + catch (ClassCastException e){ + throw new RuntimeException("Provided object of HashMap is not typed!"); + } + JSONObject jsonObject = new JSONObject(); + for(String key : map.keySet()) + jsonObject.put(key,parseJSONValue(map.get(key))); + return jsonObject; + + + } + if (value instanceof ArrayList){ + JSONArray jsonArray = new JSONArray(); + ArrayList list; + list = (ArrayList) value; + for(int i = 0,n=list.size(); i < n; i++) + jsonArray.add(parseJSONValue(list.get(i).toString())); + return jsonArray; + } + + + //some simple data type without any indentation, we can just return it + return value; + } + + /** + * Transform string json to json object + * @param jsonString json object in string type + * @return JSONObject parsed string + */ + public static JSONObject parseJSON(String jsonString) throws ParseException { + if(jsonString == null||jsonString.length()==0) return null; + JSONParser parser = new JSONParser(); + JSONObject json = (JSONObject) parser.parse(jsonString); + return json; + } + + public static Map> createMapFromString(String jsonContent){ + + ConfigurationDto cfgDto = new Gson().fromJson(jsonContent, ConfigurationDto.class); + + Map> newAntiPatternMap = new HashMap<>(); + + for (AntiPatternDto antiPatternDto : cfgDto.getConfiguration()) { + + String antiPatternName = antiPatternDto.getAntiPattern(); + + Map newThresholds = new HashMap(); + + for (ThresholdDto thresholdDto : antiPatternDto.getThresholds()) { + + String thresholdName = thresholdDto.getThresholdName(); + String value = thresholdDto.getValue(); + + newThresholds.put(thresholdName, value); + } + newAntiPatternMap.put(antiPatternName, newThresholds); + + } + + return newAntiPatternMap; + } + + + + +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/utils/ParamsBuilder.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/utils/ParamsBuilder.java new file mode 100644 index 0000000..0148946 --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/utils/ParamsBuilder.java @@ -0,0 +1,44 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.v2.utils; + +import java.io.UnsupportedEncodingException; +import java.net.URLEncoder; +import java.util.HashMap; + +public class ParamsBuilder { + + /** + * Method creates body of post request + * ie returns json representation of parameters + * @param parameters Key: value pair parameters + * @return String JSON representation + */ + public static String createPostParams(HashMap parameters) { + return JSONBuilder.buildJSON(parameters); + } + + /** + * Method creates get parameters from parameters + * @param params parameters + * @return String GET representation of parameters passed into the function + * @throws UnsupportedEncodingException if unknown encoding standard is passed as an argument to the function + */ + public static String createGetParams(HashMap params) throws UnsupportedEncodingException { + StringBuilder builder = new StringBuilder(); + for (HashMap.Entry entry : params.entrySet()) { + builder.append(URLEncoder.encode(entry.getKey(), "UTF-8")); + builder.append("="); + builder.append(URLEncoder.encode(entry.getValue(), "UTF-8")); + builder.append("&"); + } + + String resultString = builder.toString(); + return resultString.length() > 0 + ? resultString.substring(0, resultString.length() - 1) + : resultString; + + } + + + + +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/utils/RequestBuilder.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/utils/RequestBuilder.java new file mode 100644 index 0000000..c57b79a --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/utils/RequestBuilder.java @@ -0,0 +1,79 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.v2.utils; + +import cz.zcu.fav.kiv.antipatterndetectionapp.v2.httpErrorHandler.CustomErrorHandler; +import org.springframework.http.client.HttpComponentsClientHttpRequestFactory; +import org.springframework.stereotype.Component; +import org.springframework.web.client.RestTemplate; +import java.util.Map; +import java.util.logging.Level; +import java.util.logging.Logger; +import org.springframework.http.*; + +@Component +public class RequestBuilder { + private static Logger logger = Logger.getLogger(RequestBuilder.class.getName()); + + public ResponseEntity sendRequestResponse(String url, Map body) { + RestTemplate restTemplate = new RestTemplate(); + restTemplate.setErrorHandler(new CustomErrorHandler()); + restTemplate.setRequestFactory(new HttpComponentsClientHttpRequestFactory()); + + String json = JSONBuilder.buildJSON(body); + HttpHeaders headers = new HttpHeaders(); + headers.setContentType(MediaType.APPLICATION_JSON); + //headers.set("X-spade-request",spadeSignature); + logger.log(Level.FINE,"Sending http request with body: \n"+json+"\n to: "+url); + + HttpEntity entity = new HttpEntity<>(json, headers); + return restTemplate.postForEntity(url, entity, String.class); + } + + public ResponseEntity sendRequestResponse(String url, String token) { + RestTemplate restTemplate = new RestTemplate(); + //custom error handler to handle http response + restTemplate.setErrorHandler(new CustomErrorHandler()); + restTemplate.setRequestFactory(new HttpComponentsClientHttpRequestFactory()); + HttpHeaders headers = new HttpHeaders(); + + headers.setContentType(MediaType.APPLICATION_JSON); + //headers.set("X-spade-request",spadeSignature); + headers.set("Authorization", "Bearer " + token); + logger.log(Level.FINE,"Sending http request with no body to: "+url); + HttpEntity entity = new HttpEntity<>(null, headers); + ResponseEntity response = restTemplate.postForEntity(url, entity, String.class); + return response; + + } + + public ResponseEntity sendRequestResponse(String url, String token, boolean get) { + RestTemplate restTemplate = new RestTemplate(); + restTemplate.setErrorHandler(new CustomErrorHandler()); + restTemplate.setRequestFactory(new HttpComponentsClientHttpRequestFactory()); + HttpHeaders headers = new HttpHeaders(); + + headers.setContentType(MediaType.APPLICATION_JSON); + //headers.set("X-spade-request",spadeSignature); + headers.set(HttpHeaders.AUTHORIZATION, "Bearer " + token); + + HttpEntity entity = new HttpEntity<>(null, headers); + ResponseEntity response = restTemplate.exchange(url, HttpMethod.GET, entity, String.class); + return response; + } + + + public ResponseEntity sendRequestResponse(String url, Map body, String token) { + RestTemplate restTemplate = new RestTemplate(); + restTemplate.setErrorHandler(new CustomErrorHandler()); + restTemplate.setRequestFactory(new HttpComponentsClientHttpRequestFactory()); + + String json = JSONBuilder.buildJSON(body); + HttpHeaders headers = new HttpHeaders(); + headers.set(HttpHeaders.AUTHORIZATION, "Bearer " + token); + + headers.setContentType(MediaType.APPLICATION_JSON); + //headers.set("X-spade-request",spadeSignature); + HttpEntity entity = new HttpEntity<>(json, headers); + return restTemplate.postForEntity(url, entity, String.class); + } + +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/utils/converters/ActivityToDto.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/utils/converters/ActivityToDto.java new file mode 100644 index 0000000..f086251 --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/utils/converters/ActivityToDto.java @@ -0,0 +1,37 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.v2.utils.converters; + +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.Activity; +import cz.zcu.fav.kiv.antipatterndetectionapp.v2.model.ActivityDto; + +import java.util.ArrayList; +import java.util.List; + +public class ActivityToDto implements ClassToDto { + + @Override + public ActivityDto convert(Activity source) { + if (source == null) { + return null; + } + + return ActivityDto.builder() + .externalId(Long.parseLong(source.getExternalId())) + .endDate(source.getEndDate()) + .startDate(source.getStartDate()) + .name(source.getName()) + .description(source.getDescription()) + .id(source.getId()) + .build(); + } + + @Override + public List convert(List source) { + List convertedList = new ArrayList<>(); + + if(source == null){ + return convertedList; + } + source.stream().forEach(sourceItem->convertedList.add(this.convert(sourceItem))); + return convertedList; + } +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/utils/converters/CategoryToDto.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/utils/converters/CategoryToDto.java new file mode 100644 index 0000000..ec8995d --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/utils/converters/CategoryToDto.java @@ -0,0 +1,26 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.v2.utils.converters; + +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.Category; +import cz.zcu.fav.kiv.antipatterndetectionapp.v2.model.CategoryDto; + +import java.util.ArrayList; +import java.util.List; + +public class CategoryToDto implements ClassToDto { + @Override + public CategoryDto convert(Category source) { + return CategoryDto + .builder() + .id(source.getId()) + .name(source.getName()) + .description(source.getDescription()) + .build(); + } + + @Override + public List convert(List source) { + List categories = new ArrayList<>(); + source.stream().forEach(e -> categories.add(convert(e))); + return categories; + } +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/utils/converters/ClassToDto.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/utils/converters/ClassToDto.java new file mode 100644 index 0000000..215dedd --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/utils/converters/ClassToDto.java @@ -0,0 +1,7 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.v2.utils.converters; +import java.util.List; + +public interface ClassToDto { + T convert(F source); + List convert(List source); +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/utils/converters/IdentityToDto.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/utils/converters/IdentityToDto.java new file mode 100644 index 0000000..c5ede9b --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/utils/converters/IdentityToDto.java @@ -0,0 +1,36 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.v2.utils.converters; + + +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.Identity; +import cz.zcu.fav.kiv.antipatterndetectionapp.v2.model.IdentityDto; + +import java.util.ArrayList; +import java.util.List; + +public class IdentityToDto implements ClassToDto { + + @Override + public IdentityDto convert(Identity source) { + if (source == null) { + return null; + } + + return IdentityDto.builder() + .id(source.getId()) + .name(source.getName()) + .description(source.getDescription()) + .email(source.getEmail()) + .build(); + } + + @Override + public List convert(List source) { + List convertedList = new ArrayList<>(); + + if(source == null){ + return convertedList; + } + source.stream().forEach(sourceItem->convertedList.add(this.convert(sourceItem))); + return convertedList; + } +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/utils/converters/IterationAndPhasesToDto.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/utils/converters/IterationAndPhasesToDto.java new file mode 100644 index 0000000..c6b4169 --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/utils/converters/IterationAndPhasesToDto.java @@ -0,0 +1,21 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.v2.utils.converters; + +import cz.zcu.fav.kiv.antipatterndetectionapp.v2.model.IterationAndPhasesDto; +import cz.zcu.fav.kiv.antipatterndetectionapp.v2.model.IterationDto; +import cz.zcu.fav.kiv.antipatterndetectionapp.v2.model.PhaseDto; + +import java.util.List; + +public class IterationAndPhasesToDto { + + public IterationAndPhasesDto convert (List iterationDto, List phaseDtos) { + if (iterationDto == null && phaseDtos == null) { + return null; + } + + return IterationAndPhasesDto.builder() + .iterationDtos(iterationDto) + .phaseDtos(phaseDtos) + .build(); + } +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/utils/converters/IterationToDto.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/utils/converters/IterationToDto.java new file mode 100644 index 0000000..8a82574 --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/utils/converters/IterationToDto.java @@ -0,0 +1,40 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.v2.utils.converters; + +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.Iteration; +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.Person; +import cz.zcu.fav.kiv.antipatterndetectionapp.v2.model.IterationDto; +import cz.zcu.fav.kiv.antipatterndetectionapp.v2.model.PersonDto; + +import java.util.ArrayList; +import java.util.List; + +public class IterationToDto implements ClassToDto { + + @Override + public IterationDto convert(Iteration source) { + if (source == null) { + return null; + } + + return IterationDto.builder() + .externalId(source.getExternalId()) + .id(source.getId()) + .name(source.getName()) + .description(source.getDescription()) + .build(); + } + + @Override + public List convert(List source) { + if (source == null) { + return null; + } + + ArrayList iterationDtos = new ArrayList<>(); + + for (Iteration it: source) { + iterationDtos.add(this.convert(it)); + } + return iterationDtos; + } +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/utils/converters/PersonToDto.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/utils/converters/PersonToDto.java new file mode 100644 index 0000000..72a9569 --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/utils/converters/PersonToDto.java @@ -0,0 +1,37 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.v2.utils.converters; + +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.Person; +import cz.zcu.fav.kiv.antipatterndetectionapp.v2.model.IdentityDto; +import cz.zcu.fav.kiv.antipatterndetectionapp.v2.model.PersonDto; + +import java.util.ArrayList; +import java.util.List; + +public class PersonToDto implements ClassToDto { + @Override + public PersonDto convert(Person source) { + if (source == null) { + return null; + } + + IdentityToDto identityToDto = new IdentityToDto(); + List identityDtos = identityToDto.convert(source.getIdentities()); + + return PersonDto.builder() + .id(source.getId()) + .name(source.getName()) + .identities(identityDtos) + .build(); + } + + @Override + public List convert(List source) { + List convertedList = new ArrayList<>(); + + if(source == null){ + return convertedList; + } + source.stream().forEach(sourceItem->convertedList.add(this.convert(sourceItem))); + return convertedList; + } +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/utils/converters/PhaseToDto.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/utils/converters/PhaseToDto.java new file mode 100644 index 0000000..c6cdca2 --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/utils/converters/PhaseToDto.java @@ -0,0 +1,39 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.v2.utils.converters; + +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.Iteration; +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.Phase; +import cz.zcu.fav.kiv.antipatterndetectionapp.v2.model.IterationDto; +import cz.zcu.fav.kiv.antipatterndetectionapp.v2.model.PhaseDto; + +import java.util.ArrayList; +import java.util.List; + +public class PhaseToDto implements ClassToDto { + @Override + public PhaseDto convert(Phase source) { + if (source == null) { + return null; + } + + return PhaseDto.builder() + .externalId(source.getExternalId()) + .id(source.getId()) + .name(source.getName()) + .description(source.getDescription()) + .build(); + } + + @Override + public List convert(List source) { + if (source == null) { + return null; + } + + ArrayList phasesDtos = new ArrayList<>(); + + for (Phase ph: source) { + phasesDtos.add(this.convert(ph)); + } + return phasesDtos; + } +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/utils/converters/ProjectToDto.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/utils/converters/ProjectToDto.java new file mode 100644 index 0000000..51e022e --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/utils/converters/ProjectToDto.java @@ -0,0 +1,34 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.v2.utils.converters; + +import cz.zcu.fav.kiv.antipatterndetectionapp.model.Project; +import cz.zcu.fav.kiv.antipatterndetectionapp.v2.model.ProjectDto; + +import java.util.ArrayList; +import java.util.List; +public class ProjectToDto implements ClassToDto { + + @Override + public ProjectDto convert(Project source) { + if (source == null) { + return null; + } + return ProjectDto.builder() + .id(source.getId()) + .name(source.getName()) + .description(source.getDescription()) + .build(); + } + + @Override + public List convert(List source) { + List convertedList = new ArrayList<>(); + + if(source == null){ + return convertedList; + } + source.stream().forEach(sourceItem->convertedList.add(this.convert(sourceItem))); + return convertedList; + } + + +} diff --git a/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/utils/converters/WorkUnitToDto.java b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/utils/converters/WorkUnitToDto.java new file mode 100644 index 0000000..0882cdf --- /dev/null +++ b/src/main/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/utils/converters/WorkUnitToDto.java @@ -0,0 +1,54 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.v2.utils.converters; + +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.Activity; +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.Category; +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.Person; +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.WorkUnit; +import cz.zcu.fav.kiv.antipatterndetectionapp.model.management.enums.WuType; +import cz.zcu.fav.kiv.antipatterndetectionapp.v2.model.WorkUnitDto; + +import java.util.ArrayList; +import java.util.HashSet; +import java.util.List; +import java.util.Set; + +public class WorkUnitToDto implements ClassToDto { + @Override + public WorkUnitDto convert(WorkUnit source) { + if (source == null) { + return null; + } + Set categories = new HashSet<>(); + for(Category category : source.getCategories()){ + categories.add(category.getName()); + } + Activity activity = source.getActivity(); + String name = activity != null ? activity.getName() : ""; + + Person ass = source.getAssignee(); + String assName = ass != null ? ass.getName() : ""; + + WuType type = source.getType(); + String wuType = type != null ? type.getName() : ""; + return WorkUnitDto.builder() + .startDate(source.getStartDate()) + .id(source.getId()) + .endDate(source.getDueDate()) + .type(wuType) + .assignee(assName) + .category(categories) + .activity(name) + .build(); + } + + @Override + public List convert(List source) { + List convertedList = new ArrayList<>(); + + if(source == null){ + return convertedList; + } + source.stream().forEach(sourceItem->convertedList.add(this.convert(sourceItem))); + return convertedList; + } +} diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index 932544f..633a101 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -1,21 +1,37 @@ -# database connection URL address: -spring.datasource.url=jdbc:mysql://localhost:3306/spade +# jpa settings +spring.jpa.hibernate.ddl-auto=update +spring.jpa.show-sql=true +spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.SQLServerDialect -# database connection username: -spring.datasource.username= - -# database connection password: +# mysql database connection: +spring.datasource.jdbc-url=jdbc:mysql://localhost:3306/spade +spring.datasource.username=root spring.datasource.password= +spring.datasource.driverClassName=com.mysql.cj.jdbc.Driver -# admin account username: -account.user.name= +# mssql database connection: +spring.second-datasource.jdbc-url=jdbc:sqlserver://localhost:1433;databaseName=authspade;encrypt=true;trustServerCertificate=true +spring.second-datasource.username=test +spring.second-datasource.password= +spring.second-datasource.driverClassName=com.microsoft.sqlserver.jdbc.SQLServerDriver -# admin account password: +# admin account username and password: +account.user.name=root account.user.password= +DATA_PATH=data/ + # custom error pages server.error.whitelabel.enabled=false # logger logging.level.root=INFO -logging.level.cz.zcu.fav.kiv.antipatterndetectionapp=TRACE \ No newline at end of file +logging.level.cz.zcu.fav.kiv.antipatterndetectionapp=TRACE + +# security +auth.realm.login=http://localhost:8081/login +auth.realm.logout=http://localhost:8081/logout +auth.realm.authenticate=http://localhost:8081/authenticate + +#default configuration user +default_user_id = 2 \ No newline at end of file diff --git a/src/test/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/controller/BaseTest.java b/src/test/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/controller/BaseTest.java new file mode 100644 index 0000000..1e2a032 --- /dev/null +++ b/src/test/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/controller/BaseTest.java @@ -0,0 +1,202 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.v2.controller; + +import cz.zcu.fav.kiv.antipatterndetectionapp.detecting.AntiPatternManager; +import cz.zcu.fav.kiv.antipatterndetectionapp.model.*; +import cz.zcu.fav.kiv.antipatterndetectionapp.service.AntiPatternService; +import cz.zcu.fav.kiv.antipatterndetectionapp.service.ProjectServiceImpl; +import cz.zcu.fav.kiv.antipatterndetectionapp.v2.model.Configuration; +import cz.zcu.fav.kiv.antipatterndetectionapp.v2.model.Metadata; +import cz.zcu.fav.kiv.antipatterndetectionapp.v2.model.User; +import cz.zcu.fav.kiv.antipatterndetectionapp.v2.model.UserConfigurationJoin; +import cz.zcu.fav.kiv.antipatterndetectionapp.v2.repository.AboutPageRepository; +import cz.zcu.fav.kiv.antipatterndetectionapp.v2.repository.ConfigRepository; +import cz.zcu.fav.kiv.antipatterndetectionapp.v2.repository.UserRepository; +import cz.zcu.fav.kiv.antipatterndetectionapp.v2.utils.JSONBuilder; +import cz.zcu.fav.kiv.antipatterndetectionapp.v2.utils.RequestBuilder; +import cz.zcu.fav.kiv.antipatterndetectionapp.v2.utils.converters.ProjectToDto; +import io.restassured.module.mockmvc.RestAssuredMockMvc; +import org.junit.jupiter.api.BeforeEach; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.boot.test.mock.mockito.MockBean; +import org.springframework.http.ResponseEntity; +import org.springframework.web.context.WebApplicationContext; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static org.mockito.ArgumentMatchers.*; +import static org.mockito.Mockito.when; + +@SpringBootTest() +public abstract class BaseTest { + + @Autowired + WebApplicationContext webApplicationContext; + + @MockBean + private UserRepository userRepository; + + @MockBean + private RequestBuilder requestBuilder; + + @MockBean + private AntiPatternService antiPatternService; + + @MockBean + private ProjectServiceImpl projectService; + + @MockBean + private ConfigRepository configurationRepository; + + @MockBean + private AboutPageRepository aboutPageRepository; + + @MockBean + private AntiPatternManager antiPatternManager; + + @BeforeEach + public void init() { + + setupUserControllerMocks(); + setupFilterMocks(); + setupConfigurationControllerMocks(); + setupAboutControllerMocks(); + setupDetectionControllerMocks(); + + RestAssuredMockMvc.webAppContextSetup(webApplicationContext); + } + + private void setupUserControllerMocks() { + User user = new User("foo", "foo@foo.foo", "76D3BC41C9F588F7FCD0D5BF4718F8F84B1C41B20882703100B9EB9413807C01"); + User userWrongPassword = new User("foo", "foo@foo.foo", "foo"); + ResponseEntity loginResponse = ResponseEntity.ok("token"); + + /* Registration of user */ + when(userRepository.findByName("new_user")).thenReturn(null); + when(userRepository.findByName("existing")).thenReturn(user); + when(userRepository.save(any(User.class))).thenReturn(user); + + /* Login of user */ + when(userRepository.findByName("existing")).thenReturn(user); + when(requestBuilder.sendRequestResponse(eq("http://localhost:8081/login"), anyMap())).thenReturn(loginResponse); + when(userRepository.findByName("non_existing")).thenReturn(null); + when(userRepository.findByName("foo")).thenReturn(userWrongPassword); + + /* Logout of user */ + Map logoutJson = new HashMap<>(); + logoutJson.put("message", "User logged out"); + String logoutBody = JSONBuilder.buildJSON(logoutJson); + ResponseEntity logoutResponse = ResponseEntity.ok(logoutBody); + when(requestBuilder.sendRequestResponse(eq("http://localhost:8081/logout"), anyMap())).thenReturn(logoutResponse); + } + + private void setupFilterMocks() { + /* Filter mock */ + Map filterJson = new HashMap<>(); + filterJson.put("message", "User authorized"); + String filterBody = JSONBuilder.buildJSON(filterJson); + ResponseEntity oauth = ResponseEntity.ok(filterBody); + when(requestBuilder.sendRequestResponse(anyString(), eq("token"))).thenReturn(oauth); + + Map filterJson2 = new HashMap<>(); + filterJson2.put("message", "User unauthorized"); + String filterBody2 = JSONBuilder.buildJSON(filterJson2); + ResponseEntity oauth2 = ResponseEntity.status(500).body(filterBody2); + when(requestBuilder.sendRequestResponse(anyString(), eq("wrong"))).thenReturn(oauth2); + } + + private void setupConfigurationControllerMocks() { + /* /configuration_name */ + User config_user = new User("config_user"); + config_user.setId(1); + when(userRepository.findByName("config_user")).thenReturn(config_user); + List configs = new ArrayList<>(); + Object[] pom_pole = new Object[2]; + pom_pole[0] = "default config"; + pom_pole[1] = 1; + configs.add(pom_pole); + when(configurationRepository.getAllUserConfigurationNames(config_user.getId())).thenReturn(configs); + + /* /configuration */ + List configuration = new ArrayList<>(); + Configuration con = new Configuration("{\r\n \"configuration\": [\r\n {\r\n \"antiPattern\": \"TooLongSprint\",\r\n \"thresholds\": [\r\n {\r\n \"thresholdName\": \"maxIterationLength\",\r\n \"value\": \"21\"\r\n },\r\n {\r\n \"thresholdName\": \"maxNumberOfTooLongIterations\",\r\n \"value\": \"0\"\r\n }\r\n ]\r\n },\r\n {\r\n \"antiPattern\": \"VaryingSprintLength\",\r\n \"thresholds\": [\r\n {\r\n \"thresholdName\": \"maxDaysDifference\",\r\n \"value\": \"7\"\r\n },\r\n {\r\n \"thresholdName\": \"maxIterationChanged\",\r\n \"value\": \"1\"\r\n }\r\n ]\r\n },\r\n {\r\n \"antiPattern\": \"BusinessAsUsual\",\r\n \"thresholds\": [\r\n {\r\n \"thresholdName\": \"divisionOfIterationsWithRetrospective\",\r\n \"value\": \"66.66f\"\r\n },\r\n {\r\n \"thresholdName\": \"searchSubstringsWithRetrospective\",\r\n \"value\": \"%retr%||%revi%||%week%scrum%\"\r\n }\r\n ]\r\n },\r\n {\r\n \"antiPattern\": \"SpecifyNothing\",\r\n \"thresholds\": [\r\n {\r\n \"thresholdName\": \"minNumberOfWikiPagesWithSpecification\",\r\n \"value\": \"1\"\r\n },\r\n {\r\n \"thresholdName\": \"minNumberOfActivitiesWithSpecification\",\r\n \"value\": \"1\"\r\n },\r\n {\r\n \"thresholdName\": \"minAvgLengthOfActivityDescription\",\r\n \"value\": \"150\"\r\n },\r\n {\r\n \"thresholdName\": \"searchSubstringsWithProjectSpecification\",\r\n \"value\": \"%dsp%||%specifikace%||%specification%||%vize%proj%||%vize%produ%\"\r\n }\r\n ]\r\n },\r\n {\r\n \"antiPattern\": \"RoadToNowhere\",\r\n \"thresholds\": [\r\n {\r\n \"thresholdName\": \"minNumberOfWikiPagesWithProjectPlan\",\r\n \"value\": \"1\"\r\n },\r\n {\r\n \"thresholdName\": \"minNumberOfActivitiesWithProjectPlan\",\r\n \"value\": \"1\"\r\n },\r\n {\r\n \"thresholdName\": \"searchSubstringsWithProjectPlan\",\r\n \"value\": \"%pl?n projektu%||%project plan%||%plan project%||%projektov? pl?n%\"\r\n }\r\n ]\r\n },\r\n {\r\n \"antiPattern\": \"LongOrNonExistentFeedbackLoops\",\r\n \"thresholds\": [\r\n {\r\n \"thresholdName\": \"divisionOfIterationsWithFeedbackLoop\",\r\n \"value\": \"50.00f\"\r\n },\r\n {\r\n \"thresholdName\": \"maxGapBetweenFeedbackLoopRate\",\r\n \"value\": \"2f\"\r\n },\r\n {\r\n \"thresholdName\": \"searchSubstringsWithFeedbackLoop\",\r\n \"value\": \"%sch?z%z?kazn?k%||%p?edveden?%z?kazn?k%||%z?kazn%demo%||%sch?z%zadavat%||%inform%sch?z%||%z?kazn%||%zadavatel%\"\r\n }\r\n ]\r\n },\r\n {\r\n \"antiPattern\": \"NinetyNinetyRule\",\r\n \"thresholds\": [\r\n {\r\n \"thresholdName\": \"maxDivisionRange\",\r\n \"value\": \"1.25f\"\r\n },\r\n {\r\n \"thresholdName\": \"maxBadDivisionLimit\",\r\n \"value\": \"2\"\r\n }\r\n ]\r\n },\r\n {\r\n \"antiPattern\": \"UnknownPoster\",\r\n \"thresholds\": [\r\n {\r\n \"thresholdName\": \"searchSubstringsInvalidNames\",\r\n \"value\": \"%unknown%||%anonym%\"\r\n }\r\n ]\r\n },\r\n {\r\n \"antiPattern\": \"BystanderApathy\",\r\n \"thresholds\": [\r\n {\r\n \"thresholdName\": \"searchSubstringsInvalidContributors\",\r\n \"value\": \"%dependabot%\"\r\n },\r\n {\r\n \"thresholdName\": \"maximumPercentageOfTasksWithoutTeamwork\",\r\n \"value\": \"30f\"\r\n }\r\n ]\r\n },\r\n {\r\n \"antiPattern\": \"YetAnotherProgrammer\",\r\n \"thresholds\": [\r\n {\r\n \"thresholdName\": \"maxNumberOfNewContributors\",\r\n \"value\": \"5\"\r\n },\r\n {\r\n \"thresholdName\": \"numberOfFirstMonthsWithoutDetection\",\r\n \"value\": \"2\"\r\n }\r\n ]\r\n }\r\n ]\r\n}" + ,null, "Y", "default config", "default config"); + Object[] pom = new Object[2]; + pom[0] = con; + pom[1] = new UserConfigurationJoin(null, "default config"); + configuration.add(pom); + when(configurationRepository.getAllUserConfigurations(config_user.getId())).thenReturn(configuration); + } + + private void setupAboutControllerMocks() { + List metadata = new ArrayList<>(); + Metadata met = new Metadata(); + met.setAppDataValue("[ { \"version\": \"1.0.0\", \"authors\": [ { \"name\": \"Ondrej Vane\", \"email\": \"vaneo@students.zcu.cz\"}], \"description\": \"This application is used to detect presence of anti-patterns in project management tools data. Seven selected anti-patterns are implemented in this application.\"}, { \"version\": \"1.1.0\", \"authors\": [ { \"name\": \"Ondrej Vane\", \"email\": \"vaneo@students.zcu.cz\"}], \"description\": \"This application is used to detect presence of anti-patterns in project management tools data. Seven selected anti-patterns are implemented in this application.\"}, { \"version\": \"1.2.0\", \"authors\": [ { \"name\": \"Petr Stepanek\", \"email\": \"petrs1@students.zcu.cz\"}], \"description\": \"This application is used to detect presence of anti-patterns in project management tools data. Ten selected anti-patterns are implemented in this application.\"}, { \"version\": \"2.0.0\", \"authors\": [ { \"name\": \"Petr Stepanek\", \"email\": \"petrs1@students.zcu.cz\"}, { \"name\": \"Petr Urban\", \"email\": \"urbanp@students.zcu.cz\"}, { \"name\": \"Jiri Trefil\", \"email\": \"trefil@students.zcu.cz\"}, { \"name\": \"Vaclav Hrabik\", \"email\": \"hrabikv@students.zcu.cz\"}], \"description\": \"TODO\"}]"); + met.setId(1L); + met.setAppDataKey("basics"); + metadata.add(met); + when(aboutPageRepository.findAll()).thenReturn(metadata); + } + + private void setupDetectionControllerMocks() { + /* Detection */ + /* /list */ + Map thresholdMap1 = new HashMap<>(); + thresholdMap1.put("divisionOfIterationsWithRetrospective", new Threshold( + "divisionOfIterationsWithRetrospective", + "Division of iterations with retrospective", + "Minimum percentage of the total number of iterations with a retrospective (0,100)", + "Percentage must be float number between 0 and 100", + "Percentage" + )); + thresholdMap1.put("searchSubstringsWithRetrospective", new Threshold( + "searchSubstringsWithRetrospective", + "Search substrings with retrospective", + "Substring that will be search in wikipages and activities", + "Maximum number of substrings is ten and must not starts and ends with characters || ", + "String" + )); + List antiPatterns = new ArrayList<>(); + antiPatterns.add(new AntiPattern(3L, + "Business As Usual", + "BusinessAsUsual", + "Absence of a retrospective after individual iterations or after the completion project.", + thresholdMap1, + "Business_As_Usual.md" + )); + when(antiPatternService.getAllAntiPatterns()).thenReturn(null); + when(antiPatternService.antiPatternsToModel(any())).thenReturn(antiPatterns); + + List projectList = new ArrayList<>(); + Project project1 = new Project("Aplikace nad otevrenymi daty (KIV) BHVS", "generic description in czech"); + project1.setId(6L); + projectList.add(project1); + when(projectService.getAllProjects()).thenReturn(projectList); + + /* /analyze */ + Configuration con = new Configuration("{\r\n \"configuration\": [\r\n {\r\n \"antiPattern\": \"TooLongSprint\",\r\n \"thresholds\": [\r\n {\r\n \"thresholdName\": \"maxIterationLength\",\r\n \"value\": \"21\"\r\n },\r\n {\r\n \"thresholdName\": \"maxNumberOfTooLongIterations\",\r\n \"value\": \"0\"\r\n }\r\n ]\r\n },\r\n {\r\n \"antiPattern\": \"VaryingSprintLength\",\r\n \"thresholds\": [\r\n {\r\n \"thresholdName\": \"maxDaysDifference\",\r\n \"value\": \"7\"\r\n },\r\n {\r\n \"thresholdName\": \"maxIterationChanged\",\r\n \"value\": \"1\"\r\n }\r\n ]\r\n },\r\n {\r\n \"antiPattern\": \"BusinessAsUsual\",\r\n \"thresholds\": [\r\n {\r\n \"thresholdName\": \"divisionOfIterationsWithRetrospective\",\r\n \"value\": \"66.66f\"\r\n },\r\n {\r\n \"thresholdName\": \"searchSubstringsWithRetrospective\",\r\n \"value\": \"%retr%||%revi%||%week%scrum%\"\r\n }\r\n ]\r\n },\r\n {\r\n \"antiPattern\": \"SpecifyNothing\",\r\n \"thresholds\": [\r\n {\r\n \"thresholdName\": \"minNumberOfWikiPagesWithSpecification\",\r\n \"value\": \"1\"\r\n },\r\n {\r\n \"thresholdName\": \"minNumberOfActivitiesWithSpecification\",\r\n \"value\": \"1\"\r\n },\r\n {\r\n \"thresholdName\": \"minAvgLengthOfActivityDescription\",\r\n \"value\": \"150\"\r\n },\r\n {\r\n \"thresholdName\": \"searchSubstringsWithProjectSpecification\",\r\n \"value\": \"%dsp%||%specifikace%||%specification%||%vize%proj%||%vize%produ%\"\r\n }\r\n ]\r\n },\r\n {\r\n \"antiPattern\": \"RoadToNowhere\",\r\n \"thresholds\": [\r\n {\r\n \"thresholdName\": \"minNumberOfWikiPagesWithProjectPlan\",\r\n \"value\": \"1\"\r\n },\r\n {\r\n \"thresholdName\": \"minNumberOfActivitiesWithProjectPlan\",\r\n \"value\": \"1\"\r\n },\r\n {\r\n \"thresholdName\": \"searchSubstringsWithProjectPlan\",\r\n \"value\": \"%pl?n projektu%||%project plan%||%plan project%||%projektov? pl?n%\"\r\n }\r\n ]\r\n },\r\n {\r\n \"antiPattern\": \"LongOrNonExistentFeedbackLoops\",\r\n \"thresholds\": [\r\n {\r\n \"thresholdName\": \"divisionOfIterationsWithFeedbackLoop\",\r\n \"value\": \"50.00f\"\r\n },\r\n {\r\n \"thresholdName\": \"maxGapBetweenFeedbackLoopRate\",\r\n \"value\": \"2f\"\r\n },\r\n {\r\n \"thresholdName\": \"searchSubstringsWithFeedbackLoop\",\r\n \"value\": \"%sch?z%z?kazn?k%||%p?edveden?%z?kazn?k%||%z?kazn%demo%||%sch?z%zadavat%||%inform%sch?z%||%z?kazn%||%zadavatel%\"\r\n }\r\n ]\r\n },\r\n {\r\n \"antiPattern\": \"NinetyNinetyRule\",\r\n \"thresholds\": [\r\n {\r\n \"thresholdName\": \"maxDivisionRange\",\r\n \"value\": \"1.25f\"\r\n },\r\n {\r\n \"thresholdName\": \"maxBadDivisionLimit\",\r\n \"value\": \"2\"\r\n }\r\n ]\r\n },\r\n {\r\n \"antiPattern\": \"UnknownPoster\",\r\n \"thresholds\": [\r\n {\r\n \"thresholdName\": \"searchSubstringsInvalidNames\",\r\n \"value\": \"%unknown%||%anonym%\"\r\n }\r\n ]\r\n },\r\n {\r\n \"antiPattern\": \"BystanderApathy\",\r\n \"thresholds\": [\r\n {\r\n \"thresholdName\": \"searchSubstringsInvalidContributors\",\r\n \"value\": \"%dependabot%\"\r\n },\r\n {\r\n \"thresholdName\": \"maximumPercentageOfTasksWithoutTeamwork\",\r\n \"value\": \"30f\"\r\n }\r\n ]\r\n },\r\n {\r\n \"antiPattern\": \"YetAnotherProgrammer\",\r\n \"thresholds\": [\r\n {\r\n \"thresholdName\": \"maxNumberOfNewContributors\",\r\n \"value\": \"5\"\r\n },\r\n {\r\n \"thresholdName\": \"numberOfFirstMonthsWithoutDetection\",\r\n \"value\": \"2\"\r\n }\r\n ]\r\n }\r\n ]\r\n}" + , null, "Y", "default config", "default config"); + String[] selectedProjects = new String[1]; + selectedProjects[0] = "1"; + String[] selectedAntiPatterns = new String[1]; + selectedAntiPatterns[0] = "3"; + Map> currentConfiguration = JSONBuilder.createMapFromString(con.getConfig()); + when(configurationRepository.findConfigurationById(1)).thenReturn(con); + Project project = new Project("Aplikace pro Centrum blizkovychodnich studii (FF) Medici", ""); + project.setId(1L); + List results = new ArrayList<>(); + List queryResultItemList = new ArrayList<>(); + List resultDetailsList = new ArrayList<>(); + resultDetailsList.add(new ResultDetail("Min retrospective limit", "3")); + resultDetailsList.add(new ResultDetail("Found retrospectives", "4")); + resultDetailsList.add(new ResultDetail("Total number of iterations", "5")); + resultDetailsList.add(new ResultDetail("Conclusion", "There is right number of retrospectives")); + queryResultItemList.add(new QueryResultItem(antiPatterns.get(0), false, resultDetailsList)); + ProjectToDto projectToDto = new ProjectToDto(); + results.add(new QueryResult(projectToDto.convert(project), queryResultItemList)); + when(antiPatternManager.analyze(selectedProjects, selectedAntiPatterns, currentConfiguration)).thenReturn(results); + } +} diff --git a/src/test/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/controller/UserControllerTest.java b/src/test/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/controller/UserControllerTest.java new file mode 100644 index 0000000..2b67b11 --- /dev/null +++ b/src/test/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/controller/UserControllerTest.java @@ -0,0 +1,145 @@ +//package cz.zcu.fav.kiv.antipatterndetectionapp.v2.controller; +// +//import cz.zcu.fav.kiv.antipatterndetectionapp.v2.dials.UserModelStatusCodes; +//import cz.zcu.fav.kiv.antipatterndetectionapp.v2.service.user.UserService; +//import cz.zcu.fav.kiv.antipatterndetectionapp.v2.utils.JSONBuilder; +//import org.junit.Test; +//import org.junit.jupiter.api.extension.ExtendWith; +//import org.junit.runner.RunWith; +//import org.mockito.Mockito; +//import org.springframework.beans.factory.annotation.Autowired; +//import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest; +//import org.springframework.boot.test.context.SpringBootTest; +//import org.springframework.boot.test.mock.mockito.MockBean; +//import org.springframework.http.HttpStatus; +//import org.springframework.http.MediaType; +//import org.springframework.mock.web.MockHttpServletResponse; +//import org.springframework.security.test.context.support.WithMockUser; +//import org.springframework.test.context.junit.jupiter.SpringExtension; +//import org.springframework.test.context.junit4.SpringRunner; +//import org.springframework.test.web.servlet.MockMvc; +//import org.springframework.test.web.servlet.MvcResult; +//import org.springframework.test.web.servlet.RequestBuilder; +//import org.springframework.test.web.servlet.request.MockMvcRequestBuilders; +// +//import java.util.HashMap; +// +//import static org.junit.jupiter.api.Assertions.assertEquals; +//import static org.mockito.ArgumentMatchers.any; +// +////@ExtendWith(SpringExtension.class) +//@RunWith(SpringRunner.class) +////@SpringBootTest +//@WebMvcTest(value = UserController.class) +////@WithMockUser +//public class UserControllerTest { +// +// @Autowired +// private MockMvc mockMvc; +// +// @MockBean +// private UserService userService; +// +// +// @Test +// public void registerUserNew() throws Exception { +// Mockito.when(userService.registerUser(any())).thenReturn(UserModelStatusCodes.USER_CREATED); +// HashMap map = new HashMap<>(); +// map.put("name","pepa"); +// map.put("password","ahojSvete"); +// map.put("email","yxz@ahoj.cz"); +// String json = JSONBuilder.buildJSON(map); +// RequestBuilder requestBuilder = MockMvcRequestBuilders +// .post("/v2/user/register") +// .accept(MediaType.APPLICATION_JSON).content(json) +// .contentType(MediaType.APPLICATION_JSON); +// +// MvcResult result = mockMvc.perform(requestBuilder).andReturn(); +// +// MockHttpServletResponse response = result.getResponse(); +// +// assertEquals(HttpStatus.CREATED.value(), response.getStatus()); +// } +// @Test +// public void registerUserInvalidArguments() throws Exception { +// Mockito.when(userService.registerUser(any())).thenReturn(UserModelStatusCodes.INVALID_USER_ARGUMENTS); +// HashMap map = new HashMap<>(); +// map.put("name","pepa"); +// map.put("password","ahojSvete"); +// map.put("email","yxz"); +// String json = JSONBuilder.buildJSON(map); +// RequestBuilder requestBuilder = MockMvcRequestBuilders +// .post("/v2/user/register") +// .accept(MediaType.APPLICATION_JSON).content(json) +// .contentType(MediaType.APPLICATION_JSON); +// +// MvcResult result = mockMvc.perform(requestBuilder).andReturn(); +// +// MockHttpServletResponse response = result.getResponse(); +// +// assertEquals(HttpStatus.BAD_REQUEST.value(), response.getStatus()); +// } +// +// +// +// @Test +// public void registerUserExists() throws Exception { +// Mockito.when(userService.registerUser(any())).thenReturn(UserModelStatusCodes.USER_EXISTS); +// HashMap map = new HashMap<>(); +// map.put("name","pepa"); +// map.put("password","ahojSvete"); +// map.put("email","yxz@ahoj.cz"); +// String json = JSONBuilder.buildJSON(map); +// RequestBuilder requestBuilder = MockMvcRequestBuilders +// .post("/v2/user/register") +// .accept(MediaType.APPLICATION_JSON).content(json) +// .contentType(MediaType.APPLICATION_JSON); +// +// MvcResult result = mockMvc.perform(requestBuilder).andReturn(); +// +// MockHttpServletResponse response = result.getResponse(); +// +// assertEquals(HttpStatus.BAD_REQUEST.value(), response.getStatus()); +// } +// +// @Test +// public void loginValidUser() throws Exception { +// Mockito.when(userService.verifyUser(any())).thenReturn(UserModelStatusCodes.USER_LOGGED_IN); +// HashMap map = new HashMap<>(); +// map.put("name","pepa"); +// map.put("password","ahojSvete"); +// map.put("email","yxz@ahoj.cz"); +// String json = JSONBuilder.buildJSON(map); +// RequestBuilder requestBuilder = MockMvcRequestBuilders +// .post("/v2/user/login") +// .accept(MediaType.APPLICATION_JSON).content(json) +// .contentType(MediaType.APPLICATION_JSON); +// +// MvcResult result = mockMvc.perform(requestBuilder).andReturn(); +// +// MockHttpServletResponse response = result.getResponse(); +// +// assertEquals(HttpStatus.OK.value(), response.getStatus()); +// } +// +// @Test +// public void loginInValidUser() throws Exception { +// Mockito.when(userService.verifyUser(any())).thenReturn(UserModelStatusCodes.USER_LOGIN_FAILED); +// HashMap map = new HashMap<>(); +// map.put("name","pepa"); +// map.put("password","ahojSvete"); +// map.put("email","yxz@ahoj.cz"); +// String json = JSONBuilder.buildJSON(map); +// RequestBuilder requestBuilder = MockMvcRequestBuilders +// .post("/v2/user/login") +// .accept(MediaType.APPLICATION_JSON).content(json) +// .contentType(MediaType.APPLICATION_JSON); +// +// MvcResult result = mockMvc.perform(requestBuilder).andReturn(); +// +// MockHttpServletResponse response = result.getResponse(); +// +// assertEquals(HttpStatus.UNAUTHORIZED.value(), response.getStatus()); +// } +// +//} diff --git a/src/test/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/service/DetectionServiceImplementationTest.java b/src/test/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/service/DetectionServiceImplementationTest.java new file mode 100644 index 0000000..0495345 --- /dev/null +++ b/src/test/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/service/DetectionServiceImplementationTest.java @@ -0,0 +1,49 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.v2.service; + +import cz.zcu.fav.kiv.antipatterndetectionapp.model.QueryResult; +import cz.zcu.fav.kiv.antipatterndetectionapp.v2.model.Configuration; +import cz.zcu.fav.kiv.antipatterndetectionapp.v2.model.UserDetectionDto; +import cz.zcu.fav.kiv.antipatterndetectionapp.v2.repository.ConfigRepository; +import cz.zcu.fav.kiv.antipatterndetectionapp.v2.service.detection.DetectionService; +import org.junit.jupiter.api.Test; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.boot.test.mock.mockito.MockBean; + +import java.util.List; + +import static org.junit.jupiter.api.Assertions.*; +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.Mockito.when; + +@SpringBootTest +public class DetectionServiceImplementationTest { + @Autowired + DetectionService detectionService; + @MockBean + private ConfigRepository configRepository; + private final Configuration mockConfiguration = new Configuration + ("{ \"configuration\": [ { \"antiPattern\": \"TooLongSprint\", \"thresholds\": [ { \"thresholdName\": \"maxIterationLength\", \"value\": \"21\" }, { \"thresholdName\": \"maxNumberOfTooLongIterations\", \"value\": \"0\" } ] }, { \"antiPattern\": \"VaryingSprintLength\", \"thresholds\": [ { \"thresholdName\": \"maxDaysDifference\", \"value\": \"7\" }, { \"thresholdName\": \"maxIterationChanged\", \"value\": \"1\" } ] }, { \"antiPattern\": \"BusinessAsUsual\", \"thresholds\": [ { \"thresholdName\": \"divisionOfIterationsWithRetrospective\", \"value\": \"66.66f\" }, { \"thresholdName\": \"searchSubstringsWithRetrospective\", \"value\": \"%retr%||%revi%||%week%scrum%\" } ] }, { \"antiPattern\": \"SpecifyNothing\", \"thresholds\": [ { \"thresholdName\": \"minNumberOfWikiPagesWithSpecification\", \"value\": \"1\" }, { \"thresholdName\": \"minNumberOfActivitiesWithSpecification\", \"value\": \"1\" }, { \"thresholdName\": \"minAvgLengthOfActivityDescription\", \"value\": \"150\" }, { \"thresholdName\": \"searchSubstringsWithProjectSpecification\", \"value\": \"%dsp%||%specifikace%||%specification%||%vize%proj%||%vize%produ%\" } ] }, { \"antiPattern\": \"RoadToNowhere\", \"thresholds\": [ { \"thresholdName\": \"minNumberOfWikiPagesWithProjectPlan\", \"value\": \"1\" }, { \"thresholdName\": \"minNumberOfActivitiesWithProjectPlan\", \"value\": \"1\" }, { \"thresholdName\": \"searchSubstringsWithProjectPlan\", \"value\": \"%plán projektu%||%project plan%||%plan project%||%projektový plán%\" } ] }, { \"antiPattern\": \"LongOrNonExistentFeedbackLoops\", \"thresholds\": [ { \"thresholdName\": \"divisionOfIterationsWithFeedbackLoop\", \"value\": \"50.00f\" }, { \"thresholdName\": \"maxGapBetweenFeedbackLoopRate\", \"value\": \"2f\" }, { \"thresholdName\": \"searchSubstringsWithFeedbackLoop\", \"value\": \"%schůz%zákazník%||%předvedení%zákazník%||%zákazn%demo%||%schůz%zadavat%||%inform%schůz%||%zákazn%||%zadavatel%\" } ] }, { \"antiPattern\": \"NinetyNinetyRule\", \"thresholds\": [ { \"thresholdName\": \"maxDivisionRange\", \"value\": \"1.25f\" }, { \"thresholdName\": \"maxBadDivisionLimit\", \"value\": \"2\" } ] }, { \"antiPattern\": \"UnknownPoster\", \"thresholds\": [ { \"thresholdName\": \"searchSubstringsInvalidNames\", \"value\": \"%unknown%||%anonym%\" } ] }, { \"antiPattern\": \"BystanderApathy\", \"thresholds\": [ { \"thresholdName\": \"searchSubstringsInvalidContributors\", \"value\": \"%dependabot%\" }, { \"thresholdName\": \"maximumPercentageOfTasksWithoutTeamwork\", \"value\": \"30f\" } ] }, { \"antiPattern\": \"YetAnotherProgrammer\", \"thresholds\": [ { \"thresholdName\": \"maxNumberOfNewContributors\", \"value\": \"5\" }, { \"thresholdName\": \"numberOfFirstMonthsWithoutDetection\", \"value\": \"2\" } ] } ] }", + "N","mockName",null); + + //no projects provided in request - incorrect request + @Test + public void invalidProjectParameterDetection() { + final UserDetectionDto userDetectionDtoMockInvalid = new UserDetectionDto("foo",1,new String[]{},new String[]{"1"}); + //request is invalid + + when(configRepository.findConfigurationById(1)).thenReturn(mockConfiguration); + List results = detectionService.analyze(userDetectionDtoMockInvalid); + assertEquals(0,results.size()); + } + //no antipatterns provided in request - also incorrect + @Test + public void invalidAntipatternParameterDetection() { + final UserDetectionDto userDetectionDtoMockInvalid = new UserDetectionDto("foo",1,new String[]{"1"},new String[]{}); + //request is invalid + when(configRepository.findConfigurationById(1)).thenReturn(mockConfiguration); + List results = detectionService.analyze(userDetectionDtoMockInvalid); + assertEquals(0,results.size()); + } + +} diff --git a/src/test/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/service/OAuthServiceImplTest.java b/src/test/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/service/OAuthServiceImplTest.java new file mode 100644 index 0000000..fa959c9 --- /dev/null +++ b/src/test/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/service/OAuthServiceImplTest.java @@ -0,0 +1,111 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.v2.service; + +import cz.zcu.fav.kiv.antipatterndetectionapp.v2.model.User; +import cz.zcu.fav.kiv.antipatterndetectionapp.v2.service.oauth.OAuthService; +import cz.zcu.fav.kiv.antipatterndetectionapp.v2.utils.JSONBuilder; +import cz.zcu.fav.kiv.antipatterndetectionapp.v2.utils.RequestBuilder; +import org.junit.jupiter.api.Test; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.boot.test.mock.mockito.MockBean; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import java.util.HashMap; +import java.util.Map; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.mockito.ArgumentMatchers.*; +import static org.mockito.Mockito.when; + +@SpringBootTest +public class OAuthServiceImplTest { + + @Autowired + private OAuthService oAuthService; + + @MockBean + private RequestBuilder requestBuilder; + + /** + * Mocked User + */ + private final User mockUser = new User("foo", "foo@foo.cz", "foo"); + private final String sampleToken = "eyJhbGciOiJIUzUxMiJ9.eyJqdGkiOiIyMGU4NmJiMC1lMDU4LTQwYTMtYjQyZC02ZTBjOWIyMmQ5MWQiL" + + "CJzdWIiOiJmb28iLCJpYXQiOjE2ODE0MTY2ODAsImV4cCI6MTY4MTQxNjk4MH0.YJTwPEI4njQqYRuLGilf_oVl0gGD5BWFmdolk1O" + + "vYWIgTcoIAFwh6bwqrW7XM6Hlj-ItYj9EmihYIqN5gfJVtg"; + // valid user logged in - http response with code 200 and token in body is expected + @Test + public void loginValidUser() { + ResponseEntity response = ResponseEntity.ok().body(sampleToken); + + when(requestBuilder.sendRequestResponse(anyString(), anyMap())).thenReturn(response); + ResponseEntity response1 = oAuthService.loginUser(mockUser); + assertEquals(response, response1); + + } + + // return 200 response if valid user is trying to authenticate + @Test + public void authenticateValidUser() { + ResponseEntity expectedResponse = ResponseEntity.ok().body(mockUser.getName()); + + when(requestBuilder.sendRequestResponse(anyString(), anyString())).thenReturn(expectedResponse); + ResponseEntity response1 = oAuthService.authenticate(sampleToken); + assertEquals(expectedResponse, response1); + +// try(MockedStatic requestBuilderMockedStatic = Mockito.mockStatic(RequestBuilder.class)){ +// requestBuilderMockedStatic.when(() -> RequestBuilder.sendRequestResponse(anyString(), anyString())).thenReturn(expectedResponse); +// ResponseEntity response = oAuthService.authenticate(sampleToken); +// assertEquals(expectedResponse, response); +// } + + } + + // return 401 if unauthorized user is trying to authenticate + @Test + public void authenticateInvalidUser() { + ResponseEntity expectedResponse = ResponseEntity.status(HttpStatus.UNAUTHORIZED).body(mockUser.getName()); + + when(requestBuilder.sendRequestResponse(anyString(), anyString())).thenReturn(expectedResponse); + ResponseEntity response1 = oAuthService.authenticate(sampleToken); + assertEquals(expectedResponse, response1); + +// try(MockedStatic requestBuilderMockedStatic = Mockito.mockStatic(RequestBuilder.class)){ +// requestBuilderMockedStatic.when(() -> RequestBuilder.sendRequestResponse(anyString(), anyString())).thenReturn(expectedResponse); +// ResponseEntity response = oAuthService.authenticate(sampleToken); +// assertEquals(expectedResponse, response); +// } + + } + @Test + public void logoutUser() { + Map json = new HashMap<>(); + json.put("message","ok"); + //have to set token to the user - in this scenario we assume user is logged in + mockUser.setToken(sampleToken); + String jsonString = JSONBuilder.buildJSON(json); + ResponseEntity expectedResponse = ResponseEntity.status(HttpStatus.OK).body(jsonString); + + when(requestBuilder.sendRequestResponse(anyString(), anyMap())).thenReturn(expectedResponse); + ResponseEntity response1 = oAuthService.logoutUser(mockUser); + assertEquals(expectedResponse, response1); + +// try(MockedStatic requestBuilderMockedStatic = Mockito.mockStatic(RequestBuilder.class)){ +// requestBuilderMockedStatic.when(() -> RequestBuilder.sendRequestResponse(anyString(), anyMap())).thenReturn(expectedResponse); +// ResponseEntity response = oAuthService.logoutUser(mockUser); +// assertEquals(expectedResponse, response); +// } + + + } + + + + + + + + + + +} diff --git a/src/test/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/service/UserServiceImpTest.java b/src/test/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/service/UserServiceImpTest.java new file mode 100644 index 0000000..f3b2b15 --- /dev/null +++ b/src/test/java/cz/zcu/fav/kiv/antipatterndetectionapp/v2/service/UserServiceImpTest.java @@ -0,0 +1,294 @@ +package cz.zcu.fav.kiv.antipatterndetectionapp.v2.service; + +import cz.zcu.fav.kiv.antipatterndetectionapp.v2.dials.UserModelStatusCodes; +import cz.zcu.fav.kiv.antipatterndetectionapp.v2.model.User; +import cz.zcu.fav.kiv.antipatterndetectionapp.v2.repository.UserRepository; +import cz.zcu.fav.kiv.antipatterndetectionapp.v2.service.user.UserService; +import cz.zcu.fav.kiv.antipatterndetectionapp.v2.service.user.UserServiceImpl; +import cz.zcu.fav.kiv.antipatterndetectionapp.v2.utils.Crypto; +import org.junit.jupiter.api.Test; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; +import org.springframework.boot.test.mock.mockito.MockBean; + +import static org.junit.jupiter.api.Assertions.assertEquals; +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.Mockito.when; + +/** + * Tests for userServiceImplementation + */ +@SpringBootTest +public class UserServiceImpTest { + + /** + * UserService + */ + @Autowired + private UserService userService; + + /** + * Mocked userRepository + */ + @MockBean + private UserRepository userRepository; + + /** + * Mocked User + */ + private final User mockUser = new User("test", "test@tt.cz", "Ahoj99"); + + /* <-------- REGISTRATION TESTING --------> */ + + /** + * To test happy-day scenario where everything is ok + */ + @Test + public void whenUserIsNotRegistered_thenRegisterHim() { + when(userRepository.save(any())).thenReturn(mockUser); + + UserModelStatusCodes foundCode = userService.registerUser(mockUser); + + assertEquals(UserModelStatusCodes.USER_CREATED, foundCode); + } + + /** + * To test scenario where user want register which name, with more than 255 chars + */ + @Test + public void whenUserNameIsInvalid_thenReturnMSG() { + User MUser = new User("asdasdasdasdasdasdasdafjsdjbfsdfbsdkncbsdcsdlkjdsbvjkhsbdvjhbxcvbjxcnvbxbjhdsbfjs" + + "fsjdkdddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd" + + "ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd" + + "ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd" + + "ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd" + + "dddddddddddhfbsdjfhbsdjhbjckvxjhbvjhfbsjhbdjhsbvhbsckjhvbsdhfbsdjhvbjxhcbvhbjhvbxcv", "tt@aa.ct"); + UserModelStatusCodes foundCode = userService.registerUser(MUser); + + assertEquals(UserModelStatusCodes.INVALID_USER_ARGUMENTS, foundCode); + } + + /** + * To test scenario where user want register which email, with more than 255 chars + */ + @Test + public void whenUserEmailIsInvalid_thenReturnMSG() { + User MUser = new User("Petr", "tasdddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd" + + "dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd" + + "dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd" + + "dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd" + + "ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddt@aa.ct"); + UserModelStatusCodes foundCode = userService.registerUser(MUser); + + assertEquals(UserModelStatusCodes.INVALID_USER_ARGUMENTS, foundCode); + } + + /** + * To test scenario where user want register which email, with email without "@" + */ + @Test + public void whenUserEmailIsInvalid_02_thenReturnMSG() { + User MUser = new User("Petr", "testaa.ct"); + UserModelStatusCodes foundCode = userService.registerUser(MUser); + + assertEquals(UserModelStatusCodes.INVALID_USER_ARGUMENTS, foundCode); + } + + /** + * To test scenario where user want register which email, with email without "." + */ + @Test + public void whenUserEmailIsInvalid_03_thenReturnMSG() { + User MUser = new User("Petr", "test@aact"); + UserModelStatusCodes foundCode = userService.registerUser(MUser); + + assertEquals(UserModelStatusCodes.INVALID_USER_ARGUMENTS, foundCode); + } + + /** + * To test scenario where user want register which email, with email without "@" and "." + */ + @Test + public void whenUserEmailIsInvalid_04_thenReturnMSG() { + User MUser = new User("Petr", "testaact"); + UserModelStatusCodes foundCode = userService.registerUser(MUser); + + assertEquals(UserModelStatusCodes.INVALID_USER_ARGUMENTS, foundCode); + } + + /** + * To test scenario where user want register which name and email, with more than 255 chars + */ + @Test + public void whenUserNameAndEmailIsInvalid_thenReturnMSG() { + User MUser = new User("asdasdasdasdasdasdasdafjsdjbfsdfbsdkncbsdcsdlkjdsbvjkhsbdvjhbxcvbjxcnvbxbjhdsbfjs" + + "fsjdkdddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd" + + "ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd" + + "ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd" + + "ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd" + + "dddddddddddhfbsdjfhbsdjhbjckvxjhbvjhfbsjhbdjhsbvhbsckjhvbsdhfbsdjhvbjxhcbvhbjhvbxcv", "tasddddddd" + + "ddddddddddddddddddddddddddddddddddddddddddddddddddddddddd" + + "dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd" + + "dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd" + + "dddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddd" + + "ddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddt@aa.ct"); + UserModelStatusCodes foundCode = userService.registerUser(MUser); + + assertEquals(UserModelStatusCodes.INVALID_USER_ARGUMENTS, foundCode); + } + + /** + * scenario where username is empty + */ + @Test + public void whenUserNULLName_thenReturnMSG() { + User MUser = new User(null, "tt@asd.cf", "Ahoj99"); + UserModelStatusCodes foundCode = userService.registerUser(MUser); + + assertEquals(UserModelStatusCodes.INVALID_USER_ARGUMENTS, foundCode); + } + /** + * scenario where email is empty + */ + @Test + public void whenUserNULLEmail_thenReturnMSG() { + User MUser = new User("tt", null, "Ahoj99"); + UserModelStatusCodes foundCode = userService.registerUser(MUser); + + assertEquals(UserModelStatusCodes.INVALID_USER_ARGUMENTS, foundCode); + } + + /** + * scenario where password is empty + */ + @Test + public void whenUserNULLPassword_thenReturnMSG() { + User MUser = new User("tt", "tt@asd.cf", null); + UserModelStatusCodes foundCode = userService.registerUser(MUser); + + assertEquals(UserModelStatusCodes.INVALID_USER_ARGUMENTS, foundCode); + } + + /** + * scenario where username and email is empty + */ + @Test + public void whenUserNULLNameEmail_thenReturnMSG() { + User MUser = new User(null, null, "Ahoj99"); + UserModelStatusCodes foundCode = userService.registerUser(MUser); + + assertEquals(UserModelStatusCodes.INVALID_USER_ARGUMENTS, foundCode); + } + + /** + * scenario where username and password is empty + */ + @Test + public void whenUserNULLNamePassword_thenReturnMSG() { + User MUser = new User(null, "tt@asd.cf", null); + UserModelStatusCodes foundCode = userService.registerUser(MUser); + + assertEquals(UserModelStatusCodes.INVALID_USER_ARGUMENTS, foundCode); + } + + /** + * scenario where email and password is empty + */ + @Test + public void whenUserNULLEmailPassword_thenReturnMSG() { + User MUser = new User("tt", null, null); + UserModelStatusCodes foundCode = userService.registerUser(MUser); + + assertEquals(UserModelStatusCodes.INVALID_USER_ARGUMENTS, foundCode); + } + + /** + * scenario where username, password, and email is empty + */ + @Test + public void whenUserNULLNameEmailPassword_thenReturnMSG() { + User MUser = new User(null, null, null); + UserModelStatusCodes foundCode = userService.registerUser(MUser); + + assertEquals(UserModelStatusCodes.INVALID_USER_ARGUMENTS, foundCode); + } + + /** + * To test scenario where user want to register with name, that is already taken + */ + @Test + public void whenUserIsRegistered_thenSendMSG() { + when(userRepository.findByName(any())).thenReturn(mockUser); + + UserModelStatusCodes foundCode = userService.registerUser(mockUser); + + assertEquals(UserModelStatusCodes.USER_EXISTS, foundCode); + } + + /* <-------- USER VERIFICATION TESTING --------> */ + + /** + * for happy-day scenario user is registered + */ + @Test + public void whenUserIsRegistered_thenVerifyHim() { + String name = mockUser.getName(); + String password = "C63293087805FC0E63564B1F389A85DE00A369B01F3B4B0D0F3A949F565D2765"; + String email = mockUser.getEmail(); + + when(userRepository.findByName(any())).thenReturn(new User(name, email, password)); + + UserModelStatusCodes foundCode = userService.verifyUser(mockUser); + + assertEquals(UserModelStatusCodes.USER_LOGGED_IN, foundCode); + } + + /** + * for users name is not registered + */ + @Test + public void whenUserIsNotRegistered_thenReturnMSG() { + + when(userRepository.findByName(any())).thenReturn(null); + + UserModelStatusCodes foundCode = userService.verifyUser(mockUser); + + assertEquals(UserModelStatusCodes.USER_LOGIN_FAILED, foundCode); + } + + /** + * for scenario when user has wrong password + */ + @Test + public void whenUserHasWrongPassword_thenSendERROR_MSG() { + String name = mockUser.getName(); + String password = "test"; + String email = mockUser.getEmail(); + + when(userRepository.findByName(any())).thenReturn(new User(name, email, password)); + + UserModelStatusCodes foundCode = userService.verifyUser(mockUser); + + assertEquals(UserModelStatusCodes.USER_LOGIN_FAILED, foundCode); + } + + + + + + /* <-------- HASH TESTING --------> */ + /** + * for happy-day scenario user is registered + */ + @Test + public void Hash_test() { + String hash = "c63293087805fc0e63564b1f389a85de00a369b01f3b4b0d0f3a949f565d2765"; + + UserServiceImpl userService1 = new UserServiceImpl(); + + String foundCode = Crypto.hashString(mockUser.getPassword()); + + assertEquals(hash.toUpperCase(), foundCode); + } + +} diff --git a/src/test/resources/contracts/about_200.groovy b/src/test/resources/contracts/about_200.groovy new file mode 100644 index 0000000..f99773c --- /dev/null +++ b/src/test/resources/contracts/about_200.groovy @@ -0,0 +1,51 @@ +package contracts + +import org.springframework.cloud.contract.spec.Contract + +class Author { + String name = "" + String email = "" +} + +class Version { + String version = "" + Author[] array = [] + String description = "" +} + +Contract.make { + description "Get information about app." + request { + method GET() + url("/v2/app/metadata/about") + headers { + header("Authorization": "Bearer token") + contentType applicationJson() + } + } + response { + body( + [["version" : '2.0.0', + "authors": [["name": "Petr Stepanek", "email": 'petrs1@students.zcu.cz'], + ["name": "Petr Urban", "email": 'urbanp@students.zcu.cz'], + ["name": "Jiri Trefil", "email": 'trefil@students.zcu.cz'], + ["name": "Vaclav Hrabik", "email": 'hrabikv@students.zcu.cz'] + ], + "description": 'TODO'], + ["version": '1.2.0', + "authors": [["name": 'Petr Stepanek', "email": 'petrs1@students.zcu.cz']], + "description": 'This application is used to detect presence of anti-patterns in project management tools data. Ten selected anti-patterns are implemented in this application.' + ], + ["version": '1.1.0', + "authors": ["name": 'Ondrej Vane', "email": 'vaneo@students.zcu.cz'], + "description": 'This application is used to detect presence of anti-patterns in project management tools data. Seven selected anti-patterns are implemented in this application.' + ], + ["version": '1.0.0', + "authors": ["name": 'Ondrej Vane', "email": 'vaneo@students.zcu.cz'], + "description": 'This application is used to detect presence of anti-patterns in project management tools data. Seven selected anti-patterns are implemented in this application.' + ] + ] + ) + status 200 + } +} \ No newline at end of file diff --git a/src/test/resources/contracts/configurationNames200.groovy b/src/test/resources/contracts/configurationNames200.groovy new file mode 100644 index 0000000..c022b7e --- /dev/null +++ b/src/test/resources/contracts/configurationNames200.groovy @@ -0,0 +1,25 @@ +package contracts + +import org.springframework.cloud.contract.spec.Contract + +Contract.make { + description "Fetch all configurations of user." + request { + method POST() + url("/v2/configuration/configuration_name") + headers { + header("Authorization": "Bearer token") + contentType applicationJson() + } + body( + "name": "config_user" + ) + } + response { + body( + "configuration_ids": ["0"], + "configuration_names": ["default config"] + ) + status 200 + } +} \ No newline at end of file diff --git a/src/test/resources/contracts/configurations_200.groovy b/src/test/resources/contracts/configurations_200.groovy new file mode 100644 index 0000000..68f58a9 --- /dev/null +++ b/src/test/resources/contracts/configurations_200.groovy @@ -0,0 +1,27 @@ +package contracts + +import org.springframework.cloud.contract.spec.Contract + +Contract.make { + description "Fetch all configurations of user." + request { + method POST() + url("/v2/configuration/configuration") + headers { + header("Authorization": "Bearer token") + contentType applicationJson() + } + body( + "name": "config_user" + ) + } + response { + body( + "configuration": ["{\r\n \"configuration\": [\r\n {\r\n \"antiPattern\": \"TooLongSprint\",\r\n \"thresholds\": [\r\n {\r\n \"thresholdName\": \"maxIterationLength\",\r\n \"value\": \"21\"\r\n },\r\n {\r\n \"thresholdName\": \"maxNumberOfTooLongIterations\",\r\n \"value\": \"0\"\r\n }\r\n ]\r\n },\r\n {\r\n \"antiPattern\": \"VaryingSprintLength\",\r\n \"thresholds\": [\r\n {\r\n \"thresholdName\": \"maxDaysDifference\",\r\n \"value\": \"7\"\r\n },\r\n {\r\n \"thresholdName\": \"maxIterationChanged\",\r\n \"value\": \"1\"\r\n }\r\n ]\r\n },\r\n {\r\n \"antiPattern\": \"BusinessAsUsual\",\r\n \"thresholds\": [\r\n {\r\n \"thresholdName\": \"divisionOfIterationsWithRetrospective\",\r\n \"value\": \"66.66f\"\r\n },\r\n {\r\n \"thresholdName\": \"searchSubstringsWithRetrospective\",\r\n \"value\": \"%retr%||%revi%||%week%scrum%\"\r\n }\r\n ]\r\n },\r\n {\r\n \"antiPattern\": \"SpecifyNothing\",\r\n \"thresholds\": [\r\n {\r\n \"thresholdName\": \"minNumberOfWikiPagesWithSpecification\",\r\n \"value\": \"1\"\r\n },\r\n {\r\n \"thresholdName\": \"minNumberOfActivitiesWithSpecification\",\r\n \"value\": \"1\"\r\n },\r\n {\r\n \"thresholdName\": \"minAvgLengthOfActivityDescription\",\r\n \"value\": \"150\"\r\n },\r\n {\r\n \"thresholdName\": \"searchSubstringsWithProjectSpecification\",\r\n \"value\": \"%dsp%||%specifikace%||%specification%||%vize%proj%||%vize%produ%\"\r\n }\r\n ]\r\n },\r\n {\r\n \"antiPattern\": \"RoadToNowhere\",\r\n \"thresholds\": [\r\n {\r\n \"thresholdName\": \"minNumberOfWikiPagesWithProjectPlan\",\r\n \"value\": \"1\"\r\n },\r\n {\r\n \"thresholdName\": \"minNumberOfActivitiesWithProjectPlan\",\r\n \"value\": \"1\"\r\n },\r\n {\r\n \"thresholdName\": \"searchSubstringsWithProjectPlan\",\r\n \"value\": \"%pl?n projektu%||%project plan%||%plan project%||%projektov? pl?n%\"\r\n }\r\n ]\r\n },\r\n {\r\n \"antiPattern\": \"LongOrNonExistentFeedbackLoops\",\r\n \"thresholds\": [\r\n {\r\n \"thresholdName\": \"divisionOfIterationsWithFeedbackLoop\",\r\n \"value\": \"50.00f\"\r\n },\r\n {\r\n \"thresholdName\": \"maxGapBetweenFeedbackLoopRate\",\r\n \"value\": \"2f\"\r\n },\r\n {\r\n \"thresholdName\": \"searchSubstringsWithFeedbackLoop\",\r\n \"value\": \"%sch?z%z?kazn?k%||%p?edveden?%z?kazn?k%||%z?kazn%demo%||%sch?z%zadavat%||%inform%sch?z%||%z?kazn%||%zadavatel%\"\r\n }\r\n ]\r\n },\r\n {\r\n \"antiPattern\": \"NinetyNinetyRule\",\r\n \"thresholds\": [\r\n {\r\n \"thresholdName\": \"maxDivisionRange\",\r\n \"value\": \"1.25f\"\r\n },\r\n {\r\n \"thresholdName\": \"maxBadDivisionLimit\",\r\n \"value\": \"2\"\r\n }\r\n ]\r\n },\r\n {\r\n \"antiPattern\": \"UnknownPoster\",\r\n \"thresholds\": [\r\n {\r\n \"thresholdName\": \"searchSubstringsInvalidNames\",\r\n \"value\": \"%unknown%||%anonym%\"\r\n }\r\n ]\r\n },\r\n {\r\n \"antiPattern\": \"BystanderApathy\",\r\n \"thresholds\": [\r\n {\r\n \"thresholdName\": \"searchSubstringsInvalidContributors\",\r\n \"value\": \"%dependabot%\"\r\n },\r\n {\r\n \"thresholdName\": \"maximumPercentageOfTasksWithoutTeamwork\",\r\n \"value\": \"30f\"\r\n }\r\n ]\r\n },\r\n {\r\n \"antiPattern\": \"YetAnotherProgrammer\",\r\n \"thresholds\": [\r\n {\r\n \"thresholdName\": \"maxNumberOfNewContributors\",\r\n \"value\": \"5\"\r\n },\r\n {\r\n \"thresholdName\": \"numberOfFirstMonthsWithoutDetection\",\r\n \"value\": \"2\"\r\n }\r\n ]\r\n }\r\n ]\r\n}" + ], + "configuration_names": ["default config"] + ) + status 200 + } +} + diff --git a/src/test/resources/contracts/detectAntiPatternsInProjects_200.groovy b/src/test/resources/contracts/detectAntiPatternsInProjects_200.groovy new file mode 100644 index 0000000..c3f7816 --- /dev/null +++ b/src/test/resources/contracts/detectAntiPatternsInProjects_200.groovy @@ -0,0 +1,78 @@ +package contracts + +import org.springframework.cloud.contract.spec.Contract + +Contract.make { + description "Fetch all configurations of user." + request { + method POST() + url("/v2/detect/analyze") + headers { + header("Authorization": "Bearer token") + contentType applicationJson() + } + body( + "configurationId" : "1", + "selectedAntipatterns" : [3], + "selectedProjects" : [1] + ) + } + response { + body( + [ + [ + "project" : [ + "description" : "", + "id" : 1, + "name" : "Aplikace pro Centrum blizkovychodnich studii (FF) Medici" + ], + "queryResultItems" : [ + ["antiPattern" : ["catalogueFileName" : "Business_As_Usual.md", + "description" : "Absence of a retrospective after individual iterations or after the completion project.", + "id" : 3, + "name" : "BusinessAsUsual", + "printName" : "Business As Usual", + "thresholds" : ["divisionOfIterationsWithRetrospective" : ["description" : "Minimum percentage of the total number of iterations with a retrospective (0,100)", + "errorMessage" : "Percentage must be float number between 0 and 100", + "isErrorMessageShown" : false, + "name" : "divisionOfIterationsWithRetrospective", + "printName" : "Division of iterations with retrospective", + "type" : "Percentage" + ], + "searchSubstringsWithRetrospective" : ["description" : "Substring that will be search in wikipages and activities", + "errorMessage" : "Maximum number of substrings is ten and must not starts and ends with characters || ", + "isErrorMessageShown" : false, + "name" : "searchSubstringsWithRetrospective", + "printName" : "Search substrings with retrospective", + "type" : "String" + ] + ] + ], + "isDetected" : false, + "resultDetails" : [ + [ + "resultDetailName" : "Min retrospective limit", + "resultDetailValue" : "3" + ], + [ + "resultDetailName" : "Found retrospectives", + "resultDetailValue" : "4" + ], + [ + "resultDetailName" : "Total number of iterations", + "resultDetailValue" : "5" + ], + [ + "resultDetailName" : "Conclusion", + "resultDetailValue" : "There is right number of retrospectives" + ] + ] + ] + ] + ] + ] + ) + status 200 + } +} + diff --git a/src/test/resources/contracts/listAllProjectsAllAntiPatterns_200.groovy b/src/test/resources/contracts/listAllProjectsAllAntiPatterns_200.groovy new file mode 100644 index 0000000..3841d34 --- /dev/null +++ b/src/test/resources/contracts/listAllProjectsAllAntiPatterns_200.groovy @@ -0,0 +1,54 @@ +package contracts + +import org.springframework.cloud.contract.spec.Contract + +Contract.make { + description "Fetch all configurations of user." + request { + method GET() + url("/v2/detect/list") + headers { + header("Authorization": "Bearer token") + contentType applicationJson() + } + } + response { + body( + "antiPatterns": [ + ["catalogueFileName" : "Business_As_Usual.md", + "description" : "Absence of a retrospective after individual iterations or after the completion project.", + "id" : 3, + "name" : "BusinessAsUsual", + "printName" : "Business As Usual", + "thresholds" : ["divisionOfIterationsWithRetrospective" : + [ "description" : "Minimum percentage of the total number of iterations with a retrospective (0,100)", + "errorMessage" : "Percentage must be float number between 0 and 100", + "isErrorMessageShown" : false, + "name" : "divisionOfIterationsWithRetrospective", + "printName" : "Division of iterations with retrospective", + "type" : "Percentage" + ], + "searchSubstringsWithRetrospective" : + [ "description" : "Substring that will be search in wikipages and activities", + "errorMessage" : "Maximum number of substrings is ten and must not starts and ends with characters || ", + "isErrorMessageShown" : false, + "name" : "searchSubstringsWithRetrospective", + "printName" : "Search substrings with retrospective", + "type" : "String" + ] + ] + ] + ], + "projects" : [ + [ + "description" : "generic description in czech", + "id" : 6, + "name" : "Aplikace nad otevrenymi daty (KIV) BHVS" + ] + ] + + ) + status 200 + } +} + diff --git a/src/test/resources/contracts/loginUser_200.groovy b/src/test/resources/contracts/loginUser_200.groovy new file mode 100644 index 0000000..8039b2b --- /dev/null +++ b/src/test/resources/contracts/loginUser_200.groovy @@ -0,0 +1,25 @@ +package contracts + +import org.springframework.cloud.contract.spec.Contract + +Contract.make { + description "Login of registered user." + request { + method POST() + url("/v2/user/login") + headers { + contentType applicationJson() + } + body( + "name": "existing", + "password": "foo" + ) + } + response { + body( + "message": "User logged in successfully", + "jwtToken": "token" + ) + status 200 + } +} \ No newline at end of file diff --git a/src/test/resources/contracts/loginUser_401_1.groovy b/src/test/resources/contracts/loginUser_401_1.groovy new file mode 100644 index 0000000..9554b4b --- /dev/null +++ b/src/test/resources/contracts/loginUser_401_1.groovy @@ -0,0 +1,24 @@ +package contracts + +import org.springframework.cloud.contract.spec.Contract + +Contract.make { + description "Login of unregistered user." + request { + method POST() + url("/v2/user/login") + headers { + contentType applicationJson() + } + body( + "name": "non_existing", + "password": "foo" + ) + } + response { + body( + "message" : "User login failed" + ) + status 401 + } +} \ No newline at end of file diff --git a/src/test/resources/contracts/loginUser_401_2.groovy b/src/test/resources/contracts/loginUser_401_2.groovy new file mode 100644 index 0000000..a913c73 --- /dev/null +++ b/src/test/resources/contracts/loginUser_401_2.groovy @@ -0,0 +1,24 @@ +package contracts + +import org.springframework.cloud.contract.spec.Contract + +Contract.make { + description "Login of registered user with wrong password." + request { + method POST() + url("/v2/user/login") + headers { + contentType applicationJson() + } + body( + "name": "foo", + "password": "wrong" + ) + } + response { + body( + "message" : "User login failed" + ) + status 401 + } +} \ No newline at end of file diff --git a/src/test/resources/contracts/logoutUser_200.groovy b/src/test/resources/contracts/logoutUser_200.groovy new file mode 100644 index 0000000..327de7f --- /dev/null +++ b/src/test/resources/contracts/logoutUser_200.groovy @@ -0,0 +1,24 @@ +package contracts + +import org.springframework.cloud.contract.spec.Contract + +Contract.make { + description "Logout of logged in user." + request { + method POST() + url("/v2/user/logout") + headers { + header("Authorization": "Bearer token") + contentType applicationJson() + } + body( + "name": "existing" + ) + } + response { + body( + "message": "User logged out" + ) + status 200 + } +} \ No newline at end of file diff --git a/src/test/resources/contracts/registerNewUser_201.groovy b/src/test/resources/contracts/registerNewUser_201.groovy new file mode 100644 index 0000000..5e7c494 --- /dev/null +++ b/src/test/resources/contracts/registerNewUser_201.groovy @@ -0,0 +1,25 @@ +package contracts + +import org.springframework.cloud.contract.spec.Contract + +Contract.make { + description "Creates new user in the application" + request { + method POST() + url("/v2/user/register") + headers { + contentType applicationJson() + } + body( + "name": "new_user", + "password": "foo", + "email": "foo@foo.foo" + ) + } + response { + body( + "message" : "User successfully created" + ) + status 201 + } +} \ No newline at end of file diff --git a/src/test/resources/contracts/registerNewUser_400.groovy b/src/test/resources/contracts/registerNewUser_400.groovy new file mode 100644 index 0000000..e05d84a --- /dev/null +++ b/src/test/resources/contracts/registerNewUser_400.groovy @@ -0,0 +1,25 @@ +package contracts + +import org.springframework.cloud.contract.spec.Contract + +Contract.make { + description "User already exists" + request { + method POST() + url("/v2/user/register") + headers { + contentType applicationJson() + } + body( + "name": "existing", + "password": "foo", + "email": "foo@foo.foo" + ) + } + response { + body( + "message" : "User exists" + ) + status 400 + } +} \ No newline at end of file diff --git a/src/test/resources/swagger_prep/registerExistingUser.yaml b/src/test/resources/swagger_prep/registerExistingUser.yaml new file mode 100644 index 0000000..8f3014d --- /dev/null +++ b/src/test/resources/swagger_prep/registerExistingUser.yaml @@ -0,0 +1,65 @@ +openapi: 3.0.0 +info: + title: todo title + description: todo desc + version: 2.0.0 + +paths: + /v2/user/register: + post: + summary: Registers a new user to the database + description: desc + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/User' + examples: + '201': + value: + { + name: non-existing, + email: foo@foo.foo, + password: foo + } + + responses: + '201': #status code + description: TODO + content: + application/json: + schema: + type: array + items: + type: string + properties: + message: + type: string + examples: + '201': + value: + { + message: User successfully created + } + +components: + schemas: + + User: + title: User + type: object + properties: + name: + type: string + description: User name + email: + type: string + description: User email + password: + type: string + description: User password + required: + - name + - email + - password \ No newline at end of file diff --git a/wiki_img/arch-diagram.svg b/wiki_img/arch-diagram.svg new file mode 100644 index 0000000..9d728dc --- /dev/null +++ b/wiki_img/arch-diagram.svg @@ -0,0 +1,4 @@ + + + +
SPAWn - Web Interface
SPAWn - Web Interface
SPADe - Detector
SPADe - Detector
Autenticator
Autenticator
Project Data
Database
Project Data...
SPAWn
Database
SPAWn...
Rest API
Rest API
API
Caller
API...
UI components
UI components
User
User
Project Data
Repositories
Project Data...
Application
Repositories
Application...
Rest API
Rest API
Token
Manager
Module
Token...
User
Module
User...
Configuration
Module
Configuration...
Detecting module
Detecting mod...
Anti-patterns
module
Anti-patterns...
Anti-patterns
Catalogue
Anti-patterns...
HTTP
HTTP
HTTP
HTTP
   JDBC
   JDBC
   JDBC
   JDBC
   HTTP
   HTTP
Browser
Browser
Text is not SVG - cannot display
\ No newline at end of file diff --git a/wiki_img/migrace_bp.svg b/wiki_img/migrace_bp.svg new file mode 100644 index 0000000..5de5c95 --- /dev/null +++ b/wiki_img/migrace_bp.svg @@ -0,0 +1,4 @@ + + + +
Začátek integrace
Začátek integrace
Checkout repozitáře SPADe s BP A. Šmucra
Checkout repozitáře SPADe...
Nezbytné pro seznámení se s funkcionalitou, která se bude migrovat
Nezbytné pro seznámení...
Checkout repozitářů SPADe, SPAWn, authenticator
Checkout repozitářů SPADe,...
V aktuální architektuře se systém skládá z těchto tří aplikací
V aktuální architektuře...
Vytvořit stránku
ve SPAWn 
Vytvořit stránku...

Stránka v ReactJS

Stránka se vytvoří v adresáři src/pages/manage.

Soubor s funkcemi pro komunikaci s API se bude nacházet v adresáři src/api.

Strukturou souborů je možné se inspirovat u již přemigrovaných funkcionalit.



Stránka v ReactJS...
Vytvořit controller ve SPADe 
Vytvořit controller ve SPA...

SPADe API

Controller se vytvoří v adresáři src/main/java/cz/zcu/fav/kiv/antipattern../v2/ controller/management 

Strukturou controlleru je možné se inspirovat u již přemigrovaných controllerů ve stejném adresáři. 


SPADe API...
Použití konkrétních
services (s použitím existujících POJO
objekty)
Použití konkrétních...
Transformace POJO objektů do JSON
s využitím knihoven
Transformace POJO objektů...
Ano
Ano
Ne
Ne
Padá vytvoření
JSONu na Stackoverflow?
Padá vytvoření...
Vytvoření menšího
DTO objektu
Vytvoření menšího...

DTO objekt

Ne všechny atributy je nutné posílat na frontend.

DTO objekt...
Úspěšně dokončená migrace
Úspěšně dokončená migrace
Ladění
Ladění
Text is not SVG - cannot display
\ No newline at end of file diff --git a/wiki_img/readme.md b/wiki_img/readme.md new file mode 100644 index 0000000..c7c17d9 --- /dev/null +++ b/wiki_img/readme.md @@ -0,0 +1 @@ +# Hello world \ No newline at end of file