From 3b30244239892e62467a937cd65a9cf23477ce52 Mon Sep 17 00:00:00 2001 From: ronancpl Date: Fri, 24 Nov 2017 14:00:48 -0200 Subject: [PATCH] Maker-oriented commit Implemented the multiple features of the Maker skill (equip disassembly, leftover merging into monster crystal and item crafting). Updated the DB with the Maker data featured on the WZ. Added a new table for the strenghtening reagents gain data (compiled with the MapleSkillMakerReagentIndexer). Fixed quests that improves the Maker skill level and some other Maker-related quests. --- .gitignore | 12 +- dist/MapleSolaxia.jar | Bin 1402745 -> 1415923 bytes docs/feature_list.txt | 4 + docs/mychanges_ptbr.txt | 9 +- nbproject/private/private.xml | 5 +- scripts/npc/1012118.js | 19 +- scripts/npc/1012119.js | 13 +- scripts/npc/1022104.js | 43 + scripts/npc/1022105.js | 10 + scripts/npc/1032113.js | 43 + scripts/npc/1032114.js | 10 + scripts/npc/1052113.js | 43 + scripts/npc/1052114.js | 43 + scripts/npc/1095001.js | 10 + scripts/npc/1095002.js | 10 + scripts/portal/ariant_castle.js | 2 +- scripts/portal/ariant_queens.js | 1 + scripts/quest/6030.js | 56 + scripts/quest/6031.js | 56 + scripts/quest/6032.js | 54 + scripts/quest/6033.js | 60 + scripts/quest/6036.js | 59 + sql/db_database.sql | 1690 +- sql/db_drops.sql | 30 +- src/client/command/Commands.java | 40 +- src/constants/EquipType.java | 94 + src/constants/ItemConstants.java | 16 + src/constants/ServerConstants.java | 9 +- .../channel/handlers/MakerSkillHandler.java | 410 +- src/scripting/AbstractPlayerInteraction.java | 29 +- src/server/CashShop.java | 14 +- src/server/MakerItemFactory.java | 177 +- src/server/MapleInventoryManipulator.java | 14 +- src/server/MapleItemInformationProvider.java | 523 +- src/server/life/MapleLifeFactory.java | 21 + src/tools/MaplePacketCreator.java | 15 +- src/tools/locks/MonitoredLockType.java | 2 +- .../lib/ItemMake.img.xml | 16559 ---------------- .../MapleSkillMakerFetcher/lib/MakerData.sql | 1633 +- .../MapleItemInformationProvider.java | 201 + .../MapleMakerItemEntry.java | 1 - .../MapleSkillMakerFetcher.java | 42 +- .../src/provider/MapleCanvas.java | 30 + .../src/provider/MapleData.java | 34 + .../src/provider/MapleDataDirectoryEntry.java | 34 + .../src/provider/MapleDataEntity.java | 31 + .../src/provider/MapleDataEntry.java | 33 + .../src/provider/MapleDataFileEntry.java | 30 + .../src/provider/MapleDataProvider.java | 27 + .../provider/MapleDataProviderFactory.java | 55 + .../src/provider/MapleDataTool.java | 145 + .../provider/wz/FileStoredPngMapleCanvas.java | 70 + .../src/provider/wz/ImgMapleSound.java | 39 + .../src/provider/wz/ListWZFile.java | 86 + .../src/provider/wz/MapleDataType.java | 26 + .../src/provider/wz/PNGMapleCanvas.java | 151 + .../src/provider/wz/WZDirectoryEntry.java | 68 + .../src/provider/wz/WZEntry.java | 61 + .../src/provider/wz/WZFile.java | 154 + .../src/provider/wz/WZFileEntry.java | 42 + .../src/provider/wz/WZIMGEntry.java | 118 + .../src/provider/wz/WZIMGFile.java | 227 + .../src/provider/wz/WZTool.java | 187 + .../src/provider/wz/XMLDomMapleData.java | 219 + .../src/provider/wz/XMLWZFile.java | 85 + .../src/tools/HexTool.java | 79 + .../tools/data/input/ByteArrayByteStream.java | 72 + .../src/tools/data/input/ByteInputStream.java | 35 + .../input/GenericLittleEndianAccessor.java | 239 + .../GenericSeekableLittleEndianAccessor.java | 91 + .../data/input/InputStreamByteStream.java | 93 + .../data/input/LittleEndianAccessor.java | 45 + .../data/input/RandomAccessByteStream.java | 84 + .../input/SeekableInputStreamBytestream.java | 51 + .../input/SeekableLittleEndianAccessor.java | 27 + tools/MapleSkillMakerReagentIndexer/build.xml | 73 + .../lib/MakerReagentData.sql | 56 + .../MapleSkillMakerReagentIndexer/manifest.mf | 3 + .../nbproject/build-impl.xml | 1448 ++ .../nbproject/genfiles.properties | 8 + .../nbproject/project.properties | 73 + .../nbproject/project.xml | 16 + .../MapleSkillMakerReagentIndexer.java | 226 + .../mapleskillmakerreagentindexer/Pair.java | 121 + wz/Quest.wz/Act.img.xml | 1 - wz/Quest.wz/Check.img.xml | 56 +- wz/Quest.wz/Say.img.xml | 2 +- 87 files changed, 8424 insertions(+), 18509 deletions(-) create mode 100644 scripts/npc/1022104.js create mode 100644 scripts/npc/1032113.js create mode 100644 scripts/npc/1052113.js create mode 100644 scripts/npc/1052114.js create mode 100644 scripts/quest/6030.js create mode 100644 scripts/quest/6031.js create mode 100644 scripts/quest/6032.js create mode 100644 scripts/quest/6033.js create mode 100644 scripts/quest/6036.js create mode 100644 src/constants/EquipType.java delete mode 100644 tools/MapleSkillMakerFetcher/lib/ItemMake.img.xml create mode 100644 tools/MapleSkillMakerFetcher/src/mapleskillmakerfetcher/MapleItemInformationProvider.java create mode 100644 tools/MapleSkillMakerFetcher/src/provider/MapleCanvas.java create mode 100644 tools/MapleSkillMakerFetcher/src/provider/MapleData.java create mode 100644 tools/MapleSkillMakerFetcher/src/provider/MapleDataDirectoryEntry.java create mode 100644 tools/MapleSkillMakerFetcher/src/provider/MapleDataEntity.java create mode 100644 tools/MapleSkillMakerFetcher/src/provider/MapleDataEntry.java create mode 100644 tools/MapleSkillMakerFetcher/src/provider/MapleDataFileEntry.java create mode 100644 tools/MapleSkillMakerFetcher/src/provider/MapleDataProvider.java create mode 100644 tools/MapleSkillMakerFetcher/src/provider/MapleDataProviderFactory.java create mode 100644 tools/MapleSkillMakerFetcher/src/provider/MapleDataTool.java create mode 100644 tools/MapleSkillMakerFetcher/src/provider/wz/FileStoredPngMapleCanvas.java create mode 100644 tools/MapleSkillMakerFetcher/src/provider/wz/ImgMapleSound.java create mode 100644 tools/MapleSkillMakerFetcher/src/provider/wz/ListWZFile.java create mode 100644 tools/MapleSkillMakerFetcher/src/provider/wz/MapleDataType.java create mode 100644 tools/MapleSkillMakerFetcher/src/provider/wz/PNGMapleCanvas.java create mode 100644 tools/MapleSkillMakerFetcher/src/provider/wz/WZDirectoryEntry.java create mode 100644 tools/MapleSkillMakerFetcher/src/provider/wz/WZEntry.java create mode 100644 tools/MapleSkillMakerFetcher/src/provider/wz/WZFile.java create mode 100644 tools/MapleSkillMakerFetcher/src/provider/wz/WZFileEntry.java create mode 100644 tools/MapleSkillMakerFetcher/src/provider/wz/WZIMGEntry.java create mode 100644 tools/MapleSkillMakerFetcher/src/provider/wz/WZIMGFile.java create mode 100644 tools/MapleSkillMakerFetcher/src/provider/wz/WZTool.java create mode 100644 tools/MapleSkillMakerFetcher/src/provider/wz/XMLDomMapleData.java create mode 100644 tools/MapleSkillMakerFetcher/src/provider/wz/XMLWZFile.java create mode 100644 tools/MapleSkillMakerFetcher/src/tools/HexTool.java create mode 100644 tools/MapleSkillMakerFetcher/src/tools/data/input/ByteArrayByteStream.java create mode 100644 tools/MapleSkillMakerFetcher/src/tools/data/input/ByteInputStream.java create mode 100644 tools/MapleSkillMakerFetcher/src/tools/data/input/GenericLittleEndianAccessor.java create mode 100644 tools/MapleSkillMakerFetcher/src/tools/data/input/GenericSeekableLittleEndianAccessor.java create mode 100644 tools/MapleSkillMakerFetcher/src/tools/data/input/InputStreamByteStream.java create mode 100644 tools/MapleSkillMakerFetcher/src/tools/data/input/LittleEndianAccessor.java create mode 100644 tools/MapleSkillMakerFetcher/src/tools/data/input/RandomAccessByteStream.java create mode 100644 tools/MapleSkillMakerFetcher/src/tools/data/input/SeekableInputStreamBytestream.java create mode 100644 tools/MapleSkillMakerFetcher/src/tools/data/input/SeekableLittleEndianAccessor.java create mode 100644 tools/MapleSkillMakerReagentIndexer/build.xml create mode 100644 tools/MapleSkillMakerReagentIndexer/lib/MakerReagentData.sql create mode 100644 tools/MapleSkillMakerReagentIndexer/manifest.mf create mode 100644 tools/MapleSkillMakerReagentIndexer/nbproject/build-impl.xml create mode 100644 tools/MapleSkillMakerReagentIndexer/nbproject/genfiles.properties create mode 100644 tools/MapleSkillMakerReagentIndexer/nbproject/project.properties create mode 100644 tools/MapleSkillMakerReagentIndexer/nbproject/project.xml create mode 100644 tools/MapleSkillMakerReagentIndexer/src/mapleskillmakerreagentindexer/MapleSkillMakerReagentIndexer.java create mode 100644 tools/MapleSkillMakerReagentIndexer/src/mapleskillmakerreagentindexer/Pair.java diff --git a/.gitignore b/.gitignore index 70e1a6afe9..0e3d07e468 100644 --- a/.gitignore +++ b/.gitignore @@ -19,6 +19,10 @@ /tools/MapleIdRetriever/dist/ /tools/MapleIdRetriever/nbproject/private/ +/tools/MapleMapInfoRetriever/build/ +/tools/MapleMapInfoRetriever/dist/ +/tools/MapleMapInfoRetriever/nbproject/private/ + /tools/MapleMesoFetcher/build/ /tools/MapleMesoFetcher/dist/ /tools/MapleMesoFetcher/nbproject/private/ @@ -31,6 +35,10 @@ /tools/MapleSkillMakerFetcher/dist/ /tools/MapleSkillMakerFetcher/nbproject/private/ +/tools/MapleSkillMakerReagentIndexer/build/ +/tools/MapleSkillMakerReagentIndexer/dist/ +/tools/MapleSkillMakerReagentIndexer/nbproject/private/ + /tools/MobBookIndexer/build/ /tools/MobBookIndexer/dist/ /tools/MobBookIndexer/nbproject/private/ @@ -38,7 +46,3 @@ /tools/MobBookUpdate/build/ /tools/MobBookUpdate/dist/ /tools/MobBookUpdate/nbproject/private/ - -/tools/MapleMapInfoRetriever/build/ -/tools/MapleMapInfoRetriever/dist/ -/tools/MapleMapInfoRetriever/nbproject/private/ diff --git a/dist/MapleSolaxia.jar b/dist/MapleSolaxia.jar index 488d5d75af94ccb05955d36aead3b16723f8eeb4..8397b7973ca07fe7938da2553c97733ed2e7e545 100644 GIT binary patch delta 220330 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�Ym^Y<9w3NC!7 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%0A=;v8H#qF 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 z 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 PZFUM+mc{t!G45ysJcKC}nQ`Q80)nK9RhsbC~r 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 YAiEFL939VCoUy3!$jmHrJ4-142g|1fC;$Ke delta 207691 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%0AkDdk5%6ClSUh{z3&gr;4u?(_26v5)Yym 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%0An*%$x{yEdXW0v@%+VBI=;wh1RPo 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

T;tvra64Hr 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 diff --git a/docs/feature_list.txt b/docs/feature_list.txt index 3645f6b153..1bf5265e14 100644 --- a/docs/feature_list.txt +++ b/docs/feature_list.txt @@ -27,6 +27,10 @@ PQs: * BalrogPQ semi-functional. * Capt. Latanica remade as an event (parties can now fight the boss). +Skills: +* Maker skill features properly developed. +* Server is using heurisitics to calculate fee costs for the Maker (errors sums up to 8k mesos, reagent errors stacks up comformant with it's level). + Quests: * Doll house quest functional. * Quests can now reward properly items when matching a reward item with the player's job. diff --git a/docs/mychanges_ptbr.txt b/docs/mychanges_ptbr.txt index a16cad5301..2802aa79e5 100644 --- a/docs/mychanges_ptbr.txt +++ b/docs/mychanges_ptbr.txt @@ -685,4 +685,11 @@ Corrigido bug no ThreadTracker n 18 - 20 Novembro 2017, Implementado items sendo dropados de reatores intervaladamente, GMS-like. Adicionado informação ao jogador que tentar completar uma quest com item necessário equipado. -Nova ferramenta: MapleMapInfoRetriever. Detecção básica de mapas com sem nó de info em sua estrutura WZ. \ No newline at end of file +Nova ferramenta: MapleMapInfoRetriever. Detecção básica de mapas com sem nó de info em sua estrutura WZ. +Adicionado scripts para Power B. Fore npc. + +21 - 23 Novembro 2017, +Implementado Maker skill (métodos de packets pelo menos já existiam). +Corrigido bug em MapleSkillMakerFetcher, atualizado DB com as tabelas normalizadas. +Nova ferramenta: MapleSkillMakerReagentIndexer. Agrupa no banco de dados informação pertinente aos reagentes do Maker, para serem usados pelo server. +Quests nivelando/utilizando o Maker funcionam corretamente agora. \ No newline at end of file diff --git a/nbproject/private/private.xml b/nbproject/private/private.xml index 3287222d26..315661112b 100644 --- a/nbproject/private/private.xml +++ b/nbproject/private/private.xml @@ -2,6 +2,9 @@ - + + file:/C:/Nexon/MapleSolaxia/MapleSolaxiaV2/src/constants/ServerConstants.java + file:/C:/Nexon/MapleSolaxia/MapleSolaxiaV2/src/server/MakerItemFactory.java + diff --git a/scripts/npc/1012118.js b/scripts/npc/1012118.js index 0be137b223..38386a879f 100644 --- a/scripts/npc/1012118.js +++ b/scripts/npc/1012118.js @@ -3,9 +3,13 @@ var map = 910060000; var num = 5; var maxp = 5; +function start() { + action(1, 0, 0); +} + function action(mode, type, selection) { if (mode == 1) { - status++; + status++; } else { if (status <= 1) { cm.dispose(); @@ -14,10 +18,17 @@ function action(mode, type, selection) { status--; } if (status == 0) { - if (cm.isQuestStarted(22515) || cm.isQuestStarted(22516) || cm.isQuestStarted(22517) || cm.isQuestStarted(22518)) { + if(cm.getLevel() >= 20) { + cm.sendOk("This training ground is available only for those under level 20."); + cm.dispose(); + return; + } + + if (cm.isQuestActive(22515) || cm.isQuestActive(22516) || cm.isQuestActive(22517) || cm.isQuestActive(22518)) { cm.sendYesNo("Would you like to go in the special Spore Training Center?"); status = 1; } + var selStr = "Would you like to go into the Training Center?"; for (var i = 0; i < num; i++) { selStr += "\r\n#b#L" + i + "#Training Center " + i + " (" + cm.getPlayerCount(map + i) + "/" + maxp + ")#l#k"; @@ -34,7 +45,7 @@ function action(mode, type, selection) { cm.dispose(); } } else if (status == 2) { - cm.warp(910060100,0); - cm.dispose(); + cm.warp(910060100,0); + cm.dispose(); } } \ No newline at end of file diff --git a/scripts/npc/1012119.js b/scripts/npc/1012119.js index 0a06d9baed..8713b46c25 100644 --- a/scripts/npc/1012119.js +++ b/scripts/npc/1012119.js @@ -3,6 +3,10 @@ var map = 910060000; var num = 5; var maxp = 5; +function start() { + action(1, 0, 0); +} + function action(mode, type, selection) { if (mode == 1) { status++; @@ -14,10 +18,17 @@ function action(mode, type, selection) { status--; } if (status == 0) { - if (cm.isQuestStarted(22515) || cm.isQuestStarted(22516) || cm.isQuestStarted(22517) || cm.isQuestStarted(22518)) { + if(cm.getLevel() >= 20) { + cm.sendOk("This training ground is available only for those under level 20."); + cm.dispose(); + return; + } + + if (cm.isQuestActive(22515) || cm.isQuestActive(22516) || cm.isQuestActive(22517) || cm.isQuestActive(22518)) { cm.sendYesNo("Would you like to go in the special Spore Training Center?"); status = 1; } + var selStr = "Would you like to go into the Training Center?"; for (var i = 0; i < num; i++) { selStr += "\r\n#b#L" + i + "#Training Center " + i + " (" + cm.getPlayerCount(map + i) + "/" + maxp + ")#l#k"; diff --git a/scripts/npc/1022104.js b/scripts/npc/1022104.js new file mode 100644 index 0000000000..7b6a0c1ad4 --- /dev/null +++ b/scripts/npc/1022104.js @@ -0,0 +1,43 @@ +var status = -1; +var map = 910220000; +var num = 5; +var maxp = 5; + +function start() { + action(1, 0, 0); +} + +function action(mode, type, selection) { + if (mode == 1) { + status++; + } else { + if (status <= 1) { + cm.dispose(); + return; + } + status--; + } + if (status == 0) { + if(cm.getLevel() >= 20) { + cm.sendOk("This training ground is available only for those under level 20."); + cm.dispose(); + return; + } + + var selStr = "Would you like to go into the Training Center?"; + for (var i = 0; i < num; i++) { + selStr += "\r\n#b#L" + i + "#Training Center " + i + " (" + cm.getPlayerCount(map + i) + "/" + maxp + ")#l#k"; + } + cm.sendSimple(selStr); + } else if (status == 1) { + if (selection < 0 || selection >= num) { + cm.dispose(); + } else if (cm.getPlayerCount(map + selection) >= maxp) { + cm.sendNext("This training center is full."); + status = -1; + } else { + cm.warp(map + selection, 0); + cm.dispose(); + } + } +} \ No newline at end of file diff --git a/scripts/npc/1022105.js b/scripts/npc/1022105.js index 9fe941cea6..7b6a0c1ad4 100644 --- a/scripts/npc/1022105.js +++ b/scripts/npc/1022105.js @@ -3,6 +3,10 @@ var map = 910220000; var num = 5; var maxp = 5; +function start() { + action(1, 0, 0); +} + function action(mode, type, selection) { if (mode == 1) { status++; @@ -14,6 +18,12 @@ function action(mode, type, selection) { status--; } if (status == 0) { + if(cm.getLevel() >= 20) { + cm.sendOk("This training ground is available only for those under level 20."); + cm.dispose(); + return; + } + var selStr = "Would you like to go into the Training Center?"; for (var i = 0; i < num; i++) { selStr += "\r\n#b#L" + i + "#Training Center " + i + " (" + cm.getPlayerCount(map + i) + "/" + maxp + ")#l#k"; diff --git a/scripts/npc/1032113.js b/scripts/npc/1032113.js new file mode 100644 index 0000000000..383ed474ac --- /dev/null +++ b/scripts/npc/1032113.js @@ -0,0 +1,43 @@ +var status = -1; +var map = 910120000; +var num = 5; +var maxp = 5; + +function start() { + action(1, 0, 0); +} + +function action(mode, type, selection) { + if (mode == 1) { + status++; + } else { + if (status <= 1) { + cm.dispose(); + return; + } + status--; + } + if (status == 0) { + if(cm.getLevel() >= 20) { + cm.sendOk("This training ground is available only for those under level 20."); + cm.dispose(); + return; + } + + var selStr = "Would you like to go into the Training Center?"; + for (var i = 0; i < num; i++) { + selStr += "\r\n#b#L" + i + "#Training Center " + i + " (" + cm.getPlayerCount(map + i) + "/" + maxp + ")#l#k"; + } + cm.sendSimple(selStr); + } else if (status == 1) { + if (selection < 0 || selection >= num) { + cm.dispose(); + } else if (cm.getPlayerCount(map + selection) >= maxp) { + cm.sendNext("This training center is full."); + status = -1; + } else { + cm.warp(map + selection, 0); + cm.dispose(); + } + } +} \ No newline at end of file diff --git a/scripts/npc/1032114.js b/scripts/npc/1032114.js index 965f3c2257..383ed474ac 100644 --- a/scripts/npc/1032114.js +++ b/scripts/npc/1032114.js @@ -3,6 +3,10 @@ var map = 910120000; var num = 5; var maxp = 5; +function start() { + action(1, 0, 0); +} + function action(mode, type, selection) { if (mode == 1) { status++; @@ -14,6 +18,12 @@ function action(mode, type, selection) { status--; } if (status == 0) { + if(cm.getLevel() >= 20) { + cm.sendOk("This training ground is available only for those under level 20."); + cm.dispose(); + return; + } + var selStr = "Would you like to go into the Training Center?"; for (var i = 0; i < num; i++) { selStr += "\r\n#b#L" + i + "#Training Center " + i + " (" + cm.getPlayerCount(map + i) + "/" + maxp + ")#l#k"; diff --git a/scripts/npc/1052113.js b/scripts/npc/1052113.js new file mode 100644 index 0000000000..4ebe7e3544 --- /dev/null +++ b/scripts/npc/1052113.js @@ -0,0 +1,43 @@ +var status = -1; +var map = 910310000; +var num = 5; +var maxp = 5; + +function start() { + action(1, 0, 0); +} + +function action(mode, type, selection) { + if (mode == 1) { + status++; + } else { + if (status <= 1) { + cm.dispose(); + return; + } + status--; + } + if (status == 0) { + if(cm.getLevel() >= 20) { + cm.sendOk("This training ground is available only for those under level 20."); + cm.dispose(); + return; + } + + var selStr = "Would you like to go into the Training Center?"; + for (var i = 0; i < num; i++) { + selStr += "\r\n#b#L" + i + "#Training Center " + i + " (" + cm.getPlayerCount(map + i) + "/" + maxp + ")#l#k"; + } + cm.sendSimple(selStr); + } else if (status == 1) { + if (selection < 0 || selection >= num) { + cm.dispose(); + } else if (cm.getPlayerCount(map + selection) >= maxp) { + cm.sendNext("This training center is full."); + status = -1; + } else { + cm.warp(map + selection, 0); + cm.dispose(); + } + } +} \ No newline at end of file diff --git a/scripts/npc/1052114.js b/scripts/npc/1052114.js new file mode 100644 index 0000000000..6062c957b3 --- /dev/null +++ b/scripts/npc/1052114.js @@ -0,0 +1,43 @@ +var status = -1; +var map = 910310000; +var num = 5; +var maxp = 5; + +function start() { + action(1, 0, 0); +} + +function action(mode, type, selection) { + if (mode == 1) { + status++; + } else { + if (status <= 1) { + cm.dispose(); + return; + } + status--; + } + if (status == 0) { + if(cm.getLevel() >= 20) { + cm.sendOk("This training ground is available only for those under level 20."); + cm.dispose(); + return; + } + + var selStr = "Would you like to go into the Training Center?"; + for (var i = 0; i < num; i++) { + selStr += "\r\n#b#L" + i + "#Training Center " + i + " (" + cm.getPlayerCount(map + i) + "/" + maxp + ")#l#k"; + } + cm.sendSimple(selStr); + } else if (status == 1) { + if (selection < 0 || selection >= num) { + cm.dispose(); + } else if (cm.getPlayerCount(map + selection) >= maxp) { + cm.sendNext("This training center is full."); + status = -1; + } else { + cm.warp(map + selection, 0); + cm.dispose(); + } + } +} \ No newline at end of file diff --git a/scripts/npc/1095001.js b/scripts/npc/1095001.js index 0a080aa4be..98b861088f 100644 --- a/scripts/npc/1095001.js +++ b/scripts/npc/1095001.js @@ -3,6 +3,10 @@ var map = 912030000; var num = 5; var maxp = 5; +function start() { + action(1, 0, 0); +} + function action(mode, type, selection) { if (mode == 1) { status++; @@ -14,6 +18,12 @@ function action(mode, type, selection) { status--; } if (status == 0) { + if(cm.getLevel() >= 20) { + cm.sendOk("This training ground is available only for those under level 20."); + cm.dispose(); + return; + } + var selStr = "Would you like to go into the Training Center?"; for (var i = 0; i < num; i++) { selStr += "\r\n#b#L" + i + "#Training Center " + i + " (" + cm.getPlayerCount(map + i) + "/" + maxp + ")#l#k"; diff --git a/scripts/npc/1095002.js b/scripts/npc/1095002.js index 0a080aa4be..98b861088f 100644 --- a/scripts/npc/1095002.js +++ b/scripts/npc/1095002.js @@ -3,6 +3,10 @@ var map = 912030000; var num = 5; var maxp = 5; +function start() { + action(1, 0, 0); +} + function action(mode, type, selection) { if (mode == 1) { status++; @@ -14,6 +18,12 @@ function action(mode, type, selection) { status--; } if (status == 0) { + if(cm.getLevel() >= 20) { + cm.sendOk("This training ground is available only for those under level 20."); + cm.dispose(); + return; + } + var selStr = "Would you like to go into the Training Center?"; for (var i = 0; i < num; i++) { selStr += "\r\n#b#L" + i + "#Training Center " + i + " (" + cm.getPlayerCount(map + i) + "/" + maxp + ")#l#k"; diff --git a/scripts/portal/ariant_castle.js b/scripts/portal/ariant_castle.js index 9fca7a969c..0efbe4d049 100644 --- a/scripts/portal/ariant_castle.js +++ b/scripts/portal/ariant_castle.js @@ -32,7 +32,7 @@ function enter(pi) { if (pi.getPlayer().haveItem(4031582) == true) { pi.playPortalSound(); - pi.warp(260000301, 0); + pi.warp(260000301, 5); return true; } else { pi.playerMessage(5, "You can enter only if you have a Entry Pass to the Palace."); diff --git a/scripts/portal/ariant_queens.js b/scripts/portal/ariant_queens.js index fa4f07c190..554fb29d10 100644 --- a/scripts/portal/ariant_queens.js +++ b/scripts/portal/ariant_queens.js @@ -1,3 +1,4 @@ //some quest where you must use hidden portals function enter(pi) { + return false; } \ No newline at end of file diff --git a/scripts/quest/6030.js b/scripts/quest/6030.js new file mode 100644 index 0000000000..c2ebfe38c8 --- /dev/null +++ b/scripts/quest/6030.js @@ -0,0 +1,56 @@ +/* + This file is part of the MapleSolaxiaV2 Maple Story Server + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as + published by the Free Software Foundation version 3 as published by + the Free Software Foundation. You may not use, modify or distribute + this program under any other version of the GNU Affero General Public + License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . +*/ +/* + Quest: Carson's Fundamentals of Alchemy + */ + +var status = -1; + +function end(mode, type, selection) { + if (mode == -1) { + qm.dispose(); + } else { + if(mode == 0 && type > 0) { + qm.dispose(); + return; + } + + if (mode == 1) + status++; + else + status--; + + if (status == 0) { + qm.sendNext("I am to teach you about the fundamentals of Alchemy."); + } else if (status == 1) { + qm.sendNextPrev("While science is good to take a look on the thoughtful side of the elements that compounds the items, it alone is not nearly enough to devise an item."); + } else if (status == 2) { + qm.sendNextPrev("In fact, to be able to 'tell the pieces' to become a whole, how should it be done? The rustic ways of the blacksmithing winds up dumbing down some latent potentials of the items."); + } else if (status == 3) { + qm.sendNextPrev("Alchemy can be employed for this task. Cleanly and swiftly, #rit merges the parts that forms an item with almost no drawbacks#k, making out the most of the process with almost no scrapover, if done right. It takes a while to master it, but once it is done, everything will run out neatly."); + } else if (status == 4) { + qm.sendNextPrev("And remember this: the maxima of #bExchange#k, the area of the fundamentals of Alchemy where the total amount of the material does not change, is that no item can be created from nothing. Understood?"); + } else if (status == 5) { + qm.gainMeso(-10000); + + qm.forceCompleteQuest(); + qm.dispose(); + } + } +} \ No newline at end of file diff --git a/scripts/quest/6031.js b/scripts/quest/6031.js new file mode 100644 index 0000000000..9156b8237a --- /dev/null +++ b/scripts/quest/6031.js @@ -0,0 +1,56 @@ +/* + This file is part of the MapleSolaxiaV2 Maple Story Server + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as + published by the Free Software Foundation version 3 as published by + the Free Software Foundation. You may not use, modify or distribute + this program under any other version of the GNU Affero General Public + License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . +*/ +/* + Quest: Hughes the Fuse's Basic of Theory of Science + */ + +var status = -1; + +function end(mode, type, selection) { + if (mode == -1) { + qm.dispose(); + } else { + if(mode == 0 && type > 0) { + qm.dispose(); + return; + } + + if (mode == 1) + status++; + else + status--; + + if (status == 0) { + qm.sendNext("I am to teach you about the basics of the Theory of Science."); + } else if (status == 1) { + qm.sendNextPrev("Science stages where the alchemy doesn't meet the requirements. All items have molecular constitutions. The #rnature of their arrangements and each intrinsic unit of matter#k defines the many properties an item will have."); + } else if (status == 2) { + qm.sendNextPrev("This makes true in the scenario of the #rMaker#k as well. One must be able to study the traces of each component that is being used to form the item, to be able to tell if the experiment will utmostly succeed of fail."); + } else if (status == 3) { + qm.sendNextPrev("Take that in mind: the main perspective of science, that one engine that makes it flows the strongest, whatever scenario it is, is the aspect of #bunderstanding the process#k that generates the results, not simply throwing away tries at will."); + } else if (status == 4) { + qm.sendNextPrev("That has been made clear, right? Good, then the class is over. Dismissed."); + } else if (status == 5) { + qm.gainMeso(-10000); + + qm.forceCompleteQuest(); + qm.dispose(); + } + } +} \ No newline at end of file diff --git a/scripts/quest/6032.js b/scripts/quest/6032.js new file mode 100644 index 0000000000..94c54e6620 --- /dev/null +++ b/scripts/quest/6032.js @@ -0,0 +1,54 @@ +/* + This file is part of the MapleSolaxiaV2 Maple Story Server + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as + published by the Free Software Foundation version 3 as published by + the Free Software Foundation. You may not use, modify or distribute + this program under any other version of the GNU Affero General Public + License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . +*/ +/* + Quest: Meren's Class on the Actual Practice + */ + +var status = -1; + +function end(mode, type, selection) { + if (mode == -1) { + qm.dispose(); + } else { + if(mode == 0 && type > 0) { + qm.dispose(); + return; + } + + if (mode == 1) + status++; + else + status--; + + if (status == 0) { + qm.sendNext("So you've come to attend my class, huh? Right, I'll make it fast."); + } else if (status == 1) { + qm.sendNextPrev("I will teach you the actual application of the #bMaker#k method. All you need to do is have an item in mind to make, gather all the ingredients from the receipt and mix them in a #rscientifically alchemisty way#k. Easy, isn't it?"); + } else if (status == 2) { + qm.sendNextPrev("Let's take producing the #bWeight Earrings#k as an example. There is a rather specific #rductility theory#k to generate it, as any other 'unique' items have, the name going around the #rmain physical force#k acting over the thing we are working on: on that case, the #bDuctility Theory of Gravity#k (as it is a 'Weighted Earrings', got it?)."); + } else if (status == 3) { + qm.sendNextPrev("Ok, now you need to hand me a fee, 10,000 mesos that is, for that information. The collected fee shall be used for acquiring the needed materials for your learning of the fine art of the #bMaker#k."); + } else if (status == 4) { + qm.gainMeso(-10000); + + qm.forceCompleteQuest(); + qm.dispose(); + } + } +} \ No newline at end of file diff --git a/scripts/quest/6033.js b/scripts/quest/6033.js new file mode 100644 index 0000000000..86ca6ef901 --- /dev/null +++ b/scripts/quest/6033.js @@ -0,0 +1,60 @@ +/* + This file is part of the MapleSolaxiaV2 Maple Story Server + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as + published by the Free Software Foundation version 3 as published by + the Free Software Foundation. You may not use, modify or distribute + this program under any other version of the GNU Affero General Public + License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . +*/ +/* Maker Skill + Moren's Second round of teaching + 2nd skill level + */ + +var status = -1; + +function end(mode, type, selection) { + if (mode == -1) { + qm.dispose(); + } else { + if(mode == 0 && type > 0) { + qm.dispose(); + return; + } + + if (mode == 1) + status++; + else + status--; + + if (status == 0) { + qm.sendNext("Hm, so you claim to have brought the #b#t4260003##k? Ok, let's take a look into it."); + } else if (status == 1) { + if(qm.getQuestProgress(6033) == 1 && qm.haveItem(4260003, 1)) { + qm.sendNext("You indeed have crafted a fine piece of Monster Crystal, I see. You passed! Now, I shall teach you the next steps of the Maker skill. Keep the monster crystal with you as well, it's your work."); + + var skillid = Math.floor(qm.getPlayer().getJob().getId() / 1000) * 10000000 + 1007; + qm.teachSkill(skillid, 2, 3, -1); + + qm.gainExp(230000 * qm.getPlayer().getExpRate()); + qm.forceCompleteQuest(); + + + } else { + qm.sendNext("Hey, what's wrong? I did tell you to make a monster crystal to pass my test, didn't I? Buying one or crafting before the start of the test is NOT part of the deal. Go craft me an #b#t4260003##k."); + } + + qm.dispose(); + } + } +} \ No newline at end of file diff --git a/scripts/quest/6036.js b/scripts/quest/6036.js new file mode 100644 index 0000000000..7de598c8fb --- /dev/null +++ b/scripts/quest/6036.js @@ -0,0 +1,59 @@ +/* + This file is part of the MapleSolaxiaV2 Maple Story Server + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as + published by the Free Software Foundation version 3 as published by + the Free Software Foundation. You may not use, modify or distribute + this program under any other version of the GNU Affero General Public + License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . +*/ +/* Maker Skill + A Surprise Outcome + 3rd skill level + */ + +var status = -1; + +function end(mode, type, selection) { + if (mode == -1) { + qm.dispose(); + } else { + if(mode == 0 && type > 0) { + qm.dispose(); + return; + } + + if (mode == 1) + status++; + else + status--; + + if (status == 0) { + qm.sendNext("Bothering me again? What's it?"); + } else if (status == 1) { + if(qm.haveItem(4031980, 1)) { + qm.sendNext("You crafted a #b#t4031980##k?! How comes, how did you do it?? ... Well, that can't be helped, I guess. The student surpassed the teacher! Youth sure do wonders to one's perception capabilities.\r\n\r\nYou are now ready to take the last step on mastering the Maker skill, contemplate it at it's finest form!"); + qm.gainItem(4031980, -1); + + var skillid = Math.floor(qm.getPlayer().getJob().getId() / 1000) * 10000000 + 1007; + qm.teachSkill(skillid, 3, 3, -1); + + qm.gainExp(300000 * qm.getPlayer().getExpRate()); + qm.forceCompleteQuest(); + } else { + qm.sendNext("... Please step aside, I can't finish this work if I'm being distracted at every moment."); + } + + qm.dispose(); + } + } +} \ No newline at end of file diff --git a/sql/db_database.sql b/sql/db_database.sql index 3ad186ce8d..029d3f17f7 100644 --- a/sql/db_database.sql +++ b/sql/db_database.sql @@ -6986,7 +6986,7 @@ INSERT IGNORE INTO `temp_data` (`id`, `dropperid`, `itemid`, `minimum_quantity`, (6765, 8140002, 1462012, 1, 1, 0, 500), (6766, 8140002, 2070005, 1, 1, 0, 400), (6767, 8140002, 1032022, 1, 1, 0, 1000), -(6768, 8140002, 4000240, 1, 1, 0, 600000), +(6768, 8140002, 4000240, 1, 1, 0, 60000), (6769, 8140002, 1052125, 1, 1, 0, 700), (6770, 8140002, 2330003, 1, 1, 0, 500), (6771, 8140002, 2040026, 1, 1, 0, 300), @@ -13071,48 +13071,48 @@ CREATE TABLE IF NOT EXISTS `makerrewarddata` ( # updated with the MapleSkillMakerFetcher feature INSERT IGNORE INTO `makercreatedata` (`id`, `itemid`, `req_level`, `req_maker_level`, `req_meso`, `req_item`, `req_equip`, `catalyst`, `quantity`, `tuc`) VALUES - (0, 4250000, 45, 1, 100000, 0, 0, 0, 1, 0), - (0, 4250100, 45, 1, 100000, 0, 0, 0, 1, 0), - (0, 4250200, 45, 1, 100000, 0, 0, 0, 1, 0), - (0, 4250300, 45, 1, 100000, 0, 0, 0, 1, 0), - (0, 4250400, 45, 1, 100000, 0, 0, 0, 1, 0), - (0, 4250500, 45, 1, 100000, 0, 0, 0, 1, 0), - (0, 4250600, 45, 1, 100000, 0, 0, 0, 1, 0), - (0, 4250700, 45, 1, 100000, 0, 0, 0, 1, 0), - (0, 4250800, 45, 1, 100000, 0, 0, 0, 1, 0), - (0, 4250900, 45, 1, 100000, 0, 0, 0, 1, 0), - (0, 4251000, 45, 1, 100000, 0, 0, 0, 1, 0), - (0, 4251100, 45, 1, 100000, 0, 0, 0, 1, 0), - (0, 4251300, 75, 2, 150000, 0, 0, 0, 1, 0), - (0, 4251400, 75, 2, 150000, 0, 0, 0, 1, 0), - (0, 4250001, 45, 1, 300000, 0, 0, 0, 1, 0), - (0, 4250101, 45, 1, 300000, 0, 0, 0, 1, 0), - (0, 4250201, 45, 1, 300000, 0, 0, 0, 1, 0), - (0, 4250301, 45, 1, 300000, 0, 0, 0, 1, 0), - (0, 4250401, 45, 1, 300000, 0, 0, 0, 1, 0), - (0, 4250501, 45, 1, 300000, 0, 0, 0, 1, 0), - (0, 4250601, 45, 1, 300000, 0, 0, 0, 1, 0), - (0, 4250701, 45, 1, 300000, 0, 0, 0, 1, 0), - (0, 4250801, 45, 1, 300000, 0, 0, 0, 1, 0), - (0, 4250901, 45, 1, 300000, 0, 0, 0, 1, 0), - (0, 4251001, 45, 1, 300000, 0, 0, 0, 1, 0), - (0, 4251101, 45, 1, 300000, 0, 0, 0, 1, 0), - (0, 4251301, 75, 2, 450000, 0, 0, 0, 1, 0), - (0, 4251401, 75, 2, 450000, 0, 0, 0, 1, 0), - (0, 4250002, 45, 2, 500000, 0, 0, 0, 1, 0), - (0, 4250102, 45, 2, 500000, 0, 0, 0, 1, 0), - (0, 4250202, 45, 2, 500000, 0, 0, 0, 1, 0), - (0, 4250302, 45, 2, 500000, 0, 0, 0, 1, 0), - (0, 4250402, 45, 2, 500000, 0, 0, 0, 1, 0), - (0, 4250502, 45, 2, 500000, 0, 0, 0, 1, 0), - (0, 4250602, 45, 2, 500000, 0, 0, 0, 1, 0), - (0, 4250702, 45, 2, 500000, 0, 0, 0, 1, 0), - (0, 4250802, 45, 2, 500000, 0, 0, 0, 1, 0), - (0, 4250902, 45, 2, 500000, 0, 0, 0, 1, 0), - (0, 4251002, 45, 2, 500000, 0, 0, 0, 1, 0), - (0, 4251102, 45, 2, 500000, 0, 0, 0, 1, 0), - (0, 4251302, 75, 3, 750000, 0, 0, 0, 1, 0), - (0, 4251402, 75, 3, 750000, 0, 0, 0, 1, 0), + (0, 4250000, 45, 1, 110000, 0, 0, 0, 1, 0), + (0, 4250100, 45, 1, 110000, 0, 0, 0, 1, 0), + (0, 4250200, 45, 1, 110000, 0, 0, 0, 1, 0), + (0, 4250300, 45, 1, 110000, 0, 0, 0, 1, 0), + (0, 4250400, 45, 1, 110000, 0, 0, 0, 1, 0), + (0, 4250500, 45, 1, 110000, 0, 0, 0, 1, 0), + (0, 4250600, 45, 1, 110000, 0, 0, 0, 1, 0), + (0, 4250700, 45, 1, 110000, 0, 0, 0, 1, 0), + (0, 4250800, 45, 1, 110000, 0, 0, 0, 1, 0), + (0, 4250900, 45, 1, 110000, 0, 0, 0, 1, 0), + (0, 4251000, 45, 1, 110000, 0, 0, 0, 1, 0), + (0, 4251100, 45, 1, 110000, 0, 0, 0, 1, 0), + (0, 4251300, 75, 2, 164000, 0, 0, 0, 1, 0), + (0, 4251400, 75, 2, 164000, 0, 0, 0, 1, 0), + (0, 4250001, 45, 1, 328000, 0, 0, 0, 1, 0), + (0, 4250101, 45, 1, 328000, 0, 0, 0, 1, 0), + (0, 4250201, 45, 1, 328000, 0, 0, 0, 1, 0), + (0, 4250301, 45, 1, 328000, 0, 0, 0, 1, 0), + (0, 4250401, 45, 1, 328000, 0, 0, 0, 1, 0), + (0, 4250501, 45, 1, 328000, 0, 0, 0, 1, 0), + (0, 4250601, 45, 1, 328000, 0, 0, 0, 1, 0), + (0, 4250701, 45, 1, 328000, 0, 0, 0, 1, 0), + (0, 4250801, 45, 1, 328000, 0, 0, 0, 1, 0), + (0, 4250901, 45, 1, 328000, 0, 0, 0, 1, 0), + (0, 4251001, 45, 1, 328000, 0, 0, 0, 1, 0), + (0, 4251101, 45, 1, 328000, 0, 0, 0, 1, 0), + (0, 4251301, 75, 2, 491000, 0, 0, 0, 1, 0), + (0, 4251401, 75, 2, 491000, 0, 0, 0, 1, 0), + (0, 4250002, 45, 2, 546000, 0, 0, 0, 1, 0), + (0, 4250102, 45, 2, 546000, 0, 0, 0, 1, 0), + (0, 4250202, 45, 2, 546000, 0, 0, 0, 1, 0), + (0, 4250302, 45, 2, 546000, 0, 0, 0, 1, 0), + (0, 4250402, 45, 2, 546000, 0, 0, 0, 1, 0), + (0, 4250502, 45, 2, 546000, 0, 0, 0, 1, 0), + (0, 4250602, 45, 2, 546000, 0, 0, 0, 1, 0), + (0, 4250702, 45, 2, 546000, 0, 0, 0, 1, 0), + (0, 4250802, 45, 2, 546000, 0, 0, 0, 1, 0), + (0, 4250902, 45, 2, 546000, 0, 0, 0, 1, 0), + (0, 4251002, 45, 2, 546000, 0, 0, 0, 1, 0), + (0, 4251102, 45, 2, 546000, 0, 0, 0, 1, 0), + (0, 4251302, 75, 3, 819000, 0, 0, 0, 1, 0), + (0, 4251402, 75, 3, 819000, 0, 0, 0, 1, 0), (0, 4001174, 45, 1, 0, 4031966, 0, 0, 1, 0), (0, 4001175, 50, 1, 0, 4031967, 0, 0, 1, 0), (0, 4001176, 55, 1, 0, 4031968, 0, 0, 10, 0), @@ -13129,780 +13129,780 @@ INSERT IGNORE INTO `makercreatedata` (`id`, `itemid`, `req_level`, `req_maker_le (0, 4001186, 105, 3, 0, 4031978, 0, 0, 1, 0), (0, 4032334, 150, 1, 0, 0, 0, 0, 1, 0), (0, 4032312, 70, 1, 0, 0, 0, 0, 1, 0), - (0, 2041058, 50, 1, 50000, 0, 1122013, 0, 1, 0), - (0, 2040727, 50, 1, 50000, 0, 1122013, 0, 1, 0), - (1, 1002028, 45, 1, 50000, 0, 0, 4130018, 1, 1), - (1, 1002085, 45, 1, 45000, 0, 0, 4130018, 1, 1), - (1, 1002086, 45, 1, 37500, 0, 0, 4130018, 1, 1), - (1, 1002022, 50, 1, 55000, 0, 0, 4130018, 1, 1), - (1, 1002100, 50, 1, 55000, 0, 0, 4130018, 1, 1), - (1, 1002101, 50, 1, 55000, 0, 0, 4130018, 1, 1), - (1, 1002029, 55, 1, 75000, 0, 0, 4130018, 1, 1), - (1, 1002084, 55, 1, 75000, 0, 0, 4130018, 1, 1), - (1, 1002030, 65, 1, 85000, 0, 0, 4130018, 1, 1), - (1, 1002094, 65, 1, 85000, 0, 0, 4130018, 1, 1), - (1, 1002095, 65, 1, 85000, 0, 0, 4130018, 1, 1), - (1, 1002338, 75, 2, 133000, 0, 0, 4130018, 1, 2), - (1, 1002339, 75, 2, 133000, 0, 0, 4130018, 1, 2), - (1, 1002340, 75, 2, 133000, 0, 0, 4130018, 1, 2), - (1, 1002528, 85, 2, 147000, 0, 0, 4130018, 1, 2), - (1, 1002529, 85, 2, 147000, 0, 0, 4130018, 1, 2), - (1, 1002530, 85, 2, 147000, 0, 0, 4130018, 1, 2), - (1, 1002531, 85, 2, 147000, 0, 0, 4130018, 1, 2), - (1, 1002532, 85, 2, 147000, 0, 0, 4130018, 1, 2), - (1, 1002377, 95, 2, 168000, 0, 0, 4130018, 1, 2), - (1, 1002378, 95, 2, 168000, 0, 0, 4130018, 1, 2), - (1, 1002379, 95, 2, 168000, 0, 0, 4130018, 1, 2), - (1, 1002551, 105, 3, 280000, 0, 0, 4130018, 1, 3), - (1, 1002790, 115, 3, 320000, 0, 0, 4130018, 1, 3), - (1, 1002776, 115, 3, 320000, 0, 0, 4130018, 1, 3), - (1, 1040087, 45, 1, 37500, 0, 0, 4130019, 1, 1), - (1, 1040088, 45, 1, 37500, 0, 0, 4130019, 1, 1), - (1, 1040089, 45, 1, 37500, 0, 0, 4130019, 1, 1), - (1, 1041087, 45, 1, 37500, 0, 0, 4130019, 1, 1), - (1, 1041088, 45, 1, 37500, 0, 0, 4130019, 1, 1), - (1, 1041089, 45, 1, 37500, 0, 0, 4130019, 1, 1), - (1, 1040090, 55, 1, 45000, 0, 0, 4130019, 1, 1), - (1, 1040091, 55, 1, 45000, 0, 0, 4130019, 1, 1), - (1, 1040092, 55, 1, 45000, 0, 0, 4130019, 1, 1), - (1, 1040093, 55, 1, 45000, 0, 0, 4130019, 1, 1), - (1, 1041091, 55, 1, 45000, 0, 0, 4130019, 1, 1), - (1, 1041092, 55, 1, 45000, 0, 0, 4130019, 1, 1), - (1, 1041093, 55, 1, 45000, 0, 0, 4130019, 1, 1), - (1, 1040102, 65, 1, 50000, 0, 0, 4130019, 1, 1), - (1, 1040103, 65, 1, 50000, 0, 0, 4130019, 1, 1), - (1, 1040104, 65, 1, 50000, 0, 0, 4130019, 1, 1), - (1, 1041097, 65, 1, 50000, 0, 0, 4130019, 1, 1), - (1, 1041098, 65, 1, 50000, 0, 0, 4130019, 1, 1), - (1, 1041099, 65, 1, 50000, 0, 0, 4130019, 1, 1), - (1, 1040111, 85, 2, 112000, 0, 0, 4130019, 1, 2), - (1, 1040112, 85, 2, 112000, 0, 0, 4130019, 1, 2), - (1, 1040113, 85, 2, 112000, 0, 0, 4130019, 1, 2), - (1, 1041119, 85, 2, 133000, 0, 0, 4130019, 1, 2), - (1, 1041120, 85, 2, 133000, 0, 0, 4130019, 1, 2), - (1, 1041121, 85, 2, 133000, 0, 0, 4130019, 1, 2), - (1, 1040120, 95, 2, 140000, 0, 0, 4130019, 1, 2), - (1, 1040121, 95, 2, 140000, 0, 0, 4130019, 1, 2), - (1, 1040122, 95, 2, 140000, 0, 0, 4130019, 1, 2), - (1, 1041122, 95, 2, 140000, 0, 0, 4130019, 1, 2), - (1, 1041123, 95, 2, 140000, 0, 0, 4130019, 1, 2), - (1, 1041124, 95, 2, 140000, 0, 0, 4130019, 1, 2), - (1, 1060076, 45, 1, 30000, 0, 0, 4130020, 1, 1), - (1, 1060077, 45, 1, 30000, 0, 0, 4130020, 1, 1), - (1, 1060078, 45, 1, 30000, 0, 0, 4130020, 1, 1), - (1, 1061086, 45, 1, 30000, 0, 0, 4130020, 1, 1), - (1, 1061087, 45, 1, 30000, 0, 0, 4130020, 1, 1), - (1, 1061088, 45, 1, 30000, 0, 0, 4130020, 1, 1), - (1, 1060079, 55, 1, 37500, 0, 0, 4130020, 1, 1), - (1, 1060080, 55, 1, 37500, 0, 0, 4130020, 1, 1), - (1, 1060081, 55, 1, 37500, 0, 0, 4130020, 1, 1), - (1, 1060082, 55, 1, 37500, 0, 0, 4130020, 1, 1), - (1, 1061090, 55, 1, 37500, 0, 0, 4130020, 1, 1), - (1, 1061091, 55, 1, 37500, 0, 0, 4130020, 1, 1), - (1, 1061092, 55, 1, 37500, 0, 0, 4130020, 1, 1), - (1, 1060090, 65, 1, 45000, 0, 0, 4130020, 1, 1), - (1, 1060091, 65, 1, 45000, 0, 0, 4130020, 1, 1), - (1, 1060092, 65, 1, 45000, 0, 0, 4130020, 1, 1), - (1, 1061096, 65, 1, 45000, 0, 0, 4130020, 1, 1), - (1, 1061097, 65, 1, 45000, 0, 0, 4130020, 1, 1), - (1, 1061098, 65, 1, 45000, 0, 0, 4130020, 1, 1), - (1, 1060100, 85, 2, 98000, 0, 0, 4130020, 1, 2), - (1, 1060101, 85, 2, 98000, 0, 0, 4130020, 1, 2), - (1, 1060102, 85, 2, 98000, 0, 0, 4130020, 1, 2), - (1, 1061118, 85, 2, 119000, 0, 0, 4130020, 1, 2), - (1, 1061119, 85, 2, 119000, 0, 0, 4130020, 1, 2), - (1, 1061120, 85, 2, 119000, 0, 0, 4130020, 1, 2), - (1, 1060109, 95, 2, 126000, 0, 0, 4130020, 1, 2), - (1, 1060110, 95, 2, 126000, 0, 0, 4130020, 1, 2), - (1, 1060111, 95, 2, 126000, 0, 0, 4130020, 1, 2), - (1, 1061121, 95, 2, 126000, 0, 0, 4130020, 1, 2), - (1, 1061122, 95, 2, 126000, 0, 0, 4130020, 1, 2), - (1, 1061123, 95, 2, 126000, 0, 0, 4130020, 1, 2), - (1, 1050080, 75, 2, 126000, 0, 0, 4130021, 1, 2), - (1, 1050081, 75, 2, 126000, 0, 0, 4130021, 1, 2), - (1, 1050082, 75, 2, 126000, 0, 0, 4130021, 1, 2), - (1, 1050083, 75, 2, 126000, 0, 0, 4130021, 1, 2), - (1, 1051077, 75, 2, 126000, 0, 0, 4130021, 1, 2), - (1, 1051078, 75, 2, 126000, 0, 0, 4130021, 1, 2), - (1, 1051079, 75, 2, 126000, 0, 0, 4130021, 1, 2), - (1, 1051080, 75, 2, 126000, 0, 0, 4130021, 1, 2), - (1, 1052075, 105, 3, 320000, 0, 0, 4130021, 1, 3), - (1, 1052160, 115, 3, 380000, 0, 0, 4130021, 1, 3), - (1, 1052155, 115, 3, 380000, 0, 0, 4130021, 1, 3), - (1, 1072132, 45, 1, 27500, 0, 0, 4130001, 1, 1), - (1, 1072133, 45, 1, 27500, 0, 0, 4130001, 1, 1), - (1, 1072134, 45, 1, 27500, 0, 0, 4130001, 1, 1), - (1, 1072135, 45, 1, 27500, 0, 0, 4130001, 1, 1), - (1, 1072147, 55, 1, 35000, 0, 0, 4130001, 1, 1), - (1, 1072148, 55, 1, 35000, 0, 0, 4130001, 1, 1), - (1, 1072149, 55, 1, 35000, 0, 0, 4130001, 1, 1), - (1, 1072154, 65, 1, 42500, 0, 0, 4130001, 1, 1), - (1, 1072155, 65, 1, 42500, 0, 0, 4130001, 1, 1), - (1, 1072156, 65, 1, 42500, 0, 0, 4130001, 1, 1), - (1, 1072210, 75, 2, 77000, 0, 0, 4130001, 1, 2), - (1, 1072211, 75, 2, 77000, 0, 0, 4130001, 1, 2), - (1, 1072212, 75, 2, 77000, 0, 0, 4130001, 1, 2), - (1, 1072196, 85, 2, 105000, 0, 0, 4130001, 1, 2), - (1, 1072197, 85, 2, 105000, 0, 0, 4130001, 1, 2), - (1, 1072198, 85, 2, 105000, 0, 0, 4130001, 1, 2), - (1, 1072220, 95, 2, 126000, 0, 0, 4130001, 1, 2), - (1, 1072221, 95, 2, 126000, 0, 0, 4130001, 1, 2), - (1, 1072222, 95, 2, 126000, 0, 0, 4130001, 1, 2), - (1, 1072273, 105, 3, 210000, 0, 0, 4130001, 1, 3), - (1, 1072361, 115, 3, 240000, 0, 0, 4130001, 1, 3), - (1, 1072355, 115, 3, 240000, 0, 0, 4130001, 1, 3), - (1, 1082009, 45, 1, 45000, 0, 0, 4130000, 1, 1), - (1, 1082010, 45, 1, 50000, 0, 0, 4130000, 1, 1), - (1, 1082011, 45, 1, 55000, 0, 0, 4130000, 1, 1), - (1, 1082059, 55, 1, 60000, 0, 0, 4130000, 1, 1), - (1, 1082060, 55, 1, 65000, 0, 0, 4130000, 1, 1), - (1, 1082061, 55, 1, 70000, 0, 0, 4130000, 1, 1), - (1, 1082103, 65, 1, 75000, 0, 0, 4130000, 1, 1), - (1, 1082104, 65, 1, 80000, 0, 0, 4130000, 1, 1), - (1, 1082105, 65, 1, 85000, 0, 0, 4130000, 1, 1), - (1, 1082114, 75, 2, 147000, 0, 0, 4130000, 1, 2), - (1, 1082115, 75, 2, 150500, 0, 0, 4130000, 1, 2), - (1, 1082116, 75, 2, 154000, 0, 0, 4130000, 1, 2), - (1, 1082117, 75, 2, 154000, 0, 0, 4130000, 1, 2), - (1, 1082128, 85, 2, 168000, 0, 0, 4130000, 1, 2), - (1, 1082129, 85, 2, 171500, 0, 0, 4130000, 1, 2), - (1, 1082130, 85, 2, 175000, 0, 0, 4130000, 1, 2), - (1, 1082139, 95, 2, 189000, 0, 0, 4130000, 1, 2), - (1, 1082140, 95, 2, 192500, 0, 0, 4130000, 1, 2), - (1, 1082141, 95, 2, 196000, 0, 0, 4130000, 1, 2), - (1, 1082168, 105, 3, 300000, 0, 0, 4130000, 1, 3), - (1, 1082239, 115, 3, 330000, 0, 0, 4130000, 1, 3), - (1, 1082234, 115, 3, 330000, 0, 0, 4130000, 1, 3), - (1, 1092004, 45, 1, 75000, 0, 0, 4130022, 1, 1), - (1, 1092009, 55, 1, 90000, 0, 0, 4130022, 1, 1), - (1, 1092010, 55, 1, 95000, 0, 0, 4130022, 1, 1), - (1, 1092011, 55, 1, 95000, 0, 0, 4130022, 1, 1), - (1, 1092015, 65, 1, 100000, 0, 0, 4130022, 1, 1), - (1, 1092016, 65, 1, 105000, 0, 0, 4130022, 1, 1), - (1, 1092017, 65, 1, 105000, 0, 0, 4130022, 1, 1), - (1, 1092023, 75, 2, 154000, 0, 0, 4130022, 1, 2), - (1, 1092024, 75, 2, 161000, 0, 0, 4130022, 1, 2), - (1, 1092025, 75, 2, 161000, 0, 0, 4130022, 1, 2), - (1, 1092026, 85, 2, 168000, 0, 0, 4130022, 1, 2), - (1, 1092027, 85, 2, 175000, 0, 0, 4130022, 1, 2), - (1, 1092028, 85, 2, 175000, 0, 0, 4130022, 1, 2), - (1, 1092036, 95, 2, 182000, 0, 0, 4130022, 1, 2), - (1, 1092037, 95, 2, 189000, 0, 0, 4130022, 1, 2), - (1, 1092038, 95, 2, 196000, 0, 0, 4130022, 1, 2), - (1, 1092060, 105, 3, 210000, 0, 0, 4130022, 1, 3), - (1, 1092058, 115, 3, 350000, 0, 0, 4130022, 1, 3), - (1, 1302010, 45, 1, 60000, 0, 0, 4130002, 1, 1), - (1, 1312008, 45, 1, 70000, 0, 0, 4130003, 1, 1), - (1, 1322017, 45, 1, 70000, 0, 0, 4130004, 1, 1), - (1, 1402003, 45, 1, 100000, 0, 0, 4130005, 1, 1), - (1, 1412003, 45, 1, 70000, 0, 0, 4130006, 1, 1), - (1, 1422005, 45, 1, 75000, 0, 0, 4130007, 1, 1), - (1, 1432004, 45, 1, 75000, 0, 0, 4130008, 1, 1), - (1, 1442005, 45, 1, 75000, 0, 0, 4130009, 1, 1), - (1, 1302011, 55, 1, 75000, 0, 0, 4130002, 1, 1), - (1, 1312009, 55, 1, 95000, 0, 0, 4130003, 1, 1), - (1, 1322018, 55, 1, 95000, 0, 0, 4130004, 1, 1), - (1, 1402011, 55, 1, 115000, 0, 0, 4130005, 1, 1), - (1, 1412007, 55, 1, 95000, 0, 0, 4130006, 1, 1), - (1, 1422009, 55, 1, 95000, 0, 0, 4130007, 1, 1), - (1, 1432006, 55, 1, 95000, 0, 0, 4130008, 1, 1), - (1, 1442010, 55, 1, 125000, 0, 0, 4130009, 1, 1), - (1, 1302012, 65, 1, 125000, 0, 0, 4130002, 1, 1), - (1, 1312010, 65, 1, 150000, 0, 0, 4130003, 1, 1), - (1, 1322019, 65, 1, 125000, 0, 0, 4130004, 1, 1), - (1, 1402012, 65, 1, 130000, 0, 0, 4130005, 1, 1), - (1, 1412008, 65, 1, 125000, 0, 0, 4130006, 1, 1), - (1, 1422010, 65, 1, 125000, 0, 0, 4130007, 1, 1), - (1, 1432007, 65, 1, 125000, 0, 0, 4130008, 1, 1), - (1, 1442008, 65, 1, 150000, 0, 0, 4130009, 1, 1), - (1, 1322020, 70, 1, 150000, 0, 0, 4130004, 1, 1), - (1, 1302018, 75, 2, 210000, 0, 0, 4130002, 1, 2), - (1, 1312011, 75, 2, 245000, 0, 0, 4130003, 1, 2), - (1, 1322028, 75, 2, 245000, 0, 0, 4130004, 1, 2), - (1, 1402004, 75, 2, 210000, 0, 0, 4130005, 1, 2), - (1, 1402015, 75, 2, 210000, 0, 0, 4130005, 1, 2), - (1, 1412009, 75, 2, 217000, 0, 0, 4130006, 1, 2), - (1, 1422012, 75, 2, 217000, 0, 0, 4130007, 1, 2), - (1, 1432010, 75, 2, 217000, 0, 0, 4130008, 1, 2), - (1, 1442019, 75, 2, 245000, 0, 0, 4130009, 1, 2), - (1, 1302023, 85, 2, 245000, 0, 0, 4130002, 1, 2), - (1, 1312015, 85, 2, 280000, 0, 0, 4130003, 1, 2), - (1, 1322029, 85, 2, 280000, 0, 0, 4130004, 1, 2), - (1, 1402005, 85, 2, 280000, 0, 0, 4130005, 1, 2), - (1, 1402016, 85, 2, 280000, 0, 0, 4130005, 1, 2), - (1, 1412010, 85, 2, 259000, 0, 0, 4130006, 1, 2), - (1, 1422013, 85, 2, 259000, 0, 0, 4130007, 1, 2), - (1, 1432011, 85, 2, 259000, 0, 0, 4130008, 1, 2), - (1, 1442020, 85, 2, 315000, 0, 0, 4130009, 1, 2), - (1, 1302056, 95, 2, 336000, 0, 0, 4130002, 1, 2), - (1, 1312030, 95, 2, 329000, 0, 0, 4130003, 1, 2), - (1, 1322045, 95, 2, 329000, 0, 0, 4130004, 1, 2), - (1, 1402035, 95, 2, 329000, 0, 0, 4130005, 1, 2), - (1, 1412021, 95, 2, 343000, 0, 0, 4130006, 1, 2), - (1, 1422027, 95, 2, 315000, 0, 0, 4130007, 1, 2), - (1, 1432030, 95, 2, 343000, 0, 0, 4130008, 1, 2), - (1, 1442044, 95, 2, 329000, 0, 0, 4130009, 1, 2), - (1, 1302059, 105, 3, 550000, 0, 0, 4130002, 1, 3), - (1, 1312031, 105, 3, 530000, 0, 0, 4130003, 1, 3), - (1, 1322052, 105, 3, 480000, 0, 0, 4130004, 1, 3), - (1, 1402036, 105, 3, 550000, 0, 0, 4130005, 1, 3), - (1, 1412026, 105, 3, 520000, 0, 0, 4130006, 1, 3), - (1, 1422028, 105, 3, 510000, 0, 0, 4130007, 1, 3), - (1, 1432038, 105, 3, 530000, 0, 0, 4130008, 1, 3), - (1, 1442045, 105, 3, 570000, 0, 0, 4130009, 1, 3), - (1, 1302086, 115, 3, 680000, 0, 0, 4130002, 1, 3), - (1, 1312038, 115, 3, 580000, 0, 0, 4130003, 1, 3), - (1, 1322061, 115, 3, 490000, 0, 0, 4130004, 1, 3), - (1, 1402047, 115, 3, 650000, 0, 0, 4130005, 1, 3), - (1, 1412034, 115, 3, 650000, 0, 0, 4130006, 1, 3), - (1, 1422038, 115, 3, 560000, 0, 0, 4130007, 1, 3), - (1, 1432049, 115, 3, 570000, 0, 0, 4130008, 1, 3), - (1, 1442067, 115, 3, 620000, 0, 0, 4130009, 1, 3), - (1, 1302081, 115, 3, 680000, 0, 0, 4130002, 1, 3), - (1, 1312037, 115, 3, 580000, 0, 0, 4130003, 1, 3), - (1, 1322060, 115, 3, 490000, 0, 0, 4130004, 1, 3), - (1, 1402046, 115, 3, 650000, 0, 0, 4130005, 1, 3), - (1, 1412033, 115, 3, 650000, 0, 0, 4130006, 1, 3), - (1, 1422037, 115, 3, 560000, 0, 0, 4130007, 1, 3), - (1, 1432047, 115, 3, 570000, 0, 0, 4130008, 1, 3), - (1, 1442063, 115, 3, 620000, 0, 0, 4130009, 1, 3), - (2, 1002215, 45, 1, 20000, 0, 0, 4130018, 1, 1), - (2, 1002216, 45, 1, 20000, 0, 0, 4130018, 1, 1), - (2, 1002217, 45, 1, 20000, 0, 0, 4130018, 1, 1), - (2, 1002218, 45, 1, 20000, 0, 0, 4130018, 1, 1), - (2, 1002242, 55, 1, 25000, 0, 0, 4130018, 1, 1), - (2, 1002243, 55, 1, 25000, 0, 0, 4130018, 1, 1), - (2, 1002244, 55, 1, 25000, 0, 0, 4130018, 1, 1), - (2, 1002245, 55, 1, 25000, 0, 0, 4130018, 1, 1), - (2, 1002246, 55, 1, 25000, 0, 0, 4130018, 1, 1), - (2, 1002252, 65, 1, 40000, 0, 0, 4130018, 1, 1), - (2, 1002253, 65, 1, 40000, 0, 0, 4130018, 1, 1), - (2, 1002254, 65, 1, 40000, 0, 0, 4130018, 1, 1), - (2, 1002271, 75, 2, 66500, 0, 0, 4130018, 1, 2), - (2, 1002272, 75, 2, 66500, 0, 0, 4130018, 1, 2), - (2, 1002273, 75, 2, 66500, 0, 0, 4130018, 1, 2), - (2, 1002274, 75, 2, 66500, 0, 0, 4130018, 1, 2), - (2, 1002363, 85, 2, 77000, 0, 0, 4130018, 1, 2), - (2, 1002364, 85, 2, 77000, 0, 0, 4130018, 1, 2), - (2, 1002365, 85, 2, 77000, 0, 0, 4130018, 1, 2), - (2, 1002366, 85, 2, 77000, 0, 0, 4130018, 1, 2), - (2, 1002398, 95, 2, 87500, 0, 0, 4130018, 1, 2), - (2, 1002399, 95, 2, 87500, 0, 0, 4130018, 1, 2), - (2, 1002400, 95, 2, 87500, 0, 0, 4130018, 1, 2), - (2, 1002401, 95, 2, 87500, 0, 0, 4130018, 1, 2), - (2, 1002773, 105, 3, 150000, 0, 0, 4130018, 1, 3), - (2, 1002791, 115, 3, 170000, 0, 0, 4130018, 1, 3), - (2, 1002777, 115, 3, 170000, 0, 0, 4130018, 1, 3), - (2, 1050045, 43, 1, 45000, 0, 0, 4130021, 1, 1), - (2, 1050046, 43, 1, 45000, 0, 0, 4130021, 1, 1), - (2, 1050047, 43, 1, 45000, 0, 0, 4130021, 1, 1), - (2, 1050048, 43, 1, 45000, 0, 0, 4130021, 1, 1), - (2, 1050049, 43, 1, 45000, 0, 0, 4130021, 1, 1), - (2, 1051030, 43, 1, 45000, 0, 0, 4130021, 1, 1), - (2, 1051031, 43, 1, 45000, 0, 0, 4130021, 1, 1), - (2, 1051032, 43, 1, 45000, 0, 0, 4130021, 1, 1), - (2, 1051033, 43, 1, 45000, 0, 0, 4130021, 1, 1), - (2, 1051034, 43, 1, 45000, 0, 0, 4130021, 1, 1), - (2, 1050053, 53, 1, 50000, 0, 0, 4130021, 1, 1), - (2, 1050054, 53, 1, 50000, 0, 0, 4130021, 1, 1), - (2, 1050055, 53, 1, 50000, 0, 0, 4130021, 1, 1), - (2, 1050056, 53, 1, 50000, 0, 0, 4130021, 1, 1), - (2, 1051044, 53, 1, 50000, 0, 0, 4130021, 1, 1), - (2, 1051045, 53, 1, 50000, 0, 0, 4130021, 1, 1), - (2, 1051046, 53, 1, 50000, 0, 0, 4130021, 1, 1), - (2, 1051047, 53, 1, 50000, 0, 0, 4130021, 1, 1), - (2, 1050067, 63, 1, 60000, 0, 0, 4130021, 1, 1), - (2, 1050068, 63, 1, 60000, 0, 0, 4130021, 1, 1), - (2, 1050069, 63, 1, 60000, 0, 0, 4130021, 1, 1), - (2, 1050070, 63, 1, 60000, 0, 0, 4130021, 1, 1), - (2, 1051052, 63, 1, 60000, 0, 0, 4130021, 1, 1), - (2, 1051053, 63, 1, 60000, 0, 0, 4130021, 1, 1), - (2, 1051054, 63, 1, 60000, 0, 0, 4130021, 1, 1), - (2, 1051055, 63, 1, 60000, 0, 0, 4130021, 1, 1), - (2, 1050072, 73, 2, 112000, 0, 0, 4130021, 1, 2), - (2, 1050073, 73, 2, 112000, 0, 0, 4130021, 1, 2), - (2, 1050074, 73, 2, 112000, 0, 0, 4130021, 1, 2), - (2, 1051056, 73, 2, 112000, 0, 0, 4130021, 1, 2), - (2, 1051057, 73, 2, 112000, 0, 0, 4130021, 1, 2), - (2, 1051058, 73, 2, 112000, 0, 0, 4130021, 1, 2), - (2, 1050092, 83, 2, 140000, 0, 0, 4130021, 1, 2), - (2, 1050093, 83, 2, 140000, 0, 0, 4130021, 1, 2), - (2, 1050094, 83, 2, 140000, 0, 0, 4130021, 1, 2), - (2, 1050095, 83, 2, 140000, 0, 0, 4130021, 1, 2), - (2, 1051094, 83, 2, 140000, 0, 0, 4130021, 1, 2), - (2, 1051095, 83, 2, 140000, 0, 0, 4130021, 1, 2), - (2, 1051096, 83, 2, 140000, 0, 0, 4130021, 1, 2), - (2, 1051097, 83, 2, 140000, 0, 0, 4130021, 1, 2), - (2, 1050102, 93, 2, 168000, 0, 0, 4130021, 1, 2), - (2, 1050103, 93, 2, 168000, 0, 0, 4130021, 1, 2), - (2, 1050104, 93, 2, 168000, 0, 0, 4130021, 1, 2), - (2, 1050105, 93, 2, 168000, 0, 0, 4130021, 1, 2), - (2, 1051101, 93, 2, 168000, 0, 0, 4130021, 1, 2), - (2, 1051102, 93, 2, 168000, 0, 0, 4130021, 1, 2), - (2, 1051103, 93, 2, 168000, 0, 0, 4130021, 1, 2), - (2, 1051104, 93, 2, 168000, 0, 0, 4130021, 1, 2), - (2, 1052076, 103, 3, 290000, 0, 0, 4130021, 1, 3), - (2, 1052161, 115, 3, 340000, 0, 0, 4130021, 1, 3), - (2, 1052156, 115, 3, 340000, 0, 0, 4130021, 1, 3), - (2, 1072140, 45, 1, 27500, 0, 0, 4130001, 1, 1), - (2, 1072141, 45, 1, 27500, 0, 0, 4130001, 1, 1), - (2, 1072142, 45, 1, 27500, 0, 0, 4130001, 1, 1), - (2, 1072143, 45, 1, 27500, 0, 0, 4130001, 1, 1), - (2, 1072136, 55, 1, 30000, 0, 0, 4130001, 1, 1), - (2, 1072137, 55, 1, 30000, 0, 0, 4130001, 1, 1), - (2, 1072138, 55, 1, 30000, 0, 0, 4130001, 1, 1), - (2, 1072139, 55, 1, 30000, 0, 0, 4130001, 1, 1), - (2, 1072157, 65, 1, 40000, 0, 0, 4130001, 1, 1), - (2, 1072158, 65, 1, 40000, 0, 0, 4130001, 1, 1), - (2, 1072159, 65, 1, 40000, 0, 0, 4130001, 1, 1), - (2, 1072160, 65, 1, 40000, 0, 0, 4130001, 1, 1), - (2, 1072177, 75, 2, 70000, 0, 0, 4130001, 1, 2), - (2, 1072178, 75, 2, 70000, 0, 0, 4130001, 1, 2), - (2, 1072179, 75, 2, 70000, 0, 0, 4130001, 1, 2), - (2, 1072206, 85, 2, 84000, 0, 0, 4130001, 1, 2), - (2, 1072207, 85, 2, 84000, 0, 0, 4130001, 1, 2), - (2, 1072208, 85, 2, 84000, 0, 0, 4130001, 1, 2), - (2, 1072209, 85, 2, 84000, 0, 0, 4130001, 1, 2), - (2, 1072223, 95, 2, 98000, 0, 0, 4130001, 1, 2), - (2, 1072224, 95, 2, 98000, 0, 0, 4130001, 1, 2), - (2, 1072225, 95, 2, 98000, 0, 0, 4130001, 1, 2), - (2, 1072226, 95, 2, 98000, 0, 0, 4130001, 1, 2), - (2, 1072268, 105, 3, 180000, 0, 0, 4130001, 1, 3), - (2, 1072362, 115, 3, 220000, 0, 0, 4130001, 1, 3), - (2, 1072356, 115, 3, 220000, 0, 0, 4130001, 1, 3), - (2, 1082080, 45, 1, 50000, 0, 0, 4130000, 1, 1), - (2, 1082081, 45, 1, 40000, 0, 0, 4130000, 1, 1), - (2, 1082082, 45, 1, 45000, 0, 0, 4130000, 1, 1), - (2, 1082086, 55, 1, 52500, 0, 0, 4130000, 1, 1), - (2, 1082087, 55, 1, 57500, 0, 0, 4130000, 1, 1), - (2, 1082088, 55, 1, 62500, 0, 0, 4130000, 1, 1), - (2, 1082098, 65, 1, 70000, 0, 0, 4130000, 1, 1), - (2, 1082099, 65, 1, 72500, 0, 0, 4130000, 1, 1), - (2, 1082100, 65, 1, 75000, 0, 0, 4130000, 1, 1), - (2, 1082121, 75, 2, 140000, 0, 0, 4130000, 1, 2), - (2, 1082122, 75, 2, 143500, 0, 0, 4130000, 1, 2), - (2, 1082123, 75, 2, 147000, 0, 0, 4130000, 1, 2), - (2, 1082131, 85, 2, 161000, 0, 0, 4130000, 1, 2), - (2, 1082132, 85, 2, 164500, 0, 0, 4130000, 1, 2), - (2, 1082133, 85, 2, 164500, 0, 0, 4130000, 1, 2), - (2, 1082134, 85, 2, 168000, 0, 0, 4130000, 1, 2), - (2, 1082151, 95, 2, 182000, 0, 0, 4130000, 1, 2), - (2, 1082152, 95, 2, 185500, 0, 0, 4130000, 1, 2), - (2, 1082153, 95, 2, 185500, 0, 0, 4130000, 1, 2), - (2, 1082154, 95, 2, 189000, 0, 0, 4130000, 1, 2), - (2, 1082164, 105, 3, 300000, 0, 0, 4130000, 1, 3), - (2, 1082240, 115, 3, 330000, 0, 0, 4130000, 1, 3), - (2, 1082235, 115, 3, 330000, 0, 0, 4130000, 1, 3), - (2, 1092057, 115, 3, 350000, 0, 0, 4130022, 1, 3), - (2, 1372007, 43, 1, 100000, 0, 0, 4130010, 1, 1), - (2, 1382006, 50, 1, 75000, 0, 0, 4130011, 1, 1), - (2, 1372014, 53, 1, 115000, 0, 0, 4130010, 1, 1), - (2, 1382007, 60, 1, 100000, 0, 0, 4130011, 1, 1), - (2, 1372015, 63, 1, 130000, 0, 0, 4130010, 1, 1), - (2, 1382010, 70, 1, 125000, 0, 0, 4130011, 1, 1), - (2, 1372016, 73, 2, 203000, 0, 0, 4130010, 1, 2), - (2, 1382008, 80, 2, 217000, 0, 0, 4130011, 1, 2), - (2, 1372009, 83, 2, 227500, 0, 0, 4130010, 1, 2), - (2, 1382035, 90, 2, 266000, 0, 0, 4130011, 1, 2), - (2, 1372010, 93, 2, 252000, 0, 0, 4130010, 1, 2), - (2, 1372032, 103, 3, 460000, 0, 0, 4130010, 1, 3), - (2, 1382036, 105, 3, 470000, 0, 0, 4130011, 1, 3), - (2, 1372045, 115, 3, 510000, 0, 0, 4130010, 1, 3), - (2, 1382059, 115, 3, 520000, 0, 0, 4130011, 1, 3), - (2, 1372044, 115, 3, 510000, 0, 0, 4130010, 1, 3), - (2, 1382057, 115, 3, 520000, 0, 0, 4130011, 1, 3), - (4, 1002211, 45, 1, 20000, 0, 0, 4130018, 1, 1), - (4, 1002212, 45, 1, 20000, 0, 0, 4130018, 1, 1), - (4, 1002213, 45, 1, 20000, 0, 0, 4130018, 1, 1), - (4, 1002214, 45, 1, 20000, 0, 0, 4130018, 1, 1), - (4, 1002267, 55, 1, 27500, 0, 0, 4130018, 1, 1), - (4, 1002268, 55, 1, 27500, 0, 0, 4130018, 1, 1), - (4, 1002269, 55, 1, 27500, 0, 0, 4130018, 1, 1), - (4, 1002270, 55, 1, 27500, 0, 0, 4130018, 1, 1), - (4, 1002286, 65, 1, 42500, 0, 0, 4130018, 1, 1), - (4, 1002287, 65, 1, 42500, 0, 0, 4130018, 1, 1), - (4, 1002288, 65, 1, 42500, 0, 0, 4130018, 1, 1), - (4, 1002289, 65, 1, 42500, 0, 0, 4130018, 1, 1), - (4, 1002275, 75, 2, 70000, 0, 0, 4130018, 1, 2), - (4, 1002276, 75, 2, 70000, 0, 0, 4130018, 1, 2), - (4, 1002277, 75, 2, 70000, 0, 0, 4130018, 1, 2), - (4, 1002278, 75, 2, 70000, 0, 0, 4130018, 1, 2), - (4, 1002402, 85, 2, 80500, 0, 0, 4130018, 1, 2), - (4, 1002403, 85, 2, 80500, 0, 0, 4130018, 1, 2), - (4, 1002404, 85, 2, 80500, 0, 0, 4130018, 1, 2), - (4, 1002405, 85, 2, 80500, 0, 0, 4130018, 1, 2), - (4, 1002406, 95, 2, 91000, 0, 0, 4130018, 1, 2), - (4, 1002407, 95, 2, 91000, 0, 0, 4130018, 1, 2), - (4, 1002408, 95, 2, 91000, 0, 0, 4130018, 1, 2), - (4, 1002547, 105, 3, 150000, 0, 0, 4130018, 1, 3), - (4, 1002792, 115, 3, 170000, 0, 0, 4130018, 1, 3), - (4, 1002778, 115, 3, 170000, 0, 0, 4130018, 1, 3), - (4, 1050051, 45, 1, 47500, 0, 0, 4130021, 1, 1), - (4, 1050052, 45, 1, 47500, 0, 0, 4130021, 1, 1), - (4, 1051037, 45, 1, 47500, 0, 0, 4130021, 1, 1), - (4, 1051038, 45, 1, 47500, 0, 0, 4130021, 1, 1), - (4, 1051039, 45, 1, 47500, 0, 0, 4130021, 1, 1), - (4, 1050058, 55, 1, 52500, 0, 0, 4130021, 1, 1), - (4, 1050059, 55, 1, 52500, 0, 0, 4130021, 1, 1), - (4, 1050060, 55, 1, 52500, 0, 0, 4130021, 1, 1), - (4, 1051041, 55, 1, 52500, 0, 0, 4130021, 1, 1), - (4, 1051042, 55, 1, 52500, 0, 0, 4130021, 1, 1), - (4, 1051043, 55, 1, 52500, 0, 0, 4130021, 1, 1), - (4, 1050061, 65, 1, 57500, 0, 0, 4130021, 1, 1), - (4, 1050062, 65, 1, 57500, 0, 0, 4130021, 1, 1), - (4, 1050063, 65, 1, 57500, 0, 0, 4130021, 1, 1), - (4, 1050064, 65, 1, 57500, 0, 0, 4130021, 1, 1), - (4, 1051062, 65, 1, 57500, 0, 0, 4130021, 1, 1), - (4, 1051063, 65, 1, 57500, 0, 0, 4130021, 1, 1), - (4, 1051064, 65, 1, 57500, 0, 0, 4130021, 1, 1), - (4, 1051065, 65, 1, 57500, 0, 0, 4130021, 1, 1), - (4, 1050075, 75, 2, 98000, 0, 0, 4130021, 1, 2), - (4, 1050076, 75, 2, 98000, 0, 0, 4130021, 1, 2), - (4, 1050077, 75, 2, 98000, 0, 0, 4130021, 1, 2), - (4, 1050078, 75, 2, 98000, 0, 0, 4130021, 1, 2), - (4, 1051066, 75, 2, 98000, 0, 0, 4130021, 1, 2), - (4, 1051067, 75, 2, 98000, 0, 0, 4130021, 1, 2), - (4, 1051068, 75, 2, 98000, 0, 0, 4130021, 1, 2), - (4, 1051069, 75, 2, 98000, 0, 0, 4130021, 1, 2), - (4, 1050088, 85, 2, 140000, 0, 0, 4130021, 1, 2), - (4, 1050089, 85, 2, 140000, 0, 0, 4130021, 1, 2), - (4, 1050090, 85, 2, 140000, 0, 0, 4130021, 1, 2), - (4, 1050091, 85, 2, 140000, 0, 0, 4130021, 1, 2), - (4, 1051082, 85, 2, 140000, 0, 0, 4130021, 1, 2), - (4, 1051083, 85, 2, 140000, 0, 0, 4130021, 1, 2), - (4, 1051084, 85, 2, 140000, 0, 0, 4130021, 1, 2), - (4, 1051085, 85, 2, 140000, 0, 0, 4130021, 1, 2), - (4, 1050106, 95, 2, 168000, 0, 0, 4130021, 1, 2), - (4, 1050107, 95, 2, 168000, 0, 0, 4130021, 1, 2), - (4, 1050108, 95, 2, 168000, 0, 0, 4130021, 1, 2), - (4, 1051105, 95, 2, 168000, 0, 0, 4130021, 1, 2), - (4, 1051106, 95, 2, 168000, 0, 0, 4130021, 1, 2), - (4, 1051107, 95, 2, 168000, 0, 0, 4130021, 1, 2), - (4, 1052071, 105, 3, 300000, 0, 0, 4130021, 1, 3), - (4, 1052162, 115, 3, 360000, 0, 0, 4130021, 1, 3), - (4, 1052157, 115, 3, 360000, 0, 0, 4130021, 1, 3), - (4, 1072122, 45, 1, 25000, 0, 0, 4130001, 1, 1), - (4, 1072123, 45, 1, 25000, 0, 0, 4130001, 1, 1), - (4, 1072124, 45, 1, 25000, 0, 0, 4130001, 1, 1), - (4, 1072125, 45, 1, 25000, 0, 0, 4130001, 1, 1), - (4, 1072144, 55, 1, 32500, 0, 0, 4130001, 1, 1), - (4, 1072145, 55, 1, 32500, 0, 0, 4130001, 1, 1), - (4, 1072146, 55, 1, 32500, 0, 0, 4130001, 1, 1), - (4, 1072164, 65, 1, 45000, 0, 0, 4130001, 1, 1), - (4, 1072165, 65, 1, 45000, 0, 0, 4130001, 1, 1), - (4, 1072166, 65, 1, 45000, 0, 0, 4130001, 1, 1), - (4, 1072167, 65, 1, 45000, 0, 0, 4130001, 1, 1), - (4, 1072182, 75, 2, 77000, 0, 0, 4130001, 1, 2), - (4, 1072183, 75, 2, 77000, 0, 0, 4130001, 1, 2), - (4, 1072184, 75, 2, 77000, 0, 0, 4130001, 1, 2), - (4, 1072185, 75, 2, 77000, 0, 0, 4130001, 1, 2), - (4, 1072203, 85, 2, 98000, 0, 0, 4130001, 1, 2), - (4, 1072204, 85, 2, 98000, 0, 0, 4130001, 1, 2), - (4, 1072205, 85, 2, 98000, 0, 0, 4130001, 1, 2), - (4, 1072227, 95, 2, 119000, 0, 0, 4130001, 1, 2), - (4, 1072228, 95, 2, 119000, 0, 0, 4130001, 1, 2), - (4, 1072229, 95, 2, 119000, 0, 0, 4130001, 1, 2), - (4, 1072269, 105, 3, 180000, 0, 0, 4130001, 1, 3), - (4, 1072363, 115, 3, 200000, 0, 0, 4130001, 1, 3), - (4, 1072357, 115, 3, 200000, 0, 0, 4130001, 1, 3), - (4, 1082083, 45, 1, 52500, 0, 0, 4130000, 1, 1), - (4, 1082084, 45, 1, 42500, 0, 0, 4130000, 1, 1), - (4, 1082085, 45, 1, 47500, 0, 0, 4130000, 1, 1), - (4, 1082089, 55, 1, 55000, 0, 0, 4130000, 1, 1), - (4, 1082090, 55, 1, 60000, 0, 0, 4130000, 1, 1), - (4, 1082091, 55, 1, 65000, 0, 0, 4130000, 1, 1), - (4, 1082106, 65, 1, 70000, 0, 0, 4130000, 1, 1), - (4, 1082107, 65, 1, 75000, 0, 0, 4130000, 1, 1), - (4, 1082108, 65, 1, 80000, 0, 0, 4130000, 1, 1), - (4, 1082109, 75, 2, 140000, 0, 0, 4130000, 1, 2), - (4, 1082110, 75, 2, 143500, 0, 0, 4130000, 1, 2), - (4, 1082111, 75, 2, 143500, 0, 0, 4130000, 1, 2), - (4, 1082112, 75, 2, 147000, 0, 0, 4130000, 1, 2), - (4, 1082125, 85, 2, 161000, 0, 0, 4130000, 1, 2), - (4, 1082126, 85, 2, 164500, 0, 0, 4130000, 1, 2), - (4, 1082127, 85, 2, 168000, 0, 0, 4130000, 1, 2), - (4, 1082158, 95, 2, 182000, 0, 0, 4130000, 1, 2), - (4, 1082159, 95, 2, 185500, 0, 0, 4130000, 1, 2), - (4, 1082160, 95, 2, 189000, 0, 0, 4130000, 1, 2), - (4, 1082163, 105, 3, 300000, 0, 0, 4130000, 1, 3), - (4, 1082241, 115, 3, 330000, 0, 0, 4130000, 1, 3), - (4, 1082236, 115, 3, 330000, 0, 0, 4130000, 1, 3), - (4, 1452008, 45, 1, 100000, 0, 0, 4130012, 1, 1), - (4, 1462007, 45, 1, 85000, 0, 0, 4130013, 1, 1), - (4, 1452004, 55, 1, 125000, 0, 0, 4130012, 1, 1), - (4, 1462008, 55, 1, 120000, 0, 0, 4130013, 1, 1), - (4, 1452009, 65, 1, 150000, 0, 0, 4130012, 1, 1), - (4, 1452010, 65, 1, 150000, 0, 0, 4130012, 1, 1), - (4, 1452011, 65, 1, 150000, 0, 0, 4130012, 1, 1), - (4, 1462009, 65, 1, 150000, 0, 0, 4130013, 1, 1), - (4, 1452012, 75, 2, 245000, 0, 0, 4130012, 1, 2), - (4, 1452013, 75, 2, 245000, 0, 0, 4130012, 1, 2), - (4, 1452014, 75, 2, 245000, 0, 0, 4130012, 1, 2), - (4, 1452015, 75, 2, 245000, 0, 0, 4130012, 1, 2), - (4, 1462010, 75, 2, 245000, 0, 0, 4130013, 1, 2), - (4, 1462011, 75, 2, 245000, 0, 0, 4130013, 1, 2), - (4, 1462012, 75, 2, 245000, 0, 0, 4130013, 1, 2), - (4, 1462013, 75, 2, 245000, 0, 0, 4130013, 1, 2), - (4, 1452017, 85, 2, 280000, 0, 0, 4130012, 1, 2), - (4, 1462018, 85, 2, 280000, 0, 0, 4130013, 1, 2), - (4, 1452019, 95, 2, 315000, 0, 0, 4130012, 1, 2), - (4, 1452020, 95, 2, 315000, 0, 0, 4130012, 1, 2), - (4, 1452021, 95, 2, 315000, 0, 0, 4130012, 1, 2), - (4, 1462015, 95, 2, 315000, 0, 0, 4130013, 1, 2), - (4, 1462016, 95, 2, 315000, 0, 0, 4130013, 1, 2), - (4, 1462017, 95, 2, 315000, 0, 0, 4130013, 1, 2), - (4, 1452044, 105, 3, 500000, 0, 0, 4130012, 1, 3), - (4, 1462039, 105, 3, 500000, 0, 0, 4130013, 1, 3), - (4, 1452059, 115, 3, 550000, 0, 0, 4130012, 1, 3), - (4, 1462051, 115, 3, 550000, 0, 0, 4130013, 1, 3), - (4, 1452057, 115, 3, 550000, 0, 0, 4130012, 1, 3), - (4, 1462050, 115, 3, 550000, 0, 0, 4130013, 1, 3), - (8, 1002207, 45, 1, 20000, 0, 0, 4130018, 1, 1), - (8, 1002208, 45, 1, 20000, 0, 0, 4130018, 1, 1), - (8, 1002209, 45, 1, 20000, 0, 0, 4130018, 1, 1), - (8, 1002210, 45, 1, 20000, 0, 0, 4130018, 1, 1), - (8, 1002247, 55, 1, 27500, 0, 0, 4130018, 1, 1), - (8, 1002248, 55, 1, 27500, 0, 0, 4130018, 1, 1), - (8, 1002249, 55, 1, 27500, 0, 0, 4130018, 1, 1), - (8, 1002281, 65, 1, 42500, 0, 0, 4130018, 1, 1), - (8, 1002282, 65, 1, 42500, 0, 0, 4130018, 1, 1), - (8, 1002283, 65, 1, 42500, 0, 0, 4130018, 1, 1), - (8, 1002284, 65, 1, 42500, 0, 0, 4130018, 1, 1), - (8, 1002285, 65, 1, 42500, 0, 0, 4130018, 1, 1), - (8, 1002327, 75, 2, 70000, 0, 0, 4130018, 1, 2), - (8, 1002328, 75, 2, 70000, 0, 0, 4130018, 1, 2), - (8, 1002329, 75, 2, 70000, 0, 0, 4130018, 1, 2), - (8, 1002330, 75, 2, 70000, 0, 0, 4130018, 1, 2), - (8, 1002323, 85, 2, 80500, 0, 0, 4130018, 1, 2), - (8, 1002324, 85, 2, 80500, 0, 0, 4130018, 1, 2), - (8, 1002325, 85, 2, 80500, 0, 0, 4130018, 1, 2), - (8, 1002326, 85, 2, 80500, 0, 0, 4130018, 1, 2), - (8, 1002380, 95, 2, 91000, 0, 0, 4130018, 1, 2), - (8, 1002381, 95, 2, 91000, 0, 0, 4130018, 1, 2), - (8, 1002382, 95, 2, 91000, 0, 0, 4130018, 1, 2), - (8, 1002383, 95, 2, 91000, 0, 0, 4130018, 1, 2), - (8, 1002550, 105, 3, 150000, 0, 0, 4130018, 1, 3), - (8, 1002793, 115, 3, 190000, 0, 0, 4130018, 1, 3), - (8, 1002779, 115, 3, 190000, 0, 0, 4130018, 1, 3), - (8, 1040094, 45, 1, 37500, 0, 0, 4130019, 1, 1), - (8, 1040095, 45, 1, 37500, 0, 0, 4130019, 1, 1), - (8, 1040096, 45, 1, 37500, 0, 0, 4130019, 1, 1), - (8, 1040097, 45, 1, 37500, 0, 0, 4130019, 1, 1), - (8, 1041077, 45, 1, 37500, 0, 0, 4130019, 1, 1), - (8, 1041078, 45, 1, 37500, 0, 0, 4130019, 1, 1), - (8, 1041079, 45, 1, 37500, 0, 0, 4130019, 1, 1), - (8, 1041080, 45, 1, 37500, 0, 0, 4130019, 1, 1), - (8, 1040098, 55, 1, 45000, 0, 0, 4130019, 1, 1), - (8, 1040099, 55, 1, 45000, 0, 0, 4130019, 1, 1), - (8, 1040100, 55, 1, 45000, 0, 0, 4130019, 1, 1), - (8, 1041094, 55, 1, 45000, 0, 0, 4130019, 1, 1), - (8, 1041095, 55, 1, 45000, 0, 0, 4130019, 1, 1), - (8, 1041096, 55, 1, 45000, 0, 0, 4130019, 1, 1), - (8, 1040105, 65, 1, 50000, 0, 0, 4130019, 1, 1), - (8, 1040106, 65, 1, 50000, 0, 0, 4130019, 1, 1), - (8, 1040107, 65, 1, 50000, 0, 0, 4130019, 1, 1), - (8, 1041100, 65, 1, 50000, 0, 0, 4130019, 1, 1), - (8, 1041101, 65, 1, 50000, 0, 0, 4130019, 1, 1), - (8, 1041102, 65, 1, 50000, 0, 0, 4130019, 1, 1), - (8, 1041103, 65, 1, 50000, 0, 0, 4130019, 1, 1), - (8, 1040108, 75, 2, 98000, 0, 0, 4130019, 1, 2), - (8, 1040109, 75, 2, 98000, 0, 0, 4130019, 1, 2), - (8, 1040110, 75, 2, 98000, 0, 0, 4130019, 1, 2), - (8, 1041105, 75, 2, 98000, 0, 0, 4130019, 1, 2), - (8, 1041106, 75, 2, 98000, 0, 0, 4130019, 1, 2), - (8, 1041107, 75, 2, 98000, 0, 0, 4130019, 1, 2), - (8, 1040115, 85, 2, 126000, 0, 0, 4130019, 1, 2), - (8, 1040116, 85, 2, 126000, 0, 0, 4130019, 1, 2), - (8, 1040117, 85, 2, 126000, 0, 0, 4130019, 1, 2), - (8, 1040118, 85, 2, 126000, 0, 0, 4130019, 1, 2), - (8, 1041115, 85, 2, 126000, 0, 0, 4130019, 1, 2), - (8, 1041116, 85, 2, 126000, 0, 0, 4130019, 1, 2), - (8, 1041117, 85, 2, 126000, 0, 0, 4130019, 1, 2), - (8, 1041118, 85, 2, 126000, 0, 0, 4130019, 1, 2), - (8, 1060083, 45, 1, 30000, 0, 0, 4130020, 1, 1), - (8, 1060084, 45, 1, 30000, 0, 0, 4130020, 1, 1), - (8, 1060085, 45, 1, 30000, 0, 0, 4130020, 1, 1), - (8, 1060086, 45, 1, 30000, 0, 0, 4130020, 1, 1), - (8, 1061076, 45, 1, 30000, 0, 0, 4130020, 1, 1), - (8, 1061077, 45, 1, 30000, 0, 0, 4130020, 1, 1), - (8, 1061078, 45, 1, 30000, 0, 0, 4130020, 1, 1), - (8, 1061079, 45, 1, 30000, 0, 0, 4130020, 1, 1), - (8, 1060087, 55, 1, 37500, 0, 0, 4130020, 1, 1), - (8, 1060088, 55, 1, 37500, 0, 0, 4130020, 1, 1), - (8, 1060089, 55, 1, 37500, 0, 0, 4130020, 1, 1), - (8, 1061093, 55, 1, 37500, 0, 0, 4130020, 1, 1), - (8, 1061094, 55, 1, 37500, 0, 0, 4130020, 1, 1), - (8, 1061095, 55, 1, 37500, 0, 0, 4130020, 1, 1), - (8, 1060093, 65, 1, 45000, 0, 0, 4130020, 1, 1), - (8, 1060094, 65, 1, 45000, 0, 0, 4130020, 1, 1), - (8, 1060095, 65, 1, 45000, 0, 0, 4130020, 1, 1), - (8, 1061099, 65, 1, 45000, 0, 0, 4130020, 1, 1), - (8, 1061100, 65, 1, 45000, 0, 0, 4130020, 1, 1), - (8, 1061101, 65, 1, 45000, 0, 0, 4130020, 1, 1), - (8, 1061102, 65, 1, 45000, 0, 0, 4130020, 1, 1), - (8, 1060097, 75, 2, 84000, 0, 0, 4130020, 1, 2), - (8, 1060098, 75, 2, 84000, 0, 0, 4130020, 1, 2), - (8, 1060099, 75, 2, 84000, 0, 0, 4130020, 1, 2), - (8, 1061104, 75, 2, 84000, 0, 0, 4130020, 1, 2), - (8, 1061105, 75, 2, 84000, 0, 0, 4130020, 1, 2), - (8, 1061106, 75, 2, 84000, 0, 0, 4130020, 1, 2), - (8, 1060104, 85, 2, 112000, 0, 0, 4130020, 1, 2), - (8, 1060105, 85, 2, 112000, 0, 0, 4130020, 1, 2), - (8, 1060106, 85, 2, 112000, 0, 0, 4130020, 1, 2), - (8, 1060107, 85, 2, 112000, 0, 0, 4130020, 1, 2), - (8, 1061114, 85, 2, 112000, 0, 0, 4130020, 1, 2), - (8, 1061115, 85, 2, 112000, 0, 0, 4130020, 1, 2), - (8, 1061116, 85, 2, 112000, 0, 0, 4130020, 1, 2), - (8, 1061117, 85, 2, 112000, 0, 0, 4130020, 1, 2), - (8, 1050096, 95, 2, 168000, 0, 0, 4130021, 1, 2), - (8, 1050097, 95, 2, 168000, 0, 0, 4130021, 1, 2), - (8, 1050098, 95, 2, 168000, 0, 0, 4130021, 1, 2), - (8, 1050099, 95, 2, 168000, 0, 0, 4130021, 1, 2), - (8, 1051090, 95, 2, 168000, 0, 0, 4130021, 1, 2), - (8, 1051091, 95, 2, 168000, 0, 0, 4130021, 1, 2), - (8, 1051092, 95, 2, 168000, 0, 0, 4130021, 1, 2), - (8, 1051093, 95, 2, 168000, 0, 0, 4130021, 1, 2), - (8, 1052072, 105, 3, 300000, 0, 0, 4130021, 1, 3), - (8, 1052163, 115, 3, 360000, 0, 0, 4130021, 1, 3), - (8, 1052158, 115, 3, 360000, 0, 0, 4130021, 1, 3), - (8, 1072128, 45, 1, 25000, 0, 0, 4130001, 1, 1), - (8, 1072129, 45, 1, 25000, 0, 0, 4130001, 1, 1), - (8, 1072130, 45, 1, 25000, 0, 0, 4130001, 1, 1), - (8, 1072131, 45, 1, 25000, 0, 0, 4130001, 1, 1), - (8, 1072150, 55, 1, 32500, 0, 0, 4130001, 1, 1), - (8, 1072151, 55, 1, 32500, 0, 0, 4130001, 1, 1), - (8, 1072152, 55, 1, 35000, 0, 0, 4130001, 1, 1), - (8, 1072161, 65, 1, 45000, 0, 0, 4130001, 1, 1), - (8, 1072162, 65, 1, 45000, 0, 0, 4130001, 1, 1), - (8, 1072163, 65, 1, 45000, 0, 0, 4130001, 1, 1), - (8, 1072172, 75, 2, 77000, 0, 0, 4130001, 1, 2), - (8, 1072173, 75, 2, 77000, 0, 0, 4130001, 1, 2), - (8, 1072174, 75, 2, 77000, 0, 0, 4130001, 1, 2), - (8, 1072192, 85, 2, 98000, 0, 0, 4130001, 1, 2), - (8, 1072193, 85, 2, 98000, 0, 0, 4130001, 1, 2), - (8, 1072194, 85, 2, 98000, 0, 0, 4130001, 1, 2), - (8, 1072195, 85, 2, 98000, 0, 0, 4130001, 1, 2), - (8, 1072213, 95, 2, 119000, 0, 0, 4130001, 1, 2), - (8, 1072214, 95, 2, 119000, 0, 0, 4130001, 1, 2), - (8, 1072215, 95, 2, 119000, 0, 0, 4130001, 1, 2), - (8, 1072216, 95, 2, 119000, 0, 0, 4130001, 1, 2), - (8, 1072272, 105, 3, 195000, 0, 0, 4130001, 1, 3), - (8, 1072364, 115, 3, 225000, 0, 0, 4130001, 1, 3), - (8, 1072358, 115, 3, 225000, 0, 0, 4130001, 1, 3), - (8, 1082065, 45, 1, 42500, 0, 0, 4130000, 1, 1), - (8, 1082066, 45, 1, 47500, 0, 0, 4130000, 1, 1), - (8, 1082067, 45, 1, 45000, 0, 0, 4130000, 1, 1), - (8, 1082092, 55, 1, 55000, 0, 0, 4130000, 1, 1), - (8, 1082093, 55, 1, 60000, 0, 0, 4130000, 1, 1), - (8, 1082094, 55, 1, 65000, 0, 0, 4130000, 1, 1), - (8, 1082095, 65, 1, 75000, 0, 0, 4130000, 1, 1), - (8, 1082096, 65, 1, 80000, 0, 0, 4130000, 1, 1), - (8, 1082097, 65, 1, 85000, 0, 0, 4130000, 1, 1), - (8, 1082118, 75, 2, 140000, 0, 0, 4130000, 1, 2), - (8, 1082119, 75, 2, 143500, 0, 0, 4130000, 1, 2), - (8, 1082120, 75, 2, 147000, 0, 0, 4130000, 1, 2), - (8, 1082142, 85, 2, 150500, 0, 0, 4130000, 1, 2), - (8, 1082143, 85, 2, 150500, 0, 0, 4130000, 1, 2), - (8, 1082144, 85, 2, 150500, 0, 0, 4130000, 1, 2), - (8, 1082135, 95, 2, 182000, 0, 0, 4130000, 1, 2), - (8, 1082136, 95, 2, 185500, 0, 0, 4130000, 1, 2), - (8, 1082137, 95, 2, 185500, 0, 0, 4130000, 1, 2), - (8, 1082138, 95, 2, 189000, 0, 0, 4130000, 1, 2), - (8, 1082167, 105, 3, 300000, 0, 0, 4130000, 1, 3), - (8, 1082242, 115, 3, 330000, 0, 0, 4130000, 1, 3), - (8, 1082237, 115, 3, 330000, 0, 0, 4130000, 1, 3), - (8, 1092059, 115, 3, 350000, 0, 0, 4130022, 1, 3), - (8, 1332003, 45, 1, 110000, 0, 0, 4130014, 1, 1), - (8, 1472018, 45, 1, 50000, 0, 0, 4130015, 1, 1), - (8, 1472019, 45, 1, 52500, 0, 0, 4130015, 1, 1), - (8, 1472020, 45, 1, 52500, 0, 0, 4130015, 1, 1), - (8, 1472021, 45, 1, 55000, 0, 0, 4130015, 1, 1), - (8, 1332016, 45, 1, 110000, 0, 0, 4130014, 1, 1), - (8, 1332015, 55, 1, 125000, 0, 0, 4130014, 1, 1), - (8, 1472022, 55, 1, 125000, 0, 0, 4130015, 1, 1), - (8, 1472023, 55, 1, 127500, 0, 0, 4130015, 1, 1), - (8, 1472024, 55, 1, 127500, 0, 0, 4130015, 1, 1), - (8, 1472025, 55, 1, 130000, 0, 0, 4130015, 1, 1), - (8, 1332017, 55, 1, 125000, 0, 0, 4130014, 1, 1), - (8, 1332018, 65, 1, 140000, 0, 0, 4130014, 1, 1), - (8, 1472026, 65, 1, 150000, 0, 0, 4130015, 1, 1), - (8, 1472027, 65, 1, 152500, 0, 0, 4130015, 1, 1), - (8, 1472028, 65, 1, 152500, 0, 0, 4130015, 1, 1), - (8, 1472029, 65, 1, 155000, 0, 0, 4130015, 1, 1), - (8, 1332019, 65, 1, 140000, 0, 0, 4130014, 1, 1), - (8, 1472031, 75, 2, 280000, 0, 0, 4130015, 1, 2), - (8, 1332022, 75, 2, 217000, 0, 0, 4130014, 1, 2), - (8, 1332023, 75, 2, 217000, 0, 0, 4130014, 1, 2), - (8, 1332027, 85, 2, 238000, 0, 0, 4130014, 1, 2), - (8, 1472033, 85, 2, 315000, 0, 0, 4130015, 1, 2), - (8, 1332026, 85, 2, 238000, 0, 0, 4130014, 1, 2), - (8, 1332052, 95, 2, 280000, 0, 0, 4130014, 1, 2), - (8, 1472053, 95, 2, 357000, 0, 0, 4130015, 1, 2), - (8, 1332051, 95, 2, 280000, 0, 0, 4130014, 1, 2), - (8, 1332050, 105, 3, 450000, 0, 0, 4130014, 1, 3), - (8, 1472051, 105, 3, 570000, 0, 0, 4130015, 1, 3), - (8, 1472052, 105, 3, 570000, 0, 0, 4130015, 1, 3), - (8, 1332049, 105, 3, 450000, 0, 0, 4130014, 1, 3), - (8, 1332075, 115, 3, 500000, 0, 0, 4130014, 1, 3), - (8, 1332076, 115, 3, 500000, 0, 0, 4130014, 1, 3), - (8, 1472071, 115, 3, 630000, 0, 0, 4130015, 1, 3), - (8, 1332073, 115, 3, 500000, 0, 0, 4130014, 1, 3), - (8, 1332074, 115, 3, 510000, 0, 0, 4130014, 1, 3), - (8, 1472068, 115, 3, 630000, 0, 0, 4130015, 1, 3), - (16, 1002631, 45, 1, 20000, 0, 0, 4130018, 1, 1), - (16, 1002634, 55, 1, 27500, 0, 0, 4130018, 1, 1), - (16, 1002637, 65, 1, 42500, 0, 0, 4130018, 1, 1), - (16, 1002640, 75, 2, 70000, 0, 0, 4130018, 1, 2), - (16, 1002643, 85, 2, 80500, 0, 0, 4130018, 1, 2), - (16, 1002646, 95, 2, 91000, 0, 0, 4130018, 1, 2), - (16, 1002649, 105, 3, 150000, 0, 0, 4130018, 1, 3), - (16, 1002794, 115, 3, 170000, 0, 0, 4130018, 1, 3), - (16, 1002780, 115, 3, 170000, 0, 0, 4130018, 1, 3), - (16, 1052116, 45, 1, 47500, 0, 0, 4130021, 1, 1), - (16, 1052119, 55, 1, 50000, 0, 0, 4130021, 1, 1), - (16, 1052122, 65, 1, 57500, 0, 0, 4130021, 1, 1), - (16, 1052125, 75, 2, 126000, 0, 0, 4130021, 1, 2), - (16, 1052128, 85, 2, 140000, 0, 0, 4130021, 1, 2), - (16, 1052131, 95, 2, 168000, 0, 0, 4130021, 1, 2), - (16, 1052134, 105, 3, 300000, 0, 0, 4130021, 1, 3), - (16, 1052164, 115, 3, 360000, 0, 0, 4130021, 1, 3), - (16, 1052159, 115, 3, 360000, 0, 0, 4130021, 1, 3), - (16, 1072303, 45, 1, 25000, 0, 0, 4130001, 1, 1), - (16, 1072306, 55, 1, 32500, 0, 0, 4130001, 1, 1), - (16, 1072309, 65, 1, 45000, 0, 0, 4130001, 1, 1), - (16, 1072312, 75, 2, 77000, 0, 0, 4130001, 1, 2), - (16, 1072315, 85, 2, 98000, 0, 0, 4130001, 1, 2), - (16, 1072318, 95, 2, 119000, 0, 0, 4130001, 1, 2), - (16, 1072321, 105, 3, 180000, 0, 0, 4130001, 1, 3), - (16, 1072365, 115, 3, 200000, 0, 0, 4130001, 1, 3), - (16, 1072359, 115, 3, 200000, 0, 0, 4130001, 1, 3), - (16, 1082198, 45, 1, 42500, 0, 0, 4130000, 1, 1), - (16, 1082201, 55, 1, 55000, 0, 0, 4130000, 1, 1), - (16, 1082204, 65, 1, 75000, 0, 0, 4130000, 1, 1), - (16, 1082207, 75, 2, 140000, 0, 0, 4130000, 1, 2), - (16, 1082210, 85, 2, 161000, 0, 0, 4130000, 1, 2), - (16, 1082213, 95, 2, 185500, 0, 0, 4130000, 1, 2), - (16, 1082216, 105, 3, 300000, 0, 0, 4130000, 1, 3), - (16, 1082243, 115, 3, 335000, 0, 0, 4130000, 1, 3), - (16, 1082238, 115, 3, 335000, 0, 0, 4130000, 1, 3), - (16, 1482007, 45, 1, 65000, 0, 0, 4130016, 1, 1), - (16, 1492007, 45, 1, 70000, 0, 0, 4130017, 1, 1), - (16, 1482008, 55, 1, 120000, 0, 0, 4130016, 1, 1), - (16, 1492008, 55, 1, 125000, 0, 0, 4130017, 1, 1), - (16, 1482009, 65, 1, 150000, 0, 0, 4130016, 1, 1), - (16, 1492009, 65, 1, 155000, 0, 0, 4130017, 1, 1), - (16, 1482010, 75, 2, 245000, 0, 0, 4130016, 1, 2), - (16, 1492010, 75, 2, 245000, 0, 0, 4130017, 1, 2), - (16, 1482011, 85, 2, 273000, 0, 0, 4130016, 1, 2), - (16, 1492011, 85, 2, 280000, 0, 0, 4130017, 1, 2), - (16, 1482012, 95, 2, 308000, 0, 0, 4130016, 1, 2), - (16, 1492012, 95, 2, 315000, 0, 0, 4130017, 1, 2), - (16, 1482013, 105, 3, 510000, 0, 0, 4130016, 1, 3), - (16, 1492013, 105, 3, 520000, 0, 0, 4130017, 1, 3), - (16, 1482024, 115, 3, 560000, 0, 0, 4130016, 1, 3), - (16, 1492025, 115, 3, 570000, 0, 0, 4130017, 1, 3), - (16, 1482023, 115, 3, 560000, 0, 0, 4130016, 1, 3), - (16, 1492023, 115, 3, 570000, 0, 0, 4130017, 1, 3); + (0, 2041058, 50, 1, 55000, 0, 1122013, 0, 1, 0), + (0, 2040727, 50, 1, 55000, 0, 1122013, 0, 1, 0), + (1, 1002028, 45, 1, 55000, 0, 0, 4130018, 1, 1), + (1, 1002085, 45, 1, 50000, 0, 0, 4130018, 1, 1), + (1, 1002086, 45, 1, 41000, 0, 0, 4130018, 1, 1), + (1, 1002022, 50, 1, 60000, 0, 0, 4130018, 1, 1), + (1, 1002100, 50, 1, 60000, 0, 0, 4130018, 1, 1), + (1, 1002101, 50, 1, 60000, 0, 0, 4130018, 1, 1), + (1, 1002029, 55, 1, 82000, 0, 0, 4130018, 1, 1), + (1, 1002084, 55, 1, 82000, 0, 0, 4130018, 1, 1), + (1, 1002030, 65, 1, 93000, 0, 0, 4130018, 1, 1), + (1, 1002094, 65, 1, 93000, 0, 0, 4130018, 1, 1), + (1, 1002095, 65, 1, 93000, 0, 0, 4130018, 1, 1), + (1, 1002338, 75, 2, 146000, 0, 0, 4130018, 1, 2), + (1, 1002339, 75, 2, 146000, 0, 0, 4130018, 1, 2), + (1, 1002340, 75, 2, 146000, 0, 0, 4130018, 1, 2), + (1, 1002528, 85, 2, 161000, 0, 0, 4130018, 1, 2), + (1, 1002529, 85, 2, 161000, 0, 0, 4130018, 1, 2), + (1, 1002530, 85, 2, 161000, 0, 0, 4130018, 1, 2), + (1, 1002531, 85, 2, 161000, 0, 0, 4130018, 1, 2), + (1, 1002532, 85, 2, 161000, 0, 0, 4130018, 1, 2), + (1, 1002377, 95, 2, 184000, 0, 0, 4130018, 1, 2), + (1, 1002378, 95, 2, 184000, 0, 0, 4130018, 1, 2), + (1, 1002379, 95, 2, 184000, 0, 0, 4130018, 1, 2), + (1, 1002551, 105, 3, 308000, 0, 0, 4130018, 1, 3), + (1, 1002790, 115, 3, 352000, 0, 0, 4130018, 1, 3), + (1, 1002776, 115, 3, 352000, 0, 0, 4130018, 1, 3), + (1, 1040087, 45, 1, 41000, 0, 0, 4130019, 1, 1), + (1, 1040088, 45, 1, 41000, 0, 0, 4130019, 1, 1), + (1, 1040089, 45, 1, 41000, 0, 0, 4130019, 1, 1), + (1, 1041087, 45, 1, 41000, 0, 0, 4130019, 1, 1), + (1, 1041088, 45, 1, 41000, 0, 0, 4130019, 1, 1), + (1, 1041089, 45, 1, 41000, 0, 0, 4130019, 1, 1), + (1, 1040090, 55, 1, 50000, 0, 0, 4130019, 1, 1), + (1, 1040091, 55, 1, 50000, 0, 0, 4130019, 1, 1), + (1, 1040092, 55, 1, 50000, 0, 0, 4130019, 1, 1), + (1, 1040093, 55, 1, 50000, 0, 0, 4130019, 1, 1), + (1, 1041091, 55, 1, 50000, 0, 0, 4130019, 1, 1), + (1, 1041092, 55, 1, 50000, 0, 0, 4130019, 1, 1), + (1, 1041093, 55, 1, 50000, 0, 0, 4130019, 1, 1), + (1, 1040102, 65, 1, 55000, 0, 0, 4130019, 1, 1), + (1, 1040103, 65, 1, 55000, 0, 0, 4130019, 1, 1), + (1, 1040104, 65, 1, 55000, 0, 0, 4130019, 1, 1), + (1, 1041097, 65, 1, 55000, 0, 0, 4130019, 1, 1), + (1, 1041098, 65, 1, 55000, 0, 0, 4130019, 1, 1), + (1, 1041099, 65, 1, 55000, 0, 0, 4130019, 1, 1), + (1, 1040111, 85, 2, 123000, 0, 0, 4130019, 1, 2), + (1, 1040112, 85, 2, 123000, 0, 0, 4130019, 1, 2), + (1, 1040113, 85, 2, 123000, 0, 0, 4130019, 1, 2), + (1, 1041119, 85, 2, 146000, 0, 0, 4130019, 1, 2), + (1, 1041120, 85, 2, 146000, 0, 0, 4130019, 1, 2), + (1, 1041121, 85, 2, 146000, 0, 0, 4130019, 1, 2), + (1, 1040120, 95, 2, 153000, 0, 0, 4130019, 1, 2), + (1, 1040121, 95, 2, 153000, 0, 0, 4130019, 1, 2), + (1, 1040122, 95, 2, 153000, 0, 0, 4130019, 1, 2), + (1, 1041122, 95, 2, 153000, 0, 0, 4130019, 1, 2), + (1, 1041123, 95, 2, 153000, 0, 0, 4130019, 1, 2), + (1, 1041124, 95, 2, 153000, 0, 0, 4130019, 1, 2), + (1, 1060076, 45, 1, 33000, 0, 0, 4130020, 1, 1), + (1, 1060077, 45, 1, 33000, 0, 0, 4130020, 1, 1), + (1, 1060078, 45, 1, 33000, 0, 0, 4130020, 1, 1), + (1, 1061086, 45, 1, 33000, 0, 0, 4130020, 1, 1), + (1, 1061087, 45, 1, 33000, 0, 0, 4130020, 1, 1), + (1, 1061088, 45, 1, 33000, 0, 0, 4130020, 1, 1), + (1, 1060079, 55, 1, 41000, 0, 0, 4130020, 1, 1), + (1, 1060080, 55, 1, 41000, 0, 0, 4130020, 1, 1), + (1, 1060081, 55, 1, 41000, 0, 0, 4130020, 1, 1), + (1, 1060082, 55, 1, 41000, 0, 0, 4130020, 1, 1), + (1, 1061090, 55, 1, 41000, 0, 0, 4130020, 1, 1), + (1, 1061091, 55, 1, 41000, 0, 0, 4130020, 1, 1), + (1, 1061092, 55, 1, 41000, 0, 0, 4130020, 1, 1), + (1, 1060090, 65, 1, 50000, 0, 0, 4130020, 1, 1), + (1, 1060091, 65, 1, 50000, 0, 0, 4130020, 1, 1), + (1, 1060092, 65, 1, 50000, 0, 0, 4130020, 1, 1), + (1, 1061096, 65, 1, 50000, 0, 0, 4130020, 1, 1), + (1, 1061097, 65, 1, 50000, 0, 0, 4130020, 1, 1), + (1, 1061098, 65, 1, 50000, 0, 0, 4130020, 1, 1), + (1, 1060100, 85, 2, 107000, 0, 0, 4130020, 1, 2), + (1, 1060101, 85, 2, 107000, 0, 0, 4130020, 1, 2), + (1, 1060102, 85, 2, 107000, 0, 0, 4130020, 1, 2), + (1, 1061118, 85, 2, 130000, 0, 0, 4130020, 1, 2), + (1, 1061119, 85, 2, 130000, 0, 0, 4130020, 1, 2), + (1, 1061120, 85, 2, 130000, 0, 0, 4130020, 1, 2), + (1, 1060109, 95, 2, 138000, 0, 0, 4130020, 1, 2), + (1, 1060110, 95, 2, 138000, 0, 0, 4130020, 1, 2), + (1, 1060111, 95, 2, 138000, 0, 0, 4130020, 1, 2), + (1, 1061121, 95, 2, 138000, 0, 0, 4130020, 1, 2), + (1, 1061122, 95, 2, 138000, 0, 0, 4130020, 1, 2), + (1, 1061123, 95, 2, 138000, 0, 0, 4130020, 1, 2), + (1, 1050080, 75, 2, 138000, 0, 0, 4130021, 1, 2), + (1, 1050081, 75, 2, 138000, 0, 0, 4130021, 1, 2), + (1, 1050082, 75, 2, 138000, 0, 0, 4130021, 1, 2), + (1, 1050083, 75, 2, 138000, 0, 0, 4130021, 1, 2), + (1, 1051077, 75, 2, 138000, 0, 0, 4130021, 1, 2), + (1, 1051078, 75, 2, 138000, 0, 0, 4130021, 1, 2), + (1, 1051079, 75, 2, 138000, 0, 0, 4130021, 1, 2), + (1, 1051080, 75, 2, 138000, 0, 0, 4130021, 1, 2), + (1, 1052075, 105, 3, 352000, 0, 0, 4130021, 1, 3), + (1, 1052160, 115, 3, 418000, 0, 0, 4130021, 1, 3), + (1, 1052155, 115, 3, 418000, 0, 0, 4130021, 1, 3), + (1, 1072132, 45, 1, 30000, 0, 0, 4130001, 1, 1), + (1, 1072133, 45, 1, 30000, 0, 0, 4130001, 1, 1), + (1, 1072134, 45, 1, 30000, 0, 0, 4130001, 1, 1), + (1, 1072135, 45, 1, 30000, 0, 0, 4130001, 1, 1), + (1, 1072147, 55, 1, 39000, 0, 0, 4130001, 1, 1), + (1, 1072148, 55, 1, 39000, 0, 0, 4130001, 1, 1), + (1, 1072149, 55, 1, 39000, 0, 0, 4130001, 1, 1), + (1, 1072154, 65, 1, 47000, 0, 0, 4130001, 1, 1), + (1, 1072155, 65, 1, 47000, 0, 0, 4130001, 1, 1), + (1, 1072156, 65, 1, 47000, 0, 0, 4130001, 1, 1), + (1, 1072210, 75, 2, 84000, 0, 0, 4130001, 1, 2), + (1, 1072211, 75, 2, 84000, 0, 0, 4130001, 1, 2), + (1, 1072212, 75, 2, 84000, 0, 0, 4130001, 1, 2), + (1, 1072196, 85, 2, 115000, 0, 0, 4130001, 1, 2), + (1, 1072197, 85, 2, 115000, 0, 0, 4130001, 1, 2), + (1, 1072198, 85, 2, 115000, 0, 0, 4130001, 1, 2), + (1, 1072220, 95, 2, 138000, 0, 0, 4130001, 1, 2), + (1, 1072221, 95, 2, 138000, 0, 0, 4130001, 1, 2), + (1, 1072222, 95, 2, 138000, 0, 0, 4130001, 1, 2), + (1, 1072273, 105, 3, 231000, 0, 0, 4130001, 1, 3), + (1, 1072361, 115, 3, 264000, 0, 0, 4130001, 1, 3), + (1, 1072355, 115, 3, 264000, 0, 0, 4130001, 1, 3), + (1, 1082009, 45, 1, 50000, 0, 0, 4130000, 1, 1), + (1, 1082010, 45, 1, 55000, 0, 0, 4130000, 1, 1), + (1, 1082011, 45, 1, 60000, 0, 0, 4130000, 1, 1), + (1, 1082059, 55, 1, 66000, 0, 0, 4130000, 1, 1), + (1, 1082060, 55, 1, 71000, 0, 0, 4130000, 1, 1), + (1, 1082061, 55, 1, 77000, 0, 0, 4130000, 1, 1), + (1, 1082103, 65, 1, 82000, 0, 0, 4130000, 1, 1), + (1, 1082104, 65, 1, 88000, 0, 0, 4130000, 1, 1), + (1, 1082105, 65, 1, 93000, 0, 0, 4130000, 1, 1), + (1, 1082114, 75, 2, 161000, 0, 0, 4130000, 1, 2), + (1, 1082115, 75, 2, 165000, 0, 0, 4130000, 1, 2), + (1, 1082116, 75, 2, 168000, 0, 0, 4130000, 1, 2), + (1, 1082117, 75, 2, 168000, 0, 0, 4130000, 1, 2), + (1, 1082128, 85, 2, 184000, 0, 0, 4130000, 1, 2), + (1, 1082129, 85, 2, 188000, 0, 0, 4130000, 1, 2), + (1, 1082130, 85, 2, 191000, 0, 0, 4130000, 1, 2), + (1, 1082139, 95, 2, 207000, 0, 0, 4130000, 1, 2), + (1, 1082140, 95, 2, 210000, 0, 0, 4130000, 1, 2), + (1, 1082141, 95, 2, 214000, 0, 0, 4130000, 1, 2), + (1, 1082168, 105, 3, 330000, 0, 0, 4130000, 1, 3), + (1, 1082239, 115, 3, 363000, 0, 0, 4130000, 1, 3), + (1, 1082234, 115, 3, 363000, 0, 0, 4130000, 1, 3), + (1, 1092004, 45, 1, 82000, 0, 0, 4130022, 1, 1), + (1, 1092009, 55, 1, 99000, 0, 0, 4130022, 1, 1), + (1, 1092010, 55, 1, 104000, 0, 0, 4130022, 1, 1), + (1, 1092011, 55, 1, 104000, 0, 0, 4130022, 1, 1), + (1, 1092015, 65, 1, 110000, 0, 0, 4130022, 1, 1), + (1, 1092016, 65, 1, 115000, 0, 0, 4130022, 1, 1), + (1, 1092017, 65, 1, 115000, 0, 0, 4130022, 1, 1), + (1, 1092023, 75, 2, 168000, 0, 0, 4130022, 1, 2), + (1, 1092024, 75, 2, 176000, 0, 0, 4130022, 1, 2), + (1, 1092025, 75, 2, 176000, 0, 0, 4130022, 1, 2), + (1, 1092026, 85, 2, 184000, 0, 0, 4130022, 1, 2), + (1, 1092027, 85, 2, 191000, 0, 0, 4130022, 1, 2), + (1, 1092028, 85, 2, 191000, 0, 0, 4130022, 1, 2), + (1, 1092036, 95, 2, 199000, 0, 0, 4130022, 1, 2), + (1, 1092037, 95, 2, 207000, 0, 0, 4130022, 1, 2), + (1, 1092038, 95, 2, 214000, 0, 0, 4130022, 1, 2), + (1, 1092060, 105, 3, 231000, 0, 0, 4130022, 1, 3), + (1, 1092058, 115, 3, 385000, 0, 0, 4130022, 1, 3), + (1, 1302010, 45, 1, 66000, 0, 0, 4130002, 1, 1), + (1, 1312008, 45, 1, 77000, 0, 0, 4130003, 1, 1), + (1, 1322017, 45, 1, 77000, 0, 0, 4130004, 1, 1), + (1, 1402003, 45, 1, 110000, 0, 0, 4130005, 1, 1), + (1, 1412003, 45, 1, 77000, 0, 0, 4130006, 1, 1), + (1, 1422005, 45, 1, 82000, 0, 0, 4130007, 1, 1), + (1, 1432004, 45, 1, 82000, 0, 0, 4130008, 1, 1), + (1, 1442005, 45, 1, 82000, 0, 0, 4130009, 1, 1), + (1, 1302011, 55, 1, 82000, 0, 0, 4130002, 1, 1), + (1, 1312009, 55, 1, 104000, 0, 0, 4130003, 1, 1), + (1, 1322018, 55, 1, 104000, 0, 0, 4130004, 1, 1), + (1, 1402011, 55, 1, 126000, 0, 0, 4130005, 1, 1), + (1, 1412007, 55, 1, 104000, 0, 0, 4130006, 1, 1), + (1, 1422009, 55, 1, 104000, 0, 0, 4130007, 1, 1), + (1, 1432006, 55, 1, 104000, 0, 0, 4130008, 1, 1), + (1, 1442010, 55, 1, 137000, 0, 0, 4130009, 1, 1), + (1, 1302012, 65, 1, 137000, 0, 0, 4130002, 1, 1), + (1, 1312010, 65, 1, 165000, 0, 0, 4130003, 1, 1), + (1, 1322019, 65, 1, 137000, 0, 0, 4130004, 1, 1), + (1, 1402012, 65, 1, 143000, 0, 0, 4130005, 1, 1), + (1, 1412008, 65, 1, 137000, 0, 0, 4130006, 1, 1), + (1, 1422010, 65, 1, 137000, 0, 0, 4130007, 1, 1), + (1, 1432007, 65, 1, 137000, 0, 0, 4130008, 1, 1), + (1, 1442008, 65, 1, 165000, 0, 0, 4130009, 1, 1), + (1, 1322020, 70, 1, 165000, 0, 0, 4130004, 1, 1), + (1, 1302018, 75, 2, 231000, 0, 0, 4130002, 1, 2), + (1, 1312011, 75, 2, 269000, 0, 0, 4130003, 1, 2), + (1, 1322028, 75, 2, 269000, 0, 0, 4130004, 1, 2), + (1, 1402004, 75, 2, 231000, 0, 0, 4130005, 1, 2), + (1, 1402015, 75, 2, 231000, 0, 0, 4130005, 1, 2), + (1, 1412009, 75, 2, 238000, 0, 0, 4130006, 1, 2), + (1, 1422012, 75, 2, 238000, 0, 0, 4130007, 1, 2), + (1, 1432010, 75, 2, 238000, 0, 0, 4130008, 1, 2), + (1, 1442019, 75, 2, 269000, 0, 0, 4130009, 1, 2), + (1, 1302023, 85, 2, 269000, 0, 0, 4130002, 1, 2), + (1, 1312015, 85, 2, 308000, 0, 0, 4130003, 1, 2), + (1, 1322029, 85, 2, 308000, 0, 0, 4130004, 1, 2), + (1, 1402005, 85, 2, 308000, 0, 0, 4130005, 1, 2), + (1, 1402016, 85, 2, 308000, 0, 0, 4130005, 1, 2), + (1, 1412010, 85, 2, 284000, 0, 0, 4130006, 1, 2), + (1, 1422013, 85, 2, 284000, 0, 0, 4130007, 1, 2), + (1, 1432011, 85, 2, 284000, 0, 0, 4130008, 1, 2), + (1, 1442020, 85, 2, 346000, 0, 0, 4130009, 1, 2), + (1, 1302056, 95, 2, 369000, 0, 0, 4130002, 1, 2), + (1, 1312030, 95, 2, 361000, 0, 0, 4130003, 1, 2), + (1, 1322045, 95, 2, 361000, 0, 0, 4130004, 1, 2), + (1, 1402035, 95, 2, 361000, 0, 0, 4130005, 1, 2), + (1, 1412021, 95, 2, 377000, 0, 0, 4130006, 1, 2), + (1, 1422027, 95, 2, 346000, 0, 0, 4130007, 1, 2), + (1, 1432030, 95, 2, 377000, 0, 0, 4130008, 1, 2), + (1, 1442044, 95, 2, 361000, 0, 0, 4130009, 1, 2), + (1, 1302059, 105, 3, 605000, 0, 0, 4130002, 1, 3), + (1, 1312031, 105, 3, 583000, 0, 0, 4130003, 1, 3), + (1, 1322052, 105, 3, 528000, 0, 0, 4130004, 1, 3), + (1, 1402036, 105, 3, 605000, 0, 0, 4130005, 1, 3), + (1, 1412026, 105, 3, 572000, 0, 0, 4130006, 1, 3), + (1, 1422028, 105, 3, 561000, 0, 0, 4130007, 1, 3), + (1, 1432038, 105, 3, 583000, 0, 0, 4130008, 1, 3), + (1, 1442045, 105, 3, 627000, 0, 0, 4130009, 1, 3), + (1, 1302086, 115, 3, 748000, 0, 0, 4130002, 1, 3), + (1, 1312038, 115, 3, 638000, 0, 0, 4130003, 1, 3), + (1, 1322061, 115, 3, 539000, 0, 0, 4130004, 1, 3), + (1, 1402047, 115, 3, 715000, 0, 0, 4130005, 1, 3), + (1, 1412034, 115, 3, 715000, 0, 0, 4130006, 1, 3), + (1, 1422038, 115, 3, 616000, 0, 0, 4130007, 1, 3), + (1, 1432049, 115, 3, 627000, 0, 0, 4130008, 1, 3), + (1, 1442067, 115, 3, 682000, 0, 0, 4130009, 1, 3), + (1, 1302081, 115, 3, 748000, 0, 0, 4130002, 1, 3), + (1, 1312037, 115, 3, 638000, 0, 0, 4130003, 1, 3), + (1, 1322060, 115, 3, 539000, 0, 0, 4130004, 1, 3), + (1, 1402046, 115, 3, 715000, 0, 0, 4130005, 1, 3), + (1, 1412033, 115, 3, 715000, 0, 0, 4130006, 1, 3), + (1, 1422037, 115, 3, 616000, 0, 0, 4130007, 1, 3), + (1, 1432047, 115, 3, 627000, 0, 0, 4130008, 1, 3), + (1, 1442063, 115, 3, 682000, 0, 0, 4130009, 1, 3), + (2, 1002215, 45, 1, 22000, 0, 0, 4130018, 1, 1), + (2, 1002216, 45, 1, 22000, 0, 0, 4130018, 1, 1), + (2, 1002217, 45, 1, 22000, 0, 0, 4130018, 1, 1), + (2, 1002218, 45, 1, 22000, 0, 0, 4130018, 1, 1), + (2, 1002242, 55, 1, 28000, 0, 0, 4130018, 1, 1), + (2, 1002243, 55, 1, 28000, 0, 0, 4130018, 1, 1), + (2, 1002244, 55, 1, 28000, 0, 0, 4130018, 1, 1), + (2, 1002245, 55, 1, 28000, 0, 0, 4130018, 1, 1), + (2, 1002246, 55, 1, 28000, 0, 0, 4130018, 1, 1), + (2, 1002252, 65, 1, 44000, 0, 0, 4130018, 1, 1), + (2, 1002253, 65, 1, 44000, 0, 0, 4130018, 1, 1), + (2, 1002254, 65, 1, 44000, 0, 0, 4130018, 1, 1), + (2, 1002271, 75, 2, 73000, 0, 0, 4130018, 1, 2), + (2, 1002272, 75, 2, 73000, 0, 0, 4130018, 1, 2), + (2, 1002273, 75, 2, 73000, 0, 0, 4130018, 1, 2), + (2, 1002274, 75, 2, 73000, 0, 0, 4130018, 1, 2), + (2, 1002363, 85, 2, 84000, 0, 0, 4130018, 1, 2), + (2, 1002364, 85, 2, 84000, 0, 0, 4130018, 1, 2), + (2, 1002365, 85, 2, 84000, 0, 0, 4130018, 1, 2), + (2, 1002366, 85, 2, 84000, 0, 0, 4130018, 1, 2), + (2, 1002398, 95, 2, 96000, 0, 0, 4130018, 1, 2), + (2, 1002399, 95, 2, 96000, 0, 0, 4130018, 1, 2), + (2, 1002400, 95, 2, 96000, 0, 0, 4130018, 1, 2), + (2, 1002401, 95, 2, 96000, 0, 0, 4130018, 1, 2), + (2, 1002773, 105, 3, 165000, 0, 0, 4130018, 1, 3), + (2, 1002791, 115, 3, 187000, 0, 0, 4130018, 1, 3), + (2, 1002777, 115, 3, 187000, 0, 0, 4130018, 1, 3), + (2, 1050045, 43, 1, 50000, 0, 0, 4130021, 1, 1), + (2, 1050046, 43, 1, 50000, 0, 0, 4130021, 1, 1), + (2, 1050047, 43, 1, 50000, 0, 0, 4130021, 1, 1), + (2, 1050048, 43, 1, 50000, 0, 0, 4130021, 1, 1), + (2, 1050049, 43, 1, 50000, 0, 0, 4130021, 1, 1), + (2, 1051030, 43, 1, 50000, 0, 0, 4130021, 1, 1), + (2, 1051031, 43, 1, 50000, 0, 0, 4130021, 1, 1), + (2, 1051032, 43, 1, 50000, 0, 0, 4130021, 1, 1), + (2, 1051033, 43, 1, 50000, 0, 0, 4130021, 1, 1), + (2, 1051034, 43, 1, 50000, 0, 0, 4130021, 1, 1), + (2, 1050053, 53, 1, 55000, 0, 0, 4130021, 1, 1), + (2, 1050054, 53, 1, 55000, 0, 0, 4130021, 1, 1), + (2, 1050055, 53, 1, 55000, 0, 0, 4130021, 1, 1), + (2, 1050056, 53, 1, 55000, 0, 0, 4130021, 1, 1), + (2, 1051044, 53, 1, 55000, 0, 0, 4130021, 1, 1), + (2, 1051045, 53, 1, 55000, 0, 0, 4130021, 1, 1), + (2, 1051046, 53, 1, 55000, 0, 0, 4130021, 1, 1), + (2, 1051047, 53, 1, 55000, 0, 0, 4130021, 1, 1), + (2, 1050067, 63, 1, 66000, 0, 0, 4130021, 1, 1), + (2, 1050068, 63, 1, 66000, 0, 0, 4130021, 1, 1), + (2, 1050069, 63, 1, 66000, 0, 0, 4130021, 1, 1), + (2, 1050070, 63, 1, 66000, 0, 0, 4130021, 1, 1), + (2, 1051052, 63, 1, 66000, 0, 0, 4130021, 1, 1), + (2, 1051053, 63, 1, 66000, 0, 0, 4130021, 1, 1), + (2, 1051054, 63, 1, 66000, 0, 0, 4130021, 1, 1), + (2, 1051055, 63, 1, 66000, 0, 0, 4130021, 1, 1), + (2, 1050072, 73, 2, 123000, 0, 0, 4130021, 1, 2), + (2, 1050073, 73, 2, 123000, 0, 0, 4130021, 1, 2), + (2, 1050074, 73, 2, 123000, 0, 0, 4130021, 1, 2), + (2, 1051056, 73, 2, 123000, 0, 0, 4130021, 1, 2), + (2, 1051057, 73, 2, 123000, 0, 0, 4130021, 1, 2), + (2, 1051058, 73, 2, 123000, 0, 0, 4130021, 1, 2), + (2, 1050092, 83, 2, 153000, 0, 0, 4130021, 1, 2), + (2, 1050093, 83, 2, 153000, 0, 0, 4130021, 1, 2), + (2, 1050094, 83, 2, 153000, 0, 0, 4130021, 1, 2), + (2, 1050095, 83, 2, 153000, 0, 0, 4130021, 1, 2), + (2, 1051094, 83, 2, 153000, 0, 0, 4130021, 1, 2), + (2, 1051095, 83, 2, 153000, 0, 0, 4130021, 1, 2), + (2, 1051096, 83, 2, 153000, 0, 0, 4130021, 1, 2), + (2, 1051097, 83, 2, 153000, 0, 0, 4130021, 1, 2), + (2, 1050102, 93, 2, 184000, 0, 0, 4130021, 1, 2), + (2, 1050103, 93, 2, 184000, 0, 0, 4130021, 1, 2), + (2, 1050104, 93, 2, 184000, 0, 0, 4130021, 1, 2), + (2, 1050105, 93, 2, 184000, 0, 0, 4130021, 1, 2), + (2, 1051101, 93, 2, 184000, 0, 0, 4130021, 1, 2), + (2, 1051102, 93, 2, 184000, 0, 0, 4130021, 1, 2), + (2, 1051103, 93, 2, 184000, 0, 0, 4130021, 1, 2), + (2, 1051104, 93, 2, 184000, 0, 0, 4130021, 1, 2), + (2, 1052076, 103, 3, 319000, 0, 0, 4130021, 1, 3), + (2, 1052161, 115, 3, 374000, 0, 0, 4130021, 1, 3), + (2, 1052156, 115, 3, 374000, 0, 0, 4130021, 1, 3), + (2, 1072140, 45, 1, 30000, 0, 0, 4130001, 1, 1), + (2, 1072141, 45, 1, 30000, 0, 0, 4130001, 1, 1), + (2, 1072142, 45, 1, 30000, 0, 0, 4130001, 1, 1), + (2, 1072143, 45, 1, 30000, 0, 0, 4130001, 1, 1), + (2, 1072136, 55, 1, 33000, 0, 0, 4130001, 1, 1), + (2, 1072137, 55, 1, 33000, 0, 0, 4130001, 1, 1), + (2, 1072138, 55, 1, 33000, 0, 0, 4130001, 1, 1), + (2, 1072139, 55, 1, 33000, 0, 0, 4130001, 1, 1), + (2, 1072157, 65, 1, 44000, 0, 0, 4130001, 1, 1), + (2, 1072158, 65, 1, 44000, 0, 0, 4130001, 1, 1), + (2, 1072159, 65, 1, 44000, 0, 0, 4130001, 1, 1), + (2, 1072160, 65, 1, 44000, 0, 0, 4130001, 1, 1), + (2, 1072177, 75, 2, 77000, 0, 0, 4130001, 1, 2), + (2, 1072178, 75, 2, 77000, 0, 0, 4130001, 1, 2), + (2, 1072179, 75, 2, 77000, 0, 0, 4130001, 1, 2), + (2, 1072206, 85, 2, 92000, 0, 0, 4130001, 1, 2), + (2, 1072207, 85, 2, 92000, 0, 0, 4130001, 1, 2), + (2, 1072208, 85, 2, 92000, 0, 0, 4130001, 1, 2), + (2, 1072209, 85, 2, 92000, 0, 0, 4130001, 1, 2), + (2, 1072223, 95, 2, 107000, 0, 0, 4130001, 1, 2), + (2, 1072224, 95, 2, 107000, 0, 0, 4130001, 1, 2), + (2, 1072225, 95, 2, 107000, 0, 0, 4130001, 1, 2), + (2, 1072226, 95, 2, 107000, 0, 0, 4130001, 1, 2), + (2, 1072268, 105, 3, 198000, 0, 0, 4130001, 1, 3), + (2, 1072362, 115, 3, 242000, 0, 0, 4130001, 1, 3), + (2, 1072356, 115, 3, 242000, 0, 0, 4130001, 1, 3), + (2, 1082080, 45, 1, 55000, 0, 0, 4130000, 1, 1), + (2, 1082081, 45, 1, 44000, 0, 0, 4130000, 1, 1), + (2, 1082082, 45, 1, 50000, 0, 0, 4130000, 1, 1), + (2, 1082086, 55, 1, 58000, 0, 0, 4130000, 1, 1), + (2, 1082087, 55, 1, 63000, 0, 0, 4130000, 1, 1), + (2, 1082088, 55, 1, 69000, 0, 0, 4130000, 1, 1), + (2, 1082098, 65, 1, 77000, 0, 0, 4130000, 1, 1), + (2, 1082099, 65, 1, 80000, 0, 0, 4130000, 1, 1), + (2, 1082100, 65, 1, 82000, 0, 0, 4130000, 1, 1), + (2, 1082121, 75, 2, 153000, 0, 0, 4130000, 1, 2), + (2, 1082122, 75, 2, 157000, 0, 0, 4130000, 1, 2), + (2, 1082123, 75, 2, 161000, 0, 0, 4130000, 1, 2), + (2, 1082131, 85, 2, 176000, 0, 0, 4130000, 1, 2), + (2, 1082132, 85, 2, 180000, 0, 0, 4130000, 1, 2), + (2, 1082133, 85, 2, 180000, 0, 0, 4130000, 1, 2), + (2, 1082134, 85, 2, 184000, 0, 0, 4130000, 1, 2), + (2, 1082151, 95, 2, 199000, 0, 0, 4130000, 1, 2), + (2, 1082152, 95, 2, 203000, 0, 0, 4130000, 1, 2), + (2, 1082153, 95, 2, 203000, 0, 0, 4130000, 1, 2), + (2, 1082154, 95, 2, 207000, 0, 0, 4130000, 1, 2), + (2, 1082164, 105, 3, 330000, 0, 0, 4130000, 1, 3), + (2, 1082240, 115, 3, 363000, 0, 0, 4130000, 1, 3), + (2, 1082235, 115, 3, 363000, 0, 0, 4130000, 1, 3), + (2, 1092057, 115, 3, 385000, 0, 0, 4130022, 1, 3), + (2, 1372007, 43, 1, 110000, 0, 0, 4130010, 1, 1), + (2, 1382006, 50, 1, 82000, 0, 0, 4130011, 1, 1), + (2, 1372014, 53, 1, 126000, 0, 0, 4130010, 1, 1), + (2, 1382007, 60, 1, 110000, 0, 0, 4130011, 1, 1), + (2, 1372015, 63, 1, 143000, 0, 0, 4130010, 1, 1), + (2, 1382010, 70, 1, 137000, 0, 0, 4130011, 1, 1), + (2, 1372016, 73, 2, 223000, 0, 0, 4130010, 1, 2), + (2, 1382008, 80, 2, 238000, 0, 0, 4130011, 1, 2), + (2, 1372009, 83, 2, 250000, 0, 0, 4130010, 1, 2), + (2, 1382035, 90, 2, 292000, 0, 0, 4130011, 1, 2), + (2, 1372010, 93, 2, 277000, 0, 0, 4130010, 1, 2), + (2, 1372032, 103, 3, 506000, 0, 0, 4130010, 1, 3), + (2, 1382036, 105, 3, 517000, 0, 0, 4130011, 1, 3), + (2, 1372045, 115, 3, 561000, 0, 0, 4130010, 1, 3), + (2, 1382059, 115, 3, 572000, 0, 0, 4130011, 1, 3), + (2, 1372044, 115, 3, 561000, 0, 0, 4130010, 1, 3), + (2, 1382057, 115, 3, 572000, 0, 0, 4130011, 1, 3), + (4, 1002211, 45, 1, 22000, 0, 0, 4130018, 1, 1), + (4, 1002212, 45, 1, 22000, 0, 0, 4130018, 1, 1), + (4, 1002213, 45, 1, 22000, 0, 0, 4130018, 1, 1), + (4, 1002214, 45, 1, 22000, 0, 0, 4130018, 1, 1), + (4, 1002267, 55, 1, 30000, 0, 0, 4130018, 1, 1), + (4, 1002268, 55, 1, 30000, 0, 0, 4130018, 1, 1), + (4, 1002269, 55, 1, 30000, 0, 0, 4130018, 1, 1), + (4, 1002270, 55, 1, 30000, 0, 0, 4130018, 1, 1), + (4, 1002286, 65, 1, 47000, 0, 0, 4130018, 1, 1), + (4, 1002287, 65, 1, 47000, 0, 0, 4130018, 1, 1), + (4, 1002288, 65, 1, 47000, 0, 0, 4130018, 1, 1), + (4, 1002289, 65, 1, 47000, 0, 0, 4130018, 1, 1), + (4, 1002275, 75, 2, 77000, 0, 0, 4130018, 1, 2), + (4, 1002276, 75, 2, 77000, 0, 0, 4130018, 1, 2), + (4, 1002277, 75, 2, 77000, 0, 0, 4130018, 1, 2), + (4, 1002278, 75, 2, 77000, 0, 0, 4130018, 1, 2), + (4, 1002402, 85, 2, 88000, 0, 0, 4130018, 1, 2), + (4, 1002403, 85, 2, 88000, 0, 0, 4130018, 1, 2), + (4, 1002404, 85, 2, 88000, 0, 0, 4130018, 1, 2), + (4, 1002405, 85, 2, 88000, 0, 0, 4130018, 1, 2), + (4, 1002406, 95, 2, 100000, 0, 0, 4130018, 1, 2), + (4, 1002407, 95, 2, 100000, 0, 0, 4130018, 1, 2), + (4, 1002408, 95, 2, 100000, 0, 0, 4130018, 1, 2), + (4, 1002547, 105, 3, 165000, 0, 0, 4130018, 1, 3), + (4, 1002792, 115, 3, 187000, 0, 0, 4130018, 1, 3), + (4, 1002778, 115, 3, 187000, 0, 0, 4130018, 1, 3), + (4, 1050051, 45, 1, 52000, 0, 0, 4130021, 1, 1), + (4, 1050052, 45, 1, 52000, 0, 0, 4130021, 1, 1), + (4, 1051037, 45, 1, 52000, 0, 0, 4130021, 1, 1), + (4, 1051038, 45, 1, 52000, 0, 0, 4130021, 1, 1), + (4, 1051039, 45, 1, 52000, 0, 0, 4130021, 1, 1), + (4, 1050058, 55, 1, 58000, 0, 0, 4130021, 1, 1), + (4, 1050059, 55, 1, 58000, 0, 0, 4130021, 1, 1), + (4, 1050060, 55, 1, 58000, 0, 0, 4130021, 1, 1), + (4, 1051041, 55, 1, 58000, 0, 0, 4130021, 1, 1), + (4, 1051042, 55, 1, 58000, 0, 0, 4130021, 1, 1), + (4, 1051043, 55, 1, 58000, 0, 0, 4130021, 1, 1), + (4, 1050061, 65, 1, 63000, 0, 0, 4130021, 1, 1), + (4, 1050062, 65, 1, 63000, 0, 0, 4130021, 1, 1), + (4, 1050063, 65, 1, 63000, 0, 0, 4130021, 1, 1), + (4, 1050064, 65, 1, 63000, 0, 0, 4130021, 1, 1), + (4, 1051062, 65, 1, 63000, 0, 0, 4130021, 1, 1), + (4, 1051063, 65, 1, 63000, 0, 0, 4130021, 1, 1), + (4, 1051064, 65, 1, 63000, 0, 0, 4130021, 1, 1), + (4, 1051065, 65, 1, 63000, 0, 0, 4130021, 1, 1), + (4, 1050075, 75, 2, 107000, 0, 0, 4130021, 1, 2), + (4, 1050076, 75, 2, 107000, 0, 0, 4130021, 1, 2), + (4, 1050077, 75, 2, 107000, 0, 0, 4130021, 1, 2), + (4, 1050078, 75, 2, 107000, 0, 0, 4130021, 1, 2), + (4, 1051066, 75, 2, 107000, 0, 0, 4130021, 1, 2), + (4, 1051067, 75, 2, 107000, 0, 0, 4130021, 1, 2), + (4, 1051068, 75, 2, 107000, 0, 0, 4130021, 1, 2), + (4, 1051069, 75, 2, 107000, 0, 0, 4130021, 1, 2), + (4, 1050088, 85, 2, 153000, 0, 0, 4130021, 1, 2), + (4, 1050089, 85, 2, 153000, 0, 0, 4130021, 1, 2), + (4, 1050090, 85, 2, 153000, 0, 0, 4130021, 1, 2), + (4, 1050091, 85, 2, 153000, 0, 0, 4130021, 1, 2), + (4, 1051082, 85, 2, 153000, 0, 0, 4130021, 1, 2), + (4, 1051083, 85, 2, 153000, 0, 0, 4130021, 1, 2), + (4, 1051084, 85, 2, 153000, 0, 0, 4130021, 1, 2), + (4, 1051085, 85, 2, 153000, 0, 0, 4130021, 1, 2), + (4, 1050106, 95, 2, 184000, 0, 0, 4130021, 1, 2), + (4, 1050107, 95, 2, 184000, 0, 0, 4130021, 1, 2), + (4, 1050108, 95, 2, 184000, 0, 0, 4130021, 1, 2), + (4, 1051105, 95, 2, 184000, 0, 0, 4130021, 1, 2), + (4, 1051106, 95, 2, 184000, 0, 0, 4130021, 1, 2), + (4, 1051107, 95, 2, 184000, 0, 0, 4130021, 1, 2), + (4, 1052071, 105, 3, 330000, 0, 0, 4130021, 1, 3), + (4, 1052162, 115, 3, 396000, 0, 0, 4130021, 1, 3), + (4, 1052157, 115, 3, 396000, 0, 0, 4130021, 1, 3), + (4, 1072122, 45, 1, 28000, 0, 0, 4130001, 1, 1), + (4, 1072123, 45, 1, 28000, 0, 0, 4130001, 1, 1), + (4, 1072124, 45, 1, 28000, 0, 0, 4130001, 1, 1), + (4, 1072125, 45, 1, 28000, 0, 0, 4130001, 1, 1), + (4, 1072144, 55, 1, 36000, 0, 0, 4130001, 1, 1), + (4, 1072145, 55, 1, 36000, 0, 0, 4130001, 1, 1), + (4, 1072146, 55, 1, 36000, 0, 0, 4130001, 1, 1), + (4, 1072164, 65, 1, 50000, 0, 0, 4130001, 1, 1), + (4, 1072165, 65, 1, 50000, 0, 0, 4130001, 1, 1), + (4, 1072166, 65, 1, 50000, 0, 0, 4130001, 1, 1), + (4, 1072167, 65, 1, 50000, 0, 0, 4130001, 1, 1), + (4, 1072182, 75, 2, 84000, 0, 0, 4130001, 1, 2), + (4, 1072183, 75, 2, 84000, 0, 0, 4130001, 1, 2), + (4, 1072184, 75, 2, 84000, 0, 0, 4130001, 1, 2), + (4, 1072185, 75, 2, 84000, 0, 0, 4130001, 1, 2), + (4, 1072203, 85, 2, 107000, 0, 0, 4130001, 1, 2), + (4, 1072204, 85, 2, 107000, 0, 0, 4130001, 1, 2), + (4, 1072205, 85, 2, 107000, 0, 0, 4130001, 1, 2), + (4, 1072227, 95, 2, 130000, 0, 0, 4130001, 1, 2), + (4, 1072228, 95, 2, 130000, 0, 0, 4130001, 1, 2), + (4, 1072229, 95, 2, 130000, 0, 0, 4130001, 1, 2), + (4, 1072269, 105, 3, 198000, 0, 0, 4130001, 1, 3), + (4, 1072363, 115, 3, 220000, 0, 0, 4130001, 1, 3), + (4, 1072357, 115, 3, 220000, 0, 0, 4130001, 1, 3), + (4, 1082083, 45, 1, 58000, 0, 0, 4130000, 1, 1), + (4, 1082084, 45, 1, 47000, 0, 0, 4130000, 1, 1), + (4, 1082085, 45, 1, 52000, 0, 0, 4130000, 1, 1), + (4, 1082089, 55, 1, 60000, 0, 0, 4130000, 1, 1), + (4, 1082090, 55, 1, 66000, 0, 0, 4130000, 1, 1), + (4, 1082091, 55, 1, 71000, 0, 0, 4130000, 1, 1), + (4, 1082106, 65, 1, 77000, 0, 0, 4130000, 1, 1), + (4, 1082107, 65, 1, 82000, 0, 0, 4130000, 1, 1), + (4, 1082108, 65, 1, 88000, 0, 0, 4130000, 1, 1), + (4, 1082109, 75, 2, 153000, 0, 0, 4130000, 1, 2), + (4, 1082110, 75, 2, 157000, 0, 0, 4130000, 1, 2), + (4, 1082111, 75, 2, 157000, 0, 0, 4130000, 1, 2), + (4, 1082112, 75, 2, 161000, 0, 0, 4130000, 1, 2), + (4, 1082125, 85, 2, 176000, 0, 0, 4130000, 1, 2), + (4, 1082126, 85, 2, 180000, 0, 0, 4130000, 1, 2), + (4, 1082127, 85, 2, 184000, 0, 0, 4130000, 1, 2), + (4, 1082158, 95, 2, 199000, 0, 0, 4130000, 1, 2), + (4, 1082159, 95, 2, 203000, 0, 0, 4130000, 1, 2), + (4, 1082160, 95, 2, 207000, 0, 0, 4130000, 1, 2), + (4, 1082163, 105, 3, 330000, 0, 0, 4130000, 1, 3), + (4, 1082241, 115, 3, 363000, 0, 0, 4130000, 1, 3), + (4, 1082236, 115, 3, 363000, 0, 0, 4130000, 1, 3), + (4, 1452008, 45, 1, 110000, 0, 0, 4130012, 1, 1), + (4, 1462007, 45, 1, 93000, 0, 0, 4130013, 1, 1), + (4, 1452004, 55, 1, 137000, 0, 0, 4130012, 1, 1), + (4, 1462008, 55, 1, 132000, 0, 0, 4130013, 1, 1), + (4, 1452009, 65, 1, 165000, 0, 0, 4130012, 1, 1), + (4, 1452010, 65, 1, 165000, 0, 0, 4130012, 1, 1), + (4, 1452011, 65, 1, 165000, 0, 0, 4130012, 1, 1), + (4, 1462009, 65, 1, 165000, 0, 0, 4130013, 1, 1), + (4, 1452012, 75, 2, 269000, 0, 0, 4130012, 1, 2), + (4, 1452013, 75, 2, 269000, 0, 0, 4130012, 1, 2), + (4, 1452014, 75, 2, 269000, 0, 0, 4130012, 1, 2), + (4, 1452015, 75, 2, 269000, 0, 0, 4130012, 1, 2), + (4, 1462010, 75, 2, 269000, 0, 0, 4130013, 1, 2), + (4, 1462011, 75, 2, 269000, 0, 0, 4130013, 1, 2), + (4, 1462012, 75, 2, 269000, 0, 0, 4130013, 1, 2), + (4, 1462013, 75, 2, 269000, 0, 0, 4130013, 1, 2), + (4, 1452017, 85, 2, 308000, 0, 0, 4130012, 1, 2), + (4, 1462018, 85, 2, 308000, 0, 0, 4130013, 1, 2), + (4, 1452019, 95, 2, 346000, 0, 0, 4130012, 1, 2), + (4, 1452020, 95, 2, 346000, 0, 0, 4130012, 1, 2), + (4, 1452021, 95, 2, 346000, 0, 0, 4130012, 1, 2), + (4, 1462015, 95, 2, 346000, 0, 0, 4130013, 1, 2), + (4, 1462016, 95, 2, 346000, 0, 0, 4130013, 1, 2), + (4, 1462017, 95, 2, 346000, 0, 0, 4130013, 1, 2), + (4, 1452044, 105, 3, 550000, 0, 0, 4130012, 1, 3), + (4, 1462039, 105, 3, 550000, 0, 0, 4130013, 1, 3), + (4, 1452059, 115, 3, 605000, 0, 0, 4130012, 1, 3), + (4, 1462051, 115, 3, 605000, 0, 0, 4130013, 1, 3), + (4, 1452057, 115, 3, 605000, 0, 0, 4130012, 1, 3), + (4, 1462050, 115, 3, 605000, 0, 0, 4130013, 1, 3), + (8, 1002207, 45, 1, 22000, 0, 0, 4130018, 1, 1), + (8, 1002208, 45, 1, 22000, 0, 0, 4130018, 1, 1), + (8, 1002209, 45, 1, 22000, 0, 0, 4130018, 1, 1), + (8, 1002210, 45, 1, 22000, 0, 0, 4130018, 1, 1), + (8, 1002247, 55, 1, 30000, 0, 0, 4130018, 1, 1), + (8, 1002248, 55, 1, 30000, 0, 0, 4130018, 1, 1), + (8, 1002249, 55, 1, 30000, 0, 0, 4130018, 1, 1), + (8, 1002281, 65, 1, 47000, 0, 0, 4130018, 1, 1), + (8, 1002282, 65, 1, 47000, 0, 0, 4130018, 1, 1), + (8, 1002283, 65, 1, 47000, 0, 0, 4130018, 1, 1), + (8, 1002284, 65, 1, 47000, 0, 0, 4130018, 1, 1), + (8, 1002285, 65, 1, 47000, 0, 0, 4130018, 1, 1), + (8, 1002327, 75, 2, 77000, 0, 0, 4130018, 1, 2), + (8, 1002328, 75, 2, 77000, 0, 0, 4130018, 1, 2), + (8, 1002329, 75, 2, 77000, 0, 0, 4130018, 1, 2), + (8, 1002330, 75, 2, 77000, 0, 0, 4130018, 1, 2), + (8, 1002323, 85, 2, 88000, 0, 0, 4130018, 1, 2), + (8, 1002324, 85, 2, 88000, 0, 0, 4130018, 1, 2), + (8, 1002325, 85, 2, 88000, 0, 0, 4130018, 1, 2), + (8, 1002326, 85, 2, 88000, 0, 0, 4130018, 1, 2), + (8, 1002380, 95, 2, 100000, 0, 0, 4130018, 1, 2), + (8, 1002381, 95, 2, 100000, 0, 0, 4130018, 1, 2), + (8, 1002382, 95, 2, 100000, 0, 0, 4130018, 1, 2), + (8, 1002383, 95, 2, 100000, 0, 0, 4130018, 1, 2), + (8, 1002550, 105, 3, 165000, 0, 0, 4130018, 1, 3), + (8, 1002793, 115, 3, 209000, 0, 0, 4130018, 1, 3), + (8, 1002779, 115, 3, 209000, 0, 0, 4130018, 1, 3), + (8, 1040094, 45, 1, 41000, 0, 0, 4130019, 1, 1), + (8, 1040095, 45, 1, 41000, 0, 0, 4130019, 1, 1), + (8, 1040096, 45, 1, 41000, 0, 0, 4130019, 1, 1), + (8, 1040097, 45, 1, 41000, 0, 0, 4130019, 1, 1), + (8, 1041077, 45, 1, 41000, 0, 0, 4130019, 1, 1), + (8, 1041078, 45, 1, 41000, 0, 0, 4130019, 1, 1), + (8, 1041079, 45, 1, 41000, 0, 0, 4130019, 1, 1), + (8, 1041080, 45, 1, 41000, 0, 0, 4130019, 1, 1), + (8, 1040098, 55, 1, 50000, 0, 0, 4130019, 1, 1), + (8, 1040099, 55, 1, 50000, 0, 0, 4130019, 1, 1), + (8, 1040100, 55, 1, 50000, 0, 0, 4130019, 1, 1), + (8, 1041094, 55, 1, 50000, 0, 0, 4130019, 1, 1), + (8, 1041095, 55, 1, 50000, 0, 0, 4130019, 1, 1), + (8, 1041096, 55, 1, 50000, 0, 0, 4130019, 1, 1), + (8, 1040105, 65, 1, 55000, 0, 0, 4130019, 1, 1), + (8, 1040106, 65, 1, 55000, 0, 0, 4130019, 1, 1), + (8, 1040107, 65, 1, 55000, 0, 0, 4130019, 1, 1), + (8, 1041100, 65, 1, 55000, 0, 0, 4130019, 1, 1), + (8, 1041101, 65, 1, 55000, 0, 0, 4130019, 1, 1), + (8, 1041102, 65, 1, 55000, 0, 0, 4130019, 1, 1), + (8, 1041103, 65, 1, 55000, 0, 0, 4130019, 1, 1), + (8, 1040108, 75, 2, 107000, 0, 0, 4130019, 1, 2), + (8, 1040109, 75, 2, 107000, 0, 0, 4130019, 1, 2), + (8, 1040110, 75, 2, 107000, 0, 0, 4130019, 1, 2), + (8, 1041105, 75, 2, 107000, 0, 0, 4130019, 1, 2), + (8, 1041106, 75, 2, 107000, 0, 0, 4130019, 1, 2), + (8, 1041107, 75, 2, 107000, 0, 0, 4130019, 1, 2), + (8, 1040115, 85, 2, 138000, 0, 0, 4130019, 1, 2), + (8, 1040116, 85, 2, 138000, 0, 0, 4130019, 1, 2), + (8, 1040117, 85, 2, 138000, 0, 0, 4130019, 1, 2), + (8, 1040118, 85, 2, 138000, 0, 0, 4130019, 1, 2), + (8, 1041115, 85, 2, 138000, 0, 0, 4130019, 1, 2), + (8, 1041116, 85, 2, 138000, 0, 0, 4130019, 1, 2), + (8, 1041117, 85, 2, 138000, 0, 0, 4130019, 1, 2), + (8, 1041118, 85, 2, 138000, 0, 0, 4130019, 1, 2), + (8, 1060083, 45, 1, 33000, 0, 0, 4130020, 1, 1), + (8, 1060084, 45, 1, 33000, 0, 0, 4130020, 1, 1), + (8, 1060085, 45, 1, 33000, 0, 0, 4130020, 1, 1), + (8, 1060086, 45, 1, 33000, 0, 0, 4130020, 1, 1), + (8, 1061076, 45, 1, 33000, 0, 0, 4130020, 1, 1), + (8, 1061077, 45, 1, 33000, 0, 0, 4130020, 1, 1), + (8, 1061078, 45, 1, 33000, 0, 0, 4130020, 1, 1), + (8, 1061079, 45, 1, 33000, 0, 0, 4130020, 1, 1), + (8, 1060087, 55, 1, 41000, 0, 0, 4130020, 1, 1), + (8, 1060088, 55, 1, 41000, 0, 0, 4130020, 1, 1), + (8, 1060089, 55, 1, 41000, 0, 0, 4130020, 1, 1), + (8, 1061093, 55, 1, 41000, 0, 0, 4130020, 1, 1), + (8, 1061094, 55, 1, 41000, 0, 0, 4130020, 1, 1), + (8, 1061095, 55, 1, 41000, 0, 0, 4130020, 1, 1), + (8, 1060093, 65, 1, 50000, 0, 0, 4130020, 1, 1), + (8, 1060094, 65, 1, 50000, 0, 0, 4130020, 1, 1), + (8, 1060095, 65, 1, 50000, 0, 0, 4130020, 1, 1), + (8, 1061099, 65, 1, 50000, 0, 0, 4130020, 1, 1), + (8, 1061100, 65, 1, 50000, 0, 0, 4130020, 1, 1), + (8, 1061101, 65, 1, 50000, 0, 0, 4130020, 1, 1), + (8, 1061102, 65, 1, 50000, 0, 0, 4130020, 1, 1), + (8, 1060097, 75, 2, 92000, 0, 0, 4130020, 1, 2), + (8, 1060098, 75, 2, 92000, 0, 0, 4130020, 1, 2), + (8, 1060099, 75, 2, 92000, 0, 0, 4130020, 1, 2), + (8, 1061104, 75, 2, 92000, 0, 0, 4130020, 1, 2), + (8, 1061105, 75, 2, 92000, 0, 0, 4130020, 1, 2), + (8, 1061106, 75, 2, 92000, 0, 0, 4130020, 1, 2), + (8, 1060104, 85, 2, 123000, 0, 0, 4130020, 1, 2), + (8, 1060105, 85, 2, 123000, 0, 0, 4130020, 1, 2), + (8, 1060106, 85, 2, 123000, 0, 0, 4130020, 1, 2), + (8, 1060107, 85, 2, 123000, 0, 0, 4130020, 1, 2), + (8, 1061114, 85, 2, 123000, 0, 0, 4130020, 1, 2), + (8, 1061115, 85, 2, 123000, 0, 0, 4130020, 1, 2), + (8, 1061116, 85, 2, 123000, 0, 0, 4130020, 1, 2), + (8, 1061117, 85, 2, 123000, 0, 0, 4130020, 1, 2), + (8, 1050096, 95, 2, 184000, 0, 0, 4130021, 1, 2), + (8, 1050097, 95, 2, 184000, 0, 0, 4130021, 1, 2), + (8, 1050098, 95, 2, 184000, 0, 0, 4130021, 1, 2), + (8, 1050099, 95, 2, 184000, 0, 0, 4130021, 1, 2), + (8, 1051090, 95, 2, 184000, 0, 0, 4130021, 1, 2), + (8, 1051091, 95, 2, 184000, 0, 0, 4130021, 1, 2), + (8, 1051092, 95, 2, 184000, 0, 0, 4130021, 1, 2), + (8, 1051093, 95, 2, 184000, 0, 0, 4130021, 1, 2), + (8, 1052072, 105, 3, 330000, 0, 0, 4130021, 1, 3), + (8, 1052163, 115, 3, 396000, 0, 0, 4130021, 1, 3), + (8, 1052158, 115, 3, 396000, 0, 0, 4130021, 1, 3), + (8, 1072128, 45, 1, 28000, 0, 0, 4130001, 1, 1), + (8, 1072129, 45, 1, 28000, 0, 0, 4130001, 1, 1), + (8, 1072130, 45, 1, 28000, 0, 0, 4130001, 1, 1), + (8, 1072131, 45, 1, 28000, 0, 0, 4130001, 1, 1), + (8, 1072150, 55, 1, 36000, 0, 0, 4130001, 1, 1), + (8, 1072151, 55, 1, 36000, 0, 0, 4130001, 1, 1), + (8, 1072152, 55, 1, 39000, 0, 0, 4130001, 1, 1), + (8, 1072161, 65, 1, 50000, 0, 0, 4130001, 1, 1), + (8, 1072162, 65, 1, 50000, 0, 0, 4130001, 1, 1), + (8, 1072163, 65, 1, 50000, 0, 0, 4130001, 1, 1), + (8, 1072172, 75, 2, 84000, 0, 0, 4130001, 1, 2), + (8, 1072173, 75, 2, 84000, 0, 0, 4130001, 1, 2), + (8, 1072174, 75, 2, 84000, 0, 0, 4130001, 1, 2), + (8, 1072192, 85, 2, 107000, 0, 0, 4130001, 1, 2), + (8, 1072193, 85, 2, 107000, 0, 0, 4130001, 1, 2), + (8, 1072194, 85, 2, 107000, 0, 0, 4130001, 1, 2), + (8, 1072195, 85, 2, 107000, 0, 0, 4130001, 1, 2), + (8, 1072213, 95, 2, 130000, 0, 0, 4130001, 1, 2), + (8, 1072214, 95, 2, 130000, 0, 0, 4130001, 1, 2), + (8, 1072215, 95, 2, 130000, 0, 0, 4130001, 1, 2), + (8, 1072216, 95, 2, 130000, 0, 0, 4130001, 1, 2), + (8, 1072272, 105, 3, 215000, 0, 0, 4130001, 1, 3), + (8, 1072364, 115, 3, 248000, 0, 0, 4130001, 1, 3), + (8, 1072358, 115, 3, 248000, 0, 0, 4130001, 1, 3), + (8, 1082065, 45, 1, 47000, 0, 0, 4130000, 1, 1), + (8, 1082066, 45, 1, 52000, 0, 0, 4130000, 1, 1), + (8, 1082067, 45, 1, 50000, 0, 0, 4130000, 1, 1), + (8, 1082092, 55, 1, 60000, 0, 0, 4130000, 1, 1), + (8, 1082093, 55, 1, 66000, 0, 0, 4130000, 1, 1), + (8, 1082094, 55, 1, 71000, 0, 0, 4130000, 1, 1), + (8, 1082095, 65, 1, 82000, 0, 0, 4130000, 1, 1), + (8, 1082096, 65, 1, 88000, 0, 0, 4130000, 1, 1), + (8, 1082097, 65, 1, 93000, 0, 0, 4130000, 1, 1), + (8, 1082118, 75, 2, 153000, 0, 0, 4130000, 1, 2), + (8, 1082119, 75, 2, 157000, 0, 0, 4130000, 1, 2), + (8, 1082120, 75, 2, 161000, 0, 0, 4130000, 1, 2), + (8, 1082142, 85, 2, 165000, 0, 0, 4130000, 1, 2), + (8, 1082143, 85, 2, 165000, 0, 0, 4130000, 1, 2), + (8, 1082144, 85, 2, 165000, 0, 0, 4130000, 1, 2), + (8, 1082135, 95, 2, 199000, 0, 0, 4130000, 1, 2), + (8, 1082136, 95, 2, 203000, 0, 0, 4130000, 1, 2), + (8, 1082137, 95, 2, 203000, 0, 0, 4130000, 1, 2), + (8, 1082138, 95, 2, 207000, 0, 0, 4130000, 1, 2), + (8, 1082167, 105, 3, 330000, 0, 0, 4130000, 1, 3), + (8, 1082242, 115, 3, 363000, 0, 0, 4130000, 1, 3), + (8, 1082237, 115, 3, 363000, 0, 0, 4130000, 1, 3), + (8, 1092059, 115, 3, 385000, 0, 0, 4130022, 1, 3), + (8, 1332003, 45, 1, 121000, 0, 0, 4130014, 1, 1), + (8, 1472018, 45, 1, 55000, 0, 0, 4130015, 1, 1), + (8, 1472019, 45, 1, 57000, 0, 0, 4130015, 1, 1), + (8, 1472020, 45, 1, 57000, 0, 0, 4130015, 1, 1), + (8, 1472021, 45, 1, 60000, 0, 0, 4130015, 1, 1), + (8, 1332016, 45, 1, 121000, 0, 0, 4130014, 1, 1), + (8, 1332015, 55, 1, 137000, 0, 0, 4130014, 1, 1), + (8, 1472022, 55, 1, 137000, 0, 0, 4130015, 1, 1), + (8, 1472023, 55, 1, 140000, 0, 0, 4130015, 1, 1), + (8, 1472024, 55, 1, 140000, 0, 0, 4130015, 1, 1), + (8, 1472025, 55, 1, 143000, 0, 0, 4130015, 1, 1), + (8, 1332017, 55, 1, 137000, 0, 0, 4130014, 1, 1), + (8, 1332018, 65, 1, 154000, 0, 0, 4130014, 1, 1), + (8, 1472026, 65, 1, 165000, 0, 0, 4130015, 1, 1), + (8, 1472027, 65, 1, 167000, 0, 0, 4130015, 1, 1), + (8, 1472028, 65, 1, 167000, 0, 0, 4130015, 1, 1), + (8, 1472029, 65, 1, 170000, 0, 0, 4130015, 1, 1), + (8, 1332019, 65, 1, 154000, 0, 0, 4130014, 1, 1), + (8, 1472031, 75, 2, 308000, 0, 0, 4130015, 1, 2), + (8, 1332022, 75, 2, 238000, 0, 0, 4130014, 1, 2), + (8, 1332023, 75, 2, 238000, 0, 0, 4130014, 1, 2), + (8, 1332027, 85, 2, 261000, 0, 0, 4130014, 1, 2), + (8, 1472033, 85, 2, 346000, 0, 0, 4130015, 1, 2), + (8, 1332026, 85, 2, 261000, 0, 0, 4130014, 1, 2), + (8, 1332052, 95, 2, 308000, 0, 0, 4130014, 1, 2), + (8, 1472053, 95, 2, 392000, 0, 0, 4130015, 1, 2), + (8, 1332051, 95, 2, 308000, 0, 0, 4130014, 1, 2), + (8, 1332050, 105, 3, 495000, 0, 0, 4130014, 1, 3), + (8, 1472051, 105, 3, 627000, 0, 0, 4130015, 1, 3), + (8, 1472052, 105, 3, 627000, 0, 0, 4130015, 1, 3), + (8, 1332049, 105, 3, 495000, 0, 0, 4130014, 1, 3), + (8, 1332075, 115, 3, 550000, 0, 0, 4130014, 1, 3), + (8, 1332076, 115, 3, 550000, 0, 0, 4130014, 1, 3), + (8, 1472071, 115, 3, 693000, 0, 0, 4130015, 1, 3), + (8, 1332073, 115, 3, 550000, 0, 0, 4130014, 1, 3), + (8, 1332074, 115, 3, 561000, 0, 0, 4130014, 1, 3), + (8, 1472068, 115, 3, 693000, 0, 0, 4130015, 1, 3), + (16, 1002631, 45, 1, 22000, 0, 0, 4130018, 1, 1), + (16, 1002634, 55, 1, 30000, 0, 0, 4130018, 1, 1), + (16, 1002637, 65, 1, 47000, 0, 0, 4130018, 1, 1), + (16, 1002640, 75, 2, 77000, 0, 0, 4130018, 1, 2), + (16, 1002643, 85, 2, 88000, 0, 0, 4130018, 1, 2), + (16, 1002646, 95, 2, 100000, 0, 0, 4130018, 1, 2), + (16, 1002649, 105, 3, 165000, 0, 0, 4130018, 1, 3), + (16, 1002794, 115, 3, 187000, 0, 0, 4130018, 1, 3), + (16, 1002780, 115, 3, 187000, 0, 0, 4130018, 1, 3), + (16, 1052116, 45, 1, 52000, 0, 0, 4130021, 1, 1), + (16, 1052119, 55, 1, 55000, 0, 0, 4130021, 1, 1), + (16, 1052122, 65, 1, 63000, 0, 0, 4130021, 1, 1), + (16, 1052125, 75, 2, 138000, 0, 0, 4130021, 1, 2), + (16, 1052128, 85, 2, 153000, 0, 0, 4130021, 1, 2), + (16, 1052131, 95, 2, 184000, 0, 0, 4130021, 1, 2), + (16, 1052134, 105, 3, 330000, 0, 0, 4130021, 1, 3), + (16, 1052164, 115, 3, 396000, 0, 0, 4130021, 1, 3), + (16, 1052159, 115, 3, 396000, 0, 0, 4130021, 1, 3), + (16, 1072303, 45, 1, 28000, 0, 0, 4130001, 1, 1), + (16, 1072306, 55, 1, 36000, 0, 0, 4130001, 1, 1), + (16, 1072309, 65, 1, 50000, 0, 0, 4130001, 1, 1), + (16, 1072312, 75, 2, 84000, 0, 0, 4130001, 1, 2), + (16, 1072315, 85, 2, 107000, 0, 0, 4130001, 1, 2), + (16, 1072318, 95, 2, 130000, 0, 0, 4130001, 1, 2), + (16, 1072321, 105, 3, 198000, 0, 0, 4130001, 1, 3), + (16, 1072365, 115, 3, 220000, 0, 0, 4130001, 1, 3), + (16, 1072359, 115, 3, 220000, 0, 0, 4130001, 1, 3), + (16, 1082198, 45, 1, 47000, 0, 0, 4130000, 1, 1), + (16, 1082201, 55, 1, 60000, 0, 0, 4130000, 1, 1), + (16, 1082204, 65, 1, 82000, 0, 0, 4130000, 1, 1), + (16, 1082207, 75, 2, 153000, 0, 0, 4130000, 1, 2), + (16, 1082210, 85, 2, 176000, 0, 0, 4130000, 1, 2), + (16, 1082213, 95, 2, 203000, 0, 0, 4130000, 1, 2), + (16, 1082216, 105, 3, 330000, 0, 0, 4130000, 1, 3), + (16, 1082243, 115, 3, 369000, 0, 0, 4130000, 1, 3), + (16, 1082238, 115, 3, 369000, 0, 0, 4130000, 1, 3), + (16, 1482007, 45, 1, 71000, 0, 0, 4130016, 1, 1), + (16, 1492007, 45, 1, 77000, 0, 0, 4130017, 1, 1), + (16, 1482008, 55, 1, 132000, 0, 0, 4130016, 1, 1), + (16, 1492008, 55, 1, 137000, 0, 0, 4130017, 1, 1), + (16, 1482009, 65, 1, 165000, 0, 0, 4130016, 1, 1), + (16, 1492009, 65, 1, 170000, 0, 0, 4130017, 1, 1), + (16, 1482010, 75, 2, 269000, 0, 0, 4130016, 1, 2), + (16, 1492010, 75, 2, 269000, 0, 0, 4130017, 1, 2), + (16, 1482011, 85, 2, 300000, 0, 0, 4130016, 1, 2), + (16, 1492011, 85, 2, 308000, 0, 0, 4130017, 1, 2), + (16, 1482012, 95, 2, 338000, 0, 0, 4130016, 1, 2), + (16, 1492012, 95, 2, 346000, 0, 0, 4130017, 1, 2), + (16, 1482013, 105, 3, 561000, 0, 0, 4130016, 1, 3), + (16, 1492013, 105, 3, 572000, 0, 0, 4130017, 1, 3), + (16, 1482024, 115, 3, 616000, 0, 0, 4130016, 1, 3), + (16, 1492025, 115, 3, 627000, 0, 0, 4130017, 1, 3), + (16, 1482023, 115, 3, 616000, 0, 0, 4130016, 1, 3), + (16, 1492023, 115, 3, 627000, 0, 0, 4130017, 1, 3); INSERT IGNORE INTO `makerrecipedata` (`itemid`, `req_item`, `count`) VALUES (4250000, 4021007, 1), @@ -15928,6 +15928,62 @@ INSERT IGNORE INTO `makerrewarddata` (`itemid`, `rewardid`, `quantity`, `prob`) (4251402, 4251402, 1, 1), (4251402, 4251401, 9, 4); +# generated with the MapleSkillMakerReagentIndexer feature + +CREATE TABLE IF NOT EXISTS `makerreagentdata` ( + `itemid` int(11) NOT NULL, + `stat` varchar(20) NOT NULL, + `value` smallint(6) NOT NULL, + PRIMARY KEY (`itemid`) +) ENGINE=MyISAM DEFAULT CHARSET=latin1; + +INSERT IGNORE INTO `makerreagentdata` (`itemid`, `stat`, `value`) VALUES + (4250000, "incPAD", 1), + (4250001, "incPAD", 2), + (4250002, "incPAD", 3), + (4250100, "incMAD", 1), + (4250101, "incMAD", 2), + (4250102, "incMAD", 3), + (4250200, "incACC", 2), + (4250201, "incACC", 3), + (4250202, "incACC", 5), + (4250300, "incEVA", 2), + (4250301, "incEVA", 3), + (4250302, "incEVA", 5), + (4250400, "incSpeed", 2), + (4250401, "incSpeed", 3), + (4250402, "incSpeed", 5), + (4250500, "incJump", 1), + (4250501, "incJump", 2), + (4250502, "incJump", 3), + (4250600, "incMaxHP", 10), + (4250601, "incMaxHP", 20), + (4250602, "incMaxHP", 30), + (4250700, "incMaxMP", 10), + (4250701, "incMaxMP", 20), + (4250702, "incMaxMP", 30), + (4250800, "incSTR", 2), + (4250801, "incSTR", 3), + (4250802, "incSTR", 5), + (4250900, "incINT", 2), + (4250901, "incINT", 3), + (4250902, "incINT", 5), + (4251000, "incLUK", 2), + (4251001, "incLUK", 3), + (4251002, "incLUK", 5), + (4251100, "incDEX", 2), + (4251101, "incDEX", 3), + (4251102, "incDEX", 5), + (4251200, "incReqLevel", -1), + (4251201, "incReqLevel", -2), + (4251202, "incReqLevel", -3), + (4251300, "randOption", 1), + (4251301, "randOption", 2), + (4251302, "randOption", 3), + (4251400, "randStat", 2), + (4251401, "randStat", 3), + (4251402, "randStat", 5); + CREATE TABLE IF NOT EXISTS `marriages` ( `marriageid` int(10) unsigned NOT NULL AUTO_INCREMENT, `husbandid` int(10) unsigned NOT NULL DEFAULT '0', diff --git a/sql/db_drops.sql b/sql/db_drops.sql index 516f64d68d..3b8b53bbc0 100644 --- a/sql/db_drops.sql +++ b/sql/db_drops.sql @@ -14125,8 +14125,8 @@ USE `maplesolaxia`; (7140000, 1002640, 1, 1, 0, 700), (9300322, 1002640, 1, 1, 0, 40000), (9301004, 1002640, 1, 1, 0, 700), -(8140002, 4000240, 1, 1, 0, 200000), -(9500163, 4000240, 1, 1, 0, 200000), +(8140002, 4000240, 1, 1, 0, 60000), +(9500163, 4000240, 1, 1, 0, 60000), (8140002, 2070005, 1, 1, 0, 400), (9500163, 2070005, 1, 1, 0, 400), (8140002, 2040707, 1, 1, 0, 750), @@ -18142,13 +18142,13 @@ USE `maplesolaxia`; (8820012, 2290106, 1, 1, 0, 1000), (8820013, 2290106, 1, 1, 0, 1000), (8820014, 2290106, 1, 1, 0, 1000), -(8820000, 4021010, 1, 1, 0, 7000), -(8820001, 4021010, 1, 1, 0, 7000), -(8820010, 4021010, 1, 1, 0, 7000), -(8820011, 4021010, 1, 1, 0, 7000), -(8820012, 4021010, 1, 1, 0, 7000), -(8820013, 4021010, 1, 1, 0, 7000), -(8820014, 4021010, 1, 1, 0, 7000), +(8820000, 4021010, 1, 1, 0, 40000), +(8820001, 4021010, 1, 1, 0, 40000), +(8820010, 4021010, 1, 1, 0, 40000), +(8820011, 4021010, 1, 1, 0, 40000), +(8820012, 4021010, 1, 1, 0, 40000), +(8820013, 4021010, 1, 1, 0, 40000), +(8820014, 4021010, 1, 1, 0, 40000), (8820000, 1122011, 1, 1, 0, 40000), (8820001, 1122011, 1, 1, 0, 40000), (8820010, 1122011, 1, 1, 0, 700), @@ -19569,7 +19569,7 @@ USE `maplesolaxia`; (9400583, 4030012, 1, 1, 0, 300), (9400583, 4010006, 1, 1, 0, 40000), (9400583, 4020007, 1, 1, 0, 40000), -(9400583, 4007004, 1, 1, 0, 40000), +(9400583, 4007004, 1, 1, 0, 10000), (9400583, 2000003, 1, 1, 0, 40000), (9400583, 2000005, 1, 1, 0, 20000), (9400583, 2050004, 1, 1, 0, 20000), @@ -19597,8 +19597,8 @@ USE `maplesolaxia`; (9400549, 0, 2000, 3000, 0, 400000), (9400638, 0, 100, 200, 0, 400000), (9400638, 4011007, 1, 1, 0, 1000), -(9400638, 4007001, 1, 1, 0, 40000), -(9400638, 4007000, 1, 1, 0, 40000), +(9400638, 4007001, 1, 1, 0, 10000), +(9400638, 4007000, 1, 1, 0, 10000), (9400638, 2000001, 1, 1, 0, 40000), (9400638, 2022244, 1, 1, 0, 40000), (9400638, 2010003, 1, 1, 0, 40000), @@ -19608,9 +19608,9 @@ USE `maplesolaxia`; (9400638, 1041008, 1, 1, 0, 2000), (9400639, 0, 200, 250, 0, 400000), (9400639, 4000018, 1, 1, 0, 400000), -(9400639, 4130018, 1, 1, 0, 40000), -(9400639, 4130009, 1, 1, 0, 40000), -(9400639, 4007003, 1, 1, 0, 40000), +(9400639, 4130018, 1, 1, 0, 5000), +(9400639, 4130009, 1, 1, 0, 5000), +(9400639, 4007003, 1, 1, 0, 10000), (9400639, 2000002, 1, 1, 0, 40000), (9400639, 2000006, 1, 1, 0, 40000), (9400639, 2000002, 1, 1, 0, 40000), diff --git a/src/client/command/Commands.java b/src/client/command/Commands.java index c6c33e124a..afc55f628b 100644 --- a/src/client/command/Commands.java +++ b/src/client/command/Commands.java @@ -1665,17 +1665,27 @@ public class Commands { break; case "givenx": - if (sub.length < 3){ - player.yellowMessage("Syntax: !givenx "); + if (sub.length < 2){ + player.yellowMessage("Syntax: !givenx [] "); break; } + + String recv; + int value; + if(sub.length > 2) { + recv = sub[1]; + value = Integer.parseInt(sub[2]); + } else { + recv = c.getPlayer().getName(); + value = Integer.parseInt(sub[1]); + } - victim = cserv.getPlayerStorage().getCharacterByName(sub[1]); + victim = cserv.getPlayerStorage().getCharacterByName(recv); if(victim != null) { - victim.getCashShop().gainCash(1, Integer.parseInt(sub[2])); + victim.getCashShop().gainCash(1, value); player.message("NX given."); } else { - player.message("Player '" + sub[1] + "' could not be found on this channel."); + player.message("Player '" + recv + "' could not be found on this channel."); } break; @@ -1695,17 +1705,27 @@ public class Commands { break; case "givems": - if (sub.length < 3){ - player.yellowMessage("Syntax: !givems "); + if (sub.length < 2){ + player.yellowMessage("Syntax: !givems [] "); break; } - victim = cserv.getPlayerStorage().getCharacterByName(sub[1]); + String recv_; + int value_; + if(sub.length > 2) { + recv_ = sub[1]; + value_ = Integer.parseInt(sub[2]); + } else { + recv_ = c.getPlayer().getName(); + value_ = Integer.parseInt(sub[1]); + } + + victim = cserv.getPlayerStorage().getCharacterByName(recv_); if(victim != null) { - victim.gainMeso(Integer.parseInt(sub[2]), true); + victim.gainMeso(value_, true); player.message("MESO given."); } else { - player.message("Player '" + sub[1] + "' could not be found on this channel."); + player.message("Player '" + recv_ + "' could not be found on this channel."); } break; diff --git a/src/constants/EquipType.java b/src/constants/EquipType.java new file mode 100644 index 0000000000..1c839e718d --- /dev/null +++ b/src/constants/EquipType.java @@ -0,0 +1,94 @@ +/* + * This file is part of the MapleSolaxiaV2 Maple Story Server + * + * Copyright (C) 2017 RonanLana + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package constants; + +import java.util.HashMap; +import java.util.Map; + +/** + * + * @author RonanLana + */ +public enum EquipType { + UNDEFINED(-1), + ACCESSORY(0), + CAP(100), + CAPE(110), + COAT(104), + FACE(2), + GLOVES(108), + HAIR(3), + LONGCOAT(105), + PANTS(106), + PET_EQUIP(180), + PET_EQUIP_FIELD(181), + PET_EQUIP_LABEL(182), + PET_EQUIP_QUOTE(183), + RING(111), + SHIELD(109), + SHOES(107), + TAMING(190), + TAMING_SADDLE(191), + SWORD(1302), + AXE(1312), + MACE(1322), + DAGGER(1332), + WAND(1372), + STAFF(1382), + SWORD_2H(1402), + AXE_2H(1412), + MACE_2H(1422), + SPEAR(1432), + POLEARM(1442), + BOW(1452), + CROSSBOW(1462), + CLAW(1472), + KNUCKLER(1482), + PISTOL(1492); + + private final int i; + private static final Map map = new HashMap(34); + + private EquipType(int val) { + this.i = val; + } + + public int getValue() { + return i; + } + + static { + for (EquipType eqEnum : EquipType.values()) { + map.put(eqEnum.i, eqEnum); + } + } + + public static EquipType getEquipTypeById(int itemid) { + EquipType ret; + int val = itemid / 100000; + + if(val == 13 || val == 14) { + ret = map.get(itemid / 1000); + } else { + ret = map.get(itemid / 10000); + } + + return (ret != null) ? ret : EquipType.UNDEFINED; + } +} \ No newline at end of file diff --git a/src/constants/ItemConstants.java b/src/constants/ItemConstants.java index 80347f53cf..3584662c6b 100644 --- a/src/constants/ItemConstants.java +++ b/src/constants/ItemConstants.java @@ -89,6 +89,10 @@ public final class ItemConstants { return itemId / 1000 == 5000; } + public static boolean isAccessory(int itemId) { + return itemId >= 1110000 && itemId < 1140000; + } + public static boolean isTownScroll(int itemId) { return itemId >= 2030000 && itemId < 2030021; } @@ -135,4 +139,16 @@ public final class ItemConstants { } return MapleInventoryType.getByType(type); } + + public static boolean isMakerReagent(int itemId) { + return itemId / 10000 == 425; + } + + public static boolean isOverall(int itemId) { + return itemId / 10000 == 105; + } + + public static boolean isWeapon(int itemId) { + return itemId >= 1302000 && itemId < 1492024; + } } diff --git a/src/constants/ServerConstants.java b/src/constants/ServerConstants.java index 2dc24b1934..788250fd3c 100644 --- a/src/constants/ServerConstants.java +++ b/src/constants/ServerConstants.java @@ -65,6 +65,7 @@ public class ServerConstants { public static final boolean USE_ERASE_UNTRADEABLE_DROP = true; //Forces flagged untradeable items to disappear when dropped. public static final boolean USE_ERASE_PET_ON_EXPIRATION = false;//Forces pets to be removed from inventory when expire time comes, rather than converting it to a doll. public static final boolean USE_BUFF_MOST_SIGNIFICANT = true; //When applying buffs, the player will stick with the highest stat boost among the listed, rather than overwriting stats. + public static final boolean USE_MAKER_FEE_HEURISTICS = true; //Apply compiled values for stimulants and reagents into the Maker fee calculations (max error revolves around 50k mesos). Set false to use basic constant values instead (results are never higher than requested by the client-side). //Server Rates And Experience public static final int EXP_RATE = 10; @@ -86,7 +87,7 @@ public class ServerConstants { public static final long BLOCK_NPC_RACE_CONDT = (long)(0.5 * 1000); //Time the player client must wait before reopening a conversation with an NPC. public static final long PET_LOOT_UPON_ATTACK = (long)(0.7 * 1000); //Time the pet must wait before trying to pick items up. - //Dangling Items Configuration + //Dangling Items/Locks Configuration public static final int ITEM_EXPIRE_TIME = 3 * 60 * 1000; //Time before items start disappearing. Recommended to be set up to 3 minutes. public static final int ITEM_MONITOR_TIME = 5 * 60 * 1000; //Interval between item monitoring tasks on maps, which checks for dangling (null) item objects on the map item history. public static final int LOCK_MONITOR_TIME = 30 * 1000; //Waiting time for a lock to be released. If it reach timed out, a critical server deadlock has made present. @@ -98,7 +99,7 @@ public class ServerConstants { public static final boolean USE_PERFECT_GM_SCROLL = true; //Scrolls from GMs never uses up slots nor fails. public static final boolean USE_PERFECT_SCROLLING = true; //Scrolls doesn't use slots upon failure. public static final boolean USE_ENHANCED_CHSCROLL = true; //Equips even more powerful with chaos upgrade. - public static final boolean USE_ENHANCED_CRAFTING = true; //Applys chaos scroll on every equip crafted. + public static final boolean USE_ENHANCED_CRAFTING = true; //Apply chaos scroll on every equip crafted. public static final int SCROLL_CHANCE_RATE = 0; //Number of rolls for success on a scroll, set 0 for default. public static final int CHSCROLL_STAT_RANGE = 6; //Stat upgrade range (-N, N) on chaos scrolls. @@ -118,10 +119,12 @@ public class ServerConstants { public static final boolean USE_EQUIPMNT_LVLUP_SLOTS = true;//Equips can upgrade slots at level up. public static final boolean USE_EQUIPMNT_LVLUP_POWER = true;//Enable more powerful stat upgrades at equip level up. public static final boolean USE_SPIKES_AVOID_BANISH = true; //Shoes equipped with spikes prevents mobs from banishing wearer. - public static final boolean USE_CHAIR_EXTRAHEAL = true; //Enable map chairs to further recover player's HP and MP (player must have the Chair Mastery skill). public static final int MAX_EQUIPMNT_LVLUP_STAT_UP = 10000; //Max stat upgrade an equipment can have on a levelup. public static final int MAX_EQUIPMNT_STAT = 32767; //Max stat on an equipment by leveling up. public static final int USE_EQUIPMNT_LVLUP = 7; //All equips lvlup at max level of N, set 1 to disable. + + //Map-Chair Configuration + public static final boolean USE_CHAIR_EXTRAHEAL = true; //Enable map chairs to further recover player's HP and MP (player must have the Chair Mastery skill). public static final byte CHAIR_EXTRA_HEAL_HP = 70; //Each chair extra heal proc increasing HP. public static final byte CHAIR_EXTRA_HEAL_MP = 42; //Each chair extra heal proc increasing MP. diff --git a/src/net/server/channel/handlers/MakerSkillHandler.java b/src/net/server/channel/handlers/MakerSkillHandler.java index cad5ca2c6e..8f5b448560 100644 --- a/src/net/server/channel/handlers/MakerSkillHandler.java +++ b/src/net/server/channel/handlers/MakerSkillHandler.java @@ -21,12 +21,27 @@ */ package net.server.channel.handlers; +import java.util.LinkedList; +import java.util.List; +import java.util.LinkedHashMap; +import java.util.Map; +import java.util.Map.Entry; + +import constants.ItemConstants; import client.MapleClient; +import client.inventory.Equip; +import client.inventory.Item; +import client.inventory.MapleInventoryType; +import constants.EquipType; +import constants.ServerConstants; +import java.text.DecimalFormat; +import java.text.NumberFormat; import net.AbstractMaplePacketHandler; import server.MapleInventoryManipulator; import server.MapleItemInformationProvider; import server.MakerItemFactory; import server.MakerItemFactory.MakerItemCreateEntry; +import tools.FilePrinter; import tools.Pair; import tools.MaplePacketCreator; import tools.data.input.SeekableLittleEndianAccessor; @@ -36,50 +51,317 @@ import tools.data.input.SeekableLittleEndianAccessor; * @author Jay Estrella, Ronan */ public final class MakerSkillHandler extends AbstractMaplePacketHandler { - private MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance(); - + private static MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance(); + @Override public final void handlePacket(SeekableLittleEndianAccessor slea, MapleClient c) { - slea.readInt(); + int type = slea.readInt(); int toCreate = slea.readInt(); + int toDisassemble = -1, pos = -1; + boolean makerSucceeded = true; + + MakerItemCreateEntry recipe; + Map reagentids = new LinkedHashMap<>(); + int stimulantid = -1; + + if(type == 3) { // building monster crystal + int fromLeftover = toCreate; + toCreate = ii.getMakerCrystalFromLeftover(toCreate); + if(toCreate == -1) { + c.announce(MaplePacketCreator.serverNotice(1, ii.getName(toCreate) + " is unavailable for Monster Crystal conversion.")); + return; + } + + recipe = MakerItemFactory.generateLeftoverCrystalEntry(fromLeftover); + } else if(type == 4) { // disassembling + slea.readInt(); // 1... probably inventory type + pos = slea.readInt(); + + Item it = c.getPlayer().getInventory(MapleInventoryType.EQUIP).getItem((short) pos); + if(it != null && it.getItemId() == toCreate) { + Pair p; + + if((p = generateDisassemblyInfo(toCreate)) != null) { + recipe = MakerItemFactory.generateDisassemblyCrystalEntry(p.getLeft(), p.getRight()); + toDisassemble = toCreate; + toCreate = ii.getMakerCrystalFromEquip(toCreate); + } else { + c.announce(MaplePacketCreator.serverNotice(1, ii.getName(toCreate) + " is unavailable for Monster Crystal disassembly.")); + return; + } + } else { + c.announce(MaplePacketCreator.serverNotice(1, "An unknown error occurred when trying to apply that item for disassembly.")); + return; + } + } else { + if(toCreate < 2000000) { // only equips uses stimulant and reagents + if(slea.readByte() != 0) { // stimulant + stimulantid = getMakerStimulant(toCreate); + if(!c.getAbstractPlayerInteraction().haveItem(stimulantid)) { + stimulantid = -1; + } + } + + int reagents = Math.min(slea.readInt(), getMakerReagentSlots(toCreate)); + for(int i = 0; i < reagents; i++) { // crystals + int reagentid = slea.readInt(); + if(ItemConstants.isMakerReagent(reagentid)) { + Short r = reagentids.get(reagentid); + if(r == null) { + reagentids.put(reagentid, (short) 1); + } else { + reagentids.put(reagentid, (short) (r + 1)); + } + } + } + + List> toUpdate = new LinkedList<>(); + for(Entry r : reagentids.entrySet()) { + int qty = c.getAbstractPlayerInteraction().getItemQuantity(r.getKey()); + + if(qty < r.getValue()) { + toUpdate.add(new Pair<>(r.getKey(), (short) qty)); + } + } + + // remove those not present on player inventory + if(!toUpdate.isEmpty()) { + for(Pair r : toUpdate) { + if(r.getRight() > 0) { + reagentids.put(r.getLeft(), r.getRight()); + } else { + reagentids.remove(r.getLeft()); + } + } + } + + if(!reagentids.isEmpty()) removeOddMakerReagents(toCreate, reagentids); + } + + recipe = MakerItemFactory.getItemCreateEntry(toCreate, stimulantid, reagentids); + } - MakerItemCreateEntry recipe = MakerItemFactory.getItemCreateEntry(toCreate); short createStatus = getCreateStatus(c, recipe); switch(createStatus) { - case 4: // no req skill level - c.announce(MaplePacketCreator.serverNotice(1, "You don't have enough Maker level to complete this operation.")); + case -1:// non-available for Maker itemid has been tried to forge + FilePrinter.printError(FilePrinter.EXPLOITS, "Player " + c.getPlayer().getName() + " tried to craft itemid " + toCreate + " using the Maker skill."); + c.announce(MaplePacketCreator.serverNotice(1, "The requested item could not be crafted on this operation.")); break; - - case 3: // no meso - c.announce(MaplePacketCreator.serverNotice(1, "You don't have enough mesos to complete this operation.")); - break; - - case 2: // no req level - c.announce(MaplePacketCreator.serverNotice(1, "You don't have enough level to complete this operation.")); - break; - + case 1: // no items c.announce(MaplePacketCreator.serverNotice(1, "You don't have all required items in your inventory to make " + recipe.getRewardAmount() + " " + ii.getName(toCreate) + ".")); break; + case 2: // no meso + NumberFormat nf = new DecimalFormat("#,###,###,###"); + c.announce(MaplePacketCreator.serverNotice(1, "You don't have enough mesos (" + nf.format(recipe.getCost()) + ") to complete this operation.")); + break; + + case 3: // no req level + c.announce(MaplePacketCreator.serverNotice(1, "You don't have enough level to complete this operation.")); + break; + + case 4: // no req skill level + c.announce(MaplePacketCreator.serverNotice(1, "You don't have enough Maker level to complete this operation.")); + break; + default: - if (!c.getPlayer().getInventory(ii.getInventoryType(toCreate)).isFull()) { + if (MapleInventoryManipulator.checkSpace(c, toCreate, (short) recipe.getRewardAmount(), "")) { for (Pair p : recipe.getReqItems()) { - int toRemove = p.getLeft(); - MapleInventoryManipulator.removeById(c, ii.getInventoryType(toRemove), toRemove, p.getRight(), false, false); + c.getAbstractPlayerInteraction().gainItem(p.getLeft(), (short) -p.getRight()); + } + + if(toDisassemble != -1) { + MapleInventoryManipulator.removeFromSlot(c, MapleInventoryType.EQUIP, (short) pos, (short) 1, false); + c.announce(MaplePacketCreator.getShowItemGain(toDisassemble, (short) -1, true)); + } + + int cost = recipe.getCost(); + if(stimulantid == -1 && reagentids.isEmpty()) { + if(cost > 0) c.getPlayer().gainMeso(-cost); + + c.getPlayer().setCS(true); + c.getAbstractPlayerInteraction().gainItem(toCreate, (short) recipe.getRewardAmount()); + c.getPlayer().setCS(false); + } else { + if(stimulantid != -1) c.getAbstractPlayerInteraction().gainItem(stimulantid, (short) -1); + if(!reagentids.isEmpty()) { + for(Entry r : reagentids.entrySet()) { + c.getAbstractPlayerInteraction().gainItem(r.getKey(), (short) (-1 * r.getValue())); + } + } + + if(cost > 0) c.getPlayer().gainMeso(-cost); + makerSucceeded = addBoostedMakerItem(c, toCreate, stimulantid, reagentids); + } + + if(makerSucceeded) c.announce(MaplePacketCreator.serverNotice(1, "You have successfully created " + recipe.getRewardAmount() + " " + ii.getName(toCreate) + ".")); + else c.getPlayer().dropMessage(5, "The Maker skill lights up, but the skill winds up as if nothing happened."); + + c.announce(MaplePacketCreator.showMakerEffect(makerSucceeded)); + c.getPlayer().getMap().broadcastMessage(c.getPlayer(), MaplePacketCreator.showForeignMakerEffect(c.getPlayer().getId(), makerSucceeded), false); + + if(toCreate == 4260003 && c.getPlayer().getQuestStatus(6033) == 1) { + c.getAbstractPlayerInteraction().setQuestProgress(6033, 1); } - MapleInventoryManipulator.addById(c, toCreate, (short) recipe.getRewardAmount()); - - c.announce(MaplePacketCreator.serverNotice(1, "You have created " + recipe.getRewardAmount() + " " + ii.getName(toCreate) + ".")); - c.announce(MaplePacketCreator.showMakerEffect()); } else { c.announce(MaplePacketCreator.serverNotice(1, "Your inventory is full.")); } } } - private short getCreateStatus(MapleClient c, MakerItemCreateEntry recipe) { + // checks and prevents hackers from PE'ing Maker operations with invalid operations + private static void removeOddMakerReagents(int toCreate, Map reagentids) { + Map reagentType = new LinkedHashMap<>(); + List toRemove = new LinkedList<>(); + + boolean isWeapon = ItemConstants.isWeapon(toCreate); + + for(Entry r : reagentids.entrySet()) { + int curRid = r.getKey(); + int type = r.getKey() / 100; + + if(type < 42502 && !isWeapon) { // only weapons should gain w.att/m.att from these. + toRemove.add(curRid); + } else { + Integer tableRid = reagentType.get(type); + + if(tableRid != null) { + if(tableRid < curRid) { + toRemove.add(tableRid); + reagentType.put(type, curRid); + } else { + toRemove.add(curRid); + } + } else { + reagentType.put(type, curRid); + } + } + } + + // removing less effective gems of repeated type + for(Integer i : toRemove) { + reagentids.remove(i); + } + + // only quantity 1 of each gem will be accepted by the Maker skill + for(Integer i : reagentids.keySet()) { + reagentids.put(i, (short) 1); + } + } + + private static int getMakerReagentSlots(int itemId) { + try { + int eqpLevel = ii.getEquipStats(itemId).get("reqLevel"); + + if(eqpLevel < 78) { + return 1; + } else if(eqpLevel >= 78 && eqpLevel < 108) { + return 2; + } else { + return 3; + } + } catch(NullPointerException npe) { + return 0; + } + } + + private static int getMakerStimulant(int itemId) { + EquipType et = EquipType.getEquipTypeById(itemId); + + switch(et) { + case GLOVES: + return 4130000; + + case SHOES: + return 4130001; + + case SWORD: + return 4130002; + + case AXE: + return 4130003; + + case MACE: + return 4130004; + + case SWORD_2H: + return 4130005; + + case AXE_2H: + return 4130006; + + case MACE_2H: + return 4130007; + + case SPEAR: + return 4130008; + + case POLEARM: + return 4130009; + + case WAND: + return 4130010; + + case STAFF: + return 4130011; + + case BOW: + return 4130012; + + case CROSSBOW: + return 4130013; + + case DAGGER: + return 4130014; + + case CLAW: + return 4130015; + + case KNUCKLER: + return 4130016; + + case PISTOL: + return 4130017; + + case CAP: + return 4130018; + + case COAT: + return 4130019; + + case PANTS: + return 4130020; + + case LONGCOAT: + return 4130021; + + case SHIELD: + return 4130022; + + default: + return -1; + } + } + + private static Pair generateDisassemblyInfo(int itemId) { + int recvFee = ii.getMakerDisassembledFee(itemId); + if(recvFee > -1) { + int recvQty = ii.getMakerDisassembledQuantity(itemId); + if(recvQty > 0) { + return new Pair<>(recvFee, recvQty); + } + } + + return null; + } + + private static short getCreateStatus(MapleClient c, MakerItemCreateEntry recipe) { + if(recipe == null) { + return -1; + } + if(!hasItems(c, recipe)) { return 1; } @@ -99,7 +381,7 @@ public final class MakerSkillHandler extends AbstractMaplePacketHandler { return 0; } - private boolean hasItems(MapleClient c, MakerItemCreateEntry recipe) { + private static boolean hasItems(MapleClient c, MakerItemCreateEntry recipe) { for (Pair p : recipe.getReqItems()) { int itemId = p.getLeft(); if (c.getPlayer().getInventory(ii.getInventoryType(itemId)).countById(itemId) < p.getRight()) { @@ -108,4 +390,84 @@ public final class MakerSkillHandler extends AbstractMaplePacketHandler { } return true; } + + private static boolean addBoostedMakerItem(MapleClient c, int itemid, int stimulantid, Map reagentids) { + if(stimulantid != -1 && !ii.rollSuccessChance(90.0)) { + return false; + } + + Item item = ii.getEquipById(itemid); + if(item == null) return false; + + Equip eqp = (Equip)item; + if(ItemConstants.isAccessory(item.getItemId()) && eqp.getUpgradeSlots() <= 0) eqp.setUpgradeSlots(3); + + if(ServerConstants.USE_ENHANCED_CRAFTING == true) { + if(!(c.getPlayer().isGM() && ServerConstants.USE_PERFECT_GM_SCROLL)) { + eqp.setUpgradeSlots((byte)(eqp.getUpgradeSlots() + 1)); + } + item = MapleItemInformationProvider.getInstance().scrollEquipWithId(eqp, 2049100, true, 0, c.getPlayer().isGM()); + } + + if(!reagentids.isEmpty()) { + Map stats = new LinkedHashMap<>(); + List randOption = new LinkedList<>(); + List randStat = new LinkedList<>(); + + for(Entry r : reagentids.entrySet()) { + Pair reagentBuff = ii.getMakerReagentStatUpgrade(r.getKey()); + + if(reagentBuff != null) { + String s = reagentBuff.getLeft(); + + if(s.substring(0, 4).contains("rand")) { + if(s.substring(4).equals("Stat")) { + randStat.add((short) (reagentBuff.getRight() * r.getValue())); + } else { + randOption.add((short) (reagentBuff.getRight() * r.getValue())); + } + } else { + String stat = s.substring(3); + + if(!stat.equals("ReqLevel")) { // improve req level... really? + switch (stat) { + case "MaxHP": + stat = "MHP"; + break; + + case "MaxMP": + stat = "MMP"; + break; + } + + Integer d = stats.get(stat); + if(d == null) { + stats.put(stat, reagentBuff.getRight() * r.getValue()); + } else { + stats.put(stat, d + (reagentBuff.getRight() * r.getValue())); + } + } + } + } + } + + ii.improveEquipStats(eqp, stats); + + for(Short s : randStat) { + ii.scrollOptionEquipWithChaos(eqp, s, false); + } + + for(Short s : randOption) { + ii.scrollOptionEquipWithChaos(eqp, s, true); + } + } + + if(stimulantid != -1) { + eqp = ii.randomizeUpgradeStats(eqp); + } + + MapleInventoryManipulator.addFromDrop(c, item, false, -1); + c.announce(MaplePacketCreator.getShowItemGain(itemid, (short) 1, true)); + return true; + } } diff --git a/src/scripting/AbstractPlayerInteraction.java b/src/scripting/AbstractPlayerInteraction.java index 381e5c8c53..91cd1d41ba 100644 --- a/src/scripting/AbstractPlayerInteraction.java +++ b/src/scripting/AbstractPlayerInteraction.java @@ -342,14 +342,9 @@ public class AbstractPlayerInteraction { public Item evolvePet(byte slot, int afterId) { MaplePet evolved = null; - MaplePet target = null; - Item tmp; + MaplePet target; - long period = 90; //refreshes expiration date: 90 days - period *= 24; - period *= 60; - period *= 60; - period *= 1000; + long period = 90 * 24 * 60 * 60 * 1000; //refreshes expiration date: 90 days target = getPlayer().getPet(slot); if(target == null) { @@ -357,7 +352,7 @@ public class AbstractPlayerInteraction { return(null); } - tmp = gainItem(afterId, (short)1, false, true, period, target); + Item tmp = gainItem(afterId, (short) 1, false, true, period, target); getPlayer().unequipPet(target, true, false); /* @@ -410,18 +405,13 @@ public class AbstractPlayerInteraction { return gainItem(id, quantity, randomStats, showMessage, expires, null); } - private boolean isAccessory(int id) { - int val = id / 10000; - return(val >= 111 && val <= 113); - } - - public Item gainItem(int id, short quantity, boolean randomStats, boolean showMessage, long expires, MaplePet from) { + public Item gainItem(int id, short quantity, boolean randomStats, boolean showMessage, long expires, MaplePet from) { Item item = null; - MaplePet evolved = null; + MaplePet evolved; int petId = -1; if (quantity >= 0) { - if (id >= 5000000 && id <= 5000100) { + if (ItemConstants.isPet(id)) { petId = MaplePet.createPet(id); if(from != null) { @@ -451,12 +441,13 @@ public class AbstractPlayerInteraction { if(item != null) { Equip it = (Equip)item; - if(isAccessory(item.getItemId()) && it.getUpgradeSlots() <= 0) it.setUpgradeSlots(3); + if(ItemConstants.isAccessory(item.getItemId()) && it.getUpgradeSlots() <= 0) it.setUpgradeSlots(3); if(ServerConstants.USE_ENHANCED_CRAFTING == true && c.getPlayer().getCS() == true) { Equip eqp = (Equip)item; - eqp.setUpgradeSlots((byte)(eqp.getUpgradeSlots() + 1)); - + if(!(c.getPlayer().isGM() && ServerConstants.USE_PERFECT_GM_SCROLL)) { + eqp.setUpgradeSlots((byte)(eqp.getUpgradeSlots() + 1)); + } item = MapleItemInformationProvider.getInstance().scrollEquipWithId(item, 2049100, true, 0, c.getPlayer().isGM()); } } diff --git a/src/server/CashShop.java b/src/server/CashShop.java index f21a14cae5..6160ea93e8 100644 --- a/src/server/CashShop.java +++ b/src/server/CashShop.java @@ -104,8 +104,18 @@ public class CashShop { } if (ItemConstants.EXPIRING_ITEMS) { - if(itemId == 5211048 || itemId == 5360042) { // 4 Hour 2X coupons, the period is 1, but we don't want them to last a day. - item.setExpiration(System.currentTimeMillis() + (1000 * 60 * 60 * 4)); + if(period == 1) { + if(itemId == 5211048 || itemId == 5360042) { // 4 Hour 2X coupons, the period is 1, but we don't want them to last a day. + item.setExpiration(System.currentTimeMillis() + (1000 * 60 * 60 * 4)); + /* + } else if(itemId == 5211047 || itemId == 5360014) { // 3 Hour 2X coupons, unused as of now + item.setExpiration(System.currentTimeMillis() + (1000 * 60 * 60 * 3)); + */ + } else if(itemId == 5211060) { // 2 Hour 3X coupons. + item.setExpiration(System.currentTimeMillis() + (1000 * 60 * 60 * 2)); + } else { + item.setExpiration(System.currentTimeMillis() + (1000 * 60 * 60 * 24)); + } } else { item.setExpiration(System.currentTimeMillis() + (1000 * 60 * 60 * 24 * period)); } diff --git a/src/server/MakerItemFactory.java b/src/server/MakerItemFactory.java index f920e88cb3..c30a8d84e2 100644 --- a/src/server/MakerItemFactory.java +++ b/src/server/MakerItemFactory.java @@ -21,75 +21,147 @@ */ package server; -import java.sql.Connection; -import java.sql.PreparedStatement; -import java.sql.ResultSet; -import java.sql.SQLException; +import constants.EquipType; +import constants.ServerConstants; import java.util.ArrayList; -import java.util.HashMap; import java.util.List; import java.util.Map; -import tools.DatabaseConnection; +import java.util.Map.Entry; import tools.Pair; /** * - * @author Jay Estrella + * @author Jay Estrella, Ronan */ public class MakerItemFactory { - private static Map createCache = new HashMap(); - - public static MakerItemCreateEntry getItemCreateEntry(int toCreate) { - if (createCache.get(toCreate) != null) { - return createCache.get(toCreate); - } else { - try { - Connection con = DatabaseConnection.getConnection(); - PreparedStatement ps = con.prepareStatement("SELECT req_level, req_maker_level, req_meso, quantity FROM makercreatedata WHERE itemid = ?"); - ps.setInt(1, toCreate); - ResultSet rs = ps.executeQuery(); - int reqLevel = 0; - int reqMakerLevel = 0; - int cost = 0; - int toGive = 0; - if (rs.next()) { - reqLevel = rs.getInt("req_level"); - reqMakerLevel = rs.getInt("req_maker_level"); - cost = rs.getInt("req_meso"); - toGive = rs.getInt("quantity"); - } - ps.close(); - rs.close(); - MakerItemCreateEntry ret = new MakerItemCreateEntry(cost, reqLevel, reqMakerLevel, toGive); - ps = con.prepareStatement("SELECT req_item, count FROM makerrecipedata WHERE itemid = ?"); - ps.setInt(1, toCreate); - rs = ps.executeQuery(); - while (rs.next()) { - ret.addReqItem(rs.getInt("req_item"), rs.getInt("count")); - } - rs.close(); - ps.close(); - con.close(); - createCache.put(toCreate, ret); - } catch (SQLException sqle) { - sqle.printStackTrace(); + private static MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance(); + + public static MakerItemCreateEntry getItemCreateEntry(int toCreate, int stimulantid, Map reagentids) { + MakerItemCreateEntry makerEntry = ii.getMakerItemEntry(toCreate); + if(makerEntry == null) { + return null; + } + + // THEY DECIDED FOR SOME BIZARRE PATTERN ON THE FEE THING, ALMOST RANDOMIZED. + if(stimulantid != -1) { + makerEntry.addCost(getMakerStimulantFee(toCreate)); + } + + if(!reagentids.isEmpty()) { + for(Entry r : reagentids.entrySet()) { + makerEntry.addCost((getMakerReagentFee(toCreate, ((r.getKey() % 10) + 1))) * r.getValue()); } } - return createCache.get(toCreate); + + makerEntry.trimCost(); // "commit" the real cost of the recipe. + return makerEntry; + } + + public static MakerItemCreateEntry generateLeftoverCrystalEntry(int fromLeftoverid) { + MakerItemCreateEntry ret = new MakerItemCreateEntry(0, 0, 1, 1); + ret.addReqItem(fromLeftoverid, 100); + return ret; } + public static MakerItemCreateEntry generateDisassemblyCrystalEntry(int cost, int crystalGain) { // equipment at specific position already taken + MakerItemCreateEntry ret = new MakerItemCreateEntry(cost, 0, 1, crystalGain); + return ret; + } + + private static double getMakerStimulantFee(int itemid) { + if(ServerConstants.USE_MAKER_FEE_HEURISTICS) { + EquipType et = EquipType.getEquipTypeById(itemid); + int eqpLevel = ii.getEquipStats(itemid).get("reqLevel"); + + switch(et) { + case CAP: + return 1145.736246 * Math.exp(0.03336832546 * eqpLevel); + + case LONGCOAT: + return 2117.469118 * Math.exp(0.03355349137 * eqpLevel); + + case SHOES: + return 1218.624674 * Math.exp(0.0342266043 * eqpLevel); + + case GLOVES: + return 2129.531152 * Math.exp(0.03421778102 * eqpLevel); + + case COAT: + return 1770.630579 * Math.exp(0.03359768677 * eqpLevel); + + case PANTS: + return 1442.98837 * Math.exp(0.03444783295 * eqpLevel); + + case SHIELD: + return 6312.40136 * Math.exp(0.0237929527 * eqpLevel); + + default: // weapons + return 4313.581428 * Math.exp(0.03147837094 * eqpLevel); + } + } else { + return 14000; + } + } + + private static double getMakerReagentFee(int itemid, int reagentLevel) { + if(ServerConstants.USE_MAKER_FEE_HEURISTICS) { + EquipType et = EquipType.getEquipTypeById(itemid); + int eqpLevel = ii.getEquipStats(itemid).get("reqLevel"); + + switch(et) { + case CAP: + return 5592.01613 * Math.exp(0.02914576018 * eqpLevel) * reagentLevel; + + case LONGCOAT: + return 3405.23441 * Math.exp(0.03413001038 * eqpLevel) * reagentLevel; + + case SHOES: + return 2115.697484 * Math.exp(0.0354881705 * eqpLevel) * reagentLevel; + + case GLOVES: + return 4684.040894 * Math.exp(0.03166500585 * eqpLevel) * reagentLevel; + + case COAT: + return 2955.89017 * Math.exp(0.0339948456 * eqpLevel) * reagentLevel; + + case PANTS: + return 1774.722181 * Math.exp(0.03854321409 * eqpLevel) * reagentLevel; + + case SHIELD: + return 12014.11296 * Math.exp(0.02185471162 * eqpLevel) * reagentLevel; + + default: // weapons + return 4538.650247 * Math.exp(0.0371980303 * eqpLevel) * reagentLevel; + } + } else { + return 8000 * reagentLevel; + } + } + public static class MakerItemCreateEntry { private int reqLevel, reqMakerLevel; - private int cost; - private List> reqItems = new ArrayList>(); // itemId / amount + private double cost; + private int reqCost; + private List> reqItems = new ArrayList<>(); // itemId / amount private int toGive; - private MakerItemCreateEntry(int cost, int reqLevel, int reqMakerLevel, int toGive) { + public MakerItemCreateEntry(int cost, int reqLevel, int reqMakerLevel, int toGive) { this.cost = cost; this.reqLevel = reqLevel; this.reqMakerLevel = reqMakerLevel; this.toGive = toGive; } + + public MakerItemCreateEntry(MakerItemCreateEntry mi) { + this.cost = mi.cost; + this.reqLevel = mi.reqLevel; + this.reqMakerLevel = mi.reqMakerLevel; + this.toGive = mi.toGive; + + for(Pair p : mi.reqItems) { + reqItems.add(p); + } + } public int getRewardAmount() { return toGive; @@ -108,11 +180,20 @@ public class MakerItemFactory { } public int getCost() { - return cost; + return reqCost; + } + + public void addCost(double amount) { + cost += amount; } protected void addReqItem(int itemId, int amount) { reqItems.add(new Pair<>(itemId, amount)); } + + public void trimCost() { + reqCost = (int) (cost / 1000); + reqCost *= 1000; + } } } diff --git a/src/server/MapleInventoryManipulator.java b/src/server/MapleInventoryManipulator.java index a8e4c9b2e1..5b128fc0be 100644 --- a/src/server/MapleInventoryManipulator.java +++ b/src/server/MapleInventoryManipulator.java @@ -410,7 +410,7 @@ public class MapleInventoryManipulator { } if (dst == -6) { // unequip the overall Item top = c.getPlayer().getInventory(MapleInventoryType.EQUIPPED).getItem((short) -5); - if (top != null && isOverall(top.getItemId())) { + if (top != null && ItemConstants.isOverall(top.getItemId())) { if (c.getPlayer().getInventory(MapleInventoryType.EQUIP).isFull()) { c.announce(MaplePacketCreator.getInventoryFull()); c.announce(MaplePacketCreator.getShowInventoryFull()); @@ -420,7 +420,7 @@ public class MapleInventoryManipulator { } } else if (dst == -5) { final Item bottom = c.getPlayer().getInventory(MapleInventoryType.EQUIPPED).getItem((short) -6); - if (bottom != null && isOverall(source.getItemId())) { + if (bottom != null && ItemConstants.isOverall(source.getItemId())) { if (c.getPlayer().getInventory(MapleInventoryType.EQUIP).isFull()) { c.announce(MaplePacketCreator.getInventoryFull()); c.announce(MaplePacketCreator.getShowInventoryFull()); @@ -477,7 +477,7 @@ public class MapleInventoryManipulator { target.setPosition(src); c.getPlayer().getInventory(MapleInventoryType.EQUIP).addFromDB(target); } - if (c.getPlayer().getBuffedValue(MapleBuffStat.BOOSTER) != null && isWeapon(source.getItemId())) { + if (c.getPlayer().getBuffedValue(MapleBuffStat.BOOSTER) != null && ItemConstants.isWeapon(source.getItemId())) { c.getPlayer().cancelBuffStats(MapleBuffStat.BOOSTER); } @@ -590,12 +590,4 @@ public class MapleInventoryManipulator { private static boolean isDroppedItemRestricted(Item it) { return ServerConstants.USE_ERASE_UNTRADEABLE_DROP && ((it.getFlag() & ItemConstants.UNTRADEABLE) == ItemConstants.UNTRADEABLE); } - - private static boolean isOverall(int itemId) { - return itemId / 10000 == 105; - } - - private static boolean isWeapon(int itemId) { - return itemId >= 1302000 && itemId < 1492024; - } } diff --git a/src/server/MapleItemInformationProvider.java b/src/server/MapleItemInformationProvider.java index c7e78eecd4..6c8c6935a3 100644 --- a/src/server/MapleItemInformationProvider.java +++ b/src/server/MapleItemInformationProvider.java @@ -66,7 +66,9 @@ import constants.skills.Assassin; import constants.skills.Gunslinger; import constants.skills.NightWalker; import java.sql.Connection; +import server.MakerItemFactory.MakerItemCreateEntry; import server.life.MapleMonsterInformationProvider; +import server.life.MapleLifeFactory; /** * @@ -111,6 +113,10 @@ public class MapleItemInformationProvider { protected Map isQuestItemCache = new HashMap<>(); protected Map equipmentSlotCache = new HashMap<>(); protected Map noCancelMouseCache = new HashMap<>(); + protected Map mobCrystalMakerCache = new HashMap<>(); + protected Map> statUpgradeMakerCache = new HashMap<>(); + protected Map makerItemCache = new HashMap<>(); + private MapleItemInformationProvider() { loadCardIdData(); @@ -575,11 +581,77 @@ public class MapleItemInformationProvider { return (short)Math.min(Short.MAX_VALUE, value); } - private static short chscrollRandomizedStat() { - return (short) Randomizer.rand(-ServerConstants.CHSCROLL_STAT_RANGE, ServerConstants.CHSCROLL_STAT_RANGE); + private static short chscrollRandomizedStat(int range) { + return (short) Randomizer.rand(-range, range); } - private void scrollEquipWithChaos(Equip nEquip) { + public void scrollOptionEquipWithChaos(Equip nEquip, int range, boolean option) { + // option: watk, matk, wdef, mdef, spd, jump, hp, mp + // stat: dex, luk, str, int, avoid, acc + + if(!option) { + if (nEquip.getStr() > 0) { + if(ServerConstants.USE_ENHANCED_CHSCROLL) nEquip.setStr(getMaximumShortMaxIfOverflow(nEquip.getStr(), (nEquip.getStr() + chscrollRandomizedStat(range)))); + else nEquip.setStr(getMaximumShortMaxIfOverflow(0, (nEquip.getStr() + chscrollRandomizedStat(range)))); + } + if (nEquip.getDex() > 0) { + if(ServerConstants.USE_ENHANCED_CHSCROLL) nEquip.setDex(getMaximumShortMaxIfOverflow(nEquip.getDex(), (nEquip.getDex() + chscrollRandomizedStat(range)))); + else nEquip.setDex(getMaximumShortMaxIfOverflow(0, (nEquip.getDex() + chscrollRandomizedStat(range)))); + } + if (nEquip.getInt() > 0) { + if(ServerConstants.USE_ENHANCED_CHSCROLL) nEquip.setInt(getMaximumShortMaxIfOverflow(nEquip.getInt(), (nEquip.getInt() + chscrollRandomizedStat(range)))); + else nEquip.setInt(getMaximumShortMaxIfOverflow(0, (nEquip.getInt() + chscrollRandomizedStat(range)))); + } + if (nEquip.getLuk() > 0) { + if(ServerConstants.USE_ENHANCED_CHSCROLL) nEquip.setLuk(getMaximumShortMaxIfOverflow(nEquip.getLuk(), (nEquip.getLuk() + chscrollRandomizedStat(range)))); + else nEquip.setLuk(getMaximumShortMaxIfOverflow(0, (nEquip.getLuk() + chscrollRandomizedStat(range)))); + } + if (nEquip.getAcc() > 0) { + if(ServerConstants.USE_ENHANCED_CHSCROLL) nEquip.setAcc(getMaximumShortMaxIfOverflow(nEquip.getAcc(), (nEquip.getAcc() + chscrollRandomizedStat(range)))); + else nEquip.setAcc(getMaximumShortMaxIfOverflow(0, (nEquip.getAcc() + chscrollRandomizedStat(range)))); + } + if (nEquip.getAvoid() > 0) { + if(ServerConstants.USE_ENHANCED_CHSCROLL) nEquip.setAvoid(getMaximumShortMaxIfOverflow(nEquip.getAvoid(), (nEquip.getAvoid() + chscrollRandomizedStat(range)))); + else nEquip.setAvoid(getMaximumShortMaxIfOverflow(0, (nEquip.getAvoid() + chscrollRandomizedStat(range)))); + } + } else { + if (nEquip.getWatk() > 0) { + if(ServerConstants.USE_ENHANCED_CHSCROLL) nEquip.setWatk(getMaximumShortMaxIfOverflow(nEquip.getWatk(), (nEquip.getWatk() + chscrollRandomizedStat(range)))); + else nEquip.setWatk(getMaximumShortMaxIfOverflow(0, (nEquip.getWatk() + chscrollRandomizedStat(range)))); + } + if (nEquip.getWdef() > 0) { + if(ServerConstants.USE_ENHANCED_CHSCROLL) nEquip.setWdef(getMaximumShortMaxIfOverflow(nEquip.getWdef(), (nEquip.getWdef() + chscrollRandomizedStat(range)))); + else nEquip.setWdef(getMaximumShortMaxIfOverflow(0, (nEquip.getWdef() + chscrollRandomizedStat(range)))); + } + if (nEquip.getMatk() > 0) { + if(ServerConstants.USE_ENHANCED_CHSCROLL) nEquip.setMatk(getMaximumShortMaxIfOverflow(nEquip.getMatk(), (nEquip.getMatk() + chscrollRandomizedStat(range)))); + else nEquip.setMatk(getMaximumShortMaxIfOverflow(0, (nEquip.getMatk() + chscrollRandomizedStat(range)))); + } + if (nEquip.getMdef() > 0) { + if(ServerConstants.USE_ENHANCED_CHSCROLL) nEquip.setMdef(getMaximumShortMaxIfOverflow(nEquip.getMdef(), (nEquip.getMdef() + chscrollRandomizedStat(range)))); + else nEquip.setMdef(getMaximumShortMaxIfOverflow(0, (nEquip.getMdef() + chscrollRandomizedStat(range)))); + } + + if (nEquip.getSpeed() > 0) { + if(ServerConstants.USE_ENHANCED_CHSCROLL) nEquip.setSpeed(getMaximumShortMaxIfOverflow(nEquip.getSpeed(), (nEquip.getSpeed() + chscrollRandomizedStat(range)))); + else nEquip.setSpeed(getMaximumShortMaxIfOverflow(0, (nEquip.getSpeed() + chscrollRandomizedStat(range)))); + } + if (nEquip.getJump() > 0) { + if(ServerConstants.USE_ENHANCED_CHSCROLL) nEquip.setJump(getMaximumShortMaxIfOverflow(nEquip.getJump(), (nEquip.getJump() + chscrollRandomizedStat(range)))); + else nEquip.setJump(getMaximumShortMaxIfOverflow(0, (nEquip.getJump() + chscrollRandomizedStat(range)))); + } + if (nEquip.getHp() > 0) { + if(ServerConstants.USE_ENHANCED_CHSCROLL) nEquip.setHp(getMaximumShortMaxIfOverflow(nEquip.getHp(), (nEquip.getHp() + chscrollRandomizedStat(range)))); + else nEquip.setHp(getMaximumShortMaxIfOverflow(0, (nEquip.getHp() + chscrollRandomizedStat(range)))); + } + if (nEquip.getMp() > 0) { + if(ServerConstants.USE_ENHANCED_CHSCROLL) nEquip.setMp(getMaximumShortMaxIfOverflow(nEquip.getMp(), (nEquip.getMp() + chscrollRandomizedStat(range)))); + else nEquip.setMp(getMaximumShortMaxIfOverflow(0, (nEquip.getMp() + chscrollRandomizedStat(range)))); + } + } + } + + private void scrollEquipWithChaos(Equip nEquip, int range) { if(ServerConstants.SCROLL_CHANCE_RATE > 0) { int temp; short curStr, curDex, curInt, curLuk, curWatk, curWdef, curMatk, curMdef, curAcc, curAvoid, curSpeed, curJump, curHp, curMp; @@ -618,99 +690,99 @@ public class MapleItemInformationProvider { for(int i = 0; i < ServerConstants.SCROLL_CHANCE_RATE; i++) { if (nEquip.getStr() > 0) { - if(ServerConstants.USE_ENHANCED_CHSCROLL) temp = curStr + chscrollRandomizedStat(); - else temp = nEquip.getStr() + chscrollRandomizedStat(); + if(ServerConstants.USE_ENHANCED_CHSCROLL) temp = curStr + chscrollRandomizedStat(range); + else temp = nEquip.getStr() + chscrollRandomizedStat(range); curStr = getMaximumShortMaxIfOverflow(temp, curStr); } if (nEquip.getDex() > 0) { - if(ServerConstants.USE_ENHANCED_CHSCROLL) temp = curDex + chscrollRandomizedStat(); - else temp = nEquip.getDex() + chscrollRandomizedStat(); + if(ServerConstants.USE_ENHANCED_CHSCROLL) temp = curDex + chscrollRandomizedStat(range); + else temp = nEquip.getDex() + chscrollRandomizedStat(range); curDex = getMaximumShortMaxIfOverflow(temp, curDex); } if (nEquip.getInt() > 0) { - if(ServerConstants.USE_ENHANCED_CHSCROLL) temp = curInt + chscrollRandomizedStat(); - else temp = nEquip.getInt() + chscrollRandomizedStat(); + if(ServerConstants.USE_ENHANCED_CHSCROLL) temp = curInt + chscrollRandomizedStat(range); + else temp = nEquip.getInt() + chscrollRandomizedStat(range); curInt = getMaximumShortMaxIfOverflow(temp, curInt); } if (nEquip.getLuk() > 0) { - if(ServerConstants.USE_ENHANCED_CHSCROLL) temp = curLuk + chscrollRandomizedStat(); - else temp = nEquip.getLuk() + chscrollRandomizedStat(); + if(ServerConstants.USE_ENHANCED_CHSCROLL) temp = curLuk + chscrollRandomizedStat(range); + else temp = nEquip.getLuk() + chscrollRandomizedStat(range); curLuk = getMaximumShortMaxIfOverflow(temp, curLuk); } if (nEquip.getWatk() > 0) { - if(ServerConstants.USE_ENHANCED_CHSCROLL) temp = curWatk + chscrollRandomizedStat(); - else temp = nEquip.getWatk() + chscrollRandomizedStat(); + if(ServerConstants.USE_ENHANCED_CHSCROLL) temp = curWatk + chscrollRandomizedStat(range); + else temp = nEquip.getWatk() + chscrollRandomizedStat(range); curWatk = getMaximumShortMaxIfOverflow(temp, curWatk); } if (nEquip.getWdef() > 0) { - if(ServerConstants.USE_ENHANCED_CHSCROLL) temp = curWdef + chscrollRandomizedStat(); - else temp = nEquip.getWdef() + chscrollRandomizedStat(); + if(ServerConstants.USE_ENHANCED_CHSCROLL) temp = curWdef + chscrollRandomizedStat(range); + else temp = nEquip.getWdef() + chscrollRandomizedStat(range); curWdef = getMaximumShortMaxIfOverflow(temp, curWdef); } if (nEquip.getMatk() > 0) { - if(ServerConstants.USE_ENHANCED_CHSCROLL) temp = curMatk + chscrollRandomizedStat(); - else temp = nEquip.getMatk() + chscrollRandomizedStat(); + if(ServerConstants.USE_ENHANCED_CHSCROLL) temp = curMatk + chscrollRandomizedStat(range); + else temp = nEquip.getMatk() + chscrollRandomizedStat(range); curMatk = getMaximumShortMaxIfOverflow(temp, curMatk); } if (nEquip.getMdef() > 0) { - if(ServerConstants.USE_ENHANCED_CHSCROLL) temp = curMdef + chscrollRandomizedStat(); - else temp = nEquip.getMdef() + chscrollRandomizedStat(); + if(ServerConstants.USE_ENHANCED_CHSCROLL) temp = curMdef + chscrollRandomizedStat(range); + else temp = nEquip.getMdef() + chscrollRandomizedStat(range); curMdef = getMaximumShortMaxIfOverflow(temp, curMdef); } if (nEquip.getAcc() > 0) { - if(ServerConstants.USE_ENHANCED_CHSCROLL) temp = curAcc + chscrollRandomizedStat(); - else temp = nEquip.getAcc() + chscrollRandomizedStat(); + if(ServerConstants.USE_ENHANCED_CHSCROLL) temp = curAcc + chscrollRandomizedStat(range); + else temp = nEquip.getAcc() + chscrollRandomizedStat(range); curAcc = getMaximumShortMaxIfOverflow(temp, curAcc); } if (nEquip.getAvoid() > 0) { - if(ServerConstants.USE_ENHANCED_CHSCROLL) temp = curAvoid + chscrollRandomizedStat(); - else temp = nEquip.getAvoid() + chscrollRandomizedStat(); + if(ServerConstants.USE_ENHANCED_CHSCROLL) temp = curAvoid + chscrollRandomizedStat(range); + else temp = nEquip.getAvoid() + chscrollRandomizedStat(range); curAvoid = getMaximumShortMaxIfOverflow(temp, curAvoid); } if (nEquip.getSpeed() > 0) { - if(ServerConstants.USE_ENHANCED_CHSCROLL) temp = curSpeed + chscrollRandomizedStat(); - else temp = nEquip.getSpeed() + chscrollRandomizedStat(); + if(ServerConstants.USE_ENHANCED_CHSCROLL) temp = curSpeed + chscrollRandomizedStat(range); + else temp = nEquip.getSpeed() + chscrollRandomizedStat(range); curSpeed = getMaximumShortMaxIfOverflow(temp, curSpeed); } if (nEquip.getJump() > 0) { - if(ServerConstants.USE_ENHANCED_CHSCROLL) temp = curJump + chscrollRandomizedStat(); - else temp = nEquip.getJump() + chscrollRandomizedStat(); + if(ServerConstants.USE_ENHANCED_CHSCROLL) temp = curJump + chscrollRandomizedStat(range); + else temp = nEquip.getJump() + chscrollRandomizedStat(range); curJump = getMaximumShortMaxIfOverflow(temp, curJump); } if (nEquip.getHp() > 0) { - if(ServerConstants.USE_ENHANCED_CHSCROLL) temp = curHp + chscrollRandomizedStat(); - else temp = nEquip.getHp() + chscrollRandomizedStat(); + if(ServerConstants.USE_ENHANCED_CHSCROLL) temp = curHp + chscrollRandomizedStat(range); + else temp = nEquip.getHp() + chscrollRandomizedStat(range); curHp = getMaximumShortMaxIfOverflow(temp, curHp); } if (nEquip.getMp() > 0) { - if(ServerConstants.USE_ENHANCED_CHSCROLL) temp = curMp + chscrollRandomizedStat(); - else temp = nEquip.getMp() + chscrollRandomizedStat(); + if(ServerConstants.USE_ENHANCED_CHSCROLL) temp = curMp + chscrollRandomizedStat(range); + else temp = nEquip.getMp() + chscrollRandomizedStat(range); curMp = getMaximumShortMaxIfOverflow(temp, curMp); } @@ -734,60 +806,60 @@ public class MapleItemInformationProvider { else { if (nEquip.getStr() > 0) { - if(ServerConstants.USE_ENHANCED_CHSCROLL) nEquip.setStr(getMaximumShortMaxIfOverflow(nEquip.getStr(), (nEquip.getStr() + chscrollRandomizedStat()))); - else nEquip.setStr(getMaximumShortMaxIfOverflow(0, (nEquip.getStr() + chscrollRandomizedStat()))); + if(ServerConstants.USE_ENHANCED_CHSCROLL) nEquip.setStr(getMaximumShortMaxIfOverflow(nEquip.getStr(), (nEquip.getStr() + chscrollRandomizedStat(range)))); + else nEquip.setStr(getMaximumShortMaxIfOverflow(0, (nEquip.getStr() + chscrollRandomizedStat(range)))); } if (nEquip.getDex() > 0) { - if(ServerConstants.USE_ENHANCED_CHSCROLL) nEquip.setDex(getMaximumShortMaxIfOverflow(nEquip.getDex(), (nEquip.getDex() + chscrollRandomizedStat()))); - else nEquip.setDex(getMaximumShortMaxIfOverflow(0, (nEquip.getDex() + chscrollRandomizedStat()))); + if(ServerConstants.USE_ENHANCED_CHSCROLL) nEquip.setDex(getMaximumShortMaxIfOverflow(nEquip.getDex(), (nEquip.getDex() + chscrollRandomizedStat(range)))); + else nEquip.setDex(getMaximumShortMaxIfOverflow(0, (nEquip.getDex() + chscrollRandomizedStat(range)))); } if (nEquip.getInt() > 0) { - if(ServerConstants.USE_ENHANCED_CHSCROLL) nEquip.setInt(getMaximumShortMaxIfOverflow(nEquip.getInt(), (nEquip.getInt() + chscrollRandomizedStat()))); - else nEquip.setInt(getMaximumShortMaxIfOverflow(0, (nEquip.getInt() + chscrollRandomizedStat()))); + if(ServerConstants.USE_ENHANCED_CHSCROLL) nEquip.setInt(getMaximumShortMaxIfOverflow(nEquip.getInt(), (nEquip.getInt() + chscrollRandomizedStat(range)))); + else nEquip.setInt(getMaximumShortMaxIfOverflow(0, (nEquip.getInt() + chscrollRandomizedStat(range)))); } if (nEquip.getLuk() > 0) { - if(ServerConstants.USE_ENHANCED_CHSCROLL) nEquip.setLuk(getMaximumShortMaxIfOverflow(nEquip.getLuk(), (nEquip.getLuk() + chscrollRandomizedStat()))); - else nEquip.setLuk(getMaximumShortMaxIfOverflow(0, (nEquip.getLuk() + chscrollRandomizedStat()))); + if(ServerConstants.USE_ENHANCED_CHSCROLL) nEquip.setLuk(getMaximumShortMaxIfOverflow(nEquip.getLuk(), (nEquip.getLuk() + chscrollRandomizedStat(range)))); + else nEquip.setLuk(getMaximumShortMaxIfOverflow(0, (nEquip.getLuk() + chscrollRandomizedStat(range)))); } if (nEquip.getWatk() > 0) { - if(ServerConstants.USE_ENHANCED_CHSCROLL) nEquip.setWatk(getMaximumShortMaxIfOverflow(nEquip.getWatk(), (nEquip.getWatk() + chscrollRandomizedStat()))); - else nEquip.setWatk(getMaximumShortMaxIfOverflow(0, (nEquip.getWatk() + chscrollRandomizedStat()))); + if(ServerConstants.USE_ENHANCED_CHSCROLL) nEquip.setWatk(getMaximumShortMaxIfOverflow(nEquip.getWatk(), (nEquip.getWatk() + chscrollRandomizedStat(range)))); + else nEquip.setWatk(getMaximumShortMaxIfOverflow(0, (nEquip.getWatk() + chscrollRandomizedStat(range)))); } if (nEquip.getWdef() > 0) { - if(ServerConstants.USE_ENHANCED_CHSCROLL) nEquip.setWdef(getMaximumShortMaxIfOverflow(nEquip.getWdef(), (nEquip.getWdef() + chscrollRandomizedStat()))); - else nEquip.setWdef(getMaximumShortMaxIfOverflow(0, (nEquip.getWdef() + chscrollRandomizedStat()))); + if(ServerConstants.USE_ENHANCED_CHSCROLL) nEquip.setWdef(getMaximumShortMaxIfOverflow(nEquip.getWdef(), (nEquip.getWdef() + chscrollRandomizedStat(range)))); + else nEquip.setWdef(getMaximumShortMaxIfOverflow(0, (nEquip.getWdef() + chscrollRandomizedStat(range)))); } if (nEquip.getMatk() > 0) { - if(ServerConstants.USE_ENHANCED_CHSCROLL) nEquip.setMatk(getMaximumShortMaxIfOverflow(nEquip.getMatk(), (nEquip.getMatk() + chscrollRandomizedStat()))); - else nEquip.setMatk(getMaximumShortMaxIfOverflow(0, (nEquip.getMatk() + chscrollRandomizedStat()))); + if(ServerConstants.USE_ENHANCED_CHSCROLL) nEquip.setMatk(getMaximumShortMaxIfOverflow(nEquip.getMatk(), (nEquip.getMatk() + chscrollRandomizedStat(range)))); + else nEquip.setMatk(getMaximumShortMaxIfOverflow(0, (nEquip.getMatk() + chscrollRandomizedStat(range)))); } if (nEquip.getMdef() > 0) { - if(ServerConstants.USE_ENHANCED_CHSCROLL) nEquip.setMdef(getMaximumShortMaxIfOverflow(nEquip.getMdef(), (nEquip.getMdef() + chscrollRandomizedStat()))); - else nEquip.setMdef(getMaximumShortMaxIfOverflow(0, (nEquip.getMdef() + chscrollRandomizedStat()))); + if(ServerConstants.USE_ENHANCED_CHSCROLL) nEquip.setMdef(getMaximumShortMaxIfOverflow(nEquip.getMdef(), (nEquip.getMdef() + chscrollRandomizedStat(range)))); + else nEquip.setMdef(getMaximumShortMaxIfOverflow(0, (nEquip.getMdef() + chscrollRandomizedStat(range)))); } if (nEquip.getAcc() > 0) { - if(ServerConstants.USE_ENHANCED_CHSCROLL) nEquip.setAcc(getMaximumShortMaxIfOverflow(nEquip.getAcc(), (nEquip.getAcc() + chscrollRandomizedStat()))); - else nEquip.setAcc(getMaximumShortMaxIfOverflow(0, (nEquip.getAcc() + chscrollRandomizedStat()))); + if(ServerConstants.USE_ENHANCED_CHSCROLL) nEquip.setAcc(getMaximumShortMaxIfOverflow(nEquip.getAcc(), (nEquip.getAcc() + chscrollRandomizedStat(range)))); + else nEquip.setAcc(getMaximumShortMaxIfOverflow(0, (nEquip.getAcc() + chscrollRandomizedStat(range)))); } if (nEquip.getAvoid() > 0) { - if(ServerConstants.USE_ENHANCED_CHSCROLL) nEquip.setAvoid(getMaximumShortMaxIfOverflow(nEquip.getAvoid(), (nEquip.getAvoid() + chscrollRandomizedStat()))); - else nEquip.setAvoid(getMaximumShortMaxIfOverflow(0, (nEquip.getAvoid() + chscrollRandomizedStat()))); + if(ServerConstants.USE_ENHANCED_CHSCROLL) nEquip.setAvoid(getMaximumShortMaxIfOverflow(nEquip.getAvoid(), (nEquip.getAvoid() + chscrollRandomizedStat(range)))); + else nEquip.setAvoid(getMaximumShortMaxIfOverflow(0, (nEquip.getAvoid() + chscrollRandomizedStat(range)))); } if (nEquip.getSpeed() > 0) { - if(ServerConstants.USE_ENHANCED_CHSCROLL) nEquip.setSpeed(getMaximumShortMaxIfOverflow(nEquip.getSpeed(), (nEquip.getSpeed() + chscrollRandomizedStat()))); - else nEquip.setSpeed(getMaximumShortMaxIfOverflow(0, (nEquip.getSpeed() + chscrollRandomizedStat()))); + if(ServerConstants.USE_ENHANCED_CHSCROLL) nEquip.setSpeed(getMaximumShortMaxIfOverflow(nEquip.getSpeed(), (nEquip.getSpeed() + chscrollRandomizedStat(range)))); + else nEquip.setSpeed(getMaximumShortMaxIfOverflow(0, (nEquip.getSpeed() + chscrollRandomizedStat(range)))); } if (nEquip.getJump() > 0) { - if(ServerConstants.USE_ENHANCED_CHSCROLL) nEquip.setJump(getMaximumShortMaxIfOverflow(nEquip.getJump(), (nEquip.getJump() + chscrollRandomizedStat()))); - else nEquip.setJump(getMaximumShortMaxIfOverflow(0, (nEquip.getJump() + chscrollRandomizedStat()))); + if(ServerConstants.USE_ENHANCED_CHSCROLL) nEquip.setJump(getMaximumShortMaxIfOverflow(nEquip.getJump(), (nEquip.getJump() + chscrollRandomizedStat(range)))); + else nEquip.setJump(getMaximumShortMaxIfOverflow(0, (nEquip.getJump() + chscrollRandomizedStat(range)))); } if (nEquip.getHp() > 0) { - if(ServerConstants.USE_ENHANCED_CHSCROLL) nEquip.setHp(getMaximumShortMaxIfOverflow(nEquip.getHp(), (nEquip.getHp() + chscrollRandomizedStat()))); - else nEquip.setHp(getMaximumShortMaxIfOverflow(0, (nEquip.getHp() + chscrollRandomizedStat()))); + if(ServerConstants.USE_ENHANCED_CHSCROLL) nEquip.setHp(getMaximumShortMaxIfOverflow(nEquip.getHp(), (nEquip.getHp() + chscrollRandomizedStat(range)))); + else nEquip.setHp(getMaximumShortMaxIfOverflow(0, (nEquip.getHp() + chscrollRandomizedStat(range)))); } if (nEquip.getMp() > 0) { - if(ServerConstants.USE_ENHANCED_CHSCROLL) nEquip.setMp(getMaximumShortMaxIfOverflow(nEquip.getMp(), (nEquip.getMp() + chscrollRandomizedStat()))); - else nEquip.setMp(getMaximumShortMaxIfOverflow(0, (nEquip.getMp() + chscrollRandomizedStat()))); + if(ServerConstants.USE_ENHANCED_CHSCROLL) nEquip.setMp(getMaximumShortMaxIfOverflow(nEquip.getMp(), (nEquip.getMp() + chscrollRandomizedStat(range)))); + else nEquip.setMp(getMaximumShortMaxIfOverflow(0, (nEquip.getMp() + chscrollRandomizedStat(range)))); } } } @@ -831,58 +903,11 @@ public class MapleItemInformationProvider { case 2049100: case 2049101: case 2049102: - scrollEquipWithChaos(nEquip); + scrollEquipWithChaos(nEquip, ServerConstants.CHSCROLL_STAT_RANGE); break; default: - for (Entry stat : stats.entrySet()) { - switch (stat.getKey()) { - case "STR": - nEquip.setStr(getShortMaxIfOverflow(nEquip.getStr() + stat.getValue().intValue())); - break; - case "DEX": - nEquip.setDex(getShortMaxIfOverflow(nEquip.getDex() + stat.getValue().intValue())); - break; - case "INT": - nEquip.setInt(getShortMaxIfOverflow(nEquip.getInt() + stat.getValue().intValue())); - break; - case "LUK": - nEquip.setLuk(getShortMaxIfOverflow(nEquip.getLuk() + stat.getValue().intValue())); - break; - case "PAD": - nEquip.setWatk(getShortMaxIfOverflow(nEquip.getWatk() + stat.getValue().intValue())); - break; - case "PDD": - nEquip.setWdef(getShortMaxIfOverflow(nEquip.getWdef() + stat.getValue().intValue())); - break; - case "MAD": - nEquip.setMatk(getShortMaxIfOverflow(nEquip.getMatk() + stat.getValue().intValue())); - break; - case "MDD": - nEquip.setMdef(getShortMaxIfOverflow(nEquip.getMdef() + stat.getValue().intValue())); - break; - case "ACC": - nEquip.setAcc(getShortMaxIfOverflow(nEquip.getAcc() + stat.getValue().intValue())); - break; - case "EVA": - nEquip.setAvoid(getShortMaxIfOverflow(nEquip.getAvoid() + stat.getValue().intValue())); - break; - case "Speed": - nEquip.setSpeed(getShortMaxIfOverflow(nEquip.getSpeed() + stat.getValue().intValue())); - break; - case "Jump": - nEquip.setJump(getShortMaxIfOverflow(nEquip.getJump() + stat.getValue().intValue())); - break; - case "MHP": - nEquip.setHp(getShortMaxIfOverflow(nEquip.getHp() + stat.getValue().intValue())); - break; - case "MMP": - nEquip.setMp(getShortMaxIfOverflow(nEquip.getMp() + stat.getValue().intValue())); - break; - case "afterImage": - break; - } - } + improveEquipStats(nEquip, stats); break; } if (!ItemConstants.isCleanSlate(scrollId)) { @@ -903,6 +928,57 @@ public class MapleItemInformationProvider { } return equip; } + + public static void improveEquipStats(Equip nEquip, Map stats) { + for (Entry stat : stats.entrySet()) { + switch (stat.getKey()) { + case "STR": + nEquip.setStr(getShortMaxIfOverflow(nEquip.getStr() + stat.getValue().intValue())); + break; + case "DEX": + nEquip.setDex(getShortMaxIfOverflow(nEquip.getDex() + stat.getValue().intValue())); + break; + case "INT": + nEquip.setInt(getShortMaxIfOverflow(nEquip.getInt() + stat.getValue().intValue())); + break; + case "LUK": + nEquip.setLuk(getShortMaxIfOverflow(nEquip.getLuk() + stat.getValue().intValue())); + break; + case "PAD": + nEquip.setWatk(getShortMaxIfOverflow(nEquip.getWatk() + stat.getValue().intValue())); + break; + case "PDD": + nEquip.setWdef(getShortMaxIfOverflow(nEquip.getWdef() + stat.getValue().intValue())); + break; + case "MAD": + nEquip.setMatk(getShortMaxIfOverflow(nEquip.getMatk() + stat.getValue().intValue())); + break; + case "MDD": + nEquip.setMdef(getShortMaxIfOverflow(nEquip.getMdef() + stat.getValue().intValue())); + break; + case "ACC": + nEquip.setAcc(getShortMaxIfOverflow(nEquip.getAcc() + stat.getValue().intValue())); + break; + case "EVA": + nEquip.setAvoid(getShortMaxIfOverflow(nEquip.getAvoid() + stat.getValue().intValue())); + break; + case "Speed": + nEquip.setSpeed(getShortMaxIfOverflow(nEquip.getSpeed() + stat.getValue().intValue())); + break; + case "Jump": + nEquip.setJump(getShortMaxIfOverflow(nEquip.getJump() + stat.getValue().intValue())); + break; + case "MHP": + nEquip.setHp(getShortMaxIfOverflow(nEquip.getHp() + stat.getValue().intValue())); + break; + case "MMP": + nEquip.setMp(getShortMaxIfOverflow(nEquip.getMp() + stat.getValue().intValue())); + break; + case "afterImage": + break; + } + } + } public Item getEquipById(int equipId) { return getEquipById(equipId, -1); @@ -986,6 +1062,31 @@ public class MapleItemInformationProvider { return equip; } + private static short getRandUpgradedStat(short defaultValue, int maxRange) { + if (defaultValue == 0) { + return 0; + } + int lMaxRange = maxRange; + return (short) (defaultValue + Math.floor(Randomizer.nextDouble() * (lMaxRange + 1))); + } + + public Equip randomizeUpgradeStats(Equip equip) { + equip.setStr(getRandUpgradedStat(equip.getStr(), 2)); + equip.setDex(getRandUpgradedStat(equip.getDex(), 2)); + equip.setInt(getRandUpgradedStat(equip.getInt(), 2)); + equip.setLuk(getRandUpgradedStat(equip.getLuk(), 2)); + equip.setMatk(getRandUpgradedStat(equip.getMatk(), 2)); + equip.setWatk(getRandUpgradedStat(equip.getWatk(), 2)); + equip.setAcc(getRandUpgradedStat(equip.getAcc(), 2)); + equip.setAvoid(getRandUpgradedStat(equip.getAvoid(), 2)); + equip.setJump(getRandUpgradedStat(equip.getJump(), 2)); + equip.setWdef(getRandUpgradedStat(equip.getWdef(), 5)); + equip.setMdef(getRandUpgradedStat(equip.getMdef(), 5)); + equip.setHp(getRandUpgradedStat(equip.getHp(), 5)); + equip.setMp(getRandUpgradedStat(equip.getMp(), 5)); + return equip; + } + public MapleStatEffect getItemEffect(int itemId) { MapleStatEffect ret = itemEffects.get(Integer.valueOf(itemId)); if (ret == null) { @@ -1503,6 +1604,212 @@ public class MapleItemInformationProvider { return list; } + private static int getCrystalForLevel(int level) { + int range = (level - 1) / 10; + + if(range < 5) { + return 4260000; + } else if(range > 11) { + return 4260008; + } else { + switch(range) { + case 5: + return 4260001; + + case 6: + return 4260002; + + case 7: + return 4260003; + + case 8: + return 4260004; + + case 9: + return 4260005; + + case 10: + return 4260006; + + default: + return 4260007; + } + } + } + + public Pair getMakerReagentStatUpgrade(int itemId) { + try { + Pair statUpgd = statUpgradeMakerCache.get(itemId); + if(statUpgd != null) { + return statUpgd; + } else if(statUpgradeMakerCache.containsKey(itemId)) { + return null; + } + + Connection con = DatabaseConnection.getConnection(); + PreparedStatement ps = con.prepareStatement("SELECT stat, value FROM makerreagentdata WHERE itemid = ?"); + ps.setInt(1, itemId); + ResultSet rs = ps.executeQuery(); + if(rs.next()) { + String statType = rs.getString("stat"); + int statGain = rs.getInt("value"); + + statUpgd = new Pair<>(statType, statGain); + } + rs.close(); + ps.close(); + con.close(); + + statUpgradeMakerCache.put(itemId, statUpgd); + return statUpgd; + } catch (Exception e) { + e.printStackTrace(); + return null; + } + } + + public int getMakerCrystalFromLeftover(Integer leftoverId) { + try { + Integer itemid = mobCrystalMakerCache.get(leftoverId); + if(itemid != null) { + return itemid; + } + + itemid = -1; + + Connection con = DatabaseConnection.getConnection(); + PreparedStatement ps = con.prepareStatement("SELECT dropperid FROM drop_data WHERE itemid = ? ORDER BY dropperid;"); + ps.setInt(1, leftoverId); + ResultSet rs = ps.executeQuery(); + if(rs.next()) { + int dropperid = rs.getInt("dropperid"); + itemid = getCrystalForLevel(MapleLifeFactory.getMonsterLevel(dropperid) - 1); + } + rs.close(); + ps.close(); + con.close(); + + mobCrystalMakerCache.put(leftoverId, itemid); + return itemid; + } catch (Exception e) { + e.printStackTrace(); + } + + return -1; + } + + public MakerItemCreateEntry getMakerItemEntry(int toCreate) { + MakerItemCreateEntry makerEntry; + + if ((makerEntry = makerItemCache.get(toCreate)) != null) { + return new MakerItemCreateEntry(makerEntry); + } else { + try { + Connection con = DatabaseConnection.getConnection(); + PreparedStatement ps = con.prepareStatement("SELECT req_level, req_maker_level, req_meso, quantity FROM makercreatedata WHERE itemid = ?"); + ps.setInt(1, toCreate); + ResultSet rs = ps.executeQuery(); + int reqLevel = 0; + int reqMakerLevel = 0; + int cost = 0; + int toGive = 0; + if (rs.next()) { + reqLevel = rs.getInt("req_level"); + reqMakerLevel = rs.getInt("req_maker_level"); + cost = rs.getInt("req_meso"); + toGive = rs.getInt("quantity"); + } + ps.close(); + rs.close(); + makerEntry = new MakerItemCreateEntry(cost, reqLevel, reqMakerLevel, toGive); + ps = con.prepareStatement("SELECT req_item, count FROM makerrecipedata WHERE itemid = ?"); + ps.setInt(1, toCreate); + rs = ps.executeQuery(); + while (rs.next()) { + makerEntry.addReqItem(rs.getInt("req_item"), rs.getInt("count")); + } + rs.close(); + ps.close(); + con.close(); + makerItemCache.put(toCreate, new MakerItemCreateEntry(makerEntry)); + } catch (SQLException sqle) { + sqle.printStackTrace(); + makerEntry = null; + } + } + + return makerEntry; + } + + public int getMakerCrystalFromEquip(Integer equipId) { + try { + Map stats = getEquipStats(equipId); + return getCrystalForLevel(stats.get("reqLevel")); + } catch (Exception e) { + e.printStackTrace(); + } + + return -1; + } + + public int getMakerStimulantFromEquip(Integer equipId) { + try { + return getCrystalForLevel(getEquipStats(equipId).get("reqLevel")); + } catch (Exception e) { + e.printStackTrace(); + } + + return -1; + } + + public int getMakerDisassembledQuantity(Integer itemId) { + int avail = 0; + Connection con; + try { + con = DatabaseConnection.getConnection(); + PreparedStatement ps = con.prepareStatement("SELECT count FROM makerrecipedata WHERE itemid = ? AND req_item >= 4260000 AND req_item <= 4260008 ORDER BY count DESC"); + ps.setInt(1, itemId); + ResultSet rs = ps.executeQuery(); + + if(rs.next()) { + avail = (int) Math.ceil(rs.getInt("count") / 2); // return to the player half of the crystals needed + } + + rs.close(); + ps.close(); + con.close(); + } catch (Exception e) { + e.printStackTrace(); + } + + return avail; + } + + public int getMakerDisassembledFee(Integer itemId) { + int fee = -1; + Connection con; + try { + con = DatabaseConnection.getConnection(); + PreparedStatement ps = con.prepareStatement("SELECT req_meso FROM makercreatedata WHERE itemid = ?"); + ps.setInt(1, itemId); + ResultSet rs = ps.executeQuery(); + + if(rs.next()) { // cost is 13.6363~ % of the original value trimmed by 1000. + float val = (float) (rs.getInt("req_meso") * 0.13636363636364); + fee = (int) (val / 1000); + fee *= 1000; + } + + rs.close(); + ps.close(); + con.close(); + } catch (Exception e) { + e.printStackTrace(); + } + + return fee; + } + public Set getWhoDrops(Integer itemId) { Set list = new HashSet<>(); Connection con = null; diff --git a/src/server/life/MapleLifeFactory.java b/src/server/life/MapleLifeFactory.java index 045a3dfa88..b39005682f 100644 --- a/src/server/life/MapleLifeFactory.java +++ b/src/server/life/MapleLifeFactory.java @@ -157,6 +157,27 @@ public class MapleLifeFactory { return null; } } + + public static int getMonsterLevel(int mid) { + try { + MapleMonsterStats stats = monsterStats.get(Integer.valueOf(mid)); + if (stats == null) { + MapleData monsterData = data.getData(StringUtil.getLeftPaddedStr(Integer.toString(mid) + ".img", '0', 11)); + if (monsterData == null) { + return -1; + } + MapleData monsterInfoData = monsterData.getChildByPath("info"); + return MapleDataTool.getIntConvert("level", monsterInfoData); + } else { + return stats.getLevel(); + } + } catch(NullPointerException npe) { + System.out.println("[SEVERE] MOB " + mid + " failed to load. Issue: " + npe.getMessage() + "\n\n"); + npe.printStackTrace(); + } + + return -1; + } private static void decodeElementalString(MapleMonsterStats stats, String elemAttr) { for (int i = 0; i < elemAttr.length(); i += 2) { diff --git a/src/tools/MaplePacketCreator.java b/src/tools/MaplePacketCreator.java index 6a6ba7b6d4..d4e6420f4d 100644 --- a/src/tools/MaplePacketCreator.java +++ b/src/tools/MaplePacketCreator.java @@ -5887,14 +5887,23 @@ public class MaplePacketCreator { return mplew.getPacket(); } - public static byte[] showMakerEffect() { + public static byte[] showMakerEffect(boolean makerSucceeded) { final MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter(); mplew.writeShort(SendOpcode.SHOW_ITEM_GAIN_INCHAT.getValue()); mplew.write(16); - mplew.writeInt(0); + mplew.writeInt(makerSucceeded ? 0 : 1); return mplew.getPacket(); } - + + public static byte[] showForeignMakerEffect(int cid, boolean makerSucceeded) { + final MaplePacketLittleEndianWriter mplew = new MaplePacketLittleEndianWriter(); + mplew.writeShort(SendOpcode.SHOW_FOREIGN_EFFECT.getValue()); + mplew.writeInt(cid); + mplew.write(16); + mplew.writeInt(makerSucceeded ? 0 : 1); + return mplew.getPacket(); + } + public static byte[] showForeignEffect(int effect) { return showForeignEffect(-1, effect); } diff --git a/src/tools/locks/MonitoredLockType.java b/src/tools/locks/MonitoredLockType.java index 2c3fc4cd50..099abaa47f 100644 --- a/src/tools/locks/MonitoredLockType.java +++ b/src/tools/locks/MonitoredLockType.java @@ -66,7 +66,7 @@ public enum MonitoredLockType { MAP_OBJS(37), MAP_FACTORY(38), MAP_ITEM(39), - MAP_BOUNDS(41), + MAP_BOUNDS(40), MINIDUNGEON(41), REACTOR(42); diff --git a/tools/MapleSkillMakerFetcher/lib/ItemMake.img.xml b/tools/MapleSkillMakerFetcher/lib/ItemMake.img.xml deleted file mode 100644 index 498a33ef8b..0000000000 --- a/tools/MapleSkillMakerFetcher/lib/ItemMake.img.xml +++ /dev/null @@ -1,16559 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/tools/MapleSkillMakerFetcher/lib/MakerData.sql b/tools/MapleSkillMakerFetcher/lib/MakerData.sql index 5c22487771..5100226037 100644 --- a/tools/MapleSkillMakerFetcher/lib/MakerData.sql +++ b/tools/MapleSkillMakerFetcher/lib/MakerData.sql @@ -2,48 +2,48 @@ # Generated data is conformant with the ItemMake.img.xml file used to compile this. INSERT IGNORE INTO `makercreatedata` (`id`, `itemid`, `req_level`, `req_maker_level`, `req_meso`, `req_item`, `req_equip`, `catalyst`, `quantity`, `tuc`) VALUES - (0, 4250000, 45, 1, 100000, 0, 0, 0, 1, 0), - (0, 4250100, 45, 1, 100000, 0, 0, 0, 1, 0), - (0, 4250200, 45, 1, 100000, 0, 0, 0, 1, 0), - (0, 4250300, 45, 1, 100000, 0, 0, 0, 1, 0), - (0, 4250400, 45, 1, 100000, 0, 0, 0, 1, 0), - (0, 4250500, 45, 1, 100000, 0, 0, 0, 1, 0), - (0, 4250600, 45, 1, 100000, 0, 0, 0, 1, 0), - (0, 4250700, 45, 1, 100000, 0, 0, 0, 1, 0), - (0, 4250800, 45, 1, 100000, 0, 0, 0, 1, 0), - (0, 4250900, 45, 1, 100000, 0, 0, 0, 1, 0), - (0, 4251000, 45, 1, 100000, 0, 0, 0, 1, 0), - (0, 4251100, 45, 1, 100000, 0, 0, 0, 1, 0), - (0, 4251300, 75, 2, 150000, 0, 0, 0, 1, 0), - (0, 4251400, 75, 2, 150000, 0, 0, 0, 1, 0), - (0, 4250001, 45, 1, 300000, 0, 0, 0, 1, 0), - (0, 4250101, 45, 1, 300000, 0, 0, 0, 1, 0), - (0, 4250201, 45, 1, 300000, 0, 0, 0, 1, 0), - (0, 4250301, 45, 1, 300000, 0, 0, 0, 1, 0), - (0, 4250401, 45, 1, 300000, 0, 0, 0, 1, 0), - (0, 4250501, 45, 1, 300000, 0, 0, 0, 1, 0), - (0, 4250601, 45, 1, 300000, 0, 0, 0, 1, 0), - (0, 4250701, 45, 1, 300000, 0, 0, 0, 1, 0), - (0, 4250801, 45, 1, 300000, 0, 0, 0, 1, 0), - (0, 4250901, 45, 1, 300000, 0, 0, 0, 1, 0), - (0, 4251001, 45, 1, 300000, 0, 0, 0, 1, 0), - (0, 4251101, 45, 1, 300000, 0, 0, 0, 1, 0), - (0, 4251301, 75, 2, 450000, 0, 0, 0, 1, 0), - (0, 4251401, 75, 2, 450000, 0, 0, 0, 1, 0), - (0, 4250002, 45, 2, 500000, 0, 0, 0, 1, 0), - (0, 4250102, 45, 2, 500000, 0, 0, 0, 1, 0), - (0, 4250202, 45, 2, 500000, 0, 0, 0, 1, 0), - (0, 4250302, 45, 2, 500000, 0, 0, 0, 1, 0), - (0, 4250402, 45, 2, 500000, 0, 0, 0, 1, 0), - (0, 4250502, 45, 2, 500000, 0, 0, 0, 1, 0), - (0, 4250602, 45, 2, 500000, 0, 0, 0, 1, 0), - (0, 4250702, 45, 2, 500000, 0, 0, 0, 1, 0), - (0, 4250802, 45, 2, 500000, 0, 0, 0, 1, 0), - (0, 4250902, 45, 2, 500000, 0, 0, 0, 1, 0), - (0, 4251002, 45, 2, 500000, 0, 0, 0, 1, 0), - (0, 4251102, 45, 2, 500000, 0, 0, 0, 1, 0), - (0, 4251302, 75, 3, 750000, 0, 0, 0, 1, 0), - (0, 4251402, 75, 3, 750000, 0, 0, 0, 1, 0), + (0, 4250000, 45, 1, 110000, 0, 0, 0, 1, 0), + (0, 4250100, 45, 1, 110000, 0, 0, 0, 1, 0), + (0, 4250200, 45, 1, 110000, 0, 0, 0, 1, 0), + (0, 4250300, 45, 1, 110000, 0, 0, 0, 1, 0), + (0, 4250400, 45, 1, 110000, 0, 0, 0, 1, 0), + (0, 4250500, 45, 1, 110000, 0, 0, 0, 1, 0), + (0, 4250600, 45, 1, 110000, 0, 0, 0, 1, 0), + (0, 4250700, 45, 1, 110000, 0, 0, 0, 1, 0), + (0, 4250800, 45, 1, 110000, 0, 0, 0, 1, 0), + (0, 4250900, 45, 1, 110000, 0, 0, 0, 1, 0), + (0, 4251000, 45, 1, 110000, 0, 0, 0, 1, 0), + (0, 4251100, 45, 1, 110000, 0, 0, 0, 1, 0), + (0, 4251300, 75, 2, 165000, 0, 0, 0, 1, 0), + (0, 4251400, 75, 2, 165000, 0, 0, 0, 1, 0), + (0, 4250001, 45, 1, 330000, 0, 0, 0, 1, 0), + (0, 4250101, 45, 1, 330000, 0, 0, 0, 1, 0), + (0, 4250201, 45, 1, 330000, 0, 0, 0, 1, 0), + (0, 4250301, 45, 1, 330000, 0, 0, 0, 1, 0), + (0, 4250401, 45, 1, 330000, 0, 0, 0, 1, 0), + (0, 4250501, 45, 1, 330000, 0, 0, 0, 1, 0), + (0, 4250601, 45, 1, 330000, 0, 0, 0, 1, 0), + (0, 4250701, 45, 1, 330000, 0, 0, 0, 1, 0), + (0, 4250801, 45, 1, 330000, 0, 0, 0, 1, 0), + (0, 4250901, 45, 1, 330000, 0, 0, 0, 1, 0), + (0, 4251001, 45, 1, 330000, 0, 0, 0, 1, 0), + (0, 4251101, 45, 1, 330000, 0, 0, 0, 1, 0), + (0, 4251301, 75, 2, 495000, 0, 0, 0, 1, 0), + (0, 4251401, 75, 2, 495000, 0, 0, 0, 1, 0), + (0, 4250002, 45, 2, 550000, 0, 0, 0, 1, 0), + (0, 4250102, 45, 2, 550000, 0, 0, 0, 1, 0), + (0, 4250202, 45, 2, 550000, 0, 0, 0, 1, 0), + (0, 4250302, 45, 2, 550000, 0, 0, 0, 1, 0), + (0, 4250402, 45, 2, 550000, 0, 0, 0, 1, 0), + (0, 4250502, 45, 2, 550000, 0, 0, 0, 1, 0), + (0, 4250602, 45, 2, 550000, 0, 0, 0, 1, 0), + (0, 4250702, 45, 2, 550000, 0, 0, 0, 1, 0), + (0, 4250802, 45, 2, 550000, 0, 0, 0, 1, 0), + (0, 4250902, 45, 2, 550000, 0, 0, 0, 1, 0), + (0, 4251002, 45, 2, 550000, 0, 0, 0, 1, 0), + (0, 4251102, 45, 2, 550000, 0, 0, 0, 1, 0), + (0, 4251302, 75, 3, 825000, 0, 0, 0, 1, 0), + (0, 4251402, 75, 3, 825000, 0, 0, 0, 1, 0), (0, 4001174, 45, 1, 0, 4031966, 0, 0, 1, 0), (0, 4001175, 50, 1, 0, 4031967, 0, 0, 1, 0), (0, 4001176, 55, 1, 0, 4031968, 0, 0, 10, 0), @@ -60,780 +60,780 @@ INSERT IGNORE INTO `makercreatedata` (`id`, `itemid`, `req_level`, `req_maker_le (0, 4001186, 105, 3, 0, 4031978, 0, 0, 1, 0), (0, 4032334, 150, 1, 0, 0, 0, 0, 1, 0), (0, 4032312, 70, 1, 0, 0, 0, 0, 1, 0), - (0, 2041058, 50, 1, 50000, 0, 1122013, 0, 1, 0), - (0, 2040727, 50, 1, 50000, 0, 1122013, 0, 1, 0), - (1, 1002028, 45, 1, 50000, 0, 0, 4130018, 1, 1), - (1, 1002085, 45, 1, 45000, 0, 0, 4130018, 1, 1), - (1, 1002086, 45, 1, 37500, 0, 0, 4130018, 1, 1), - (1, 1002022, 50, 1, 55000, 0, 0, 4130018, 1, 1), - (1, 1002100, 50, 1, 55000, 0, 0, 4130018, 1, 1), - (1, 1002101, 50, 1, 55000, 0, 0, 4130018, 1, 1), - (1, 1002029, 55, 1, 75000, 0, 0, 4130018, 1, 1), - (1, 1002084, 55, 1, 75000, 0, 0, 4130018, 1, 1), - (1, 1002030, 65, 1, 85000, 0, 0, 4130018, 1, 1), - (1, 1002094, 65, 1, 85000, 0, 0, 4130018, 1, 1), - (1, 1002095, 65, 1, 85000, 0, 0, 4130018, 1, 1), - (1, 1002338, 75, 2, 133000, 0, 0, 4130018, 1, 2), - (1, 1002339, 75, 2, 133000, 0, 0, 4130018, 1, 2), - (1, 1002340, 75, 2, 133000, 0, 0, 4130018, 1, 2), - (1, 1002528, 85, 2, 147000, 0, 0, 4130018, 1, 2), - (1, 1002529, 85, 2, 147000, 0, 0, 4130018, 1, 2), - (1, 1002530, 85, 2, 147000, 0, 0, 4130018, 1, 2), - (1, 1002531, 85, 2, 147000, 0, 0, 4130018, 1, 2), - (1, 1002532, 85, 2, 147000, 0, 0, 4130018, 1, 2), - (1, 1002377, 95, 2, 168000, 0, 0, 4130018, 1, 2), - (1, 1002378, 95, 2, 168000, 0, 0, 4130018, 1, 2), - (1, 1002379, 95, 2, 168000, 0, 0, 4130018, 1, 2), - (1, 1002551, 105, 3, 280000, 0, 0, 4130018, 1, 3), - (1, 1002790, 115, 3, 320000, 0, 0, 4130018, 1, 3), - (1, 1002776, 115, 3, 320000, 0, 0, 4130018, 1, 3), - (1, 1040087, 45, 1, 37500, 0, 0, 4130019, 1, 1), - (1, 1040088, 45, 1, 37500, 0, 0, 4130019, 1, 1), - (1, 1040089, 45, 1, 37500, 0, 0, 4130019, 1, 1), - (1, 1041087, 45, 1, 37500, 0, 0, 4130019, 1, 1), - (1, 1041088, 45, 1, 37500, 0, 0, 4130019, 1, 1), - (1, 1041089, 45, 1, 37500, 0, 0, 4130019, 1, 1), - (1, 1040090, 55, 1, 45000, 0, 0, 4130019, 1, 1), - (1, 1040091, 55, 1, 45000, 0, 0, 4130019, 1, 1), - (1, 1040092, 55, 1, 45000, 0, 0, 4130019, 1, 1), - (1, 1040093, 55, 1, 45000, 0, 0, 4130019, 1, 1), - (1, 1041091, 55, 1, 45000, 0, 0, 4130019, 1, 1), - (1, 1041092, 55, 1, 45000, 0, 0, 4130019, 1, 1), - (1, 1041093, 55, 1, 45000, 0, 0, 4130019, 1, 1), - (1, 1040102, 65, 1, 50000, 0, 0, 4130019, 1, 1), - (1, 1040103, 65, 1, 50000, 0, 0, 4130019, 1, 1), - (1, 1040104, 65, 1, 50000, 0, 0, 4130019, 1, 1), - (1, 1041097, 65, 1, 50000, 0, 0, 4130019, 1, 1), - (1, 1041098, 65, 1, 50000, 0, 0, 4130019, 1, 1), - (1, 1041099, 65, 1, 50000, 0, 0, 4130019, 1, 1), - (1, 1040111, 85, 2, 112000, 0, 0, 4130019, 1, 2), - (1, 1040112, 85, 2, 112000, 0, 0, 4130019, 1, 2), - (1, 1040113, 85, 2, 112000, 0, 0, 4130019, 1, 2), - (1, 1041119, 85, 2, 133000, 0, 0, 4130019, 1, 2), - (1, 1041120, 85, 2, 133000, 0, 0, 4130019, 1, 2), - (1, 1041121, 85, 2, 133000, 0, 0, 4130019, 1, 2), - (1, 1040120, 95, 2, 140000, 0, 0, 4130019, 1, 2), - (1, 1040121, 95, 2, 140000, 0, 0, 4130019, 1, 2), - (1, 1040122, 95, 2, 140000, 0, 0, 4130019, 1, 2), - (1, 1041122, 95, 2, 140000, 0, 0, 4130019, 1, 2), - (1, 1041123, 95, 2, 140000, 0, 0, 4130019, 1, 2), - (1, 1041124, 95, 2, 140000, 0, 0, 4130019, 1, 2), - (1, 1060076, 45, 1, 30000, 0, 0, 4130020, 1, 1), - (1, 1060077, 45, 1, 30000, 0, 0, 4130020, 1, 1), - (1, 1060078, 45, 1, 30000, 0, 0, 4130020, 1, 1), - (1, 1061086, 45, 1, 30000, 0, 0, 4130020, 1, 1), - (1, 1061087, 45, 1, 30000, 0, 0, 4130020, 1, 1), - (1, 1061088, 45, 1, 30000, 0, 0, 4130020, 1, 1), - (1, 1060079, 55, 1, 37500, 0, 0, 4130020, 1, 1), - (1, 1060080, 55, 1, 37500, 0, 0, 4130020, 1, 1), - (1, 1060081, 55, 1, 37500, 0, 0, 4130020, 1, 1), - (1, 1060082, 55, 1, 37500, 0, 0, 4130020, 1, 1), - (1, 1061090, 55, 1, 37500, 0, 0, 4130020, 1, 1), - (1, 1061091, 55, 1, 37500, 0, 0, 4130020, 1, 1), - (1, 1061092, 55, 1, 37500, 0, 0, 4130020, 1, 1), - (1, 1060090, 65, 1, 45000, 0, 0, 4130020, 1, 1), - (1, 1060091, 65, 1, 45000, 0, 0, 4130020, 1, 1), - (1, 1060092, 65, 1, 45000, 0, 0, 4130020, 1, 1), - (1, 1061096, 65, 1, 45000, 0, 0, 4130020, 1, 1), - (1, 1061097, 65, 1, 45000, 0, 0, 4130020, 1, 1), - (1, 1061098, 65, 1, 45000, 0, 0, 4130020, 1, 1), - (1, 1060100, 85, 2, 98000, 0, 0, 4130020, 1, 2), - (1, 1060101, 85, 2, 98000, 0, 0, 4130020, 1, 2), - (1, 1060102, 85, 2, 98000, 0, 0, 4130020, 1, 2), - (1, 1061118, 85, 2, 119000, 0, 0, 4130020, 1, 2), - (1, 1061119, 85, 2, 119000, 0, 0, 4130020, 1, 2), - (1, 1061120, 85, 2, 119000, 0, 0, 4130020, 1, 2), - (1, 1060109, 95, 2, 126000, 0, 0, 4130020, 1, 2), - (1, 1060110, 95, 2, 126000, 0, 0, 4130020, 1, 2), - (1, 1060111, 95, 2, 126000, 0, 0, 4130020, 1, 2), - (1, 1061121, 95, 2, 126000, 0, 0, 4130020, 1, 2), - (1, 1061122, 95, 2, 126000, 0, 0, 4130020, 1, 2), - (1, 1061123, 95, 2, 126000, 0, 0, 4130020, 1, 2), - (1, 1050080, 75, 2, 126000, 0, 0, 4130021, 1, 2), - (1, 1050081, 75, 2, 126000, 0, 0, 4130021, 1, 2), - (1, 1050082, 75, 2, 126000, 0, 0, 4130021, 1, 2), - (1, 1050083, 75, 2, 126000, 0, 0, 4130021, 1, 2), - (1, 1051077, 75, 2, 126000, 0, 0, 4130021, 1, 2), - (1, 1051078, 75, 2, 126000, 0, 0, 4130021, 1, 2), - (1, 1051079, 75, 2, 126000, 0, 0, 4130021, 1, 2), - (1, 1051080, 75, 2, 126000, 0, 0, 4130021, 1, 2), - (1, 1052075, 105, 3, 320000, 0, 0, 4130021, 1, 3), - (1, 1052160, 115, 3, 380000, 0, 0, 4130021, 1, 3), - (1, 1052155, 115, 3, 380000, 0, 0, 4130021, 1, 3), - (1, 1072132, 45, 1, 27500, 0, 0, 4130001, 1, 1), - (1, 1072133, 45, 1, 27500, 0, 0, 4130001, 1, 1), - (1, 1072134, 45, 1, 27500, 0, 0, 4130001, 1, 1), - (1, 1072135, 45, 1, 27500, 0, 0, 4130001, 1, 1), - (1, 1072147, 55, 1, 35000, 0, 0, 4130001, 1, 1), - (1, 1072148, 55, 1, 35000, 0, 0, 4130001, 1, 1), - (1, 1072149, 55, 1, 35000, 0, 0, 4130001, 1, 1), - (1, 1072154, 65, 1, 42500, 0, 0, 4130001, 1, 1), - (1, 1072155, 65, 1, 42500, 0, 0, 4130001, 1, 1), - (1, 1072156, 65, 1, 42500, 0, 0, 4130001, 1, 1), - (1, 1072210, 75, 2, 77000, 0, 0, 4130001, 1, 2), - (1, 1072211, 75, 2, 77000, 0, 0, 4130001, 1, 2), - (1, 1072212, 75, 2, 77000, 0, 0, 4130001, 1, 2), - (1, 1072196, 85, 2, 105000, 0, 0, 4130001, 1, 2), - (1, 1072197, 85, 2, 105000, 0, 0, 4130001, 1, 2), - (1, 1072198, 85, 2, 105000, 0, 0, 4130001, 1, 2), - (1, 1072220, 95, 2, 126000, 0, 0, 4130001, 1, 2), - (1, 1072221, 95, 2, 126000, 0, 0, 4130001, 1, 2), - (1, 1072222, 95, 2, 126000, 0, 0, 4130001, 1, 2), - (1, 1072273, 105, 3, 210000, 0, 0, 4130001, 1, 3), - (1, 1072361, 115, 3, 240000, 0, 0, 4130001, 1, 3), - (1, 1072355, 115, 3, 240000, 0, 0, 4130001, 1, 3), - (1, 1082009, 45, 1, 45000, 0, 0, 4130000, 1, 1), - (1, 1082010, 45, 1, 50000, 0, 0, 4130000, 1, 1), - (1, 1082011, 45, 1, 55000, 0, 0, 4130000, 1, 1), - (1, 1082059, 55, 1, 60000, 0, 0, 4130000, 1, 1), - (1, 1082060, 55, 1, 65000, 0, 0, 4130000, 1, 1), - (1, 1082061, 55, 1, 70000, 0, 0, 4130000, 1, 1), - (1, 1082103, 65, 1, 75000, 0, 0, 4130000, 1, 1), - (1, 1082104, 65, 1, 80000, 0, 0, 4130000, 1, 1), - (1, 1082105, 65, 1, 85000, 0, 0, 4130000, 1, 1), - (1, 1082114, 75, 2, 147000, 0, 0, 4130000, 1, 2), - (1, 1082115, 75, 2, 150500, 0, 0, 4130000, 1, 2), - (1, 1082116, 75, 2, 154000, 0, 0, 4130000, 1, 2), - (1, 1082117, 75, 2, 154000, 0, 0, 4130000, 1, 2), - (1, 1082128, 85, 2, 168000, 0, 0, 4130000, 1, 2), - (1, 1082129, 85, 2, 171500, 0, 0, 4130000, 1, 2), - (1, 1082130, 85, 2, 175000, 0, 0, 4130000, 1, 2), - (1, 1082139, 95, 2, 189000, 0, 0, 4130000, 1, 2), - (1, 1082140, 95, 2, 192500, 0, 0, 4130000, 1, 2), - (1, 1082141, 95, 2, 196000, 0, 0, 4130000, 1, 2), - (1, 1082168, 105, 3, 300000, 0, 0, 4130000, 1, 3), - (1, 1082239, 115, 3, 330000, 0, 0, 4130000, 1, 3), - (1, 1082234, 115, 3, 330000, 0, 0, 4130000, 1, 3), - (1, 1092004, 45, 1, 75000, 0, 0, 4130022, 1, 1), - (1, 1092009, 55, 1, 90000, 0, 0, 4130022, 1, 1), - (1, 1092010, 55, 1, 95000, 0, 0, 4130022, 1, 1), - (1, 1092011, 55, 1, 95000, 0, 0, 4130022, 1, 1), - (1, 1092015, 65, 1, 100000, 0, 0, 4130022, 1, 1), - (1, 1092016, 65, 1, 105000, 0, 0, 4130022, 1, 1), - (1, 1092017, 65, 1, 105000, 0, 0, 4130022, 1, 1), - (1, 1092023, 75, 2, 154000, 0, 0, 4130022, 1, 2), - (1, 1092024, 75, 2, 161000, 0, 0, 4130022, 1, 2), - (1, 1092025, 75, 2, 161000, 0, 0, 4130022, 1, 2), - (1, 1092026, 85, 2, 168000, 0, 0, 4130022, 1, 2), - (1, 1092027, 85, 2, 175000, 0, 0, 4130022, 1, 2), - (1, 1092028, 85, 2, 175000, 0, 0, 4130022, 1, 2), - (1, 1092036, 95, 2, 182000, 0, 0, 4130022, 1, 2), - (1, 1092037, 95, 2, 189000, 0, 0, 4130022, 1, 2), - (1, 1092038, 95, 2, 196000, 0, 0, 4130022, 1, 2), - (1, 1092060, 105, 3, 210000, 0, 0, 4130022, 1, 3), - (1, 1092058, 115, 3, 350000, 0, 0, 4130022, 1, 3), - (1, 1302010, 45, 1, 60000, 0, 0, 4130002, 1, 1), - (1, 1312008, 45, 1, 70000, 0, 0, 4130003, 1, 1), - (1, 1322017, 45, 1, 70000, 0, 0, 4130004, 1, 1), - (1, 1402003, 45, 1, 100000, 0, 0, 4130005, 1, 1), - (1, 1412003, 45, 1, 70000, 0, 0, 4130006, 1, 1), - (1, 1422005, 45, 1, 75000, 0, 0, 4130007, 1, 1), - (1, 1432004, 45, 1, 75000, 0, 0, 4130008, 1, 1), - (1, 1442005, 45, 1, 75000, 0, 0, 4130009, 1, 1), - (1, 1302011, 55, 1, 75000, 0, 0, 4130002, 1, 1), - (1, 1312009, 55, 1, 95000, 0, 0, 4130003, 1, 1), - (1, 1322018, 55, 1, 95000, 0, 0, 4130004, 1, 1), - (1, 1402011, 55, 1, 115000, 0, 0, 4130005, 1, 1), - (1, 1412007, 55, 1, 95000, 0, 0, 4130006, 1, 1), - (1, 1422009, 55, 1, 95000, 0, 0, 4130007, 1, 1), - (1, 1432006, 55, 1, 95000, 0, 0, 4130008, 1, 1), - (1, 1442010, 55, 1, 125000, 0, 0, 4130009, 1, 1), - (1, 1302012, 65, 1, 125000, 0, 0, 4130002, 1, 1), - (1, 1312010, 65, 1, 150000, 0, 0, 4130003, 1, 1), - (1, 1322019, 65, 1, 125000, 0, 0, 4130004, 1, 1), - (1, 1402012, 65, 1, 130000, 0, 0, 4130005, 1, 1), - (1, 1412008, 65, 1, 125000, 0, 0, 4130006, 1, 1), - (1, 1422010, 65, 1, 125000, 0, 0, 4130007, 1, 1), - (1, 1432007, 65, 1, 125000, 0, 0, 4130008, 1, 1), - (1, 1442008, 65, 1, 150000, 0, 0, 4130009, 1, 1), - (1, 1322020, 70, 1, 150000, 0, 0, 4130004, 1, 1), - (1, 1302018, 75, 2, 210000, 0, 0, 4130002, 1, 2), - (1, 1312011, 75, 2, 245000, 0, 0, 4130003, 1, 2), - (1, 1322028, 75, 2, 245000, 0, 0, 4130004, 1, 2), - (1, 1402004, 75, 2, 210000, 0, 0, 4130005, 1, 2), - (1, 1402015, 75, 2, 210000, 0, 0, 4130005, 1, 2), - (1, 1412009, 75, 2, 217000, 0, 0, 4130006, 1, 2), - (1, 1422012, 75, 2, 217000, 0, 0, 4130007, 1, 2), - (1, 1432010, 75, 2, 217000, 0, 0, 4130008, 1, 2), - (1, 1442019, 75, 2, 245000, 0, 0, 4130009, 1, 2), - (1, 1302023, 85, 2, 245000, 0, 0, 4130002, 1, 2), - (1, 1312015, 85, 2, 280000, 0, 0, 4130003, 1, 2), - (1, 1322029, 85, 2, 280000, 0, 0, 4130004, 1, 2), - (1, 1402005, 85, 2, 280000, 0, 0, 4130005, 1, 2), - (1, 1402016, 85, 2, 280000, 0, 0, 4130005, 1, 2), - (1, 1412010, 85, 2, 259000, 0, 0, 4130006, 1, 2), - (1, 1422013, 85, 2, 259000, 0, 0, 4130007, 1, 2), - (1, 1432011, 85, 2, 259000, 0, 0, 4130008, 1, 2), - (1, 1442020, 85, 2, 315000, 0, 0, 4130009, 1, 2), - (1, 1302056, 95, 2, 336000, 0, 0, 4130002, 1, 2), - (1, 1312030, 95, 2, 329000, 0, 0, 4130003, 1, 2), - (1, 1322045, 95, 2, 329000, 0, 0, 4130004, 1, 2), - (1, 1402035, 95, 2, 329000, 0, 0, 4130005, 1, 2), - (1, 1412021, 95, 2, 343000, 0, 0, 4130006, 1, 2), - (1, 1422027, 95, 2, 315000, 0, 0, 4130007, 1, 2), - (1, 1432030, 95, 2, 343000, 0, 0, 4130008, 1, 2), - (1, 1442044, 95, 2, 329000, 0, 0, 4130009, 1, 2), - (1, 1302059, 105, 3, 550000, 0, 0, 4130002, 1, 3), - (1, 1312031, 105, 3, 530000, 0, 0, 4130003, 1, 3), - (1, 1322052, 105, 3, 480000, 0, 0, 4130004, 1, 3), - (1, 1402036, 105, 3, 550000, 0, 0, 4130005, 1, 3), - (1, 1412026, 105, 3, 520000, 0, 0, 4130006, 1, 3), - (1, 1422028, 105, 3, 510000, 0, 0, 4130007, 1, 3), - (1, 1432038, 105, 3, 530000, 0, 0, 4130008, 1, 3), - (1, 1442045, 105, 3, 570000, 0, 0, 4130009, 1, 3), - (1, 1302086, 115, 3, 680000, 0, 0, 4130002, 1, 3), - (1, 1312038, 115, 3, 580000, 0, 0, 4130003, 1, 3), - (1, 1322061, 115, 3, 490000, 0, 0, 4130004, 1, 3), - (1, 1402047, 115, 3, 650000, 0, 0, 4130005, 1, 3), - (1, 1412034, 115, 3, 650000, 0, 0, 4130006, 1, 3), - (1, 1422038, 115, 3, 560000, 0, 0, 4130007, 1, 3), - (1, 1432049, 115, 3, 570000, 0, 0, 4130008, 1, 3), - (1, 1442067, 115, 3, 620000, 0, 0, 4130009, 1, 3), - (1, 1302081, 115, 3, 680000, 0, 0, 4130002, 1, 3), - (1, 1312037, 115, 3, 580000, 0, 0, 4130003, 1, 3), - (1, 1322060, 115, 3, 490000, 0, 0, 4130004, 1, 3), - (1, 1402046, 115, 3, 650000, 0, 0, 4130005, 1, 3), - (1, 1412033, 115, 3, 650000, 0, 0, 4130006, 1, 3), - (1, 1422037, 115, 3, 560000, 0, 0, 4130007, 1, 3), - (1, 1432047, 115, 3, 570000, 0, 0, 4130008, 1, 3), - (1, 1442063, 115, 3, 620000, 0, 0, 4130009, 1, 3), - (2, 1002215, 45, 1, 20000, 0, 0, 4130018, 1, 1), - (2, 1002216, 45, 1, 20000, 0, 0, 4130018, 1, 1), - (2, 1002217, 45, 1, 20000, 0, 0, 4130018, 1, 1), - (2, 1002218, 45, 1, 20000, 0, 0, 4130018, 1, 1), - (2, 1002242, 55, 1, 25000, 0, 0, 4130018, 1, 1), - (2, 1002243, 55, 1, 25000, 0, 0, 4130018, 1, 1), - (2, 1002244, 55, 1, 25000, 0, 0, 4130018, 1, 1), - (2, 1002245, 55, 1, 25000, 0, 0, 4130018, 1, 1), - (2, 1002246, 55, 1, 25000, 0, 0, 4130018, 1, 1), - (2, 1002252, 65, 1, 40000, 0, 0, 4130018, 1, 1), - (2, 1002253, 65, 1, 40000, 0, 0, 4130018, 1, 1), - (2, 1002254, 65, 1, 40000, 0, 0, 4130018, 1, 1), - (2, 1002271, 75, 2, 66500, 0, 0, 4130018, 1, 2), - (2, 1002272, 75, 2, 66500, 0, 0, 4130018, 1, 2), - (2, 1002273, 75, 2, 66500, 0, 0, 4130018, 1, 2), - (2, 1002274, 75, 2, 66500, 0, 0, 4130018, 1, 2), - (2, 1002363, 85, 2, 77000, 0, 0, 4130018, 1, 2), - (2, 1002364, 85, 2, 77000, 0, 0, 4130018, 1, 2), - (2, 1002365, 85, 2, 77000, 0, 0, 4130018, 1, 2), - (2, 1002366, 85, 2, 77000, 0, 0, 4130018, 1, 2), - (2, 1002398, 95, 2, 87500, 0, 0, 4130018, 1, 2), - (2, 1002399, 95, 2, 87500, 0, 0, 4130018, 1, 2), - (2, 1002400, 95, 2, 87500, 0, 0, 4130018, 1, 2), - (2, 1002401, 95, 2, 87500, 0, 0, 4130018, 1, 2), - (2, 1002773, 105, 3, 150000, 0, 0, 4130018, 1, 3), - (2, 1002791, 115, 3, 170000, 0, 0, 4130018, 1, 3), - (2, 1002777, 115, 3, 170000, 0, 0, 4130018, 1, 3), - (2, 1050045, 43, 1, 45000, 0, 0, 4130021, 1, 1), - (2, 1050046, 43, 1, 45000, 0, 0, 4130021, 1, 1), - (2, 1050047, 43, 1, 45000, 0, 0, 4130021, 1, 1), - (2, 1050048, 43, 1, 45000, 0, 0, 4130021, 1, 1), - (2, 1050049, 43, 1, 45000, 0, 0, 4130021, 1, 1), - (2, 1051030, 43, 1, 45000, 0, 0, 4130021, 1, 1), - (2, 1051031, 43, 1, 45000, 0, 0, 4130021, 1, 1), - (2, 1051032, 43, 1, 45000, 0, 0, 4130021, 1, 1), - (2, 1051033, 43, 1, 45000, 0, 0, 4130021, 1, 1), - (2, 1051034, 43, 1, 45000, 0, 0, 4130021, 1, 1), - (2, 1050053, 53, 1, 50000, 0, 0, 4130021, 1, 1), - (2, 1050054, 53, 1, 50000, 0, 0, 4130021, 1, 1), - (2, 1050055, 53, 1, 50000, 0, 0, 4130021, 1, 1), - (2, 1050056, 53, 1, 50000, 0, 0, 4130021, 1, 1), - (2, 1051044, 53, 1, 50000, 0, 0, 4130021, 1, 1), - (2, 1051045, 53, 1, 50000, 0, 0, 4130021, 1, 1), - (2, 1051046, 53, 1, 50000, 0, 0, 4130021, 1, 1), - (2, 1051047, 53, 1, 50000, 0, 0, 4130021, 1, 1), - (2, 1050067, 63, 1, 60000, 0, 0, 4130021, 1, 1), - (2, 1050068, 63, 1, 60000, 0, 0, 4130021, 1, 1), - (2, 1050069, 63, 1, 60000, 0, 0, 4130021, 1, 1), - (2, 1050070, 63, 1, 60000, 0, 0, 4130021, 1, 1), - (2, 1051052, 63, 1, 60000, 0, 0, 4130021, 1, 1), - (2, 1051053, 63, 1, 60000, 0, 0, 4130021, 1, 1), - (2, 1051054, 63, 1, 60000, 0, 0, 4130021, 1, 1), - (2, 1051055, 63, 1, 60000, 0, 0, 4130021, 1, 1), - (2, 1050072, 73, 2, 112000, 0, 0, 4130021, 1, 2), - (2, 1050073, 73, 2, 112000, 0, 0, 4130021, 1, 2), - (2, 1050074, 73, 2, 112000, 0, 0, 4130021, 1, 2), - (2, 1051056, 73, 2, 112000, 0, 0, 4130021, 1, 2), - (2, 1051057, 73, 2, 112000, 0, 0, 4130021, 1, 2), - (2, 1051058, 73, 2, 112000, 0, 0, 4130021, 1, 2), - (2, 1050092, 83, 2, 140000, 0, 0, 4130021, 1, 2), - (2, 1050093, 83, 2, 140000, 0, 0, 4130021, 1, 2), - (2, 1050094, 83, 2, 140000, 0, 0, 4130021, 1, 2), - (2, 1050095, 83, 2, 140000, 0, 0, 4130021, 1, 2), - (2, 1051094, 83, 2, 140000, 0, 0, 4130021, 1, 2), - (2, 1051095, 83, 2, 140000, 0, 0, 4130021, 1, 2), - (2, 1051096, 83, 2, 140000, 0, 0, 4130021, 1, 2), - (2, 1051097, 83, 2, 140000, 0, 0, 4130021, 1, 2), - (2, 1050102, 93, 2, 168000, 0, 0, 4130021, 1, 2), - (2, 1050103, 93, 2, 168000, 0, 0, 4130021, 1, 2), - (2, 1050104, 93, 2, 168000, 0, 0, 4130021, 1, 2), - (2, 1050105, 93, 2, 168000, 0, 0, 4130021, 1, 2), - (2, 1051101, 93, 2, 168000, 0, 0, 4130021, 1, 2), - (2, 1051102, 93, 2, 168000, 0, 0, 4130021, 1, 2), - (2, 1051103, 93, 2, 168000, 0, 0, 4130021, 1, 2), - (2, 1051104, 93, 2, 168000, 0, 0, 4130021, 1, 2), - (2, 1052076, 103, 3, 290000, 0, 0, 4130021, 1, 3), - (2, 1052161, 115, 3, 340000, 0, 0, 4130021, 1, 3), - (2, 1052156, 115, 3, 340000, 0, 0, 4130021, 1, 3), - (2, 1072140, 45, 1, 27500, 0, 0, 4130001, 1, 1), - (2, 1072141, 45, 1, 27500, 0, 0, 4130001, 1, 1), - (2, 1072142, 45, 1, 27500, 0, 0, 4130001, 1, 1), - (2, 1072143, 45, 1, 27500, 0, 0, 4130001, 1, 1), - (2, 1072136, 55, 1, 30000, 0, 0, 4130001, 1, 1), - (2, 1072137, 55, 1, 30000, 0, 0, 4130001, 1, 1), - (2, 1072138, 55, 1, 30000, 0, 0, 4130001, 1, 1), - (2, 1072139, 55, 1, 30000, 0, 0, 4130001, 1, 1), - (2, 1072157, 65, 1, 40000, 0, 0, 4130001, 1, 1), - (2, 1072158, 65, 1, 40000, 0, 0, 4130001, 1, 1), - (2, 1072159, 65, 1, 40000, 0, 0, 4130001, 1, 1), - (2, 1072160, 65, 1, 40000, 0, 0, 4130001, 1, 1), - (2, 1072177, 75, 2, 70000, 0, 0, 4130001, 1, 2), - (2, 1072178, 75, 2, 70000, 0, 0, 4130001, 1, 2), - (2, 1072179, 75, 2, 70000, 0, 0, 4130001, 1, 2), - (2, 1072206, 85, 2, 84000, 0, 0, 4130001, 1, 2), - (2, 1072207, 85, 2, 84000, 0, 0, 4130001, 1, 2), - (2, 1072208, 85, 2, 84000, 0, 0, 4130001, 1, 2), - (2, 1072209, 85, 2, 84000, 0, 0, 4130001, 1, 2), - (2, 1072223, 95, 2, 98000, 0, 0, 4130001, 1, 2), - (2, 1072224, 95, 2, 98000, 0, 0, 4130001, 1, 2), - (2, 1072225, 95, 2, 98000, 0, 0, 4130001, 1, 2), - (2, 1072226, 95, 2, 98000, 0, 0, 4130001, 1, 2), - (2, 1072268, 105, 3, 180000, 0, 0, 4130001, 1, 3), - (2, 1072362, 115, 3, 220000, 0, 0, 4130001, 1, 3), - (2, 1072356, 115, 3, 220000, 0, 0, 4130001, 1, 3), - (2, 1082080, 45, 1, 50000, 0, 0, 4130000, 1, 1), - (2, 1082081, 45, 1, 40000, 0, 0, 4130000, 1, 1), - (2, 1082082, 45, 1, 45000, 0, 0, 4130000, 1, 1), - (2, 1082086, 55, 1, 52500, 0, 0, 4130000, 1, 1), - (2, 1082087, 55, 1, 57500, 0, 0, 4130000, 1, 1), - (2, 1082088, 55, 1, 62500, 0, 0, 4130000, 1, 1), - (2, 1082098, 65, 1, 70000, 0, 0, 4130000, 1, 1), - (2, 1082099, 65, 1, 72500, 0, 0, 4130000, 1, 1), - (2, 1082100, 65, 1, 75000, 0, 0, 4130000, 1, 1), - (2, 1082121, 75, 2, 140000, 0, 0, 4130000, 1, 2), - (2, 1082122, 75, 2, 143500, 0, 0, 4130000, 1, 2), - (2, 1082123, 75, 2, 147000, 0, 0, 4130000, 1, 2), - (2, 1082131, 85, 2, 161000, 0, 0, 4130000, 1, 2), - (2, 1082132, 85, 2, 164500, 0, 0, 4130000, 1, 2), - (2, 1082133, 85, 2, 164500, 0, 0, 4130000, 1, 2), - (2, 1082134, 85, 2, 168000, 0, 0, 4130000, 1, 2), - (2, 1082151, 95, 2, 182000, 0, 0, 4130000, 1, 2), - (2, 1082152, 95, 2, 185500, 0, 0, 4130000, 1, 2), - (2, 1082153, 95, 2, 185500, 0, 0, 4130000, 1, 2), - (2, 1082154, 95, 2, 189000, 0, 0, 4130000, 1, 2), - (2, 1082164, 105, 3, 300000, 0, 0, 4130000, 1, 3), - (2, 1082240, 115, 3, 330000, 0, 0, 4130000, 1, 3), - (2, 1082235, 115, 3, 330000, 0, 0, 4130000, 1, 3), - (2, 1092057, 115, 3, 350000, 0, 0, 4130022, 1, 3), - (2, 1372007, 43, 1, 100000, 0, 0, 4130010, 1, 1), - (2, 1382006, 50, 1, 75000, 0, 0, 4130011, 1, 1), - (2, 1372014, 53, 1, 115000, 0, 0, 4130010, 1, 1), - (2, 1382007, 60, 1, 100000, 0, 0, 4130011, 1, 1), - (2, 1372015, 63, 1, 130000, 0, 0, 4130010, 1, 1), - (2, 1382010, 70, 1, 125000, 0, 0, 4130011, 1, 1), - (2, 1372016, 73, 2, 203000, 0, 0, 4130010, 1, 2), - (2, 1382008, 80, 2, 217000, 0, 0, 4130011, 1, 2), - (2, 1372009, 83, 2, 227500, 0, 0, 4130010, 1, 2), - (2, 1382035, 90, 2, 266000, 0, 0, 4130011, 1, 2), - (2, 1372010, 93, 2, 252000, 0, 0, 4130010, 1, 2), - (2, 1372032, 103, 3, 460000, 0, 0, 4130010, 1, 3), - (2, 1382036, 105, 3, 470000, 0, 0, 4130011, 1, 3), - (2, 1372045, 115, 3, 510000, 0, 0, 4130010, 1, 3), - (2, 1382059, 115, 3, 520000, 0, 0, 4130011, 1, 3), - (2, 1372044, 115, 3, 510000, 0, 0, 4130010, 1, 3), - (2, 1382057, 115, 3, 520000, 0, 0, 4130011, 1, 3), - (4, 1002211, 45, 1, 20000, 0, 0, 4130018, 1, 1), - (4, 1002212, 45, 1, 20000, 0, 0, 4130018, 1, 1), - (4, 1002213, 45, 1, 20000, 0, 0, 4130018, 1, 1), - (4, 1002214, 45, 1, 20000, 0, 0, 4130018, 1, 1), - (4, 1002267, 55, 1, 27500, 0, 0, 4130018, 1, 1), - (4, 1002268, 55, 1, 27500, 0, 0, 4130018, 1, 1), - (4, 1002269, 55, 1, 27500, 0, 0, 4130018, 1, 1), - (4, 1002270, 55, 1, 27500, 0, 0, 4130018, 1, 1), - (4, 1002286, 65, 1, 42500, 0, 0, 4130018, 1, 1), - (4, 1002287, 65, 1, 42500, 0, 0, 4130018, 1, 1), - (4, 1002288, 65, 1, 42500, 0, 0, 4130018, 1, 1), - (4, 1002289, 65, 1, 42500, 0, 0, 4130018, 1, 1), - (4, 1002275, 75, 2, 70000, 0, 0, 4130018, 1, 2), - (4, 1002276, 75, 2, 70000, 0, 0, 4130018, 1, 2), - (4, 1002277, 75, 2, 70000, 0, 0, 4130018, 1, 2), - (4, 1002278, 75, 2, 70000, 0, 0, 4130018, 1, 2), - (4, 1002402, 85, 2, 80500, 0, 0, 4130018, 1, 2), - (4, 1002403, 85, 2, 80500, 0, 0, 4130018, 1, 2), - (4, 1002404, 85, 2, 80500, 0, 0, 4130018, 1, 2), - (4, 1002405, 85, 2, 80500, 0, 0, 4130018, 1, 2), - (4, 1002406, 95, 2, 91000, 0, 0, 4130018, 1, 2), - (4, 1002407, 95, 2, 91000, 0, 0, 4130018, 1, 2), - (4, 1002408, 95, 2, 91000, 0, 0, 4130018, 1, 2), - (4, 1002547, 105, 3, 150000, 0, 0, 4130018, 1, 3), - (4, 1002792, 115, 3, 170000, 0, 0, 4130018, 1, 3), - (4, 1002778, 115, 3, 170000, 0, 0, 4130018, 1, 3), - (4, 1050051, 45, 1, 47500, 0, 0, 4130021, 1, 1), - (4, 1050052, 45, 1, 47500, 0, 0, 4130021, 1, 1), - (4, 1051037, 45, 1, 47500, 0, 0, 4130021, 1, 1), - (4, 1051038, 45, 1, 47500, 0, 0, 4130021, 1, 1), - (4, 1051039, 45, 1, 47500, 0, 0, 4130021, 1, 1), - (4, 1050058, 55, 1, 52500, 0, 0, 4130021, 1, 1), - (4, 1050059, 55, 1, 52500, 0, 0, 4130021, 1, 1), - (4, 1050060, 55, 1, 52500, 0, 0, 4130021, 1, 1), - (4, 1051041, 55, 1, 52500, 0, 0, 4130021, 1, 1), - (4, 1051042, 55, 1, 52500, 0, 0, 4130021, 1, 1), - (4, 1051043, 55, 1, 52500, 0, 0, 4130021, 1, 1), - (4, 1050061, 65, 1, 57500, 0, 0, 4130021, 1, 1), - (4, 1050062, 65, 1, 57500, 0, 0, 4130021, 1, 1), - (4, 1050063, 65, 1, 57500, 0, 0, 4130021, 1, 1), - (4, 1050064, 65, 1, 57500, 0, 0, 4130021, 1, 1), - (4, 1051062, 65, 1, 57500, 0, 0, 4130021, 1, 1), - (4, 1051063, 65, 1, 57500, 0, 0, 4130021, 1, 1), - (4, 1051064, 65, 1, 57500, 0, 0, 4130021, 1, 1), - (4, 1051065, 65, 1, 57500, 0, 0, 4130021, 1, 1), - (4, 1050075, 75, 2, 98000, 0, 0, 4130021, 1, 2), - (4, 1050076, 75, 2, 98000, 0, 0, 4130021, 1, 2), - (4, 1050077, 75, 2, 98000, 0, 0, 4130021, 1, 2), - (4, 1050078, 75, 2, 98000, 0, 0, 4130021, 1, 2), - (4, 1051066, 75, 2, 98000, 0, 0, 4130021, 1, 2), - (4, 1051067, 75, 2, 98000, 0, 0, 4130021, 1, 2), - (4, 1051068, 75, 2, 98000, 0, 0, 4130021, 1, 2), - (4, 1051069, 75, 2, 98000, 0, 0, 4130021, 1, 2), - (4, 1050088, 85, 2, 140000, 0, 0, 4130021, 1, 2), - (4, 1050089, 85, 2, 140000, 0, 0, 4130021, 1, 2), - (4, 1050090, 85, 2, 140000, 0, 0, 4130021, 1, 2), - (4, 1050091, 85, 2, 140000, 0, 0, 4130021, 1, 2), - (4, 1051082, 85, 2, 140000, 0, 0, 4130021, 1, 2), - (4, 1051083, 85, 2, 140000, 0, 0, 4130021, 1, 2), - (4, 1051084, 85, 2, 140000, 0, 0, 4130021, 1, 2), - (4, 1051085, 85, 2, 140000, 0, 0, 4130021, 1, 2), - (4, 1050106, 95, 2, 168000, 0, 0, 4130021, 1, 2), - (4, 1050107, 95, 2, 168000, 0, 0, 4130021, 1, 2), - (4, 1050108, 95, 2, 168000, 0, 0, 4130021, 1, 2), - (4, 1051105, 95, 2, 168000, 0, 0, 4130021, 1, 2), - (4, 1051106, 95, 2, 168000, 0, 0, 4130021, 1, 2), - (4, 1051107, 95, 2, 168000, 0, 0, 4130021, 1, 2), - (4, 1052071, 105, 3, 300000, 0, 0, 4130021, 1, 3), - (4, 1052162, 115, 3, 360000, 0, 0, 4130021, 1, 3), - (4, 1052157, 115, 3, 360000, 0, 0, 4130021, 1, 3), - (4, 1072122, 45, 1, 25000, 0, 0, 4130001, 1, 1), - (4, 1072123, 45, 1, 25000, 0, 0, 4130001, 1, 1), - (4, 1072124, 45, 1, 25000, 0, 0, 4130001, 1, 1), - (4, 1072125, 45, 1, 25000, 0, 0, 4130001, 1, 1), - (4, 1072144, 55, 1, 32500, 0, 0, 4130001, 1, 1), - (4, 1072145, 55, 1, 32500, 0, 0, 4130001, 1, 1), - (4, 1072146, 55, 1, 32500, 0, 0, 4130001, 1, 1), - (4, 1072164, 65, 1, 45000, 0, 0, 4130001, 1, 1), - (4, 1072165, 65, 1, 45000, 0, 0, 4130001, 1, 1), - (4, 1072166, 65, 1, 45000, 0, 0, 4130001, 1, 1), - (4, 1072167, 65, 1, 45000, 0, 0, 4130001, 1, 1), - (4, 1072182, 75, 2, 77000, 0, 0, 4130001, 1, 2), - (4, 1072183, 75, 2, 77000, 0, 0, 4130001, 1, 2), - (4, 1072184, 75, 2, 77000, 0, 0, 4130001, 1, 2), - (4, 1072185, 75, 2, 77000, 0, 0, 4130001, 1, 2), - (4, 1072203, 85, 2, 98000, 0, 0, 4130001, 1, 2), - (4, 1072204, 85, 2, 98000, 0, 0, 4130001, 1, 2), - (4, 1072205, 85, 2, 98000, 0, 0, 4130001, 1, 2), - (4, 1072227, 95, 2, 119000, 0, 0, 4130001, 1, 2), - (4, 1072228, 95, 2, 119000, 0, 0, 4130001, 1, 2), - (4, 1072229, 95, 2, 119000, 0, 0, 4130001, 1, 2), - (4, 1072269, 105, 3, 180000, 0, 0, 4130001, 1, 3), - (4, 1072363, 115, 3, 200000, 0, 0, 4130001, 1, 3), - (4, 1072357, 115, 3, 200000, 0, 0, 4130001, 1, 3), - (4, 1082083, 45, 1, 52500, 0, 0, 4130000, 1, 1), - (4, 1082084, 45, 1, 42500, 0, 0, 4130000, 1, 1), - (4, 1082085, 45, 1, 47500, 0, 0, 4130000, 1, 1), - (4, 1082089, 55, 1, 55000, 0, 0, 4130000, 1, 1), - (4, 1082090, 55, 1, 60000, 0, 0, 4130000, 1, 1), - (4, 1082091, 55, 1, 65000, 0, 0, 4130000, 1, 1), - (4, 1082106, 65, 1, 70000, 0, 0, 4130000, 1, 1), - (4, 1082107, 65, 1, 75000, 0, 0, 4130000, 1, 1), - (4, 1082108, 65, 1, 80000, 0, 0, 4130000, 1, 1), - (4, 1082109, 75, 2, 140000, 0, 0, 4130000, 1, 2), - (4, 1082110, 75, 2, 143500, 0, 0, 4130000, 1, 2), - (4, 1082111, 75, 2, 143500, 0, 0, 4130000, 1, 2), - (4, 1082112, 75, 2, 147000, 0, 0, 4130000, 1, 2), - (4, 1082125, 85, 2, 161000, 0, 0, 4130000, 1, 2), - (4, 1082126, 85, 2, 164500, 0, 0, 4130000, 1, 2), - (4, 1082127, 85, 2, 168000, 0, 0, 4130000, 1, 2), - (4, 1082158, 95, 2, 182000, 0, 0, 4130000, 1, 2), - (4, 1082159, 95, 2, 185500, 0, 0, 4130000, 1, 2), - (4, 1082160, 95, 2, 189000, 0, 0, 4130000, 1, 2), - (4, 1082163, 105, 3, 300000, 0, 0, 4130000, 1, 3), - (4, 1082241, 115, 3, 330000, 0, 0, 4130000, 1, 3), - (4, 1082236, 115, 3, 330000, 0, 0, 4130000, 1, 3), - (4, 1452008, 45, 1, 100000, 0, 0, 4130012, 1, 1), - (4, 1462007, 45, 1, 85000, 0, 0, 4130013, 1, 1), - (4, 1452004, 55, 1, 125000, 0, 0, 4130012, 1, 1), - (4, 1462008, 55, 1, 120000, 0, 0, 4130013, 1, 1), - (4, 1452009, 65, 1, 150000, 0, 0, 4130012, 1, 1), - (4, 1452010, 65, 1, 150000, 0, 0, 4130012, 1, 1), - (4, 1452011, 65, 1, 150000, 0, 0, 4130012, 1, 1), - (4, 1462009, 65, 1, 150000, 0, 0, 4130013, 1, 1), - (4, 1452012, 75, 2, 245000, 0, 0, 4130012, 1, 2), - (4, 1452013, 75, 2, 245000, 0, 0, 4130012, 1, 2), - (4, 1452014, 75, 2, 245000, 0, 0, 4130012, 1, 2), - (4, 1452015, 75, 2, 245000, 0, 0, 4130012, 1, 2), - (4, 1462010, 75, 2, 245000, 0, 0, 4130013, 1, 2), - (4, 1462011, 75, 2, 245000, 0, 0, 4130013, 1, 2), - (4, 1462012, 75, 2, 245000, 0, 0, 4130013, 1, 2), - (4, 1462013, 75, 2, 245000, 0, 0, 4130013, 1, 2), - (4, 1452017, 85, 2, 280000, 0, 0, 4130012, 1, 2), - (4, 1462018, 85, 2, 280000, 0, 0, 4130013, 1, 2), - (4, 1452019, 95, 2, 315000, 0, 0, 4130012, 1, 2), - (4, 1452020, 95, 2, 315000, 0, 0, 4130012, 1, 2), - (4, 1452021, 95, 2, 315000, 0, 0, 4130012, 1, 2), - (4, 1462015, 95, 2, 315000, 0, 0, 4130013, 1, 2), - (4, 1462016, 95, 2, 315000, 0, 0, 4130013, 1, 2), - (4, 1462017, 95, 2, 315000, 0, 0, 4130013, 1, 2), - (4, 1452044, 105, 3, 500000, 0, 0, 4130012, 1, 3), - (4, 1462039, 105, 3, 500000, 0, 0, 4130013, 1, 3), - (4, 1452059, 115, 3, 550000, 0, 0, 4130012, 1, 3), - (4, 1462051, 115, 3, 550000, 0, 0, 4130013, 1, 3), - (4, 1452057, 115, 3, 550000, 0, 0, 4130012, 1, 3), - (4, 1462050, 115, 3, 550000, 0, 0, 4130013, 1, 3), - (8, 1002207, 45, 1, 20000, 0, 0, 4130018, 1, 1), - (8, 1002208, 45, 1, 20000, 0, 0, 4130018, 1, 1), - (8, 1002209, 45, 1, 20000, 0, 0, 4130018, 1, 1), - (8, 1002210, 45, 1, 20000, 0, 0, 4130018, 1, 1), - (8, 1002247, 55, 1, 27500, 0, 0, 4130018, 1, 1), - (8, 1002248, 55, 1, 27500, 0, 0, 4130018, 1, 1), - (8, 1002249, 55, 1, 27500, 0, 0, 4130018, 1, 1), - (8, 1002281, 65, 1, 42500, 0, 0, 4130018, 1, 1), - (8, 1002282, 65, 1, 42500, 0, 0, 4130018, 1, 1), - (8, 1002283, 65, 1, 42500, 0, 0, 4130018, 1, 1), - (8, 1002284, 65, 1, 42500, 0, 0, 4130018, 1, 1), - (8, 1002285, 65, 1, 42500, 0, 0, 4130018, 1, 1), - (8, 1002327, 75, 2, 70000, 0, 0, 4130018, 1, 2), - (8, 1002328, 75, 2, 70000, 0, 0, 4130018, 1, 2), - (8, 1002329, 75, 2, 70000, 0, 0, 4130018, 1, 2), - (8, 1002330, 75, 2, 70000, 0, 0, 4130018, 1, 2), - (8, 1002323, 85, 2, 80500, 0, 0, 4130018, 1, 2), - (8, 1002324, 85, 2, 80500, 0, 0, 4130018, 1, 2), - (8, 1002325, 85, 2, 80500, 0, 0, 4130018, 1, 2), - (8, 1002326, 85, 2, 80500, 0, 0, 4130018, 1, 2), - (8, 1002380, 95, 2, 91000, 0, 0, 4130018, 1, 2), - (8, 1002381, 95, 2, 91000, 0, 0, 4130018, 1, 2), - (8, 1002382, 95, 2, 91000, 0, 0, 4130018, 1, 2), - (8, 1002383, 95, 2, 91000, 0, 0, 4130018, 1, 2), - (8, 1002550, 105, 3, 150000, 0, 0, 4130018, 1, 3), - (8, 1002793, 115, 3, 190000, 0, 0, 4130018, 1, 3), - (8, 1002779, 115, 3, 190000, 0, 0, 4130018, 1, 3), - (8, 1040094, 45, 1, 37500, 0, 0, 4130019, 1, 1), - (8, 1040095, 45, 1, 37500, 0, 0, 4130019, 1, 1), - (8, 1040096, 45, 1, 37500, 0, 0, 4130019, 1, 1), - (8, 1040097, 45, 1, 37500, 0, 0, 4130019, 1, 1), - (8, 1041077, 45, 1, 37500, 0, 0, 4130019, 1, 1), - (8, 1041078, 45, 1, 37500, 0, 0, 4130019, 1, 1), - (8, 1041079, 45, 1, 37500, 0, 0, 4130019, 1, 1), - (8, 1041080, 45, 1, 37500, 0, 0, 4130019, 1, 1), - (8, 1040098, 55, 1, 45000, 0, 0, 4130019, 1, 1), - (8, 1040099, 55, 1, 45000, 0, 0, 4130019, 1, 1), - (8, 1040100, 55, 1, 45000, 0, 0, 4130019, 1, 1), - (8, 1041094, 55, 1, 45000, 0, 0, 4130019, 1, 1), - (8, 1041095, 55, 1, 45000, 0, 0, 4130019, 1, 1), - (8, 1041096, 55, 1, 45000, 0, 0, 4130019, 1, 1), - (8, 1040105, 65, 1, 50000, 0, 0, 4130019, 1, 1), - (8, 1040106, 65, 1, 50000, 0, 0, 4130019, 1, 1), - (8, 1040107, 65, 1, 50000, 0, 0, 4130019, 1, 1), - (8, 1041100, 65, 1, 50000, 0, 0, 4130019, 1, 1), - (8, 1041101, 65, 1, 50000, 0, 0, 4130019, 1, 1), - (8, 1041102, 65, 1, 50000, 0, 0, 4130019, 1, 1), - (8, 1041103, 65, 1, 50000, 0, 0, 4130019, 1, 1), - (8, 1040108, 75, 2, 98000, 0, 0, 4130019, 1, 2), - (8, 1040109, 75, 2, 98000, 0, 0, 4130019, 1, 2), - (8, 1040110, 75, 2, 98000, 0, 0, 4130019, 1, 2), - (8, 1041105, 75, 2, 98000, 0, 0, 4130019, 1, 2), - (8, 1041106, 75, 2, 98000, 0, 0, 4130019, 1, 2), - (8, 1041107, 75, 2, 98000, 0, 0, 4130019, 1, 2), - (8, 1040115, 85, 2, 126000, 0, 0, 4130019, 1, 2), - (8, 1040116, 85, 2, 126000, 0, 0, 4130019, 1, 2), - (8, 1040117, 85, 2, 126000, 0, 0, 4130019, 1, 2), - (8, 1040118, 85, 2, 126000, 0, 0, 4130019, 1, 2), - (8, 1041115, 85, 2, 126000, 0, 0, 4130019, 1, 2), - (8, 1041116, 85, 2, 126000, 0, 0, 4130019, 1, 2), - (8, 1041117, 85, 2, 126000, 0, 0, 4130019, 1, 2), - (8, 1041118, 85, 2, 126000, 0, 0, 4130019, 1, 2), - (8, 1060083, 45, 1, 30000, 0, 0, 4130020, 1, 1), - (8, 1060084, 45, 1, 30000, 0, 0, 4130020, 1, 1), - (8, 1060085, 45, 1, 30000, 0, 0, 4130020, 1, 1), - (8, 1060086, 45, 1, 30000, 0, 0, 4130020, 1, 1), - (8, 1061076, 45, 1, 30000, 0, 0, 4130020, 1, 1), - (8, 1061077, 45, 1, 30000, 0, 0, 4130020, 1, 1), - (8, 1061078, 45, 1, 30000, 0, 0, 4130020, 1, 1), - (8, 1061079, 45, 1, 30000, 0, 0, 4130020, 1, 1), - (8, 1060087, 55, 1, 37500, 0, 0, 4130020, 1, 1), - (8, 1060088, 55, 1, 37500, 0, 0, 4130020, 1, 1), - (8, 1060089, 55, 1, 37500, 0, 0, 4130020, 1, 1), - (8, 1061093, 55, 1, 37500, 0, 0, 4130020, 1, 1), - (8, 1061094, 55, 1, 37500, 0, 0, 4130020, 1, 1), - (8, 1061095, 55, 1, 37500, 0, 0, 4130020, 1, 1), - (8, 1060093, 65, 1, 45000, 0, 0, 4130020, 1, 1), - (8, 1060094, 65, 1, 45000, 0, 0, 4130020, 1, 1), - (8, 1060095, 65, 1, 45000, 0, 0, 4130020, 1, 1), - (8, 1061099, 65, 1, 45000, 0, 0, 4130020, 1, 1), - (8, 1061100, 65, 1, 45000, 0, 0, 4130020, 1, 1), - (8, 1061101, 65, 1, 45000, 0, 0, 4130020, 1, 1), - (8, 1061102, 65, 1, 45000, 0, 0, 4130020, 1, 1), - (8, 1060097, 75, 2, 84000, 0, 0, 4130020, 1, 2), - (8, 1060098, 75, 2, 84000, 0, 0, 4130020, 1, 2), - (8, 1060099, 75, 2, 84000, 0, 0, 4130020, 1, 2), - (8, 1061104, 75, 2, 84000, 0, 0, 4130020, 1, 2), - (8, 1061105, 75, 2, 84000, 0, 0, 4130020, 1, 2), - (8, 1061106, 75, 2, 84000, 0, 0, 4130020, 1, 2), - (8, 1060104, 85, 2, 112000, 0, 0, 4130020, 1, 2), - (8, 1060105, 85, 2, 112000, 0, 0, 4130020, 1, 2), - (8, 1060106, 85, 2, 112000, 0, 0, 4130020, 1, 2), - (8, 1060107, 85, 2, 112000, 0, 0, 4130020, 1, 2), - (8, 1061114, 85, 2, 112000, 0, 0, 4130020, 1, 2), - (8, 1061115, 85, 2, 112000, 0, 0, 4130020, 1, 2), - (8, 1061116, 85, 2, 112000, 0, 0, 4130020, 1, 2), - (8, 1061117, 85, 2, 112000, 0, 0, 4130020, 1, 2), - (8, 1050096, 95, 2, 168000, 0, 0, 4130021, 1, 2), - (8, 1050097, 95, 2, 168000, 0, 0, 4130021, 1, 2), - (8, 1050098, 95, 2, 168000, 0, 0, 4130021, 1, 2), - (8, 1050099, 95, 2, 168000, 0, 0, 4130021, 1, 2), - (8, 1051090, 95, 2, 168000, 0, 0, 4130021, 1, 2), - (8, 1051091, 95, 2, 168000, 0, 0, 4130021, 1, 2), - (8, 1051092, 95, 2, 168000, 0, 0, 4130021, 1, 2), - (8, 1051093, 95, 2, 168000, 0, 0, 4130021, 1, 2), - (8, 1052072, 105, 3, 300000, 0, 0, 4130021, 1, 3), - (8, 1052163, 115, 3, 360000, 0, 0, 4130021, 1, 3), - (8, 1052158, 115, 3, 360000, 0, 0, 4130021, 1, 3), - (8, 1072128, 45, 1, 25000, 0, 0, 4130001, 1, 1), - (8, 1072129, 45, 1, 25000, 0, 0, 4130001, 1, 1), - (8, 1072130, 45, 1, 25000, 0, 0, 4130001, 1, 1), - (8, 1072131, 45, 1, 25000, 0, 0, 4130001, 1, 1), - (8, 1072150, 55, 1, 32500, 0, 0, 4130001, 1, 1), - (8, 1072151, 55, 1, 32500, 0, 0, 4130001, 1, 1), - (8, 1072152, 55, 1, 35000, 0, 0, 4130001, 1, 1), - (8, 1072161, 65, 1, 45000, 0, 0, 4130001, 1, 1), - (8, 1072162, 65, 1, 45000, 0, 0, 4130001, 1, 1), - (8, 1072163, 65, 1, 45000, 0, 0, 4130001, 1, 1), - (8, 1072172, 75, 2, 77000, 0, 0, 4130001, 1, 2), - (8, 1072173, 75, 2, 77000, 0, 0, 4130001, 1, 2), - (8, 1072174, 75, 2, 77000, 0, 0, 4130001, 1, 2), - (8, 1072192, 85, 2, 98000, 0, 0, 4130001, 1, 2), - (8, 1072193, 85, 2, 98000, 0, 0, 4130001, 1, 2), - (8, 1072194, 85, 2, 98000, 0, 0, 4130001, 1, 2), - (8, 1072195, 85, 2, 98000, 0, 0, 4130001, 1, 2), - (8, 1072213, 95, 2, 119000, 0, 0, 4130001, 1, 2), - (8, 1072214, 95, 2, 119000, 0, 0, 4130001, 1, 2), - (8, 1072215, 95, 2, 119000, 0, 0, 4130001, 1, 2), - (8, 1072216, 95, 2, 119000, 0, 0, 4130001, 1, 2), - (8, 1072272, 105, 3, 195000, 0, 0, 4130001, 1, 3), - (8, 1072364, 115, 3, 225000, 0, 0, 4130001, 1, 3), - (8, 1072358, 115, 3, 225000, 0, 0, 4130001, 1, 3), - (8, 1082065, 45, 1, 42500, 0, 0, 4130000, 1, 1), - (8, 1082066, 45, 1, 47500, 0, 0, 4130000, 1, 1), - (8, 1082067, 45, 1, 45000, 0, 0, 4130000, 1, 1), - (8, 1082092, 55, 1, 55000, 0, 0, 4130000, 1, 1), - (8, 1082093, 55, 1, 60000, 0, 0, 4130000, 1, 1), - (8, 1082094, 55, 1, 65000, 0, 0, 4130000, 1, 1), - (8, 1082095, 65, 1, 75000, 0, 0, 4130000, 1, 1), - (8, 1082096, 65, 1, 80000, 0, 0, 4130000, 1, 1), - (8, 1082097, 65, 1, 85000, 0, 0, 4130000, 1, 1), - (8, 1082118, 75, 2, 140000, 0, 0, 4130000, 1, 2), - (8, 1082119, 75, 2, 143500, 0, 0, 4130000, 1, 2), - (8, 1082120, 75, 2, 147000, 0, 0, 4130000, 1, 2), - (8, 1082142, 85, 2, 150500, 0, 0, 4130000, 1, 2), - (8, 1082143, 85, 2, 150500, 0, 0, 4130000, 1, 2), - (8, 1082144, 85, 2, 150500, 0, 0, 4130000, 1, 2), - (8, 1082135, 95, 2, 182000, 0, 0, 4130000, 1, 2), - (8, 1082136, 95, 2, 185500, 0, 0, 4130000, 1, 2), - (8, 1082137, 95, 2, 185500, 0, 0, 4130000, 1, 2), - (8, 1082138, 95, 2, 189000, 0, 0, 4130000, 1, 2), - (8, 1082167, 105, 3, 300000, 0, 0, 4130000, 1, 3), - (8, 1082242, 115, 3, 330000, 0, 0, 4130000, 1, 3), - (8, 1082237, 115, 3, 330000, 0, 0, 4130000, 1, 3), - (8, 1092059, 115, 3, 350000, 0, 0, 4130022, 1, 3), - (8, 1332003, 45, 1, 110000, 0, 0, 4130014, 1, 1), - (8, 1472018, 45, 1, 50000, 0, 0, 4130015, 1, 1), - (8, 1472019, 45, 1, 52500, 0, 0, 4130015, 1, 1), - (8, 1472020, 45, 1, 52500, 0, 0, 4130015, 1, 1), - (8, 1472021, 45, 1, 55000, 0, 0, 4130015, 1, 1), - (8, 1332016, 45, 1, 110000, 0, 0, 4130014, 1, 1), - (8, 1332015, 55, 1, 125000, 0, 0, 4130014, 1, 1), - (8, 1472022, 55, 1, 125000, 0, 0, 4130015, 1, 1), - (8, 1472023, 55, 1, 127500, 0, 0, 4130015, 1, 1), - (8, 1472024, 55, 1, 127500, 0, 0, 4130015, 1, 1), - (8, 1472025, 55, 1, 130000, 0, 0, 4130015, 1, 1), - (8, 1332017, 55, 1, 125000, 0, 0, 4130014, 1, 1), - (8, 1332018, 65, 1, 140000, 0, 0, 4130014, 1, 1), - (8, 1472026, 65, 1, 150000, 0, 0, 4130015, 1, 1), - (8, 1472027, 65, 1, 152500, 0, 0, 4130015, 1, 1), - (8, 1472028, 65, 1, 152500, 0, 0, 4130015, 1, 1), - (8, 1472029, 65, 1, 155000, 0, 0, 4130015, 1, 1), - (8, 1332019, 65, 1, 140000, 0, 0, 4130014, 1, 1), - (8, 1472031, 75, 2, 280000, 0, 0, 4130015, 1, 2), - (8, 1332022, 75, 2, 217000, 0, 0, 4130014, 1, 2), - (8, 1332023, 75, 2, 217000, 0, 0, 4130014, 1, 2), - (8, 1332027, 85, 2, 238000, 0, 0, 4130014, 1, 2), - (8, 1472033, 85, 2, 315000, 0, 0, 4130015, 1, 2), - (8, 1332026, 85, 2, 238000, 0, 0, 4130014, 1, 2), - (8, 1332052, 95, 2, 280000, 0, 0, 4130014, 1, 2), - (8, 1472053, 95, 2, 357000, 0, 0, 4130015, 1, 2), - (8, 1332051, 95, 2, 280000, 0, 0, 4130014, 1, 2), - (8, 1332050, 105, 3, 450000, 0, 0, 4130014, 1, 3), - (8, 1472051, 105, 3, 570000, 0, 0, 4130015, 1, 3), - (8, 1472052, 105, 3, 570000, 0, 0, 4130015, 1, 3), - (8, 1332049, 105, 3, 450000, 0, 0, 4130014, 1, 3), - (8, 1332075, 115, 3, 500000, 0, 0, 4130014, 1, 3), - (8, 1332076, 115, 3, 500000, 0, 0, 4130014, 1, 3), - (8, 1472071, 115, 3, 630000, 0, 0, 4130015, 1, 3), - (8, 1332073, 115, 3, 500000, 0, 0, 4130014, 1, 3), - (8, 1332074, 115, 3, 510000, 0, 0, 4130014, 1, 3), - (8, 1472068, 115, 3, 630000, 0, 0, 4130015, 1, 3), - (16, 1002631, 45, 1, 20000, 0, 0, 4130018, 1, 1), - (16, 1002634, 55, 1, 27500, 0, 0, 4130018, 1, 1), - (16, 1002637, 65, 1, 42500, 0, 0, 4130018, 1, 1), - (16, 1002640, 75, 2, 70000, 0, 0, 4130018, 1, 2), - (16, 1002643, 85, 2, 80500, 0, 0, 4130018, 1, 2), - (16, 1002646, 95, 2, 91000, 0, 0, 4130018, 1, 2), - (16, 1002649, 105, 3, 150000, 0, 0, 4130018, 1, 3), - (16, 1002794, 115, 3, 170000, 0, 0, 4130018, 1, 3), - (16, 1002780, 115, 3, 170000, 0, 0, 4130018, 1, 3), - (16, 1052116, 45, 1, 47500, 0, 0, 4130021, 1, 1), - (16, 1052119, 55, 1, 50000, 0, 0, 4130021, 1, 1), - (16, 1052122, 65, 1, 57500, 0, 0, 4130021, 1, 1), - (16, 1052125, 75, 2, 126000, 0, 0, 4130021, 1, 2), - (16, 1052128, 85, 2, 140000, 0, 0, 4130021, 1, 2), - (16, 1052131, 95, 2, 168000, 0, 0, 4130021, 1, 2), - (16, 1052134, 105, 3, 300000, 0, 0, 4130021, 1, 3), - (16, 1052164, 115, 3, 360000, 0, 0, 4130021, 1, 3), - (16, 1052159, 115, 3, 360000, 0, 0, 4130021, 1, 3), - (16, 1072303, 45, 1, 25000, 0, 0, 4130001, 1, 1), - (16, 1072306, 55, 1, 32500, 0, 0, 4130001, 1, 1), - (16, 1072309, 65, 1, 45000, 0, 0, 4130001, 1, 1), - (16, 1072312, 75, 2, 77000, 0, 0, 4130001, 1, 2), - (16, 1072315, 85, 2, 98000, 0, 0, 4130001, 1, 2), - (16, 1072318, 95, 2, 119000, 0, 0, 4130001, 1, 2), - (16, 1072321, 105, 3, 180000, 0, 0, 4130001, 1, 3), - (16, 1072365, 115, 3, 200000, 0, 0, 4130001, 1, 3), - (16, 1072359, 115, 3, 200000, 0, 0, 4130001, 1, 3), - (16, 1082198, 45, 1, 42500, 0, 0, 4130000, 1, 1), - (16, 1082201, 55, 1, 55000, 0, 0, 4130000, 1, 1), - (16, 1082204, 65, 1, 75000, 0, 0, 4130000, 1, 1), - (16, 1082207, 75, 2, 140000, 0, 0, 4130000, 1, 2), - (16, 1082210, 85, 2, 161000, 0, 0, 4130000, 1, 2), - (16, 1082213, 95, 2, 185500, 0, 0, 4130000, 1, 2), - (16, 1082216, 105, 3, 300000, 0, 0, 4130000, 1, 3), - (16, 1082243, 115, 3, 335000, 0, 0, 4130000, 1, 3), - (16, 1082238, 115, 3, 335000, 0, 0, 4130000, 1, 3), - (16, 1482007, 45, 1, 65000, 0, 0, 4130016, 1, 1), - (16, 1492007, 45, 1, 70000, 0, 0, 4130017, 1, 1), - (16, 1482008, 55, 1, 120000, 0, 0, 4130016, 1, 1), - (16, 1492008, 55, 1, 125000, 0, 0, 4130017, 1, 1), - (16, 1482009, 65, 1, 150000, 0, 0, 4130016, 1, 1), - (16, 1492009, 65, 1, 155000, 0, 0, 4130017, 1, 1), - (16, 1482010, 75, 2, 245000, 0, 0, 4130016, 1, 2), - (16, 1492010, 75, 2, 245000, 0, 0, 4130017, 1, 2), - (16, 1482011, 85, 2, 273000, 0, 0, 4130016, 1, 2), - (16, 1492011, 85, 2, 280000, 0, 0, 4130017, 1, 2), - (16, 1482012, 95, 2, 308000, 0, 0, 4130016, 1, 2), - (16, 1492012, 95, 2, 315000, 0, 0, 4130017, 1, 2), - (16, 1482013, 105, 3, 510000, 0, 0, 4130016, 1, 3), - (16, 1492013, 105, 3, 520000, 0, 0, 4130017, 1, 3), - (16, 1482024, 115, 3, 560000, 0, 0, 4130016, 1, 3), - (16, 1492025, 115, 3, 570000, 0, 0, 4130017, 1, 3), - (16, 1482023, 115, 3, 560000, 0, 0, 4130016, 1, 3), - (16, 1492023, 115, 3, 570000, 0, 0, 4130017, 1, 3); + (0, 2041058, 50, 1, 55000, 0, 1122013, 0, 1, 0), + (0, 2040727, 50, 1, 55000, 0, 1122013, 0, 1, 0), + (1, 1002028, 45, 1, 55000, 0, 0, 4130018, 1, 1), + (1, 1002085, 45, 1, 50000, 0, 0, 4130018, 1, 1), + (1, 1002086, 45, 1, 41000, 0, 0, 4130018, 1, 1), + (1, 1002022, 50, 1, 60000, 0, 0, 4130018, 1, 1), + (1, 1002100, 50, 1, 60000, 0, 0, 4130018, 1, 1), + (1, 1002101, 50, 1, 60000, 0, 0, 4130018, 1, 1), + (1, 1002029, 55, 1, 82000, 0, 0, 4130018, 1, 1), + (1, 1002084, 55, 1, 82000, 0, 0, 4130018, 1, 1), + (1, 1002030, 65, 1, 93000, 0, 0, 4130018, 1, 1), + (1, 1002094, 65, 1, 93000, 0, 0, 4130018, 1, 1), + (1, 1002095, 65, 1, 93000, 0, 0, 4130018, 1, 1), + (1, 1002338, 75, 2, 146000, 0, 0, 4130018, 1, 2), + (1, 1002339, 75, 2, 146000, 0, 0, 4130018, 1, 2), + (1, 1002340, 75, 2, 146000, 0, 0, 4130018, 1, 2), + (1, 1002528, 85, 2, 161000, 0, 0, 4130018, 1, 2), + (1, 1002529, 85, 2, 161000, 0, 0, 4130018, 1, 2), + (1, 1002530, 85, 2, 161000, 0, 0, 4130018, 1, 2), + (1, 1002531, 85, 2, 161000, 0, 0, 4130018, 1, 2), + (1, 1002532, 85, 2, 161000, 0, 0, 4130018, 1, 2), + (1, 1002377, 95, 2, 184000, 0, 0, 4130018, 1, 2), + (1, 1002378, 95, 2, 184000, 0, 0, 4130018, 1, 2), + (1, 1002379, 95, 2, 184000, 0, 0, 4130018, 1, 2), + (1, 1002551, 105, 3, 308000, 0, 0, 4130018, 1, 3), + (1, 1002790, 115, 3, 352000, 0, 0, 4130018, 1, 3), + (1, 1002776, 115, 3, 352000, 0, 0, 4130018, 1, 3), + (1, 1040087, 45, 1, 41000, 0, 0, 4130019, 1, 1), + (1, 1040088, 45, 1, 41000, 0, 0, 4130019, 1, 1), + (1, 1040089, 45, 1, 41000, 0, 0, 4130019, 1, 1), + (1, 1041087, 45, 1, 41000, 0, 0, 4130019, 1, 1), + (1, 1041088, 45, 1, 41000, 0, 0, 4130019, 1, 1), + (1, 1041089, 45, 1, 41000, 0, 0, 4130019, 1, 1), + (1, 1040090, 55, 1, 50000, 0, 0, 4130019, 1, 1), + (1, 1040091, 55, 1, 50000, 0, 0, 4130019, 1, 1), + (1, 1040092, 55, 1, 50000, 0, 0, 4130019, 1, 1), + (1, 1040093, 55, 1, 50000, 0, 0, 4130019, 1, 1), + (1, 1041091, 55, 1, 50000, 0, 0, 4130019, 1, 1), + (1, 1041092, 55, 1, 50000, 0, 0, 4130019, 1, 1), + (1, 1041093, 55, 1, 50000, 0, 0, 4130019, 1, 1), + (1, 1040102, 65, 1, 55000, 0, 0, 4130019, 1, 1), + (1, 1040103, 65, 1, 55000, 0, 0, 4130019, 1, 1), + (1, 1040104, 65, 1, 55000, 0, 0, 4130019, 1, 1), + (1, 1041097, 65, 1, 55000, 0, 0, 4130019, 1, 1), + (1, 1041098, 65, 1, 55000, 0, 0, 4130019, 1, 1), + (1, 1041099, 65, 1, 55000, 0, 0, 4130019, 1, 1), + (1, 1040111, 85, 2, 123000, 0, 0, 4130019, 1, 2), + (1, 1040112, 85, 2, 123000, 0, 0, 4130019, 1, 2), + (1, 1040113, 85, 2, 123000, 0, 0, 4130019, 1, 2), + (1, 1041119, 85, 2, 146000, 0, 0, 4130019, 1, 2), + (1, 1041120, 85, 2, 146000, 0, 0, 4130019, 1, 2), + (1, 1041121, 85, 2, 146000, 0, 0, 4130019, 1, 2), + (1, 1040120, 95, 2, 153000, 0, 0, 4130019, 1, 2), + (1, 1040121, 95, 2, 153000, 0, 0, 4130019, 1, 2), + (1, 1040122, 95, 2, 153000, 0, 0, 4130019, 1, 2), + (1, 1041122, 95, 2, 153000, 0, 0, 4130019, 1, 2), + (1, 1041123, 95, 2, 153000, 0, 0, 4130019, 1, 2), + (1, 1041124, 95, 2, 153000, 0, 0, 4130019, 1, 2), + (1, 1060076, 45, 1, 33000, 0, 0, 4130020, 1, 1), + (1, 1060077, 45, 1, 33000, 0, 0, 4130020, 1, 1), + (1, 1060078, 45, 1, 33000, 0, 0, 4130020, 1, 1), + (1, 1061086, 45, 1, 33000, 0, 0, 4130020, 1, 1), + (1, 1061087, 45, 1, 33000, 0, 0, 4130020, 1, 1), + (1, 1061088, 45, 1, 33000, 0, 0, 4130020, 1, 1), + (1, 1060079, 55, 1, 41000, 0, 0, 4130020, 1, 1), + (1, 1060080, 55, 1, 41000, 0, 0, 4130020, 1, 1), + (1, 1060081, 55, 1, 41000, 0, 0, 4130020, 1, 1), + (1, 1060082, 55, 1, 41000, 0, 0, 4130020, 1, 1), + (1, 1061090, 55, 1, 41000, 0, 0, 4130020, 1, 1), + (1, 1061091, 55, 1, 41000, 0, 0, 4130020, 1, 1), + (1, 1061092, 55, 1, 41000, 0, 0, 4130020, 1, 1), + (1, 1060090, 65, 1, 50000, 0, 0, 4130020, 1, 1), + (1, 1060091, 65, 1, 50000, 0, 0, 4130020, 1, 1), + (1, 1060092, 65, 1, 50000, 0, 0, 4130020, 1, 1), + (1, 1061096, 65, 1, 50000, 0, 0, 4130020, 1, 1), + (1, 1061097, 65, 1, 50000, 0, 0, 4130020, 1, 1), + (1, 1061098, 65, 1, 50000, 0, 0, 4130020, 1, 1), + (1, 1060100, 85, 2, 107000, 0, 0, 4130020, 1, 2), + (1, 1060101, 85, 2, 107000, 0, 0, 4130020, 1, 2), + (1, 1060102, 85, 2, 107000, 0, 0, 4130020, 1, 2), + (1, 1061118, 85, 2, 130000, 0, 0, 4130020, 1, 2), + (1, 1061119, 85, 2, 130000, 0, 0, 4130020, 1, 2), + (1, 1061120, 85, 2, 130000, 0, 0, 4130020, 1, 2), + (1, 1060109, 95, 2, 138000, 0, 0, 4130020, 1, 2), + (1, 1060110, 95, 2, 138000, 0, 0, 4130020, 1, 2), + (1, 1060111, 95, 2, 138000, 0, 0, 4130020, 1, 2), + (1, 1061121, 95, 2, 138000, 0, 0, 4130020, 1, 2), + (1, 1061122, 95, 2, 138000, 0, 0, 4130020, 1, 2), + (1, 1061123, 95, 2, 138000, 0, 0, 4130020, 1, 2), + (1, 1050080, 75, 2, 138000, 0, 0, 4130021, 1, 2), + (1, 1050081, 75, 2, 138000, 0, 0, 4130021, 1, 2), + (1, 1050082, 75, 2, 138000, 0, 0, 4130021, 1, 2), + (1, 1050083, 75, 2, 138000, 0, 0, 4130021, 1, 2), + (1, 1051077, 75, 2, 138000, 0, 0, 4130021, 1, 2), + (1, 1051078, 75, 2, 138000, 0, 0, 4130021, 1, 2), + (1, 1051079, 75, 2, 138000, 0, 0, 4130021, 1, 2), + (1, 1051080, 75, 2, 138000, 0, 0, 4130021, 1, 2), + (1, 1052075, 105, 3, 352000, 0, 0, 4130021, 1, 3), + (1, 1052160, 115, 3, 418000, 0, 0, 4130021, 1, 3), + (1, 1052155, 115, 3, 418000, 0, 0, 4130021, 1, 3), + (1, 1072132, 45, 1, 30000, 0, 0, 4130001, 1, 1), + (1, 1072133, 45, 1, 30000, 0, 0, 4130001, 1, 1), + (1, 1072134, 45, 1, 30000, 0, 0, 4130001, 1, 1), + (1, 1072135, 45, 1, 30000, 0, 0, 4130001, 1, 1), + (1, 1072147, 55, 1, 39000, 0, 0, 4130001, 1, 1), + (1, 1072148, 55, 1, 39000, 0, 0, 4130001, 1, 1), + (1, 1072149, 55, 1, 39000, 0, 0, 4130001, 1, 1), + (1, 1072154, 65, 1, 47000, 0, 0, 4130001, 1, 1), + (1, 1072155, 65, 1, 47000, 0, 0, 4130001, 1, 1), + (1, 1072156, 65, 1, 47000, 0, 0, 4130001, 1, 1), + (1, 1072210, 75, 2, 84000, 0, 0, 4130001, 1, 2), + (1, 1072211, 75, 2, 84000, 0, 0, 4130001, 1, 2), + (1, 1072212, 75, 2, 84000, 0, 0, 4130001, 1, 2), + (1, 1072196, 85, 2, 115000, 0, 0, 4130001, 1, 2), + (1, 1072197, 85, 2, 115000, 0, 0, 4130001, 1, 2), + (1, 1072198, 85, 2, 115000, 0, 0, 4130001, 1, 2), + (1, 1072220, 95, 2, 138000, 0, 0, 4130001, 1, 2), + (1, 1072221, 95, 2, 138000, 0, 0, 4130001, 1, 2), + (1, 1072222, 95, 2, 138000, 0, 0, 4130001, 1, 2), + (1, 1072273, 105, 3, 231000, 0, 0, 4130001, 1, 3), + (1, 1072361, 115, 3, 264000, 0, 0, 4130001, 1, 3), + (1, 1072355, 115, 3, 264000, 0, 0, 4130001, 1, 3), + (1, 1082009, 45, 1, 50000, 0, 0, 4130000, 1, 1), + (1, 1082010, 45, 1, 55000, 0, 0, 4130000, 1, 1), + (1, 1082011, 45, 1, 60000, 0, 0, 4130000, 1, 1), + (1, 1082059, 55, 1, 66000, 0, 0, 4130000, 1, 1), + (1, 1082060, 55, 1, 71000, 0, 0, 4130000, 1, 1), + (1, 1082061, 55, 1, 77000, 0, 0, 4130000, 1, 1), + (1, 1082103, 65, 1, 82000, 0, 0, 4130000, 1, 1), + (1, 1082104, 65, 1, 88000, 0, 0, 4130000, 1, 1), + (1, 1082105, 65, 1, 93000, 0, 0, 4130000, 1, 1), + (1, 1082114, 75, 2, 161000, 0, 0, 4130000, 1, 2), + (1, 1082115, 75, 2, 165000, 0, 0, 4130000, 1, 2), + (1, 1082116, 75, 2, 168000, 0, 0, 4130000, 1, 2), + (1, 1082117, 75, 2, 168000, 0, 0, 4130000, 1, 2), + (1, 1082128, 85, 2, 184000, 0, 0, 4130000, 1, 2), + (1, 1082129, 85, 2, 188000, 0, 0, 4130000, 1, 2), + (1, 1082130, 85, 2, 191000, 0, 0, 4130000, 1, 2), + (1, 1082139, 95, 2, 207000, 0, 0, 4130000, 1, 2), + (1, 1082140, 95, 2, 210000, 0, 0, 4130000, 1, 2), + (1, 1082141, 95, 2, 214000, 0, 0, 4130000, 1, 2), + (1, 1082168, 105, 3, 330000, 0, 0, 4130000, 1, 3), + (1, 1082239, 115, 3, 363000, 0, 0, 4130000, 1, 3), + (1, 1082234, 115, 3, 363000, 0, 0, 4130000, 1, 3), + (1, 1092004, 45, 1, 82000, 0, 0, 4130022, 1, 1), + (1, 1092009, 55, 1, 99000, 0, 0, 4130022, 1, 1), + (1, 1092010, 55, 1, 104000, 0, 0, 4130022, 1, 1), + (1, 1092011, 55, 1, 104000, 0, 0, 4130022, 1, 1), + (1, 1092015, 65, 1, 110000, 0, 0, 4130022, 1, 1), + (1, 1092016, 65, 1, 115000, 0, 0, 4130022, 1, 1), + (1, 1092017, 65, 1, 115000, 0, 0, 4130022, 1, 1), + (1, 1092023, 75, 2, 168000, 0, 0, 4130022, 1, 2), + (1, 1092024, 75, 2, 176000, 0, 0, 4130022, 1, 2), + (1, 1092025, 75, 2, 176000, 0, 0, 4130022, 1, 2), + (1, 1092026, 85, 2, 184000, 0, 0, 4130022, 1, 2), + (1, 1092027, 85, 2, 191000, 0, 0, 4130022, 1, 2), + (1, 1092028, 85, 2, 191000, 0, 0, 4130022, 1, 2), + (1, 1092036, 95, 2, 199000, 0, 0, 4130022, 1, 2), + (1, 1092037, 95, 2, 207000, 0, 0, 4130022, 1, 2), + (1, 1092038, 95, 2, 214000, 0, 0, 4130022, 1, 2), + (1, 1092060, 105, 3, 231000, 0, 0, 4130022, 1, 3), + (1, 1092058, 115, 3, 385000, 0, 0, 4130022, 1, 3), + (1, 1302010, 45, 1, 66000, 0, 0, 4130002, 1, 1), + (1, 1312008, 45, 1, 77000, 0, 0, 4130003, 1, 1), + (1, 1322017, 45, 1, 77000, 0, 0, 4130004, 1, 1), + (1, 1402003, 45, 1, 110000, 0, 0, 4130005, 1, 1), + (1, 1412003, 45, 1, 77000, 0, 0, 4130006, 1, 1), + (1, 1422005, 45, 1, 82000, 0, 0, 4130007, 1, 1), + (1, 1432004, 45, 1, 82000, 0, 0, 4130008, 1, 1), + (1, 1442005, 45, 1, 82000, 0, 0, 4130009, 1, 1), + (1, 1302011, 55, 1, 82000, 0, 0, 4130002, 1, 1), + (1, 1312009, 55, 1, 104000, 0, 0, 4130003, 1, 1), + (1, 1322018, 55, 1, 104000, 0, 0, 4130004, 1, 1), + (1, 1402011, 55, 1, 126000, 0, 0, 4130005, 1, 1), + (1, 1412007, 55, 1, 104000, 0, 0, 4130006, 1, 1), + (1, 1422009, 55, 1, 104000, 0, 0, 4130007, 1, 1), + (1, 1432006, 55, 1, 104000, 0, 0, 4130008, 1, 1), + (1, 1442010, 55, 1, 137000, 0, 0, 4130009, 1, 1), + (1, 1302012, 65, 1, 137000, 0, 0, 4130002, 1, 1), + (1, 1312010, 65, 1, 165000, 0, 0, 4130003, 1, 1), + (1, 1322019, 65, 1, 137000, 0, 0, 4130004, 1, 1), + (1, 1402012, 65, 1, 143000, 0, 0, 4130005, 1, 1), + (1, 1412008, 65, 1, 137000, 0, 0, 4130006, 1, 1), + (1, 1422010, 65, 1, 137000, 0, 0, 4130007, 1, 1), + (1, 1432007, 65, 1, 137000, 0, 0, 4130008, 1, 1), + (1, 1442008, 65, 1, 165000, 0, 0, 4130009, 1, 1), + (1, 1322020, 70, 1, 165000, 0, 0, 4130004, 1, 1), + (1, 1302018, 75, 2, 231000, 0, 0, 4130002, 1, 2), + (1, 1312011, 75, 2, 269000, 0, 0, 4130003, 1, 2), + (1, 1322028, 75, 2, 269000, 0, 0, 4130004, 1, 2), + (1, 1402004, 75, 2, 231000, 0, 0, 4130005, 1, 2), + (1, 1402015, 75, 2, 231000, 0, 0, 4130005, 1, 2), + (1, 1412009, 75, 2, 238000, 0, 0, 4130006, 1, 2), + (1, 1422012, 75, 2, 238000, 0, 0, 4130007, 1, 2), + (1, 1432010, 75, 2, 238000, 0, 0, 4130008, 1, 2), + (1, 1442019, 75, 2, 269000, 0, 0, 4130009, 1, 2), + (1, 1302023, 85, 2, 269000, 0, 0, 4130002, 1, 2), + (1, 1312015, 85, 2, 308000, 0, 0, 4130003, 1, 2), + (1, 1322029, 85, 2, 308000, 0, 0, 4130004, 1, 2), + (1, 1402005, 85, 2, 308000, 0, 0, 4130005, 1, 2), + (1, 1402016, 85, 2, 308000, 0, 0, 4130005, 1, 2), + (1, 1412010, 85, 2, 284000, 0, 0, 4130006, 1, 2), + (1, 1422013, 85, 2, 284000, 0, 0, 4130007, 1, 2), + (1, 1432011, 85, 2, 284000, 0, 0, 4130008, 1, 2), + (1, 1442020, 85, 2, 346000, 0, 0, 4130009, 1, 2), + (1, 1302056, 95, 2, 369000, 0, 0, 4130002, 1, 2), + (1, 1312030, 95, 2, 361000, 0, 0, 4130003, 1, 2), + (1, 1322045, 95, 2, 361000, 0, 0, 4130004, 1, 2), + (1, 1402035, 95, 2, 361000, 0, 0, 4130005, 1, 2), + (1, 1412021, 95, 2, 377000, 0, 0, 4130006, 1, 2), + (1, 1422027, 95, 2, 346000, 0, 0, 4130007, 1, 2), + (1, 1432030, 95, 2, 377000, 0, 0, 4130008, 1, 2), + (1, 1442044, 95, 2, 361000, 0, 0, 4130009, 1, 2), + (1, 1302059, 105, 3, 605000, 0, 0, 4130002, 1, 3), + (1, 1312031, 105, 3, 583000, 0, 0, 4130003, 1, 3), + (1, 1322052, 105, 3, 528000, 0, 0, 4130004, 1, 3), + (1, 1402036, 105, 3, 605000, 0, 0, 4130005, 1, 3), + (1, 1412026, 105, 3, 572000, 0, 0, 4130006, 1, 3), + (1, 1422028, 105, 3, 561000, 0, 0, 4130007, 1, 3), + (1, 1432038, 105, 3, 583000, 0, 0, 4130008, 1, 3), + (1, 1442045, 105, 3, 627000, 0, 0, 4130009, 1, 3), + (1, 1302086, 115, 3, 748000, 0, 0, 4130002, 1, 3), + (1, 1312038, 115, 3, 638000, 0, 0, 4130003, 1, 3), + (1, 1322061, 115, 3, 539000, 0, 0, 4130004, 1, 3), + (1, 1402047, 115, 3, 715000, 0, 0, 4130005, 1, 3), + (1, 1412034, 115, 3, 715000, 0, 0, 4130006, 1, 3), + (1, 1422038, 115, 3, 616000, 0, 0, 4130007, 1, 3), + (1, 1432049, 115, 3, 627000, 0, 0, 4130008, 1, 3), + (1, 1442067, 115, 3, 682000, 0, 0, 4130009, 1, 3), + (1, 1302081, 115, 3, 748000, 0, 0, 4130002, 1, 3), + (1, 1312037, 115, 3, 638000, 0, 0, 4130003, 1, 3), + (1, 1322060, 115, 3, 539000, 0, 0, 4130004, 1, 3), + (1, 1402046, 115, 3, 715000, 0, 0, 4130005, 1, 3), + (1, 1412033, 115, 3, 715000, 0, 0, 4130006, 1, 3), + (1, 1422037, 115, 3, 616000, 0, 0, 4130007, 1, 3), + (1, 1432047, 115, 3, 627000, 0, 0, 4130008, 1, 3), + (1, 1442063, 115, 3, 682000, 0, 0, 4130009, 1, 3), + (2, 1002215, 45, 1, 22000, 0, 0, 4130018, 1, 1), + (2, 1002216, 45, 1, 22000, 0, 0, 4130018, 1, 1), + (2, 1002217, 45, 1, 22000, 0, 0, 4130018, 1, 1), + (2, 1002218, 45, 1, 22000, 0, 0, 4130018, 1, 1), + (2, 1002242, 55, 1, 28000, 0, 0, 4130018, 1, 1), + (2, 1002243, 55, 1, 28000, 0, 0, 4130018, 1, 1), + (2, 1002244, 55, 1, 28000, 0, 0, 4130018, 1, 1), + (2, 1002245, 55, 1, 28000, 0, 0, 4130018, 1, 1), + (2, 1002246, 55, 1, 28000, 0, 0, 4130018, 1, 1), + (2, 1002252, 65, 1, 44000, 0, 0, 4130018, 1, 1), + (2, 1002253, 65, 1, 44000, 0, 0, 4130018, 1, 1), + (2, 1002254, 65, 1, 44000, 0, 0, 4130018, 1, 1), + (2, 1002271, 75, 2, 73000, 0, 0, 4130018, 1, 2), + (2, 1002272, 75, 2, 73000, 0, 0, 4130018, 1, 2), + (2, 1002273, 75, 2, 73000, 0, 0, 4130018, 1, 2), + (2, 1002274, 75, 2, 73000, 0, 0, 4130018, 1, 2), + (2, 1002363, 85, 2, 84000, 0, 0, 4130018, 1, 2), + (2, 1002364, 85, 2, 84000, 0, 0, 4130018, 1, 2), + (2, 1002365, 85, 2, 84000, 0, 0, 4130018, 1, 2), + (2, 1002366, 85, 2, 84000, 0, 0, 4130018, 1, 2), + (2, 1002398, 95, 2, 96000, 0, 0, 4130018, 1, 2), + (2, 1002399, 95, 2, 96000, 0, 0, 4130018, 1, 2), + (2, 1002400, 95, 2, 96000, 0, 0, 4130018, 1, 2), + (2, 1002401, 95, 2, 96000, 0, 0, 4130018, 1, 2), + (2, 1002773, 105, 3, 165000, 0, 0, 4130018, 1, 3), + (2, 1002791, 115, 3, 187000, 0, 0, 4130018, 1, 3), + (2, 1002777, 115, 3, 187000, 0, 0, 4130018, 1, 3), + (2, 1050045, 43, 1, 50000, 0, 0, 4130021, 1, 1), + (2, 1050046, 43, 1, 50000, 0, 0, 4130021, 1, 1), + (2, 1050047, 43, 1, 50000, 0, 0, 4130021, 1, 1), + (2, 1050048, 43, 1, 50000, 0, 0, 4130021, 1, 1), + (2, 1050049, 43, 1, 50000, 0, 0, 4130021, 1, 1), + (2, 1051030, 43, 1, 50000, 0, 0, 4130021, 1, 1), + (2, 1051031, 43, 1, 50000, 0, 0, 4130021, 1, 1), + (2, 1051032, 43, 1, 50000, 0, 0, 4130021, 1, 1), + (2, 1051033, 43, 1, 50000, 0, 0, 4130021, 1, 1), + (2, 1051034, 43, 1, 50000, 0, 0, 4130021, 1, 1), + (2, 1050053, 53, 1, 55000, 0, 0, 4130021, 1, 1), + (2, 1050054, 53, 1, 55000, 0, 0, 4130021, 1, 1), + (2, 1050055, 53, 1, 55000, 0, 0, 4130021, 1, 1), + (2, 1050056, 53, 1, 55000, 0, 0, 4130021, 1, 1), + (2, 1051044, 53, 1, 55000, 0, 0, 4130021, 1, 1), + (2, 1051045, 53, 1, 55000, 0, 0, 4130021, 1, 1), + (2, 1051046, 53, 1, 55000, 0, 0, 4130021, 1, 1), + (2, 1051047, 53, 1, 55000, 0, 0, 4130021, 1, 1), + (2, 1050067, 63, 1, 66000, 0, 0, 4130021, 1, 1), + (2, 1050068, 63, 1, 66000, 0, 0, 4130021, 1, 1), + (2, 1050069, 63, 1, 66000, 0, 0, 4130021, 1, 1), + (2, 1050070, 63, 1, 66000, 0, 0, 4130021, 1, 1), + (2, 1051052, 63, 1, 66000, 0, 0, 4130021, 1, 1), + (2, 1051053, 63, 1, 66000, 0, 0, 4130021, 1, 1), + (2, 1051054, 63, 1, 66000, 0, 0, 4130021, 1, 1), + (2, 1051055, 63, 1, 66000, 0, 0, 4130021, 1, 1), + (2, 1050072, 73, 2, 123000, 0, 0, 4130021, 1, 2), + (2, 1050073, 73, 2, 123000, 0, 0, 4130021, 1, 2), + (2, 1050074, 73, 2, 123000, 0, 0, 4130021, 1, 2), + (2, 1051056, 73, 2, 123000, 0, 0, 4130021, 1, 2), + (2, 1051057, 73, 2, 123000, 0, 0, 4130021, 1, 2), + (2, 1051058, 73, 2, 123000, 0, 0, 4130021, 1, 2), + (2, 1050092, 83, 2, 153000, 0, 0, 4130021, 1, 2), + (2, 1050093, 83, 2, 153000, 0, 0, 4130021, 1, 2), + (2, 1050094, 83, 2, 153000, 0, 0, 4130021, 1, 2), + (2, 1050095, 83, 2, 153000, 0, 0, 4130021, 1, 2), + (2, 1051094, 83, 2, 153000, 0, 0, 4130021, 1, 2), + (2, 1051095, 83, 2, 153000, 0, 0, 4130021, 1, 2), + (2, 1051096, 83, 2, 153000, 0, 0, 4130021, 1, 2), + (2, 1051097, 83, 2, 153000, 0, 0, 4130021, 1, 2), + (2, 1050102, 93, 2, 184000, 0, 0, 4130021, 1, 2), + (2, 1050103, 93, 2, 184000, 0, 0, 4130021, 1, 2), + (2, 1050104, 93, 2, 184000, 0, 0, 4130021, 1, 2), + (2, 1050105, 93, 2, 184000, 0, 0, 4130021, 1, 2), + (2, 1051101, 93, 2, 184000, 0, 0, 4130021, 1, 2), + (2, 1051102, 93, 2, 184000, 0, 0, 4130021, 1, 2), + (2, 1051103, 93, 2, 184000, 0, 0, 4130021, 1, 2), + (2, 1051104, 93, 2, 184000, 0, 0, 4130021, 1, 2), + (2, 1052076, 103, 3, 319000, 0, 0, 4130021, 1, 3), + (2, 1052161, 115, 3, 374000, 0, 0, 4130021, 1, 3), + (2, 1052156, 115, 3, 374000, 0, 0, 4130021, 1, 3), + (2, 1072140, 45, 1, 30000, 0, 0, 4130001, 1, 1), + (2, 1072141, 45, 1, 30000, 0, 0, 4130001, 1, 1), + (2, 1072142, 45, 1, 30000, 0, 0, 4130001, 1, 1), + (2, 1072143, 45, 1, 30000, 0, 0, 4130001, 1, 1), + (2, 1072136, 55, 1, 33000, 0, 0, 4130001, 1, 1), + (2, 1072137, 55, 1, 33000, 0, 0, 4130001, 1, 1), + (2, 1072138, 55, 1, 33000, 0, 0, 4130001, 1, 1), + (2, 1072139, 55, 1, 33000, 0, 0, 4130001, 1, 1), + (2, 1072157, 65, 1, 44000, 0, 0, 4130001, 1, 1), + (2, 1072158, 65, 1, 44000, 0, 0, 4130001, 1, 1), + (2, 1072159, 65, 1, 44000, 0, 0, 4130001, 1, 1), + (2, 1072160, 65, 1, 44000, 0, 0, 4130001, 1, 1), + (2, 1072177, 75, 2, 77000, 0, 0, 4130001, 1, 2), + (2, 1072178, 75, 2, 77000, 0, 0, 4130001, 1, 2), + (2, 1072179, 75, 2, 77000, 0, 0, 4130001, 1, 2), + (2, 1072206, 85, 2, 92000, 0, 0, 4130001, 1, 2), + (2, 1072207, 85, 2, 92000, 0, 0, 4130001, 1, 2), + (2, 1072208, 85, 2, 92000, 0, 0, 4130001, 1, 2), + (2, 1072209, 85, 2, 92000, 0, 0, 4130001, 1, 2), + (2, 1072223, 95, 2, 107000, 0, 0, 4130001, 1, 2), + (2, 1072224, 95, 2, 107000, 0, 0, 4130001, 1, 2), + (2, 1072225, 95, 2, 107000, 0, 0, 4130001, 1, 2), + (2, 1072226, 95, 2, 107000, 0, 0, 4130001, 1, 2), + (2, 1072268, 105, 3, 198000, 0, 0, 4130001, 1, 3), + (2, 1072362, 115, 3, 242000, 0, 0, 4130001, 1, 3), + (2, 1072356, 115, 3, 242000, 0, 0, 4130001, 1, 3), + (2, 1082080, 45, 1, 55000, 0, 0, 4130000, 1, 1), + (2, 1082081, 45, 1, 44000, 0, 0, 4130000, 1, 1), + (2, 1082082, 45, 1, 50000, 0, 0, 4130000, 1, 1), + (2, 1082086, 55, 1, 58000, 0, 0, 4130000, 1, 1), + (2, 1082087, 55, 1, 63000, 0, 0, 4130000, 1, 1), + (2, 1082088, 55, 1, 69000, 0, 0, 4130000, 1, 1), + (2, 1082098, 65, 1, 77000, 0, 0, 4130000, 1, 1), + (2, 1082099, 65, 1, 80000, 0, 0, 4130000, 1, 1), + (2, 1082100, 65, 1, 82000, 0, 0, 4130000, 1, 1), + (2, 1082121, 75, 2, 153000, 0, 0, 4130000, 1, 2), + (2, 1082122, 75, 2, 157000, 0, 0, 4130000, 1, 2), + (2, 1082123, 75, 2, 161000, 0, 0, 4130000, 1, 2), + (2, 1082131, 85, 2, 176000, 0, 0, 4130000, 1, 2), + (2, 1082132, 85, 2, 180000, 0, 0, 4130000, 1, 2), + (2, 1082133, 85, 2, 180000, 0, 0, 4130000, 1, 2), + (2, 1082134, 85, 2, 184000, 0, 0, 4130000, 1, 2), + (2, 1082151, 95, 2, 199000, 0, 0, 4130000, 1, 2), + (2, 1082152, 95, 2, 203000, 0, 0, 4130000, 1, 2), + (2, 1082153, 95, 2, 203000, 0, 0, 4130000, 1, 2), + (2, 1082154, 95, 2, 207000, 0, 0, 4130000, 1, 2), + (2, 1082164, 105, 3, 330000, 0, 0, 4130000, 1, 3), + (2, 1082240, 115, 3, 363000, 0, 0, 4130000, 1, 3), + (2, 1082235, 115, 3, 363000, 0, 0, 4130000, 1, 3), + (2, 1092057, 115, 3, 385000, 0, 0, 4130022, 1, 3), + (2, 1372007, 43, 1, 110000, 0, 0, 4130010, 1, 1), + (2, 1382006, 50, 1, 82000, 0, 0, 4130011, 1, 1), + (2, 1372014, 53, 1, 126000, 0, 0, 4130010, 1, 1), + (2, 1382007, 60, 1, 110000, 0, 0, 4130011, 1, 1), + (2, 1372015, 63, 1, 143000, 0, 0, 4130010, 1, 1), + (2, 1382010, 70, 1, 137000, 0, 0, 4130011, 1, 1), + (2, 1372016, 73, 2, 223000, 0, 0, 4130010, 1, 2), + (2, 1382008, 80, 2, 238000, 0, 0, 4130011, 1, 2), + (2, 1372009, 83, 2, 250000, 0, 0, 4130010, 1, 2), + (2, 1382035, 90, 2, 292000, 0, 0, 4130011, 1, 2), + (2, 1372010, 93, 2, 277000, 0, 0, 4130010, 1, 2), + (2, 1372032, 103, 3, 506000, 0, 0, 4130010, 1, 3), + (2, 1382036, 105, 3, 517000, 0, 0, 4130011, 1, 3), + (2, 1372045, 115, 3, 561000, 0, 0, 4130010, 1, 3), + (2, 1382059, 115, 3, 572000, 0, 0, 4130011, 1, 3), + (2, 1372044, 115, 3, 561000, 0, 0, 4130010, 1, 3), + (2, 1382057, 115, 3, 572000, 0, 0, 4130011, 1, 3), + (4, 1002211, 45, 1, 22000, 0, 0, 4130018, 1, 1), + (4, 1002212, 45, 1, 22000, 0, 0, 4130018, 1, 1), + (4, 1002213, 45, 1, 22000, 0, 0, 4130018, 1, 1), + (4, 1002214, 45, 1, 22000, 0, 0, 4130018, 1, 1), + (4, 1002267, 55, 1, 30000, 0, 0, 4130018, 1, 1), + (4, 1002268, 55, 1, 30000, 0, 0, 4130018, 1, 1), + (4, 1002269, 55, 1, 30000, 0, 0, 4130018, 1, 1), + (4, 1002270, 55, 1, 30000, 0, 0, 4130018, 1, 1), + (4, 1002286, 65, 1, 47000, 0, 0, 4130018, 1, 1), + (4, 1002287, 65, 1, 47000, 0, 0, 4130018, 1, 1), + (4, 1002288, 65, 1, 47000, 0, 0, 4130018, 1, 1), + (4, 1002289, 65, 1, 47000, 0, 0, 4130018, 1, 1), + (4, 1002275, 75, 2, 77000, 0, 0, 4130018, 1, 2), + (4, 1002276, 75, 2, 77000, 0, 0, 4130018, 1, 2), + (4, 1002277, 75, 2, 77000, 0, 0, 4130018, 1, 2), + (4, 1002278, 75, 2, 77000, 0, 0, 4130018, 1, 2), + (4, 1002402, 85, 2, 88000, 0, 0, 4130018, 1, 2), + (4, 1002403, 85, 2, 88000, 0, 0, 4130018, 1, 2), + (4, 1002404, 85, 2, 88000, 0, 0, 4130018, 1, 2), + (4, 1002405, 85, 2, 88000, 0, 0, 4130018, 1, 2), + (4, 1002406, 95, 2, 100000, 0, 0, 4130018, 1, 2), + (4, 1002407, 95, 2, 100000, 0, 0, 4130018, 1, 2), + (4, 1002408, 95, 2, 100000, 0, 0, 4130018, 1, 2), + (4, 1002547, 105, 3, 165000, 0, 0, 4130018, 1, 3), + (4, 1002792, 115, 3, 187000, 0, 0, 4130018, 1, 3), + (4, 1002778, 115, 3, 187000, 0, 0, 4130018, 1, 3), + (4, 1050051, 45, 1, 52000, 0, 0, 4130021, 1, 1), + (4, 1050052, 45, 1, 52000, 0, 0, 4130021, 1, 1), + (4, 1051037, 45, 1, 52000, 0, 0, 4130021, 1, 1), + (4, 1051038, 45, 1, 52000, 0, 0, 4130021, 1, 1), + (4, 1051039, 45, 1, 52000, 0, 0, 4130021, 1, 1), + (4, 1050058, 55, 1, 58000, 0, 0, 4130021, 1, 1), + (4, 1050059, 55, 1, 58000, 0, 0, 4130021, 1, 1), + (4, 1050060, 55, 1, 58000, 0, 0, 4130021, 1, 1), + (4, 1051041, 55, 1, 58000, 0, 0, 4130021, 1, 1), + (4, 1051042, 55, 1, 58000, 0, 0, 4130021, 1, 1), + (4, 1051043, 55, 1, 58000, 0, 0, 4130021, 1, 1), + (4, 1050061, 65, 1, 63000, 0, 0, 4130021, 1, 1), + (4, 1050062, 65, 1, 63000, 0, 0, 4130021, 1, 1), + (4, 1050063, 65, 1, 63000, 0, 0, 4130021, 1, 1), + (4, 1050064, 65, 1, 63000, 0, 0, 4130021, 1, 1), + (4, 1051062, 65, 1, 63000, 0, 0, 4130021, 1, 1), + (4, 1051063, 65, 1, 63000, 0, 0, 4130021, 1, 1), + (4, 1051064, 65, 1, 63000, 0, 0, 4130021, 1, 1), + (4, 1051065, 65, 1, 63000, 0, 0, 4130021, 1, 1), + (4, 1050075, 75, 2, 107000, 0, 0, 4130021, 1, 2), + (4, 1050076, 75, 2, 107000, 0, 0, 4130021, 1, 2), + (4, 1050077, 75, 2, 107000, 0, 0, 4130021, 1, 2), + (4, 1050078, 75, 2, 107000, 0, 0, 4130021, 1, 2), + (4, 1051066, 75, 2, 107000, 0, 0, 4130021, 1, 2), + (4, 1051067, 75, 2, 107000, 0, 0, 4130021, 1, 2), + (4, 1051068, 75, 2, 107000, 0, 0, 4130021, 1, 2), + (4, 1051069, 75, 2, 107000, 0, 0, 4130021, 1, 2), + (4, 1050088, 85, 2, 153000, 0, 0, 4130021, 1, 2), + (4, 1050089, 85, 2, 153000, 0, 0, 4130021, 1, 2), + (4, 1050090, 85, 2, 153000, 0, 0, 4130021, 1, 2), + (4, 1050091, 85, 2, 153000, 0, 0, 4130021, 1, 2), + (4, 1051082, 85, 2, 153000, 0, 0, 4130021, 1, 2), + (4, 1051083, 85, 2, 153000, 0, 0, 4130021, 1, 2), + (4, 1051084, 85, 2, 153000, 0, 0, 4130021, 1, 2), + (4, 1051085, 85, 2, 153000, 0, 0, 4130021, 1, 2), + (4, 1050106, 95, 2, 184000, 0, 0, 4130021, 1, 2), + (4, 1050107, 95, 2, 184000, 0, 0, 4130021, 1, 2), + (4, 1050108, 95, 2, 184000, 0, 0, 4130021, 1, 2), + (4, 1051105, 95, 2, 184000, 0, 0, 4130021, 1, 2), + (4, 1051106, 95, 2, 184000, 0, 0, 4130021, 1, 2), + (4, 1051107, 95, 2, 184000, 0, 0, 4130021, 1, 2), + (4, 1052071, 105, 3, 330000, 0, 0, 4130021, 1, 3), + (4, 1052162, 115, 3, 396000, 0, 0, 4130021, 1, 3), + (4, 1052157, 115, 3, 396000, 0, 0, 4130021, 1, 3), + (4, 1072122, 45, 1, 28000, 0, 0, 4130001, 1, 1), + (4, 1072123, 45, 1, 28000, 0, 0, 4130001, 1, 1), + (4, 1072124, 45, 1, 28000, 0, 0, 4130001, 1, 1), + (4, 1072125, 45, 1, 28000, 0, 0, 4130001, 1, 1), + (4, 1072144, 55, 1, 36000, 0, 0, 4130001, 1, 1), + (4, 1072145, 55, 1, 36000, 0, 0, 4130001, 1, 1), + (4, 1072146, 55, 1, 36000, 0, 0, 4130001, 1, 1), + (4, 1072164, 65, 1, 50000, 0, 0, 4130001, 1, 1), + (4, 1072165, 65, 1, 50000, 0, 0, 4130001, 1, 1), + (4, 1072166, 65, 1, 50000, 0, 0, 4130001, 1, 1), + (4, 1072167, 65, 1, 50000, 0, 0, 4130001, 1, 1), + (4, 1072182, 75, 2, 84000, 0, 0, 4130001, 1, 2), + (4, 1072183, 75, 2, 84000, 0, 0, 4130001, 1, 2), + (4, 1072184, 75, 2, 84000, 0, 0, 4130001, 1, 2), + (4, 1072185, 75, 2, 84000, 0, 0, 4130001, 1, 2), + (4, 1072203, 85, 2, 107000, 0, 0, 4130001, 1, 2), + (4, 1072204, 85, 2, 107000, 0, 0, 4130001, 1, 2), + (4, 1072205, 85, 2, 107000, 0, 0, 4130001, 1, 2), + (4, 1072227, 95, 2, 130000, 0, 0, 4130001, 1, 2), + (4, 1072228, 95, 2, 130000, 0, 0, 4130001, 1, 2), + (4, 1072229, 95, 2, 130000, 0, 0, 4130001, 1, 2), + (4, 1072269, 105, 3, 198000, 0, 0, 4130001, 1, 3), + (4, 1072363, 115, 3, 220000, 0, 0, 4130001, 1, 3), + (4, 1072357, 115, 3, 220000, 0, 0, 4130001, 1, 3), + (4, 1082083, 45, 1, 58000, 0, 0, 4130000, 1, 1), + (4, 1082084, 45, 1, 47000, 0, 0, 4130000, 1, 1), + (4, 1082085, 45, 1, 52000, 0, 0, 4130000, 1, 1), + (4, 1082089, 55, 1, 60000, 0, 0, 4130000, 1, 1), + (4, 1082090, 55, 1, 66000, 0, 0, 4130000, 1, 1), + (4, 1082091, 55, 1, 71000, 0, 0, 4130000, 1, 1), + (4, 1082106, 65, 1, 77000, 0, 0, 4130000, 1, 1), + (4, 1082107, 65, 1, 82000, 0, 0, 4130000, 1, 1), + (4, 1082108, 65, 1, 88000, 0, 0, 4130000, 1, 1), + (4, 1082109, 75, 2, 153000, 0, 0, 4130000, 1, 2), + (4, 1082110, 75, 2, 157000, 0, 0, 4130000, 1, 2), + (4, 1082111, 75, 2, 157000, 0, 0, 4130000, 1, 2), + (4, 1082112, 75, 2, 161000, 0, 0, 4130000, 1, 2), + (4, 1082125, 85, 2, 176000, 0, 0, 4130000, 1, 2), + (4, 1082126, 85, 2, 180000, 0, 0, 4130000, 1, 2), + (4, 1082127, 85, 2, 184000, 0, 0, 4130000, 1, 2), + (4, 1082158, 95, 2, 199000, 0, 0, 4130000, 1, 2), + (4, 1082159, 95, 2, 203000, 0, 0, 4130000, 1, 2), + (4, 1082160, 95, 2, 207000, 0, 0, 4130000, 1, 2), + (4, 1082163, 105, 3, 330000, 0, 0, 4130000, 1, 3), + (4, 1082241, 115, 3, 363000, 0, 0, 4130000, 1, 3), + (4, 1082236, 115, 3, 363000, 0, 0, 4130000, 1, 3), + (4, 1452008, 45, 1, 110000, 0, 0, 4130012, 1, 1), + (4, 1462007, 45, 1, 93000, 0, 0, 4130013, 1, 1), + (4, 1452004, 55, 1, 137000, 0, 0, 4130012, 1, 1), + (4, 1462008, 55, 1, 132000, 0, 0, 4130013, 1, 1), + (4, 1452009, 65, 1, 165000, 0, 0, 4130012, 1, 1), + (4, 1452010, 65, 1, 165000, 0, 0, 4130012, 1, 1), + (4, 1452011, 65, 1, 165000, 0, 0, 4130012, 1, 1), + (4, 1462009, 65, 1, 165000, 0, 0, 4130013, 1, 1), + (4, 1452012, 75, 2, 269000, 0, 0, 4130012, 1, 2), + (4, 1452013, 75, 2, 269000, 0, 0, 4130012, 1, 2), + (4, 1452014, 75, 2, 269000, 0, 0, 4130012, 1, 2), + (4, 1452015, 75, 2, 269000, 0, 0, 4130012, 1, 2), + (4, 1462010, 75, 2, 269000, 0, 0, 4130013, 1, 2), + (4, 1462011, 75, 2, 269000, 0, 0, 4130013, 1, 2), + (4, 1462012, 75, 2, 269000, 0, 0, 4130013, 1, 2), + (4, 1462013, 75, 2, 269000, 0, 0, 4130013, 1, 2), + (4, 1452017, 85, 2, 308000, 0, 0, 4130012, 1, 2), + (4, 1462018, 85, 2, 308000, 0, 0, 4130013, 1, 2), + (4, 1452019, 95, 2, 346000, 0, 0, 4130012, 1, 2), + (4, 1452020, 95, 2, 346000, 0, 0, 4130012, 1, 2), + (4, 1452021, 95, 2, 346000, 0, 0, 4130012, 1, 2), + (4, 1462015, 95, 2, 346000, 0, 0, 4130013, 1, 2), + (4, 1462016, 95, 2, 346000, 0, 0, 4130013, 1, 2), + (4, 1462017, 95, 2, 346000, 0, 0, 4130013, 1, 2), + (4, 1452044, 105, 3, 550000, 0, 0, 4130012, 1, 3), + (4, 1462039, 105, 3, 550000, 0, 0, 4130013, 1, 3), + (4, 1452059, 115, 3, 605000, 0, 0, 4130012, 1, 3), + (4, 1462051, 115, 3, 605000, 0, 0, 4130013, 1, 3), + (4, 1452057, 115, 3, 605000, 0, 0, 4130012, 1, 3), + (4, 1462050, 115, 3, 605000, 0, 0, 4130013, 1, 3), + (8, 1002207, 45, 1, 22000, 0, 0, 4130018, 1, 1), + (8, 1002208, 45, 1, 22000, 0, 0, 4130018, 1, 1), + (8, 1002209, 45, 1, 22000, 0, 0, 4130018, 1, 1), + (8, 1002210, 45, 1, 22000, 0, 0, 4130018, 1, 1), + (8, 1002247, 55, 1, 30000, 0, 0, 4130018, 1, 1), + (8, 1002248, 55, 1, 30000, 0, 0, 4130018, 1, 1), + (8, 1002249, 55, 1, 30000, 0, 0, 4130018, 1, 1), + (8, 1002281, 65, 1, 47000, 0, 0, 4130018, 1, 1), + (8, 1002282, 65, 1, 47000, 0, 0, 4130018, 1, 1), + (8, 1002283, 65, 1, 47000, 0, 0, 4130018, 1, 1), + (8, 1002284, 65, 1, 47000, 0, 0, 4130018, 1, 1), + (8, 1002285, 65, 1, 47000, 0, 0, 4130018, 1, 1), + (8, 1002327, 75, 2, 77000, 0, 0, 4130018, 1, 2), + (8, 1002328, 75, 2, 77000, 0, 0, 4130018, 1, 2), + (8, 1002329, 75, 2, 77000, 0, 0, 4130018, 1, 2), + (8, 1002330, 75, 2, 77000, 0, 0, 4130018, 1, 2), + (8, 1002323, 85, 2, 88000, 0, 0, 4130018, 1, 2), + (8, 1002324, 85, 2, 88000, 0, 0, 4130018, 1, 2), + (8, 1002325, 85, 2, 88000, 0, 0, 4130018, 1, 2), + (8, 1002326, 85, 2, 88000, 0, 0, 4130018, 1, 2), + (8, 1002380, 95, 2, 100000, 0, 0, 4130018, 1, 2), + (8, 1002381, 95, 2, 100000, 0, 0, 4130018, 1, 2), + (8, 1002382, 95, 2, 100000, 0, 0, 4130018, 1, 2), + (8, 1002383, 95, 2, 100000, 0, 0, 4130018, 1, 2), + (8, 1002550, 105, 3, 165000, 0, 0, 4130018, 1, 3), + (8, 1002793, 115, 3, 209000, 0, 0, 4130018, 1, 3), + (8, 1002779, 115, 3, 209000, 0, 0, 4130018, 1, 3), + (8, 1040094, 45, 1, 41000, 0, 0, 4130019, 1, 1), + (8, 1040095, 45, 1, 41000, 0, 0, 4130019, 1, 1), + (8, 1040096, 45, 1, 41000, 0, 0, 4130019, 1, 1), + (8, 1040097, 45, 1, 41000, 0, 0, 4130019, 1, 1), + (8, 1041077, 45, 1, 41000, 0, 0, 4130019, 1, 1), + (8, 1041078, 45, 1, 41000, 0, 0, 4130019, 1, 1), + (8, 1041079, 45, 1, 41000, 0, 0, 4130019, 1, 1), + (8, 1041080, 45, 1, 41000, 0, 0, 4130019, 1, 1), + (8, 1040098, 55, 1, 50000, 0, 0, 4130019, 1, 1), + (8, 1040099, 55, 1, 50000, 0, 0, 4130019, 1, 1), + (8, 1040100, 55, 1, 50000, 0, 0, 4130019, 1, 1), + (8, 1041094, 55, 1, 50000, 0, 0, 4130019, 1, 1), + (8, 1041095, 55, 1, 50000, 0, 0, 4130019, 1, 1), + (8, 1041096, 55, 1, 50000, 0, 0, 4130019, 1, 1), + (8, 1040105, 65, 1, 55000, 0, 0, 4130019, 1, 1), + (8, 1040106, 65, 1, 55000, 0, 0, 4130019, 1, 1), + (8, 1040107, 65, 1, 55000, 0, 0, 4130019, 1, 1), + (8, 1041100, 65, 1, 55000, 0, 0, 4130019, 1, 1), + (8, 1041101, 65, 1, 55000, 0, 0, 4130019, 1, 1), + (8, 1041102, 65, 1, 55000, 0, 0, 4130019, 1, 1), + (8, 1041103, 65, 1, 55000, 0, 0, 4130019, 1, 1), + (8, 1040108, 75, 2, 107000, 0, 0, 4130019, 1, 2), + (8, 1040109, 75, 2, 107000, 0, 0, 4130019, 1, 2), + (8, 1040110, 75, 2, 107000, 0, 0, 4130019, 1, 2), + (8, 1041105, 75, 2, 107000, 0, 0, 4130019, 1, 2), + (8, 1041106, 75, 2, 107000, 0, 0, 4130019, 1, 2), + (8, 1041107, 75, 2, 107000, 0, 0, 4130019, 1, 2), + (8, 1040115, 85, 2, 138000, 0, 0, 4130019, 1, 2), + (8, 1040116, 85, 2, 138000, 0, 0, 4130019, 1, 2), + (8, 1040117, 85, 2, 138000, 0, 0, 4130019, 1, 2), + (8, 1040118, 85, 2, 138000, 0, 0, 4130019, 1, 2), + (8, 1041115, 85, 2, 138000, 0, 0, 4130019, 1, 2), + (8, 1041116, 85, 2, 138000, 0, 0, 4130019, 1, 2), + (8, 1041117, 85, 2, 138000, 0, 0, 4130019, 1, 2), + (8, 1041118, 85, 2, 138000, 0, 0, 4130019, 1, 2), + (8, 1060083, 45, 1, 33000, 0, 0, 4130020, 1, 1), + (8, 1060084, 45, 1, 33000, 0, 0, 4130020, 1, 1), + (8, 1060085, 45, 1, 33000, 0, 0, 4130020, 1, 1), + (8, 1060086, 45, 1, 33000, 0, 0, 4130020, 1, 1), + (8, 1061076, 45, 1, 33000, 0, 0, 4130020, 1, 1), + (8, 1061077, 45, 1, 33000, 0, 0, 4130020, 1, 1), + (8, 1061078, 45, 1, 33000, 0, 0, 4130020, 1, 1), + (8, 1061079, 45, 1, 33000, 0, 0, 4130020, 1, 1), + (8, 1060087, 55, 1, 41000, 0, 0, 4130020, 1, 1), + (8, 1060088, 55, 1, 41000, 0, 0, 4130020, 1, 1), + (8, 1060089, 55, 1, 41000, 0, 0, 4130020, 1, 1), + (8, 1061093, 55, 1, 41000, 0, 0, 4130020, 1, 1), + (8, 1061094, 55, 1, 41000, 0, 0, 4130020, 1, 1), + (8, 1061095, 55, 1, 41000, 0, 0, 4130020, 1, 1), + (8, 1060093, 65, 1, 50000, 0, 0, 4130020, 1, 1), + (8, 1060094, 65, 1, 50000, 0, 0, 4130020, 1, 1), + (8, 1060095, 65, 1, 50000, 0, 0, 4130020, 1, 1), + (8, 1061099, 65, 1, 50000, 0, 0, 4130020, 1, 1), + (8, 1061100, 65, 1, 50000, 0, 0, 4130020, 1, 1), + (8, 1061101, 65, 1, 50000, 0, 0, 4130020, 1, 1), + (8, 1061102, 65, 1, 50000, 0, 0, 4130020, 1, 1), + (8, 1060097, 75, 2, 92000, 0, 0, 4130020, 1, 2), + (8, 1060098, 75, 2, 92000, 0, 0, 4130020, 1, 2), + (8, 1060099, 75, 2, 92000, 0, 0, 4130020, 1, 2), + (8, 1061104, 75, 2, 92000, 0, 0, 4130020, 1, 2), + (8, 1061105, 75, 2, 92000, 0, 0, 4130020, 1, 2), + (8, 1061106, 75, 2, 92000, 0, 0, 4130020, 1, 2), + (8, 1060104, 85, 2, 123000, 0, 0, 4130020, 1, 2), + (8, 1060105, 85, 2, 123000, 0, 0, 4130020, 1, 2), + (8, 1060106, 85, 2, 123000, 0, 0, 4130020, 1, 2), + (8, 1060107, 85, 2, 123000, 0, 0, 4130020, 1, 2), + (8, 1061114, 85, 2, 123000, 0, 0, 4130020, 1, 2), + (8, 1061115, 85, 2, 123000, 0, 0, 4130020, 1, 2), + (8, 1061116, 85, 2, 123000, 0, 0, 4130020, 1, 2), + (8, 1061117, 85, 2, 123000, 0, 0, 4130020, 1, 2), + (8, 1050096, 95, 2, 184000, 0, 0, 4130021, 1, 2), + (8, 1050097, 95, 2, 184000, 0, 0, 4130021, 1, 2), + (8, 1050098, 95, 2, 184000, 0, 0, 4130021, 1, 2), + (8, 1050099, 95, 2, 184000, 0, 0, 4130021, 1, 2), + (8, 1051090, 95, 2, 184000, 0, 0, 4130021, 1, 2), + (8, 1051091, 95, 2, 184000, 0, 0, 4130021, 1, 2), + (8, 1051092, 95, 2, 184000, 0, 0, 4130021, 1, 2), + (8, 1051093, 95, 2, 184000, 0, 0, 4130021, 1, 2), + (8, 1052072, 105, 3, 330000, 0, 0, 4130021, 1, 3), + (8, 1052163, 115, 3, 396000, 0, 0, 4130021, 1, 3), + (8, 1052158, 115, 3, 396000, 0, 0, 4130021, 1, 3), + (8, 1072128, 45, 1, 28000, 0, 0, 4130001, 1, 1), + (8, 1072129, 45, 1, 28000, 0, 0, 4130001, 1, 1), + (8, 1072130, 45, 1, 28000, 0, 0, 4130001, 1, 1), + (8, 1072131, 45, 1, 28000, 0, 0, 4130001, 1, 1), + (8, 1072150, 55, 1, 36000, 0, 0, 4130001, 1, 1), + (8, 1072151, 55, 1, 36000, 0, 0, 4130001, 1, 1), + (8, 1072152, 55, 1, 39000, 0, 0, 4130001, 1, 1), + (8, 1072161, 65, 1, 50000, 0, 0, 4130001, 1, 1), + (8, 1072162, 65, 1, 50000, 0, 0, 4130001, 1, 1), + (8, 1072163, 65, 1, 50000, 0, 0, 4130001, 1, 1), + (8, 1072172, 75, 2, 84000, 0, 0, 4130001, 1, 2), + (8, 1072173, 75, 2, 84000, 0, 0, 4130001, 1, 2), + (8, 1072174, 75, 2, 84000, 0, 0, 4130001, 1, 2), + (8, 1072192, 85, 2, 107000, 0, 0, 4130001, 1, 2), + (8, 1072193, 85, 2, 107000, 0, 0, 4130001, 1, 2), + (8, 1072194, 85, 2, 107000, 0, 0, 4130001, 1, 2), + (8, 1072195, 85, 2, 107000, 0, 0, 4130001, 1, 2), + (8, 1072213, 95, 2, 130000, 0, 0, 4130001, 1, 2), + (8, 1072214, 95, 2, 130000, 0, 0, 4130001, 1, 2), + (8, 1072215, 95, 2, 130000, 0, 0, 4130001, 1, 2), + (8, 1072216, 95, 2, 130000, 0, 0, 4130001, 1, 2), + (8, 1072272, 105, 3, 215000, 0, 0, 4130001, 1, 3), + (8, 1072364, 115, 3, 248000, 0, 0, 4130001, 1, 3), + (8, 1072358, 115, 3, 248000, 0, 0, 4130001, 1, 3), + (8, 1082065, 45, 1, 47000, 0, 0, 4130000, 1, 1), + (8, 1082066, 45, 1, 52000, 0, 0, 4130000, 1, 1), + (8, 1082067, 45, 1, 50000, 0, 0, 4130000, 1, 1), + (8, 1082092, 55, 1, 60000, 0, 0, 4130000, 1, 1), + (8, 1082093, 55, 1, 66000, 0, 0, 4130000, 1, 1), + (8, 1082094, 55, 1, 71000, 0, 0, 4130000, 1, 1), + (8, 1082095, 65, 1, 82000, 0, 0, 4130000, 1, 1), + (8, 1082096, 65, 1, 88000, 0, 0, 4130000, 1, 1), + (8, 1082097, 65, 1, 93000, 0, 0, 4130000, 1, 1), + (8, 1082118, 75, 2, 153000, 0, 0, 4130000, 1, 2), + (8, 1082119, 75, 2, 157000, 0, 0, 4130000, 1, 2), + (8, 1082120, 75, 2, 161000, 0, 0, 4130000, 1, 2), + (8, 1082142, 85, 2, 165000, 0, 0, 4130000, 1, 2), + (8, 1082143, 85, 2, 165000, 0, 0, 4130000, 1, 2), + (8, 1082144, 85, 2, 165000, 0, 0, 4130000, 1, 2), + (8, 1082135, 95, 2, 199000, 0, 0, 4130000, 1, 2), + (8, 1082136, 95, 2, 203000, 0, 0, 4130000, 1, 2), + (8, 1082137, 95, 2, 203000, 0, 0, 4130000, 1, 2), + (8, 1082138, 95, 2, 207000, 0, 0, 4130000, 1, 2), + (8, 1082167, 105, 3, 330000, 0, 0, 4130000, 1, 3), + (8, 1082242, 115, 3, 363000, 0, 0, 4130000, 1, 3), + (8, 1082237, 115, 3, 363000, 0, 0, 4130000, 1, 3), + (8, 1092059, 115, 3, 385000, 0, 0, 4130022, 1, 3), + (8, 1332003, 45, 1, 121000, 0, 0, 4130014, 1, 1), + (8, 1472018, 45, 1, 55000, 0, 0, 4130015, 1, 1), + (8, 1472019, 45, 1, 57000, 0, 0, 4130015, 1, 1), + (8, 1472020, 45, 1, 57000, 0, 0, 4130015, 1, 1), + (8, 1472021, 45, 1, 60000, 0, 0, 4130015, 1, 1), + (8, 1332016, 45, 1, 121000, 0, 0, 4130014, 1, 1), + (8, 1332015, 55, 1, 137000, 0, 0, 4130014, 1, 1), + (8, 1472022, 55, 1, 137000, 0, 0, 4130015, 1, 1), + (8, 1472023, 55, 1, 140000, 0, 0, 4130015, 1, 1), + (8, 1472024, 55, 1, 140000, 0, 0, 4130015, 1, 1), + (8, 1472025, 55, 1, 143000, 0, 0, 4130015, 1, 1), + (8, 1332017, 55, 1, 137000, 0, 0, 4130014, 1, 1), + (8, 1332018, 65, 1, 154000, 0, 0, 4130014, 1, 1), + (8, 1472026, 65, 1, 165000, 0, 0, 4130015, 1, 1), + (8, 1472027, 65, 1, 167000, 0, 0, 4130015, 1, 1), + (8, 1472028, 65, 1, 167000, 0, 0, 4130015, 1, 1), + (8, 1472029, 65, 1, 170000, 0, 0, 4130015, 1, 1), + (8, 1332019, 65, 1, 154000, 0, 0, 4130014, 1, 1), + (8, 1472031, 75, 2, 308000, 0, 0, 4130015, 1, 2), + (8, 1332022, 75, 2, 238000, 0, 0, 4130014, 1, 2), + (8, 1332023, 75, 2, 238000, 0, 0, 4130014, 1, 2), + (8, 1332027, 85, 2, 261000, 0, 0, 4130014, 1, 2), + (8, 1472033, 85, 2, 346000, 0, 0, 4130015, 1, 2), + (8, 1332026, 85, 2, 261000, 0, 0, 4130014, 1, 2), + (8, 1332052, 95, 2, 308000, 0, 0, 4130014, 1, 2), + (8, 1472053, 95, 2, 392000, 0, 0, 4130015, 1, 2), + (8, 1332051, 95, 2, 308000, 0, 0, 4130014, 1, 2), + (8, 1332050, 105, 3, 495000, 0, 0, 4130014, 1, 3), + (8, 1472051, 105, 3, 627000, 0, 0, 4130015, 1, 3), + (8, 1472052, 105, 3, 627000, 0, 0, 4130015, 1, 3), + (8, 1332049, 105, 3, 495000, 0, 0, 4130014, 1, 3), + (8, 1332075, 115, 3, 550000, 0, 0, 4130014, 1, 3), + (8, 1332076, 115, 3, 550000, 0, 0, 4130014, 1, 3), + (8, 1472071, 115, 3, 693000, 0, 0, 4130015, 1, 3), + (8, 1332073, 115, 3, 550000, 0, 0, 4130014, 1, 3), + (8, 1332074, 115, 3, 561000, 0, 0, 4130014, 1, 3), + (8, 1472068, 115, 3, 693000, 0, 0, 4130015, 1, 3), + (16, 1002631, 45, 1, 22000, 0, 0, 4130018, 1, 1), + (16, 1002634, 55, 1, 30000, 0, 0, 4130018, 1, 1), + (16, 1002637, 65, 1, 47000, 0, 0, 4130018, 1, 1), + (16, 1002640, 75, 2, 77000, 0, 0, 4130018, 1, 2), + (16, 1002643, 85, 2, 88000, 0, 0, 4130018, 1, 2), + (16, 1002646, 95, 2, 100000, 0, 0, 4130018, 1, 2), + (16, 1002649, 105, 3, 165000, 0, 0, 4130018, 1, 3), + (16, 1002794, 115, 3, 187000, 0, 0, 4130018, 1, 3), + (16, 1002780, 115, 3, 187000, 0, 0, 4130018, 1, 3), + (16, 1052116, 45, 1, 52000, 0, 0, 4130021, 1, 1), + (16, 1052119, 55, 1, 55000, 0, 0, 4130021, 1, 1), + (16, 1052122, 65, 1, 63000, 0, 0, 4130021, 1, 1), + (16, 1052125, 75, 2, 138000, 0, 0, 4130021, 1, 2), + (16, 1052128, 85, 2, 153000, 0, 0, 4130021, 1, 2), + (16, 1052131, 95, 2, 184000, 0, 0, 4130021, 1, 2), + (16, 1052134, 105, 3, 330000, 0, 0, 4130021, 1, 3), + (16, 1052164, 115, 3, 396000, 0, 0, 4130021, 1, 3), + (16, 1052159, 115, 3, 396000, 0, 0, 4130021, 1, 3), + (16, 1072303, 45, 1, 28000, 0, 0, 4130001, 1, 1), + (16, 1072306, 55, 1, 36000, 0, 0, 4130001, 1, 1), + (16, 1072309, 65, 1, 50000, 0, 0, 4130001, 1, 1), + (16, 1072312, 75, 2, 84000, 0, 0, 4130001, 1, 2), + (16, 1072315, 85, 2, 107000, 0, 0, 4130001, 1, 2), + (16, 1072318, 95, 2, 130000, 0, 0, 4130001, 1, 2), + (16, 1072321, 105, 3, 198000, 0, 0, 4130001, 1, 3), + (16, 1072365, 115, 3, 220000, 0, 0, 4130001, 1, 3), + (16, 1072359, 115, 3, 220000, 0, 0, 4130001, 1, 3), + (16, 1082198, 45, 1, 47000, 0, 0, 4130000, 1, 1), + (16, 1082201, 55, 1, 60000, 0, 0, 4130000, 1, 1), + (16, 1082204, 65, 1, 82000, 0, 0, 4130000, 1, 1), + (16, 1082207, 75, 2, 153000, 0, 0, 4130000, 1, 2), + (16, 1082210, 85, 2, 176000, 0, 0, 4130000, 1, 2), + (16, 1082213, 95, 2, 203000, 0, 0, 4130000, 1, 2), + (16, 1082216, 105, 3, 330000, 0, 0, 4130000, 1, 3), + (16, 1082243, 115, 3, 369000, 0, 0, 4130000, 1, 3), + (16, 1082238, 115, 3, 369000, 0, 0, 4130000, 1, 3), + (16, 1482007, 45, 1, 71000, 0, 0, 4130016, 1, 1), + (16, 1492007, 45, 1, 77000, 0, 0, 4130017, 1, 1), + (16, 1482008, 55, 1, 132000, 0, 0, 4130016, 1, 1), + (16, 1492008, 55, 1, 137000, 0, 0, 4130017, 1, 1), + (16, 1482009, 65, 1, 165000, 0, 0, 4130016, 1, 1), + (16, 1492009, 65, 1, 170000, 0, 0, 4130017, 1, 1), + (16, 1482010, 75, 2, 269000, 0, 0, 4130016, 1, 2), + (16, 1492010, 75, 2, 269000, 0, 0, 4130017, 1, 2), + (16, 1482011, 85, 2, 300000, 0, 0, 4130016, 1, 2), + (16, 1492011, 85, 2, 308000, 0, 0, 4130017, 1, 2), + (16, 1482012, 95, 2, 338000, 0, 0, 4130016, 1, 2), + (16, 1492012, 95, 2, 346000, 0, 0, 4130017, 1, 2), + (16, 1482013, 105, 3, 561000, 0, 0, 4130016, 1, 3), + (16, 1492013, 105, 3, 572000, 0, 0, 4130017, 1, 3), + (16, 1482024, 115, 3, 616000, 0, 0, 4130016, 1, 3), + (16, 1492025, 115, 3, 627000, 0, 0, 4130017, 1, 3), + (16, 1482023, 115, 3, 616000, 0, 0, 4130016, 1, 3), + (16, 1492023, 115, 3, 627000, 0, 0, 4130017, 1, 3); INSERT IGNORE INTO `makerrecipedata` (`itemid`, `req_item`, `count`) VALUES (4250000, 4021007, 1), @@ -2858,4 +2858,3 @@ INSERT IGNORE INTO `makerrewarddata` (`itemid`, `rewardid`, `quantity`, `prob`) (4251302, 4251301, 9, 4), (4251402, 4251402, 1, 1), (4251402, 4251401, 9, 4); - diff --git a/tools/MapleSkillMakerFetcher/src/mapleskillmakerfetcher/MapleItemInformationProvider.java b/tools/MapleSkillMakerFetcher/src/mapleskillmakerfetcher/MapleItemInformationProvider.java new file mode 100644 index 0000000000..da2278abd5 --- /dev/null +++ b/tools/MapleSkillMakerFetcher/src/mapleskillmakerfetcher/MapleItemInformationProvider.java @@ -0,0 +1,201 @@ +/* + This file is part of the OdinMS Maple Story Server + Copyright (C) 2008 Patrick Huy + Matthias Butz + Jan Christian Meyer + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as + published by the Free Software Foundation version 3 as published by + the Free Software Foundation. You may not use, modify or distribute + this program under any other version of the GNU Affero General Public + License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . + */ +package mapleskillmakerfetcher; + +import java.io.File; +import java.util.HashMap; +import java.util.LinkedHashMap; +import java.util.Map; + +import provider.MapleData; +import provider.MapleDataDirectoryEntry; +import provider.MapleDataFileEntry; +import provider.MapleDataProvider; +import provider.MapleDataProviderFactory; +import provider.MapleDataTool; +/** + * + * @author Ronan + * + */ +public class MapleItemInformationProvider { + private final static String wzPath = "../../wz"; + + private static MapleItemInformationProvider instance = null; + protected MapleDataProvider itemData; + protected MapleDataProvider equipData; + protected MapleDataProvider stringData; + protected MapleData eqpStringData; + + protected Map> equipStatsCache = new HashMap<>(); + protected Map nameCache = new HashMap<>(); + + private MapleItemInformationProvider() { + itemData = MapleDataProviderFactory.getDataProvider(new File(wzPath + "/Item.wz")); + equipData = MapleDataProviderFactory.getDataProvider(new File(wzPath + "/Character.wz")); + stringData = MapleDataProviderFactory.getDataProvider(new File(wzPath + "/String.wz")); + eqpStringData = stringData.getData("Eqp.img"); + } + + public static MapleItemInformationProvider getInstance() { + if (instance == null) { + instance = new MapleItemInformationProvider(); + } + return instance; + } + + private MapleData getItemData(int itemId) { + MapleData ret = null; + String idStr = "0" + String.valueOf(itemId); + MapleDataDirectoryEntry root = itemData.getRoot(); + for (MapleDataDirectoryEntry topDir : root.getSubdirectories()) { + for (MapleDataFileEntry iFile : topDir.getFiles()) { + if (iFile.getName().equals(idStr.substring(0, 4) + ".img")) { + ret = itemData.getData(topDir.getName() + "/" + iFile.getName()); + if (ret == null) { + return null; + } + ret = ret.getChildByPath(idStr); + return ret; + } else if (iFile.getName().equals(idStr.substring(1) + ".img")) { + return itemData.getData(topDir.getName() + "/" + iFile.getName()); + } + } + } + root = equipData.getRoot(); + for (MapleDataDirectoryEntry topDir : root.getSubdirectories()) { + for (MapleDataFileEntry iFile : topDir.getFiles()) { + if (iFile.getName().equals(idStr + ".img")) { + return equipData.getData(topDir.getName() + "/" + iFile.getName()); + } + } + } + return ret; + } + + public Map getEquipStats(int itemId) { + if (equipStatsCache.containsKey(itemId)) { + return equipStatsCache.get(itemId); + } + Map ret = new LinkedHashMap<>(); + MapleData item = getItemData(itemId); + if (item == null) { + return null; + } + MapleData info = item.getChildByPath("info"); + if (info == null) { + return null; + } + for (MapleData data : info.getChildren()) { + if (data.getName().startsWith("inc")) { + ret.put(data.getName().substring(3), MapleDataTool.getIntConvert(data)); + } + /*else if (data.getName().startsWith("req")) + ret.put(data.getName(), MapleDataTool.getInt(data.getName(), info, 0));*/ + } + ret.put("reqJob", MapleDataTool.getInt("reqJob", info, 0)); + ret.put("reqLevel", MapleDataTool.getInt("reqLevel", info, 0)); + ret.put("reqDEX", MapleDataTool.getInt("reqDEX", info, 0)); + ret.put("reqSTR", MapleDataTool.getInt("reqSTR", info, 0)); + ret.put("reqINT", MapleDataTool.getInt("reqINT", info, 0)); + ret.put("reqLUK", MapleDataTool.getInt("reqLUK", info, 0)); + ret.put("reqPOP", MapleDataTool.getInt("reqPOP", info, 0)); + ret.put("cash", MapleDataTool.getInt("cash", info, 0)); + ret.put("tuc", MapleDataTool.getInt("tuc", info, 0)); + ret.put("cursed", MapleDataTool.getInt("cursed", info, 0)); + ret.put("success", MapleDataTool.getInt("success", info, 0)); + ret.put("fs", MapleDataTool.getInt("fs", info, 0)); + equipStatsCache.put(itemId, ret); + return ret; + } + + private MapleData getStringData(int itemId) { + String cat = "null"; + MapleData theData; + if ((itemId >= 1010000 && itemId < 1040000) || (itemId >= 1122000 && itemId < 1123000) || (itemId >= 1132000 && itemId < 1133000) || (itemId >= 1142000 && itemId < 1143000)) { + theData = eqpStringData; + cat = "Eqp/Accessory"; + } else if (itemId >= 1000000 && itemId < 1010000) { + theData = eqpStringData; + cat = "Eqp/Cap"; + } else if (itemId >= 1102000 && itemId < 1103000) { + theData = eqpStringData; + cat = "Eqp/Cape"; + } else if (itemId >= 1040000 && itemId < 1050000) { + theData = eqpStringData; + cat = "Eqp/Coat"; + } else if (itemId >= 20000 && itemId < 22000) { + theData = eqpStringData; + cat = "Eqp/Face"; + } else if (itemId >= 1080000 && itemId < 1090000) { + theData = eqpStringData; + cat = "Eqp/Glove"; + } else if (itemId >= 30000 && itemId < 35000) { + theData = eqpStringData; + cat = "Eqp/Hair"; + } else if (itemId >= 1050000 && itemId < 1060000) { + theData = eqpStringData; + cat = "Eqp/Longcoat"; + } else if (itemId >= 1060000 && itemId < 1070000) { + theData = eqpStringData; + cat = "Eqp/Pants"; + } else if (itemId >= 1802000 && itemId < 1842000) { + theData = eqpStringData; + cat = "Eqp/PetEquip"; + } else if (itemId >= 1112000 && itemId < 1120000) { + theData = eqpStringData; + cat = "Eqp/Ring"; + } else if (itemId >= 1092000 && itemId < 1100000) { + theData = eqpStringData; + cat = "Eqp/Shield"; + } else if (itemId >= 1070000 && itemId < 1080000) { + theData = eqpStringData; + cat = "Eqp/Shoes"; + } else if (itemId >= 1900000 && itemId < 2000000) { + theData = eqpStringData; + cat = "Eqp/Taming"; + } else if (itemId >= 1300000 && itemId < 1800000) { + theData = eqpStringData; + cat = "Eqp/Weapon"; + } else { + return null; + } + if (cat.equalsIgnoreCase("null")) { + return theData.getChildByPath(String.valueOf(itemId)); + } else { + return theData.getChildByPath(cat + "/" + itemId); + } + } + + public String getName(int itemId) { + if (nameCache.containsKey(itemId)) { + return nameCache.get(itemId); + } + MapleData strings = getStringData(itemId); + if (strings == null) { + return null; + } + String ret = MapleDataTool.getString("name", strings, null); + nameCache.put(itemId, ret); + return ret; + } +} diff --git a/tools/MapleSkillMakerFetcher/src/mapleskillmakerfetcher/MapleMakerItemEntry.java b/tools/MapleSkillMakerFetcher/src/mapleskillmakerfetcher/MapleMakerItemEntry.java index 67c6346d77..e31f2e346e 100644 --- a/tools/MapleSkillMakerFetcher/src/mapleskillmakerfetcher/MapleMakerItemEntry.java +++ b/tools/MapleSkillMakerFetcher/src/mapleskillmakerfetcher/MapleMakerItemEntry.java @@ -46,7 +46,6 @@ public class MapleMakerItemEntry { this.id = id; this.itemid = itemid; this.reqLevel = reqLevel; - //System.out.println("id " + id + "rq" + reqLevel); this.reqMakerLevel = reqMakerLevel; this.reqItem = reqItem; this.reqMeso = reqMeso; diff --git a/tools/MapleSkillMakerFetcher/src/mapleskillmakerfetcher/MapleSkillMakerFetcher.java b/tools/MapleSkillMakerFetcher/src/mapleskillmakerfetcher/MapleSkillMakerFetcher.java index fd4b831d7f..724c08ee3c 100644 --- a/tools/MapleSkillMakerFetcher/src/mapleskillmakerfetcher/MapleSkillMakerFetcher.java +++ b/tools/MapleSkillMakerFetcher/src/mapleskillmakerfetcher/MapleSkillMakerFetcher.java @@ -21,10 +21,9 @@ package mapleskillmakerfetcher; import java.util.ArrayList; import java.util.LinkedList; import java.util.List; +import java.util.Map; import java.io.*; -import static mapleskillmakerfetcher.MapleSkillMakerFetcher.id; - /** * @author RonanLana @@ -41,7 +40,7 @@ public class MapleSkillMakerFetcher { static String username = "root"; static String password = ""; - static String fileName = "lib/ItemMake.img.xml"; + static String fileName = "../../wz/Etc.wz/ItemMake.img.xml"; static String newFile = "lib/MakerData.sql"; static PrintWriter printWriter = null; @@ -176,6 +175,7 @@ public class MapleSkillMakerFetcher { status -= 1; if(status == 2) { //close item maker data + generateUpdatedItemFee(); // for equipments, this will try to update reqMeso to be conformant with the client. makerList.add(new MapleMakerItemEntry(id, itemid, reqLevel, reqMakerLevel, reqItem, reqMeso, reqEquip, catalyst, quantity, tuc, recipeCount, recipeItem, recipeList, randomList)); resetMakerDataFields(); } else if(status == 4) { //close recipe/random item @@ -280,6 +280,40 @@ public class MapleSkillMakerFetcher { } } + private static void generateUpdatedItemFee() { + MapleItemInformationProvider ii = MapleItemInformationProvider.getInstance(); + float adjPrice = reqMeso; + + if(itemid < 2000000) { + Map stats = ii.getEquipStats(itemid); + if(stats != null) { + int val = itemid / 100000; + + if(val == 13 || val == 14) { // is weapon-type + adjPrice /= 10; + adjPrice += reqMeso; + + adjPrice /= 1000; + reqMeso = 1000 * (int) Math.floor(adjPrice); + } else { + adjPrice /= ((stats.get("reqLevel") >= 108) ? 10 : 11); + adjPrice += reqMeso; + + adjPrice /= 1000; + reqMeso = 1000 * (int) Math.ceil(adjPrice); + } + } else { + System.out.println("null stats for itemid " + itemid); + } + } else { + adjPrice /= 10; + adjPrice += reqMeso; + + adjPrice /= 1000; + reqMeso = 1000 * (int) Math.ceil(adjPrice); + } + } + private static void WriteMakerTableFile() { printWriter.println(" # SQL File autogenerated from the MapleSkillMakerFetcher feature by Ronan Lana."); printWriter.println(" # Generated data is conformant with the ItemMake.img.xml file used to compile this."); @@ -312,7 +346,7 @@ public class MapleSkillMakerFetcher { sb_recipe.append(";\r\n"); sb_reward.setLength(sb_reward.length() - 3); - sb_reward.append(";\r\n"); + sb_reward.append(";"); printWriter.println(sb_create); printWriter.println(sb_recipe); diff --git a/tools/MapleSkillMakerFetcher/src/provider/MapleCanvas.java b/tools/MapleSkillMakerFetcher/src/provider/MapleCanvas.java new file mode 100644 index 0000000000..10ab682196 --- /dev/null +++ b/tools/MapleSkillMakerFetcher/src/provider/MapleCanvas.java @@ -0,0 +1,30 @@ +/* + This file is part of the OdinMS Maple Story Server + Copyright (C) 2008 Patrick Huy + Matthias Butz + Jan Christian Meyer + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as + published by the Free Software Foundation version 3 as published by + the Free Software Foundation. You may not use, modify or distribute + this program under any other version of the GNU Affero General Public + License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . +*/ +package provider; + +import java.awt.image.BufferedImage; + +public interface MapleCanvas { + int getHeight(); + int getWidth(); + BufferedImage getImage(); +} diff --git a/tools/MapleSkillMakerFetcher/src/provider/MapleData.java b/tools/MapleSkillMakerFetcher/src/provider/MapleData.java new file mode 100644 index 0000000000..4d90a93804 --- /dev/null +++ b/tools/MapleSkillMakerFetcher/src/provider/MapleData.java @@ -0,0 +1,34 @@ +/* + This file is part of the OdinMS Maple Story Server + Copyright (C) 2008 Patrick Huy + Matthias Butz + Jan Christian Meyer + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as + published by the Free Software Foundation version 3 as published by + the Free Software Foundation. You may not use, modify or distribute + this program under any other version of the GNU Affero General Public + License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . +*/ +package provider; + +import java.util.List; +import provider.wz.MapleDataType; + +public interface MapleData extends MapleDataEntity, Iterable { + @Override + public String getName(); + public MapleDataType getType(); + public List getChildren(); + public MapleData getChildByPath(String path); + public Object getData(); +} diff --git a/tools/MapleSkillMakerFetcher/src/provider/MapleDataDirectoryEntry.java b/tools/MapleSkillMakerFetcher/src/provider/MapleDataDirectoryEntry.java new file mode 100644 index 0000000000..cb043e0c94 --- /dev/null +++ b/tools/MapleSkillMakerFetcher/src/provider/MapleDataDirectoryEntry.java @@ -0,0 +1,34 @@ +/* + This file is part of the OdinMS Maple Story Server + Copyright (C) 2008 Patrick Huy + Matthias Butz + Jan Christian Meyer + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as + published by the Free Software Foundation version 3 as published by + the Free Software Foundation. You may not use, modify or distribute + this program under any other version of the GNU Affero General Public + License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . +*/ +package provider; + +import java.util.List; + +/** + * + * @author Matze + */ +public interface MapleDataDirectoryEntry extends MapleDataEntry { + public List getSubdirectories(); + public List getFiles(); + public MapleDataEntry getEntry(String name); +} diff --git a/tools/MapleSkillMakerFetcher/src/provider/MapleDataEntity.java b/tools/MapleSkillMakerFetcher/src/provider/MapleDataEntity.java new file mode 100644 index 0000000000..03ff77649c --- /dev/null +++ b/tools/MapleSkillMakerFetcher/src/provider/MapleDataEntity.java @@ -0,0 +1,31 @@ +/* + This file is part of the OdinMS Maple Story Server + Copyright (C) 2008 Patrick Huy + Matthias Butz + Jan Christian Meyer + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as + published by the Free Software Foundation version 3 as published by + the Free Software Foundation. You may not use, modify or distribute + this program under any other version of the GNU Affero General Public + License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . +*/ +package provider; + +/** + * + * @author Matze + */ +public interface MapleDataEntity { + public String getName(); + public MapleDataEntity getParent(); +} diff --git a/tools/MapleSkillMakerFetcher/src/provider/MapleDataEntry.java b/tools/MapleSkillMakerFetcher/src/provider/MapleDataEntry.java new file mode 100644 index 0000000000..62db6d0abe --- /dev/null +++ b/tools/MapleSkillMakerFetcher/src/provider/MapleDataEntry.java @@ -0,0 +1,33 @@ +/* + This file is part of the OdinMS Maple Story Server + Copyright (C) 2008 Patrick Huy + Matthias Butz + Jan Christian Meyer + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as + published by the Free Software Foundation version 3 as published by + the Free Software Foundation. You may not use, modify or distribute + this program under any other version of the GNU Affero General Public + License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . +*/ +package provider; + +/** + * + * @author Matze + */ +public interface MapleDataEntry extends MapleDataEntity { + public String getName(); + public int getSize(); + public int getChecksum(); + public int getOffset(); +} diff --git a/tools/MapleSkillMakerFetcher/src/provider/MapleDataFileEntry.java b/tools/MapleSkillMakerFetcher/src/provider/MapleDataFileEntry.java new file mode 100644 index 0000000000..902130a612 --- /dev/null +++ b/tools/MapleSkillMakerFetcher/src/provider/MapleDataFileEntry.java @@ -0,0 +1,30 @@ +/* + This file is part of the OdinMS Maple Story Server + Copyright (C) 2008 Patrick Huy + Matthias Butz + Jan Christian Meyer + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as + published by the Free Software Foundation version 3 as published by + the Free Software Foundation. You may not use, modify or distribute + this program under any other version of the GNU Affero General Public + License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . +*/ +package provider; + +/** + * + * @author Matze + */ +public interface MapleDataFileEntry extends MapleDataEntry { + public void setOffset(int offset); +} diff --git a/tools/MapleSkillMakerFetcher/src/provider/MapleDataProvider.java b/tools/MapleSkillMakerFetcher/src/provider/MapleDataProvider.java new file mode 100644 index 0000000000..5237b7ac37 --- /dev/null +++ b/tools/MapleSkillMakerFetcher/src/provider/MapleDataProvider.java @@ -0,0 +1,27 @@ +/* + This file is part of the OdinMS Maple Story Server + Copyright (C) 2008 Patrick Huy + Matthias Butz + Jan Christian Meyer + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as + published by the Free Software Foundation version 3 as published by + the Free Software Foundation. You may not use, modify or distribute + this program under any other version of the GNU Affero General Public + License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . +*/ +package provider; + +public interface MapleDataProvider { + MapleData getData(String path); + MapleDataDirectoryEntry getRoot(); +} diff --git a/tools/MapleSkillMakerFetcher/src/provider/MapleDataProviderFactory.java b/tools/MapleSkillMakerFetcher/src/provider/MapleDataProviderFactory.java new file mode 100644 index 0000000000..5a397d8512 --- /dev/null +++ b/tools/MapleSkillMakerFetcher/src/provider/MapleDataProviderFactory.java @@ -0,0 +1,55 @@ +/* + This file is part of the OdinMS Maple Story Server + Copyright (C) 2008 Patrick Huy + Matthias Butz + Jan Christian Meyer + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as + published by the Free Software Foundation version 3 as published by + the Free Software Foundation. You may not use, modify or distribute + this program under any other version of the GNU Affero General Public + License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . +*/ +package provider; + +import java.io.File; +import java.io.IOException; +import provider.wz.WZFile; +import provider.wz.XMLWZFile; + +public class MapleDataProviderFactory { + private final static String wzPath = "../../wz"; + + private static MapleDataProvider getWZ(File in, boolean provideImages) { + if (in.getName().toLowerCase().endsWith("wz") && !in.isDirectory()) { + try { + return new WZFile(in, provideImages); + } catch (IOException e) { + throw new RuntimeException("Loading WZ File failed", e); + } + } else { + return new XMLWZFile(in); + } + } + + public static MapleDataProvider getDataProvider(File in) { + return getWZ(in, false); + } + + public static MapleDataProvider getImageProvidingDataProvider(File in) { + return getWZ(in, true); + } + + public static File fileInWZPath(String filename) { + return new File(wzPath, filename); + } +} \ No newline at end of file diff --git a/tools/MapleSkillMakerFetcher/src/provider/MapleDataTool.java b/tools/MapleSkillMakerFetcher/src/provider/MapleDataTool.java new file mode 100644 index 0000000000..25f4c7f817 --- /dev/null +++ b/tools/MapleSkillMakerFetcher/src/provider/MapleDataTool.java @@ -0,0 +1,145 @@ +/* + This file is part of the OdinMS Maple Story Server + Copyright (C) 2008 Patrick Huy + Matthias Butz + Jan Christian Meyer + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as + published by the Free Software Foundation version 3 as published by + the Free Software Foundation. You may not use, modify or distribute + this program under any other version of the GNU Affero General Public + License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . +*/ +package provider; + +import java.awt.Point; +import java.awt.image.BufferedImage; +import provider.wz.MapleDataType; + +public class MapleDataTool { + public static String getString(MapleData data) { + return ((String) data.getData()); + } + + public static String getString(MapleData data, String def) { + if (data == null || data.getData() == null) { + return def; + } else { + return ((String) data.getData()); + } + } + + public static String getString(String path, MapleData data) { + return getString(data.getChildByPath(path)); + } + + public static String getString(String path, MapleData data, String def) { + return getString(data.getChildByPath(path), def); + } + + public static double getDouble(MapleData data) { + return ((Double) data.getData()).doubleValue(); + } + + public static float getFloat(MapleData data) { + return ((Float) data.getData()).floatValue(); + } + + public static int getInt(MapleData data) { + if (data == null || data.getData() == null) { + return 0;// DEF? + } + return ((Integer) data.getData()).intValue(); + } + + public static int getInt(String path, MapleData data) { + return getInt(data.getChildByPath(path)); + } + + public static int getIntConvert(MapleData data) { + if (data.getType() == MapleDataType.STRING) { + return Integer.parseInt(getString(data)); + } else { + return getInt(data); + } + } + + public static int getIntConvert(String path, MapleData data) { + MapleData d = data.getChildByPath(path); + if (d.getType() == MapleDataType.STRING) { + return Integer.parseInt(getString(d)); + } else { + return getInt(d); + } + } + + public static int getInt(MapleData data, int def) { + if (data == null || data.getData() == null) { + return def; + } else if (data.getType() == MapleDataType.STRING) { + return Integer.parseInt(getString(data)); + } else { + return ((Integer) data.getData()).intValue(); + } + } + + public static int getInt(String path, MapleData data, int def) { + return getInt(data.getChildByPath(path), def); + } + + public static int getIntConvert(String path, MapleData data, int def) { + MapleData d = data.getChildByPath(path); + if (d == null) { + return def; + } + if (d.getType() == MapleDataType.STRING) { + try { + return Integer.parseInt(getString(d)); + } catch (NumberFormatException nfe) { + nfe.printStackTrace(); + return def; + } + } else { + return getInt(d, def); + } + } + + public static BufferedImage getImage(MapleData data) { + return ((MapleCanvas) data.getData()).getImage(); + } + + public static Point getPoint(MapleData data) { + return ((Point) data.getData()); + } + + public static Point getPoint(String path, MapleData data) { + return getPoint(data.getChildByPath(path)); + } + + public static Point getPoint(String path, MapleData data, Point def) { + final MapleData pointData = data.getChildByPath(path); + if (pointData == null) { + return def; + } + return getPoint(pointData); + } + + public static String getFullDataPath(MapleData data) { + String path = ""; + MapleDataEntity myData = data; + while (myData != null) { + path = myData.getName() + "/" + path; + myData = myData.getParent(); + } + return path.substring(0, path.length() - 1); + } +} diff --git a/tools/MapleSkillMakerFetcher/src/provider/wz/FileStoredPngMapleCanvas.java b/tools/MapleSkillMakerFetcher/src/provider/wz/FileStoredPngMapleCanvas.java new file mode 100644 index 0000000000..21736c2c16 --- /dev/null +++ b/tools/MapleSkillMakerFetcher/src/provider/wz/FileStoredPngMapleCanvas.java @@ -0,0 +1,70 @@ +/* + This file is part of the OdinMS Maple Story Server + Copyright (C) 2008 Patrick Huy + Matthias Butz + Jan Christian Meyer + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as + published by the Free Software Foundation version 3 as published by + the Free Software Foundation. You may not use, modify or distribute + this program under any other version of the GNU Affero General Public + License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . +*/ +package provider.wz; + +import java.awt.image.BufferedImage; +import java.io.File; +import java.io.IOException; +import javax.imageio.ImageIO; +import provider.MapleCanvas; + +public class FileStoredPngMapleCanvas implements MapleCanvas { + private File file; + private int width; + private int height; + private BufferedImage image; + + public FileStoredPngMapleCanvas(int width, int height, File fileIn) { + this.width = width; + this.height = height; + this.file = fileIn; + } + + @Override + public int getHeight() { + return height; + } + + @Override + public int getWidth() { + return width; + } + + @Override + public BufferedImage getImage() { + loadImageIfNecessary(); + return image; + } + + private void loadImageIfNecessary() { + if (image == null) { + try { + image = ImageIO.read(file); + // replace the dimensions loaded from the wz by the REAL dimensions from the image - should be equal tho + width = image.getWidth(); + height = image.getHeight(); + } catch (IOException e) { + throw new RuntimeException(e); + } + } + } +} diff --git a/tools/MapleSkillMakerFetcher/src/provider/wz/ImgMapleSound.java b/tools/MapleSkillMakerFetcher/src/provider/wz/ImgMapleSound.java new file mode 100644 index 0000000000..8add2ccb36 --- /dev/null +++ b/tools/MapleSkillMakerFetcher/src/provider/wz/ImgMapleSound.java @@ -0,0 +1,39 @@ +/* + This file is part of the OdinMS Maple Story Server + Copyright (C) 2008 Patrick Huy + Matthias Butz + Jan Christian Meyer + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as + published by the Free Software Foundation version 3 as published by + the Free Software Foundation. You may not use, modify or distribute + this program under any other version of the GNU Affero General Public + License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . +*/ +package provider.wz; + +public class ImgMapleSound { + private int dataLength, offset; + + public ImgMapleSound(int dataLength, int offset) { + this.dataLength = dataLength; + this.offset = offset; + } + + public int getDataLength() { + return dataLength; + } + + public int getOffset() { + return offset; + } +} diff --git a/tools/MapleSkillMakerFetcher/src/provider/wz/ListWZFile.java b/tools/MapleSkillMakerFetcher/src/provider/wz/ListWZFile.java new file mode 100644 index 0000000000..1672a08c59 --- /dev/null +++ b/tools/MapleSkillMakerFetcher/src/provider/wz/ListWZFile.java @@ -0,0 +1,86 @@ +/* + This file is part of the OdinMS Maple Story Server + Copyright (C) 2008 Patrick Huy + Matthias Butz + Jan Christian Meyer + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as + published by the Free Software Foundation version 3 as published by + the Free Software Foundation. You may not use, modify or distribute + this program under any other version of the GNU Affero General Public + License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . +*/ +package provider.wz; + +import java.io.BufferedInputStream; +import java.io.File; +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.util.ArrayList; +import java.util.Collection; +import java.util.Collections; +import java.util.HashSet; +import java.util.List; +import provider.MapleDataProviderFactory; +import tools.data.input.GenericLittleEndianAccessor; +import tools.data.input.InputStreamByteStream; +import tools.data.input.LittleEndianAccessor; + +public class ListWZFile { + private LittleEndianAccessor lea; + private List entries = new ArrayList(); + private static Collection modernImgs = new HashSet(); + + public static byte[] xorBytes(byte[] a, byte[] b) { + byte[] wusched = new byte[a.length]; + for (int i = 0; i < a.length; i++) { + wusched[i] = (byte) (a[i] ^ b[i]); + } + return wusched; + } + + public ListWZFile(File listwz) throws FileNotFoundException { + lea = new GenericLittleEndianAccessor(new InputStreamByteStream(new BufferedInputStream(new FileInputStream(listwz)))); + while (lea.available() > 0) { + int l = lea.readInt() * 2; + byte[] chunk = new byte[l]; + for (int i = 0; i < chunk.length; i++) { + chunk[i] = lea.readByte(); + } + lea.readChar(); + final String value = String.valueOf(WZTool.readListString(chunk)); + entries.add(value); + } + entries = Collections.unmodifiableList(entries); + } + + public List getEntries() { + return entries; + } + + public static void init() { + final String listWz = System.getProperty("listwz"); + if (listWz != null) { + ListWZFile listwz; + try { + listwz = new ListWZFile(MapleDataProviderFactory.fileInWZPath("List.wz")); + modernImgs = new HashSet(listwz.getEntries()); + } catch (FileNotFoundException e) { + e.printStackTrace(); + } + } + } + + public static boolean isModernImgFile(String path) { + return modernImgs.contains(path); + } +} diff --git a/tools/MapleSkillMakerFetcher/src/provider/wz/MapleDataType.java b/tools/MapleSkillMakerFetcher/src/provider/wz/MapleDataType.java new file mode 100644 index 0000000000..e074d57d14 --- /dev/null +++ b/tools/MapleSkillMakerFetcher/src/provider/wz/MapleDataType.java @@ -0,0 +1,26 @@ +/* + This file is part of the OdinMS Maple Story Server + Copyright (C) 2008 Patrick Huy + Matthias Butz + Jan Christian Meyer + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as + published by the Free Software Foundation version 3 as published by + the Free Software Foundation. You may not use, modify or distribute + this program under any other version of the GNU Affero General Public + License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . +*/ +package provider.wz; + +public enum MapleDataType { + NONE, IMG_0x00, SHORT, INT, FLOAT, DOUBLE, STRING, EXTENDED, PROPERTY, CANVAS, VECTOR, CONVEX, SOUND, UOL, UNKNOWN_TYPE, UNKNOWN_EXTENDED_TYPE; +} \ No newline at end of file diff --git a/tools/MapleSkillMakerFetcher/src/provider/wz/PNGMapleCanvas.java b/tools/MapleSkillMakerFetcher/src/provider/wz/PNGMapleCanvas.java new file mode 100644 index 0000000000..97c2303804 --- /dev/null +++ b/tools/MapleSkillMakerFetcher/src/provider/wz/PNGMapleCanvas.java @@ -0,0 +1,151 @@ +/* + This file is part of the OdinMS Maple Story Server + Copyright (C) 2008 Patrick Huy + Matthias Butz + Jan Christian Meyer + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as + published by the Free Software Foundation version 3 as published by + the Free Software Foundation. You may not use, modify or distribute + this program under any other version of the GNU Affero General Public + License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . +*/ +package provider.wz; + +import java.awt.Point; +import java.awt.image.BufferedImage; +import java.awt.image.DataBuffer; +import java.awt.image.DataBufferByte; +import java.awt.image.PixelInterleavedSampleModel; +import java.awt.image.Raster; +import java.awt.image.SampleModel; +import java.awt.image.WritableRaster; +import java.util.zip.DataFormatException; +import java.util.zip.Inflater; +import provider.MapleCanvas; + +public class PNGMapleCanvas implements MapleCanvas { + private static final int[] ZAHLEN = new int[]{2, 1, 0, 3}; + private int height; + private int width; + private int dataLength; + private int format; + private byte[] data; + + public PNGMapleCanvas(int width, int height, int dataLength, int format, byte[] data) { + super(); + this.height = height; + this.width = width; + this.dataLength = dataLength; + this.format = format; + this.data = data; + } + + public int getHeight() { + return height; + } + + public int getWidth() { + return width; + } + + public int getFormat() { + return format; + } + + private byte[] getData() { + return data; + } + + @Override + public BufferedImage getImage() { + int sizeUncompressed = 0; + int size8888 = 0; + int maxWriteBuf = 2; + int maxHeight = 3; + byte[] writeBuf = new byte[maxWriteBuf]; + @SuppressWarnings ("unused") + byte[] rowPointers = new byte[maxHeight]; + switch (getFormat()) { + case 1: + case 513: + sizeUncompressed = getHeight() * getWidth() * 4; + break; + case 2: + sizeUncompressed = getHeight() * getWidth() * 8; + break; + case 517: + sizeUncompressed = getHeight() * getWidth() / 128; + break; + } + size8888 = getHeight() * getWidth() * 8; + if (size8888 > maxWriteBuf) { + maxWriteBuf = size8888; + writeBuf = new byte[maxWriteBuf]; + } + if (getHeight() > maxHeight) { + maxHeight = getHeight(); + rowPointers = new byte[maxHeight]; + } + Inflater dec = new Inflater(); + dec.setInput(getData(), 0, dataLength); + int declen = 0; + byte[] uc = new byte[sizeUncompressed]; + try { + declen = dec.inflate(uc); + } catch (DataFormatException ex) { + throw new RuntimeException("zlib fucks", ex); + } + dec.end(); + if (getFormat() == 1) { + for (int i = 0; i < sizeUncompressed; i++) { + byte low = (byte) (uc[i] & 0x0F); + byte high = (byte) (uc[i] & 0xF0); + writeBuf[(i << 1)] = (byte) (((low << 4) | low) & 0xFF); + writeBuf[(i << 1) + 1] = (byte) (high | ((high >>> 4) & 0xF)); + } + } else if (getFormat() == 2) { + writeBuf = uc; + } else if (getFormat() == 513) { + for (int i = 0; i < declen; i += 2) { + byte bBits = (byte) ((uc[i] & 0x1F) << 3); + byte gBits = (byte) (((uc[i + 1] & 0x07) << 5) | ((uc[i] & 0xE0) >> 3)); + byte rBits = (byte) (uc[i + 1] & 0xF8); + writeBuf[(i << 1)] = (byte) (bBits | (bBits >> 5)); + writeBuf[(i << 1) + 1] = (byte) (gBits | (gBits >> 6)); + writeBuf[(i << 1) + 2] = (byte) (rBits | (rBits >> 5)); + writeBuf[(i << 1) + 3] = (byte) 0xFF; + } + } else if (getFormat() == 517) { + byte b = 0x00; + int pixelIndex = 0; + for (int i = 0; i < declen; i++) { + for (int j = 0; j < 8; j++) { + b = (byte) (((uc[i] & (0x01 << (7 - j))) >> (7 - j)) * 255); + for (int k = 0; k < 16; k++) { + pixelIndex = (i << 9) + (j << 6) + k * 2; + writeBuf[pixelIndex] = b; + writeBuf[pixelIndex + 1] = b; + writeBuf[pixelIndex + 2] = b; + writeBuf[pixelIndex + 3] = (byte) 0xFF; + } + } + } + } + DataBufferByte imgData = new DataBufferByte(writeBuf, sizeUncompressed); + SampleModel sm = new PixelInterleavedSampleModel(DataBuffer.TYPE_BYTE, getWidth(), getHeight(), 4, getWidth() * 4, ZAHLEN); + WritableRaster imgRaster = Raster.createWritableRaster(sm, imgData, new Point(0, 0)); + BufferedImage aa = new BufferedImage(getWidth(), getHeight(), BufferedImage.TYPE_INT_ARGB); + aa.setData(imgRaster); + return aa; + } +} diff --git a/tools/MapleSkillMakerFetcher/src/provider/wz/WZDirectoryEntry.java b/tools/MapleSkillMakerFetcher/src/provider/wz/WZDirectoryEntry.java new file mode 100644 index 0000000000..d24b8cb2b9 --- /dev/null +++ b/tools/MapleSkillMakerFetcher/src/provider/wz/WZDirectoryEntry.java @@ -0,0 +1,68 @@ +/* + This file is part of the OdinMS Maple Story Server + Copyright (C) 2008 Patrick Huy + Matthias Butz + Jan Christian Meyer + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as + published by the Free Software Foundation version 3 as published by + the Free Software Foundation. You may not use, modify or distribute + this program under any other version of the GNU Affero General Public + License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . +*/ +package provider.wz; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import provider.MapleDataDirectoryEntry; +import provider.MapleDataEntity; +import provider.MapleDataEntry; +import provider.MapleDataFileEntry; + +public class WZDirectoryEntry extends WZEntry implements MapleDataDirectoryEntry { + private List subdirs = new ArrayList(); + private List files = new ArrayList(); + private Map entries = new HashMap(); + + public WZDirectoryEntry(String name, int size, int checksum, MapleDataEntity parent) { + super(name, size, checksum, parent); + } + + public WZDirectoryEntry() { + super(null, 0, 0, null); + } + + public void addDirectory(MapleDataDirectoryEntry dir) { + subdirs.add(dir); + entries.put(dir.getName(), dir); + } + + public void addFile(MapleDataFileEntry fileEntry) { + files.add(fileEntry); + entries.put(fileEntry.getName(), fileEntry); + } + + public List getSubdirectories() { + return Collections.unmodifiableList(subdirs); + } + + public List getFiles() { + return Collections.unmodifiableList(files); + } + + public MapleDataEntry getEntry(String name) { + return entries.get(name); + } +} diff --git a/tools/MapleSkillMakerFetcher/src/provider/wz/WZEntry.java b/tools/MapleSkillMakerFetcher/src/provider/wz/WZEntry.java new file mode 100644 index 0000000000..1e921b2082 --- /dev/null +++ b/tools/MapleSkillMakerFetcher/src/provider/wz/WZEntry.java @@ -0,0 +1,61 @@ +/* + This file is part of the OdinMS Maple Story Server + Copyright (C) 2008 Patrick Huy + Matthias Butz + Jan Christian Meyer + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as + published by the Free Software Foundation version 3 as published by + the Free Software Foundation. You may not use, modify or distribute + this program under any other version of the GNU Affero General Public + License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . +*/ +package provider.wz; + +import provider.MapleDataEntity; +import provider.MapleDataEntry; + +public class WZEntry implements MapleDataEntry { + private String name; + private int size; + private int checksum; + private int offset; + private MapleDataEntity parent; + + public WZEntry(String name, int size, int checksum, MapleDataEntity parent) { + super(); + this.name = name; + this.size = size; + this.checksum = checksum; + this.parent = parent; + } + + public String getName() { + return name; + } + + public int getSize() { + return size; + } + + public int getChecksum() { + return checksum; + } + + public int getOffset() { + return offset; + } + + public MapleDataEntity getParent() { + return parent; + } +} diff --git a/tools/MapleSkillMakerFetcher/src/provider/wz/WZFile.java b/tools/MapleSkillMakerFetcher/src/provider/wz/WZFile.java new file mode 100644 index 0000000000..c6c0abf537 --- /dev/null +++ b/tools/MapleSkillMakerFetcher/src/provider/wz/WZFile.java @@ -0,0 +1,154 @@ +/* + This file is part of the OdinMS Maple Story Server + Copyright (C) 2008 Patrick Huy + Matthias Butz + Jan Christian Meyer + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as + published by the Free Software Foundation version 3 as published by + the Free Software Foundation. You may not use, modify or distribute + this program under any other version of the GNU Affero General Public + License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . +*/ +package provider.wz; + +import java.io.BufferedInputStream; +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; +import java.io.RandomAccessFile; +import provider.MapleData; +import provider.MapleDataDirectoryEntry; +import provider.MapleDataFileEntry; +import provider.MapleDataProvider; +import tools.data.input.GenericLittleEndianAccessor; +import tools.data.input.GenericSeekableLittleEndianAccessor; +import tools.data.input.InputStreamByteStream; +import tools.data.input.LittleEndianAccessor; +import tools.data.input.RandomAccessByteStream; +import tools.data.input.SeekableLittleEndianAccessor; + +public class WZFile implements MapleDataProvider { + static { + ListWZFile.init(); + } + private File wzfile; + private LittleEndianAccessor lea; + private SeekableLittleEndianAccessor slea; + private int headerSize; + private WZDirectoryEntry root; + private boolean provideImages; + private int cOffset; + + public WZFile(File wzfile, boolean provideImages) throws IOException { + this.wzfile = wzfile; + lea = new GenericLittleEndianAccessor(new InputStreamByteStream(new BufferedInputStream(new FileInputStream(wzfile)))); + RandomAccessFile raf = new RandomAccessFile(wzfile, "r"); + slea = new GenericSeekableLittleEndianAccessor(new RandomAccessByteStream(raf)); + root = new WZDirectoryEntry(wzfile.getName(), 0, 0, null); + this.provideImages = provideImages; + load(); + } + + private void load() throws IOException { + lea.readAsciiString(4); + lea.readInt(); + lea.readInt(); + headerSize = lea.readInt(); + lea.readNullTerminatedAsciiString(); + lea.readShort(); + parseDirectory(root); + cOffset = (int) lea.getBytesRead(); + getOffsets(root); + } + + private void getOffsets(MapleDataDirectoryEntry dir) { + for (MapleDataFileEntry file : dir.getFiles()) { + file.setOffset(cOffset); + cOffset += file.getSize(); + } + for (MapleDataDirectoryEntry sdir : dir.getSubdirectories()) { + getOffsets(sdir); + } + } + + private void parseDirectory(WZDirectoryEntry dir) { + int entries = WZTool.readValue(lea); + for (int i = 0; i < entries; i++) { + byte marker = lea.readByte(); + String name = null; + int size, checksum; + switch (marker) { + case 0x02: + name = WZTool.readDecodedStringAtOffsetAndReset(slea, lea.readInt() + this.headerSize + 1); + size = WZTool.readValue(lea); + checksum = WZTool.readValue(lea); + lea.readInt(); //dummy int + dir.addFile(new WZFileEntry(name, size, checksum, dir)); + break; + case 0x03: + case 0x04: + name = WZTool.readDecodedString(lea); + size = WZTool.readValue(lea); + checksum = WZTool.readValue(lea); + lea.readInt(); //dummy int + if (marker == 3) { + dir.addDirectory(new WZDirectoryEntry(name, size, checksum, dir)); + } else { + dir.addFile(new WZFileEntry(name, size, checksum, dir)); + } + break; + default: + } + } + for (MapleDataDirectoryEntry idir : dir.getSubdirectories()) { + parseDirectory((WZDirectoryEntry) idir); + } + } + + public WZIMGFile getImgFile(String path) throws IOException { + String segments[] = path.split("/"); + WZDirectoryEntry dir = root; + for (int x = 0; x < segments.length - 1; x++) { + dir = (WZDirectoryEntry) dir.getEntry(segments[x]); + if (dir == null) { + return null; + } + } + WZFileEntry entry = (WZFileEntry) dir.getEntry(segments[segments.length - 1]); + if (entry == null) { + return null; + } + String fullPath = wzfile.getName().substring(0, wzfile.getName().length() - 3).toLowerCase() + "/" + path; + return new WZIMGFile(this.wzfile, entry, provideImages, ListWZFile.isModernImgFile(fullPath)); + } + + @Override + public synchronized MapleData getData(String path) { + try { + WZIMGFile imgFile = getImgFile(path); + if (imgFile == null) { + return null; + } + MapleData ret = imgFile.getRoot(); + return ret; + } catch (IOException e) { + e.printStackTrace(); + } + return null; + } + + @Override + public MapleDataDirectoryEntry getRoot() { + return root; + } +} diff --git a/tools/MapleSkillMakerFetcher/src/provider/wz/WZFileEntry.java b/tools/MapleSkillMakerFetcher/src/provider/wz/WZFileEntry.java new file mode 100644 index 0000000000..792371d9cf --- /dev/null +++ b/tools/MapleSkillMakerFetcher/src/provider/wz/WZFileEntry.java @@ -0,0 +1,42 @@ +/* + This file is part of the OdinMS Maple Story Server + Copyright (C) 2008 Patrick Huy + Matthias Butz + Jan Christian Meyer + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as + published by the Free Software Foundation version 3 as published by + the Free Software Foundation. You may not use, modify or distribute + this program under any other version of the GNU Affero General Public + License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . +*/ +package provider.wz; + +import provider.MapleDataEntity; +import provider.MapleDataFileEntry; + +public class WZFileEntry extends WZEntry implements MapleDataFileEntry { + private int offset; + + public WZFileEntry(String name, int size, int checksum, MapleDataEntity parent) { + super(name, size, checksum, parent); + } + + @Override + public int getOffset() { + return offset; + } + + public void setOffset(int offset) { + this.offset = offset; + } +} diff --git a/tools/MapleSkillMakerFetcher/src/provider/wz/WZIMGEntry.java b/tools/MapleSkillMakerFetcher/src/provider/wz/WZIMGEntry.java new file mode 100644 index 0000000000..385d785183 --- /dev/null +++ b/tools/MapleSkillMakerFetcher/src/provider/wz/WZIMGEntry.java @@ -0,0 +1,118 @@ +/* + This file is part of the OdinMS Maple Story Server + Copyright (C) 2008 Patrick Huy + Matthias Butz + Jan Christian Meyer + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as + published by the Free Software Foundation version 3 as published by + the Free Software Foundation. You may not use, modify or distribute + this program under any other version of the GNU Affero General Public + License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . +*/ +package provider.wz; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.Iterator; +import java.util.List; +import provider.MapleData; +import provider.MapleDataEntity; + +public class WZIMGEntry implements MapleData { + private String name; + private MapleDataType type; + private List children = new ArrayList(10); + private Object data; + private MapleDataEntity parent; + + public WZIMGEntry(MapleDataEntity parent) { + this.parent = parent; + } + + @Override + public String getName() { + return name; + } + + @Override + public MapleDataType getType() { + return type; + } + + @Override + public List getChildren() { + return Collections.unmodifiableList(children); + } + + @Override + public MapleData getChildByPath(String path) { + String segments[] = path.split("/"); + if (segments[0].equals("..")) { + return ((MapleData) getParent()).getChildByPath(path.substring(path.indexOf("/") + 1)); + } + MapleData ret = this; + for (int x = 0; x < segments.length; x++) { + boolean foundChild = false; + for (MapleData child : ret.getChildren()) { + if (child.getName().equals(segments[x])) { + ret = child; + foundChild = true; + break; + } + } + if (!foundChild) { + return null; + } + } + return ret; + } + + @Override + public Object getData() { + return data; + } + + public void setName(String name) { + this.name = name; + } + + public void setType(MapleDataType type) { + this.type = type; + } + + public void setData(Object data) { + this.data = data; + } + + public void addChild(WZIMGEntry entry) { + children.add(entry); + } + + @Override + public Iterator iterator() { + return getChildren().iterator(); + } + + @Override + public String toString() { + return getName() + ":" + getData(); + } + + public MapleDataEntity getParent() { + return parent; + } + + public void finish() { + ((ArrayList) children).trimToSize(); + } +} diff --git a/tools/MapleSkillMakerFetcher/src/provider/wz/WZIMGFile.java b/tools/MapleSkillMakerFetcher/src/provider/wz/WZIMGFile.java new file mode 100644 index 0000000000..bec06c78bd --- /dev/null +++ b/tools/MapleSkillMakerFetcher/src/provider/wz/WZIMGFile.java @@ -0,0 +1,227 @@ +/* + This file is part of the OdinMS Maple Story Server + Copyright (C) 2008 Patrick Huy + Matthias Butz + Jan Christian Meyer + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as + published by the Free Software Foundation version 3 as published by + the Free Software Foundation. You may not use, modify or distribute + this program under any other version of the GNU Affero General Public + License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . +*/ +package provider.wz; + +import java.awt.Point; +import java.io.DataOutputStream; +import java.io.File; +import java.io.IOException; +import java.io.OutputStream; +import java.io.RandomAccessFile; +import tools.data.input.GenericSeekableLittleEndianAccessor; +import tools.data.input.RandomAccessByteStream; +import tools.data.input.SeekableLittleEndianAccessor; + +public class WZIMGFile { + private WZFileEntry file; + private WZIMGEntry root; + private boolean provideImages; + @SuppressWarnings ("unused") + private boolean modernImg; + + public WZIMGFile(File wzfile, WZFileEntry file, boolean provideImages, boolean modernImg) throws IOException { + RandomAccessFile raf = new RandomAccessFile(wzfile, "r"); + SeekableLittleEndianAccessor slea = new GenericSeekableLittleEndianAccessor(new RandomAccessByteStream(raf)); + slea.seek(file.getOffset()); + this.file = file; + this.provideImages = provideImages; + root = new WZIMGEntry(file.getParent()); + root.setName(file.getName()); + root.setType(MapleDataType.EXTENDED); + this.modernImg = modernImg; + parseExtended(root, slea, 0); + root.finish(); + raf.close(); + } + + protected void dumpImg(OutputStream out, SeekableLittleEndianAccessor slea) throws IOException { + DataOutputStream os = new DataOutputStream(out); + long oldPos = slea.getPosition(); + slea.seek(file.getOffset()); + for (int x = 0; x < file.getSize(); x++) { + os.write(slea.readByte()); + } + slea.seek(oldPos); + } + + public WZIMGEntry getRoot() { + return root; + } + + private void parse(WZIMGEntry entry, SeekableLittleEndianAccessor slea) { + byte marker = slea.readByte(); + switch (marker) { + case 0: { + String name = WZTool.readDecodedString(slea); + entry.setName(name); + break; + } + case 1: { + String name = WZTool.readDecodedStringAtOffsetAndReset(slea, file.getOffset() + slea.readInt()); + entry.setName(name); + break; + } + default: + System.out.println("Unknown Image identifier: " + marker + " at offset " + (slea.getPosition() - file.getOffset())); + } + marker = slea.readByte(); + switch (marker) { + case 0: + entry.setType(MapleDataType.IMG_0x00); + break; + case 2: + case 11: //??? no idea, since 0.49 + entry.setType(MapleDataType.SHORT); + entry.setData(Short.valueOf(slea.readShort())); + break; + case 3: + entry.setType(MapleDataType.INT); + entry.setData(Integer.valueOf(WZTool.readValue(slea))); + break; + case 4: + entry.setType(MapleDataType.FLOAT); + entry.setData(Float.valueOf(WZTool.readFloatValue(slea))); + break; + case 5: + entry.setType(MapleDataType.DOUBLE); + entry.setData(Double.valueOf(slea.readDouble())); + break; + case 8: + entry.setType(MapleDataType.STRING); + byte iMarker = slea.readByte(); + if (iMarker == 0) { + entry.setData(WZTool.readDecodedString(slea)); + } else if (iMarker == 1) { + entry.setData(WZTool.readDecodedStringAtOffsetAndReset(slea, slea.readInt() + file.getOffset())); + } else { + System.out.println("Unknown String type " + iMarker); + } + break; + case 9: + entry.setType(MapleDataType.EXTENDED); + long endOfExtendedBlock = slea.readInt(); + endOfExtendedBlock += slea.getPosition(); + parseExtended(entry, slea, endOfExtendedBlock); + break; + default: + System.out.println("Unknown Image type " + marker); + } + } + + private void parseExtended(WZIMGEntry entry, SeekableLittleEndianAccessor slea, long endOfExtendedBlock) { + byte marker = slea.readByte(); + String type; + switch (marker) { + case 0x73: + type = WZTool.readDecodedString(slea); + break; + case 0x1B: + type = WZTool.readDecodedStringAtOffsetAndReset(slea, file.getOffset() + slea.readInt()); + break; + default: + throw new RuntimeException("Unknown extended image identifier: " + marker + " at offset " + + (slea.getPosition() - file.getOffset())); + } + if (type.equals("Property")) { + entry.setType(MapleDataType.PROPERTY); + slea.readByte(); + slea.readByte(); + int children = WZTool.readValue(slea); + for (int i = 0; i < children; i++) { + WZIMGEntry cEntry = new WZIMGEntry(entry); + parse(cEntry, slea); + cEntry.finish(); + entry.addChild(cEntry); + } + } else if (type.equals("Canvas")) { + entry.setType(MapleDataType.CANVAS); + slea.readByte(); + marker = slea.readByte(); + if (marker == 0) { + // do nothing + } else if (marker == 1) { + slea.readByte(); + slea.readByte(); + int children = WZTool.readValue(slea); + for (int i = 0; i < children; i++) { + WZIMGEntry child = new WZIMGEntry(entry); + parse(child, slea); + child.finish(); + entry.addChild(child); + } + } else { + System.out.println("Canvas marker != 1 (" + marker + ")"); + } + int width = WZTool.readValue(slea); + int height = WZTool.readValue(slea); + int format = WZTool.readValue(slea); + int format2 = slea.readByte(); + slea.readInt(); + int dataLength = slea.readInt() - 1; + slea.readByte(); + if (provideImages) { + byte[] pngdata = slea.read(dataLength); + entry.setData(new PNGMapleCanvas(width, height, dataLength, format + format2, pngdata)); + } else { + entry.setData(new PNGMapleCanvas(width, height, dataLength, format + format2, null)); + slea.skip(dataLength); + } + } else if (type.equals("Shape2D#Vector2D")) { + entry.setType(MapleDataType.VECTOR); + int x = WZTool.readValue(slea); + int y = WZTool.readValue(slea); + entry.setData(new Point(x, y)); + } else if (type.equals("Shape2D#Convex2D")) { + int children = WZTool.readValue(slea); + for (int i = 0; i < children; i++) { + WZIMGEntry cEntry = new WZIMGEntry(entry); + parseExtended(cEntry, slea, 0); + cEntry.finish(); + entry.addChild(cEntry); + } + } else if (type.equals("Sound_DX8")) { + entry.setType(MapleDataType.SOUND); + slea.readByte(); + int dataLength = WZTool.readValue(slea); + WZTool.readValue(slea); // no clue what this is + int offset = (int) slea.getPosition(); + entry.setData(new ImgMapleSound(dataLength, offset - file.getOffset())); + slea.seek(endOfExtendedBlock); + } else if (type.equals("UOL")) { + entry.setType(MapleDataType.UOL); + slea.readByte(); + byte uolmarker = slea.readByte(); + switch (uolmarker) { + case 0: + entry.setData(WZTool.readDecodedString(slea)); + break; + case 1: + entry.setData(WZTool.readDecodedStringAtOffsetAndReset(slea, file.getOffset() + slea.readInt())); + break; + default: + System.out.println("Unknown UOL marker: " + uolmarker + " " + entry.getName()); + } + } else { + throw new RuntimeException("Unhandled extended type: " + type); + } + } +} diff --git a/tools/MapleSkillMakerFetcher/src/provider/wz/WZTool.java b/tools/MapleSkillMakerFetcher/src/provider/wz/WZTool.java new file mode 100644 index 0000000000..85e1c8d90b --- /dev/null +++ b/tools/MapleSkillMakerFetcher/src/provider/wz/WZTool.java @@ -0,0 +1,187 @@ +/* + This file is part of the OdinMS Maple Story Server + Copyright (C) 2008 Patrick Huy + Matthias Butz + Jan Christian Meyer + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as + published by the Free Software Foundation version 3 as published by + the Free Software Foundation. You may not use, modify or distribute + this program under any other version of the GNU Affero General Public + License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . +*/ +package provider.wz; + +import java.security.InvalidKeyException; +import java.security.NoSuchAlgorithmException; +import javax.crypto.BadPaddingException; +import javax.crypto.Cipher; +import javax.crypto.IllegalBlockSizeException; +import javax.crypto.NoSuchPaddingException; +import javax.crypto.spec.SecretKeySpec; +import tools.data.input.LittleEndianAccessor; +import tools.data.input.SeekableLittleEndianAccessor; + +/* + * Ported Code, see WZFile.java for more info + */ +public class WZTool { + private static byte[] encKey; + + static { + byte[] iv = new byte[]{(byte) 0x4d, (byte) 0x23, (byte) 0xc7, (byte) 0x2b, + (byte) 0x4d, (byte) 0x23, (byte) 0xc7, (byte) 0x2b, + (byte) 0x4d, (byte) 0x23, (byte) 0xc7, (byte) 0x2b, + (byte) 0x4d, (byte) 0x23, (byte) 0xc7, (byte) 0x2b,}; + byte[] key = new byte[]{(byte) 0x13, 0x00, 0x00, 0x00, + (byte) 0x08, 0x00, 0x00, 0x00, + (byte) 0x06, 0x00, 0x00, 0x00, + (byte) 0xB4, 0x00, 0x00, 0x00, + (byte) 0x1B, 0x00, 0x00, 0x00, + (byte) 0x0F, 0x00, 0x00, 0x00, + (byte) 0x33, 0x00, 0x00, 0x00, + (byte) 0x52, 0x00, 0x00, 0x00 + }; + Cipher cipher = null; + SecretKeySpec skeySpec = new SecretKeySpec(key, "AES"); + try { + cipher = Cipher.getInstance("AES"); + } catch (NoSuchAlgorithmException e) { + e.printStackTrace(); + } catch (NoSuchPaddingException e) { + e.printStackTrace(); + } + try { + cipher.init(Cipher.ENCRYPT_MODE, skeySpec); + } catch (InvalidKeyException e) { + e.printStackTrace(); + } + encKey = new byte[0xFFFF]; + for (int i = 0; i < (0xFFFF / 16); i++) { + try { + iv = cipher.doFinal(iv); + } catch (IllegalBlockSizeException e) { + e.printStackTrace(); + } catch (BadPaddingException e) { + e.printStackTrace(); + } + System.arraycopy(iv, 0, encKey, (i * 16), 16); + } + try { + iv = cipher.doFinal(iv); + } catch (IllegalBlockSizeException e) { + e.printStackTrace(); + } catch (BadPaddingException e) { + e.printStackTrace(); + } + System.arraycopy(iv, 0, encKey, 65520, 15); + } + + public static byte[] readListString(byte[] str) { + for (int i = 0; i < str.length; i++) { + str[i] = (byte) (str[i] ^ encKey[i]); + } + return str; + } + + public static String readDecodedString(LittleEndianAccessor llea) { + int strLength; + byte b = llea.readByte(); + if (b == 0x00) { + return ""; + } + if (b >= 0) { + if (b == 0x7F) { + strLength = llea.readInt(); + } else { + strLength = (int) b; + } + if (strLength < 0) { + return ""; + } + byte str[] = new byte[strLength * 2]; + for (int i = 0; i < strLength * 2; i++) { + str[i] = llea.readByte(); + } + return DecryptUnicodeStr(str); + } else { + if (b == -128) { + strLength = llea.readInt(); + } else { + strLength = -b; + } + if (strLength < 0) { + return ""; + } + byte str[] = new byte[strLength]; + for (int i = 0; i < strLength; i++) { + str[i] = llea.readByte(); + } + return DecryptAsciiStr(str); + } + } + + public static String DecryptAsciiStr(byte[] str) { + byte xorByte = (byte) 0xAA; + for (int i = 0; i < str.length; i++) { + str[i] = (byte) (str[i] ^ xorByte ^ encKey[i]); + xorByte++; + } + return new String(str); + } + + public static String DecryptUnicodeStr(byte[] str) { + int xorByte = 0xAAAA; + char[] charRet = new char[str.length / 2]; + for (int i = 0; i < str.length; i++) { + str[i] = (byte) (str[i] ^ encKey[i]); + } + for (int i = 0; i < (str.length / 2); i++) { + char toXor = (char) ((str[i] << 8) | str[i + 1]); + charRet[i] = (char) (toXor ^ xorByte); + xorByte++; + } + return String.valueOf(charRet); + } + + public static String readDecodedStringAtOffset(SeekableLittleEndianAccessor slea, int offset) { + slea.seek(offset); + return readDecodedString(slea); + } + + public static String readDecodedStringAtOffsetAndReset(SeekableLittleEndianAccessor slea, int offset) { + long pos = 0; + pos = slea.getPosition(); + slea.seek(offset); + String ret = readDecodedString(slea); + slea.seek(pos); + return ret; + } + + public static int readValue(LittleEndianAccessor lea) { + byte b = lea.readByte(); + if (b == -128) { + return lea.readInt(); + } else { + return ((int) b); + } + } + + public static float readFloatValue(LittleEndianAccessor lea) { + byte b = lea.readByte(); + if (b == -128) { + return lea.readFloat(); + } else { + return 0; + } + } +} \ No newline at end of file diff --git a/tools/MapleSkillMakerFetcher/src/provider/wz/XMLDomMapleData.java b/tools/MapleSkillMakerFetcher/src/provider/wz/XMLDomMapleData.java new file mode 100644 index 0000000000..151a04c2fd --- /dev/null +++ b/tools/MapleSkillMakerFetcher/src/provider/wz/XMLDomMapleData.java @@ -0,0 +1,219 @@ +/* + This file is part of the OdinMS Maple Story Server + Copyright (C) 2008 Patrick Huy + Matthias Butz + Jan Christian Meyer + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as + published by the Free Software Foundation version 3 as published by + the Free Software Foundation. You may not use, modify or distribute + this program under any other version of the GNU Affero General Public + License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . + */ +package provider.wz; + +import java.awt.Point; +import java.io.File; +import java.io.FileInputStream; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; +import java.util.Locale; +import java.text.NumberFormat; +import javax.xml.parsers.DocumentBuilder; +import javax.xml.parsers.DocumentBuilderFactory; +import javax.xml.parsers.ParserConfigurationException; +import provider.MapleData; +import provider.MapleDataEntity; +import org.w3c.dom.Document; +import org.w3c.dom.NamedNodeMap; +import org.w3c.dom.Node; +import org.w3c.dom.NodeList; +import org.xml.sax.SAXException; + +public class XMLDomMapleData implements MapleData { + private Node node; + private File imageDataDir; + private NumberFormat nf; + + public XMLDomMapleData(FileInputStream fis, File imageDataDir) { + try { + DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance(); + DocumentBuilder documentBuilder = documentBuilderFactory.newDocumentBuilder(); + Document document = documentBuilder.parse(fis); + this.node = document.getFirstChild(); + } catch (ParserConfigurationException e) { + throw new RuntimeException(e); + } catch (SAXException e) { + throw new RuntimeException(e); + } catch (IOException e) { + throw new RuntimeException(e); + } + this.imageDataDir = imageDataDir; + this.nf = NumberFormat.getInstance(Locale.FRANCE); + } + + private XMLDomMapleData(Node node) { + this.node = node; + this.nf = NumberFormat.getInstance(Locale.FRANCE); + } + + @Override + public MapleData getChildByPath(String path) { + String segments[] = path.split("/"); + if (segments[0].equals("..")) { + return ((MapleData) getParent()).getChildByPath(path.substring(path.indexOf("/") + 1)); + } + + Node myNode = node; + for (int x = 0; x < segments.length; x++) { + NodeList childNodes = myNode.getChildNodes(); + boolean foundChild = false; + for (int i = 0; i < childNodes.getLength(); i++) { + Node childNode = childNodes.item(i); + if (childNode.getNodeType() == Node.ELEMENT_NODE && childNode.getAttributes().getNamedItem("name").getNodeValue().equals(segments[x])) { + myNode = childNode; + foundChild = true; + break; + } + } + if (!foundChild) { + return null; + } + } + XMLDomMapleData ret = new XMLDomMapleData(myNode); + ret.imageDataDir = new File(imageDataDir, getName() + "/" + path).getParentFile(); + return ret; + } + + @Override + public List getChildren() { + List ret = new ArrayList(); + NodeList childNodes = node.getChildNodes(); + for (int i = 0; i < childNodes.getLength(); i++) { + Node childNode = childNodes.item(i); + if (childNode.getNodeType() == Node.ELEMENT_NODE) { + XMLDomMapleData child = new XMLDomMapleData(childNode); + child.imageDataDir = new File(imageDataDir, getName()); + ret.add(child); + } + } + return ret; + } + + @Override + public Object getData() { + NamedNodeMap attributes = node.getAttributes(); + MapleDataType type = getType(); + switch (type) { + case DOUBLE: + case FLOAT: + case INT: + case SHORT: { + String value = attributes.getNamedItem("value").getNodeValue(); + Number nval; + + try { + nval = nf.parse(value); + } + catch(java.text.ParseException pe) { + pe.printStackTrace(); + nval = 0.0f; + } + + switch (type) { + case DOUBLE: + return nval.doubleValue(); + case FLOAT: + return nval.floatValue(); + case INT: + return nval.intValue(); + case SHORT: + return nval.shortValue(); + default: + return null; + } + } + case STRING: + case UOL: { + String value = attributes.getNamedItem("value").getNodeValue(); + return value; + } + case VECTOR: { + String x = attributes.getNamedItem("x").getNodeValue(); + String y = attributes.getNamedItem("y").getNodeValue(); + return new Point(Integer.parseInt(x), Integer.parseInt(y)); + } + case CANVAS: { + String width = attributes.getNamedItem("width").getNodeValue(); + String height = attributes.getNamedItem("height").getNodeValue(); + return new FileStoredPngMapleCanvas(Integer.parseInt(width), Integer.parseInt(height), new File( + imageDataDir, getName() + ".png")); + } + default: + return null; + } + } + + @Override + public MapleDataType getType() { + String nodeName = node.getNodeName(); + if (nodeName.equals("imgdir")) { + return MapleDataType.PROPERTY; + } else if (nodeName.equals("canvas")) { + return MapleDataType.CANVAS; + } else if (nodeName.equals("convex")) { + return MapleDataType.CONVEX; + } else if (nodeName.equals("sound")) { + return MapleDataType.SOUND; + } else if (nodeName.equals("uol")) { + return MapleDataType.UOL; + } else if (nodeName.equals("double")) { + return MapleDataType.DOUBLE; + } else if (nodeName.equals("float")) { + return MapleDataType.FLOAT; + } else if (nodeName.equals("int")) { + return MapleDataType.INT; + } else if (nodeName.equals("short")) { + return MapleDataType.SHORT; + } else if (nodeName.equals("string")) { + return MapleDataType.STRING; + } else if (nodeName.equals("vector")) { + return MapleDataType.VECTOR; + } else if (nodeName.equals("null")) { + return MapleDataType.IMG_0x00; + } + return null; + } + + @Override + public MapleDataEntity getParent() { + Node parentNode = node.getParentNode(); + if (parentNode.getNodeType() == Node.DOCUMENT_NODE) { + return null; + } + XMLDomMapleData parentData = new XMLDomMapleData(parentNode); + parentData.imageDataDir = imageDataDir.getParentFile(); + return parentData; + } + + @Override + public String getName() { + return node.getAttributes().getNamedItem("name").getNodeValue(); + } + + @Override + public Iterator iterator() { + return getChildren().iterator(); + } +} diff --git a/tools/MapleSkillMakerFetcher/src/provider/wz/XMLWZFile.java b/tools/MapleSkillMakerFetcher/src/provider/wz/XMLWZFile.java new file mode 100644 index 0000000000..2a7694fdc9 --- /dev/null +++ b/tools/MapleSkillMakerFetcher/src/provider/wz/XMLWZFile.java @@ -0,0 +1,85 @@ +/* + This file is part of the OdinMS Maple Story Server + Copyright (C) 2008 Patrick Huy + Matthias Butz + Jan Christian Meyer + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as + published by the Free Software Foundation version 3 as published by + the Free Software Foundation. You may not use, modify or distribute + this program under any other version of the GNU Affero General Public + License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . +*/ +package provider.wz; + +import java.io.File; +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.IOException; +import provider.MapleData; +import provider.MapleDataDirectoryEntry; +import provider.MapleDataProvider; + +public class XMLWZFile implements MapleDataProvider { + private File root; + private WZDirectoryEntry rootForNavigation; + + public XMLWZFile(File fileIn) { + root = fileIn; + rootForNavigation = new WZDirectoryEntry(fileIn.getName(), 0, 0, null); + fillMapleDataEntitys(root, rootForNavigation); + } + + private void fillMapleDataEntitys(File lroot, WZDirectoryEntry wzdir) { + for (File file : lroot.listFiles()) { + String fileName = file.getName(); + if (file.isDirectory() && !fileName.endsWith(".img")) { + WZDirectoryEntry newDir = new WZDirectoryEntry(fileName, 0, 0, wzdir); + wzdir.addDirectory(newDir); + fillMapleDataEntitys(file, newDir); + } else if (fileName.endsWith(".xml")) { + wzdir.addFile(new WZFileEntry(fileName.substring(0, fileName.length() - 4), 0, 0, wzdir)); + } + } + } + + @Override + public MapleData getData(String path) { + File dataFile = new File(root, path + ".xml"); + File imageDataDir = new File(root, path); + if (!dataFile.exists()) { + return null;//bitches + } + FileInputStream fis; + try { + fis = new FileInputStream(dataFile); + } catch (FileNotFoundException e) { + throw new RuntimeException("Datafile " + path + " does not exist in " + root.getAbsolutePath()); + } + final XMLDomMapleData domMapleData; + try { + domMapleData = new XMLDomMapleData(fis, imageDataDir.getParentFile()); + } finally { + try { + fis.close(); + } catch (IOException e) { + throw new RuntimeException(e); + } + } + return domMapleData; + } + + @Override + public MapleDataDirectoryEntry getRoot() { + return rootForNavigation; + } +} diff --git a/tools/MapleSkillMakerFetcher/src/tools/HexTool.java b/tools/MapleSkillMakerFetcher/src/tools/HexTool.java new file mode 100644 index 0000000000..8cc0c8aa84 --- /dev/null +++ b/tools/MapleSkillMakerFetcher/src/tools/HexTool.java @@ -0,0 +1,79 @@ +/* + This file is part of the OdinMS Maple Story Server + Copyright (C) 2008 Patrick Huy + Matthias Butz + Jan Christian Meyer + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as + published by the Free Software Foundation version 3 as published by + the Free Software Foundation. You may not use, modify or distribute + this program under any other version of the GNU Affero General Public + License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . +*/ +package tools; + +import java.io.ByteArrayOutputStream; + +public class HexTool { + private static final char[] HEX = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'}; + + private static String toString(byte byteValue) { + int tmp = byteValue << 8; + char[] retstr = new char[]{HEX[(tmp >> 12) & 0x0F], HEX[(tmp >> 8) & 0x0F]}; + return String.valueOf(retstr); + } + + public static String toString(byte[] bytes) { + StringBuilder hexed = new StringBuilder(); + for (int i = 0; i < bytes.length; i++) { + hexed.append(toString(bytes[i])); + hexed.append(' '); + } + return hexed.substring(0, hexed.length() - 1); + } + + public static byte[] getByteArrayFromHexString(String hex) { + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + int nexti = 0; + int nextb = 0; + boolean highoc = true; + outer: + for (;;) { + int number = -1; + while (number == -1) { + if (nexti == hex.length()) { + break outer; + } + char chr = hex.charAt(nexti); + if (chr >= '0' && chr <= '9') { + number = chr - '0'; + } else if (chr >= 'a' && chr <= 'f') { + number = chr - 'a' + 10; + } else if (chr >= 'A' && chr <= 'F') { + number = chr - 'A' + 10; + } else { + number = -1; + } + nexti++; + } + if (highoc) { + nextb = number << 4; + highoc = false; + } else { + nextb |= number; + highoc = true; + baos.write(nextb); + } + } + return baos.toByteArray(); + } +} diff --git a/tools/MapleSkillMakerFetcher/src/tools/data/input/ByteArrayByteStream.java b/tools/MapleSkillMakerFetcher/src/tools/data/input/ByteArrayByteStream.java new file mode 100644 index 0000000000..eac7de21ea --- /dev/null +++ b/tools/MapleSkillMakerFetcher/src/tools/data/input/ByteArrayByteStream.java @@ -0,0 +1,72 @@ +/* + This file is part of the OdinMS Maple Story Server + Copyright (C) 2008 Patrick Huy + Matthias Butz + Jan Christian Meyer + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as + published by the Free Software Foundation version 3 as published by + the Free Software Foundation. You may not use, modify or distribute + this program under any other version of the GNU Affero General Public + License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . +*/ +package tools.data.input; + +import java.io.IOException; +import tools.HexTool; + +public class ByteArrayByteStream implements SeekableInputStreamBytestream { + private int pos = 0; + private long bytesRead = 0; + private byte[] arr; + + public ByteArrayByteStream(byte[] arr) { + this.arr = arr; + } + + @Override + public long getPosition() { + return pos; + } + + @Override + public void seek(long offset) throws IOException { + pos = (int) offset; + } + + @Override + public long getBytesRead() { + return bytesRead; + } + + @Override + public int readByte() { + bytesRead++; + return ((int) arr[pos++]) & 0xFF; + } + + @Override + public String toString() { + String nows = "kevintjuh93 pwns";//I lol'd + if (arr.length - pos > 0) { + byte[] now = new byte[arr.length - pos]; + System.arraycopy(arr, pos, now, 0, arr.length - pos); + nows = HexTool.toString(now); + } + return "All: " + HexTool.toString(arr) + "\nNow: " + nows; + } + + @Override + public long available() { + return arr.length - pos; + } +} diff --git a/tools/MapleSkillMakerFetcher/src/tools/data/input/ByteInputStream.java b/tools/MapleSkillMakerFetcher/src/tools/data/input/ByteInputStream.java new file mode 100644 index 0000000000..107f71843e --- /dev/null +++ b/tools/MapleSkillMakerFetcher/src/tools/data/input/ByteInputStream.java @@ -0,0 +1,35 @@ +/* + This file is part of the OdinMS Maple Story Server + Copyright (C) 2008 Patrick Huy + Matthias Butz + Jan Christian Meyer + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as + published by the Free Software Foundation version 3 as published by + the Free Software Foundation. You may not use, modify or distribute + this program under any other version of the GNU Affero General Public + License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . +*/ +package tools.data.input; + +/** + * Represents an abstract stream of bytes. + * + * @author Frz + * @version 1.0 + * @since Revision 323 + */ +public interface ByteInputStream { + int readByte(); + long getBytesRead(); + long available(); +} diff --git a/tools/MapleSkillMakerFetcher/src/tools/data/input/GenericLittleEndianAccessor.java b/tools/MapleSkillMakerFetcher/src/tools/data/input/GenericLittleEndianAccessor.java new file mode 100644 index 0000000000..d08a9b8374 --- /dev/null +++ b/tools/MapleSkillMakerFetcher/src/tools/data/input/GenericLittleEndianAccessor.java @@ -0,0 +1,239 @@ +/* + This file is part of the OdinMS Maple Story Server + Copyright (C) 2008 Patrick Huy + Matthias Butz + Jan Christian Meyer + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as + published by the Free Software Foundation version 3 as published by + the Free Software Foundation. You may not use, modify or distribute + this program under any other version of the GNU Affero General Public + License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . +*/ +package tools.data.input; + +import java.awt.Point; +import java.io.ByteArrayOutputStream; + +/** + * Provides a generic interface to a Little Endian stream of bytes. + * + * @version 1.0 + * @author Frz + * @since Revision 323 + */ +public class GenericLittleEndianAccessor implements LittleEndianAccessor { + private ByteInputStream bs; + + /** + * Class constructor - Wraps the accessor around a stream of bytes. + * + * @param bs The byte stream to wrap the accessor around. + */ + public GenericLittleEndianAccessor(ByteInputStream bs) { + this.bs = bs; + } + + /** + * Read a single byte from the stream. + * + * @return The byte read. + * @see tools.data.input.ByteInputStream#readByte + */ + @Override + public byte readByte() { + return (byte) bs.readByte(); + } + + /** + * Reads an integer from the stream. + * + * @return The integer read. + */ + @Override + public int readInt() { + return bs.readByte() + (bs.readByte() << 8) + (bs.readByte() << 16) + (bs.readByte() << 24); + } + + /** + * Reads a short integer from the stream. + * + * @return The short read. + */ + @Override + public short readShort() { + return (short) (bs.readByte() + (bs.readByte() << 8)); + } + + /** + * Reads a single character from the stream. + * + * @return The character read. + */ + @Override + public char readChar() { + return (char) readShort(); + } + + /** + * Reads a long integer from the stream. + * + * @return The long integer read. + */ + @Override + public long readLong() { + long byte1 = bs.readByte(); + long byte2 = bs.readByte(); + long byte3 = bs.readByte(); + long byte4 = bs.readByte(); + long byte5 = bs.readByte(); + long byte6 = bs.readByte(); + long byte7 = bs.readByte(); + long byte8 = bs.readByte(); + return (byte8 << 56) + (byte7 << 48) + (byte6 << 40) + (byte5 << 32) + (byte4 << 24) + (byte3 << 16) + (byte2 << 8) + byte1; + } + + /** + * Reads a floating point integer from the stream. + * + * @return The float-type integer read. + */ + @Override + public float readFloat() { + return Float.intBitsToFloat(readInt()); + } + + /** + * Reads a double-precision integer from the stream. + * + * @return The double-type integer read. + */ + @Override + public double readDouble() { + return Double.longBitsToDouble(readLong()); + } + + /** + * Reads an ASCII string from the stream with length n. + * + * @param n Number of characters to read. + * @return The string read. + */ + public final String readAsciiString(int n) { + char ret[] = new char[n]; + for (int x = 0; x < n; x++) { + ret[x] = (char) readByte(); + } + return String.valueOf(ret); + } + + /** + * Reads a null-terminated string from the stream. + * + * @return The string read. + */ + public final String readNullTerminatedAsciiString() { + ByteArrayOutputStream baos = new ByteArrayOutputStream(); + byte b; + while (true) { + b = readByte(); + if (b == 0) { + break; + } + baos.write(b); + } + byte[] buf = baos.toByteArray(); + char[] chrBuf = new char[buf.length]; + for (int x = 0; x < buf.length; x++) { + chrBuf[x] = (char) buf[x]; + } + return String.valueOf(chrBuf); + } + + /** + * Gets the number of bytes read from the stream so far. + * + * @return A long integer representing the number of bytes read. + * @see tools.data.input.ByteInputStream#getBytesRead() + */ + public long getBytesRead() { + return bs.getBytesRead(); + } + + /** + * Reads a MapleStory convention lengthed ASCII string. + * This consists of a short integer telling the length of the string, + * then the string itself. + * + * @return The string read. + */ + @Override + public String readMapleAsciiString() { + return readAsciiString(readShort()); + } + + /** + * Reads num bytes off the stream. + * + * @param num The number of bytes to read. + * @return An array of bytes with the length of num + */ + @Override + public byte[] read(int num) { + byte[] ret = new byte[num]; + for (int x = 0; x < num; x++) { + ret[x] = readByte(); + } + return ret; + } + + /** + * Reads a MapleStory Position information. + * This consists of 2 short integer. + * + * @return The Position read. + */ + @Override + public final Point readPos() { + final int x = readShort(); + final int y = readShort(); + return new Point(x, y); + } + + /** + * Skips the current position of the stream num bytes ahead. + * + * @param num Number of bytes to skip. + */ + @Override + public void skip(int num) { + for (int x = 0; x < num; x++) { + readByte(); + } + } + + /** + * @see tools.data.input.ByteInputStream#available + */ + @Override + public long available() { + return bs.available(); + } + + /** + * @see java.lang.Object#toString + */ + @Override + public String toString() { + return bs.toString(); + } +} \ No newline at end of file diff --git a/tools/MapleSkillMakerFetcher/src/tools/data/input/GenericSeekableLittleEndianAccessor.java b/tools/MapleSkillMakerFetcher/src/tools/data/input/GenericSeekableLittleEndianAccessor.java new file mode 100644 index 0000000000..fdd147d796 --- /dev/null +++ b/tools/MapleSkillMakerFetcher/src/tools/data/input/GenericSeekableLittleEndianAccessor.java @@ -0,0 +1,91 @@ +/* + This file is part of the OdinMS Maple Story Server + Copyright (C) 2008 Patrick Huy + Matthias Butz + Jan Christian Meyer + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as + published by the Free Software Foundation version 3 as published by + the Free Software Foundation. You may not use, modify or distribute + this program under any other version of the GNU Affero General Public + License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . +*/ +package tools.data.input; + +import java.io.IOException; + +/** + * Provides an abstract accessor to a generic Little Endian byte stream. This + * accessor is seekable. + * + * @author Frz + * @version 1.0 + * @since Revision 323 + * @see tools.data.input.GenericLittleEndianAccessor + */ +public class GenericSeekableLittleEndianAccessor extends GenericLittleEndianAccessor implements SeekableLittleEndianAccessor { + private SeekableInputStreamBytestream bs; + + /** + * Class constructor + * Provide a seekable input stream to wrap this object around. + * + * @param bs The byte stream to wrap this around. + */ + public GenericSeekableLittleEndianAccessor(SeekableInputStreamBytestream bs) { + super(bs); + this.bs = bs; + } + + /** + * Seek the pointer to offset + * + * @param offset The offset to seek to. + * @see tools.data.input.SeekableInputStreamBytestream#seek + */ + @Override + public void seek(long offset) { + try { + bs.seek(offset); + } catch (IOException e) { + e.printStackTrace(); + System.out.println("Seek failed " + e); + } + } + + /** + * Get the current position of the pointer. + * + * @return The current position of the pointer as a long integer. + * @see tools.data.input.SeekableInputStreamBytestream#getPosition + */ + @Override + public long getPosition() { + try { + return bs.getPosition(); + } catch (IOException e) { + e.printStackTrace(); + System.out.println("getPosition failed" + e); + return -1; + } + } + + /** + * Skip num number of bytes in the stream. + * + * @param num The number of bytes to skip. + */ + @Override + public void skip(int num) { + seek(getPosition() + num); + } +} diff --git a/tools/MapleSkillMakerFetcher/src/tools/data/input/InputStreamByteStream.java b/tools/MapleSkillMakerFetcher/src/tools/data/input/InputStreamByteStream.java new file mode 100644 index 0000000000..70aef3489f --- /dev/null +++ b/tools/MapleSkillMakerFetcher/src/tools/data/input/InputStreamByteStream.java @@ -0,0 +1,93 @@ +/* + This file is part of the OdinMS Maple Story Server + Copyright (C) 2008 Patrick Huy + Matthias Butz + Jan Christian Meyer + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as + published by the Free Software Foundation version 3 as published by + the Free Software Foundation. You may not use, modify or distribute + this program under any other version of the GNU Affero General Public + License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . +*/ +package tools.data.input; + +import java.io.IOException; +import java.io.InputStream; + +/** + * Provides an abstract wrapper to a stream of bytes. + * + * @author Frz + * @version 1.0 + * @since Revision 323 + */ +public class InputStreamByteStream implements ByteInputStream { + private InputStream is; + private long read = 0; + + /** + * Class constructor. + * Provide an input stream to wrap this around. + * + * @param is The input stream to wrap this object around. + */ + public InputStreamByteStream(InputStream is) { + this.is = is; + } + + /** + * Reads the next byte from the stream. + * + * @return Then next byte in the stream. + */ + @Override + public int readByte() { + int temp; + try { + temp = is.read(); + if (temp == -1) { + throw new RuntimeException("EOF"); + } + read++; + return temp; + } catch (IOException e) { + throw new RuntimeException(e); + } + } + + /** + * Gets the number of bytes read from the stream. + * + * @return The number of bytes read as a long integer. + */ + @Override + public long getBytesRead() { + return read; + } + + /** + * Returns the number of bytes left in the stream. + * + * @return The number of bytes available for reading as a long integer. + */ + @Override + public long available() { + try { + return is.available(); + } catch (IOException e) { + e.printStackTrace(); + System.out.println("ERROR" + e); + return 0; + } + } +} diff --git a/tools/MapleSkillMakerFetcher/src/tools/data/input/LittleEndianAccessor.java b/tools/MapleSkillMakerFetcher/src/tools/data/input/LittleEndianAccessor.java new file mode 100644 index 0000000000..f991dbf537 --- /dev/null +++ b/tools/MapleSkillMakerFetcher/src/tools/data/input/LittleEndianAccessor.java @@ -0,0 +1,45 @@ +/* + This file is part of the OdinMS Maple Story Server + Copyright (C) 2008 Patrick Huy + Matthias Butz + Jan Christian Meyer + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as + published by the Free Software Foundation version 3 as published by + the Free Software Foundation. You may not use, modify or distribute + this program under any other version of the GNU Affero General Public + License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . +*/ +package tools.data.input; + +import java.awt.Point; + +/** + * @author Frz + */ +public interface LittleEndianAccessor { + byte readByte(); + char readChar(); + short readShort(); + int readInt(); + Point readPos(); + long readLong(); + void skip(int num); + byte[] read(int num); + float readFloat(); + double readDouble(); + String readAsciiString(int n); + String readNullTerminatedAsciiString(); + String readMapleAsciiString(); + long getBytesRead(); + long available(); +} diff --git a/tools/MapleSkillMakerFetcher/src/tools/data/input/RandomAccessByteStream.java b/tools/MapleSkillMakerFetcher/src/tools/data/input/RandomAccessByteStream.java new file mode 100644 index 0000000000..c0004be17f --- /dev/null +++ b/tools/MapleSkillMakerFetcher/src/tools/data/input/RandomAccessByteStream.java @@ -0,0 +1,84 @@ +/* + This file is part of the OdinMS Maple Story Server + Copyright (C) 2008 Patrick Huy + Matthias Butz + Jan Christian Meyer + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as + published by the Free Software Foundation version 3 as published by + the Free Software Foundation. You may not use, modify or distribute + this program under any other version of the GNU Affero General Public + License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . +*/ +package tools.data.input; + +import java.io.IOException; +import java.io.RandomAccessFile; + +/** + * Provides an abstract layer to a byte stream. This layer can be accessed + * randomly. + * + * @author Frz + * @version 1.0 + * @since Revision 323 + */ +public class RandomAccessByteStream implements SeekableInputStreamBytestream { + private RandomAccessFile raf; + private long read = 0; + + public RandomAccessByteStream(RandomAccessFile raf) { + super(); + this.raf = raf; + } + + @Override + public int readByte() { + int temp; + try { + temp = raf.read(); + if (temp == -1) { + throw new RuntimeException("EOF"); + } + read++; + return temp; + } catch (IOException e) { + throw new RuntimeException(e); + } + } + + @Override + public void seek(long offset) throws IOException { + raf.seek(offset); + } + + @Override + public long getPosition() throws IOException { + return raf.getFilePointer(); + } + + @Override + public long getBytesRead() { + return read; + } + + @Override + public long available() { + try { + return raf.length() - raf.getFilePointer(); + } catch (IOException e) { + e.printStackTrace(); + System.out.println("ERROR " + e); + return 0; + } + } +} diff --git a/tools/MapleSkillMakerFetcher/src/tools/data/input/SeekableInputStreamBytestream.java b/tools/MapleSkillMakerFetcher/src/tools/data/input/SeekableInputStreamBytestream.java new file mode 100644 index 0000000000..f4922dc876 --- /dev/null +++ b/tools/MapleSkillMakerFetcher/src/tools/data/input/SeekableInputStreamBytestream.java @@ -0,0 +1,51 @@ +/* + This file is part of the OdinMS Maple Story Server + Copyright (C) 2008 Patrick Huy + Matthias Butz + Jan Christian Meyer + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as + published by the Free Software Foundation version 3 as published by + the Free Software Foundation. You may not use, modify or distribute + this program under any other version of the GNU Affero General Public + License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . +*/ +package tools.data.input; + +import java.io.IOException; + +/** + * Provides an abstract interface to a stream of bytes. This stream can be + * seeked. + * + * @author Frz + * @version 1.0 + * @since 299 + */ +public interface SeekableInputStreamBytestream extends ByteInputStream { + /** + * Seeks the stream by the specified offset. + * + * @param offset + * Number of bytes to seek. + * @throws IOException + */ + void seek(long offset) throws IOException; + + /** + * Gets the current position of the stream. + * + * @return The stream position as a long integer. + * @throws IOException + */ + long getPosition() throws IOException; +} diff --git a/tools/MapleSkillMakerFetcher/src/tools/data/input/SeekableLittleEndianAccessor.java b/tools/MapleSkillMakerFetcher/src/tools/data/input/SeekableLittleEndianAccessor.java new file mode 100644 index 0000000000..16b2317f7a --- /dev/null +++ b/tools/MapleSkillMakerFetcher/src/tools/data/input/SeekableLittleEndianAccessor.java @@ -0,0 +1,27 @@ +/* + This file is part of the OdinMS Maple Story Server + Copyright (C) 2008 Patrick Huy + Matthias Butz + Jan Christian Meyer + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as + published by the Free Software Foundation version 3 as published by + the Free Software Foundation. You may not use, modify or distribute + this program under any other version of the GNU Affero General Public + License. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . +*/ +package tools.data.input; + +public interface SeekableLittleEndianAccessor extends LittleEndianAccessor { + void seek(long offset); + long getPosition(); +} diff --git a/tools/MapleSkillMakerReagentIndexer/build.xml b/tools/MapleSkillMakerReagentIndexer/build.xml new file mode 100644 index 0000000000..3275f0ee69 --- /dev/null +++ b/tools/MapleSkillMakerReagentIndexer/build.xml @@ -0,0 +1,73 @@ + + + + + + + + + + + Builds, tests, and runs the project MapleSkillMakerReagentIndexer. + + + diff --git a/tools/MapleSkillMakerReagentIndexer/lib/MakerReagentData.sql b/tools/MapleSkillMakerReagentIndexer/lib/MakerReagentData.sql new file mode 100644 index 0000000000..02c536569c --- /dev/null +++ b/tools/MapleSkillMakerReagentIndexer/lib/MakerReagentData.sql @@ -0,0 +1,56 @@ + # SQL File autogenerated from the MapleSkillMakerReagentIndexer feature by Ronan Lana. + # Generated data is conformant with the Item.wz folder used to compile this. + +CREATE TABLE IF NOT EXISTS `makerreagentdata` ( + `itemid` int(11) NOT NULL, + `stat` varchar(20) NOT NULL, + `value` smallint(6) NOT NULL, + PRIMARY KEY (`itemid`) +) ENGINE=MyISAM DEFAULT CHARSET=latin1; + +INSERT IGNORE INTO `makerreagentdata` (`itemid`, `stat`, `value`) VALUES + (4250000, "incPAD", 1), + (4250001, "incPAD", 2), + (4250002, "incPAD", 3), + (4250100, "incMAD", 1), + (4250101, "incMAD", 2), + (4250102, "incMAD", 3), + (4250200, "incACC", 2), + (4250201, "incACC", 3), + (4250202, "incACC", 5), + (4250300, "incEVA", 2), + (4250301, "incEVA", 3), + (4250302, "incEVA", 5), + (4250400, "incSpeed", 2), + (4250401, "incSpeed", 3), + (4250402, "incSpeed", 5), + (4250500, "incJump", 1), + (4250501, "incJump", 2), + (4250502, "incJump", 3), + (4250600, "incMaxHP", 10), + (4250601, "incMaxHP", 20), + (4250602, "incMaxHP", 30), + (4250700, "incMaxMP", 10), + (4250701, "incMaxMP", 20), + (4250702, "incMaxMP", 30), + (4250800, "incSTR", 2), + (4250801, "incSTR", 3), + (4250802, "incSTR", 5), + (4250900, "incINT", 2), + (4250901, "incINT", 3), + (4250902, "incINT", 5), + (4251000, "incLUK", 2), + (4251001, "incLUK", 3), + (4251002, "incLUK", 5), + (4251100, "incDEX", 2), + (4251101, "incDEX", 3), + (4251102, "incDEX", 5), + (4251200, "incReqLevel", -1), + (4251201, "incReqLevel", -2), + (4251202, "incReqLevel", -3), + (4251300, "randOption", 1), + (4251301, "randOption", 2), + (4251302, "randOption", 3), + (4251400, "randStat", 2), + (4251401, "randStat", 3), + (4251402, "randStat", 5); diff --git a/tools/MapleSkillMakerReagentIndexer/manifest.mf b/tools/MapleSkillMakerReagentIndexer/manifest.mf new file mode 100644 index 0000000000..328e8e5bc3 --- /dev/null +++ b/tools/MapleSkillMakerReagentIndexer/manifest.mf @@ -0,0 +1,3 @@ +Manifest-Version: 1.0 +X-COMMENT: Main-Class will be added automatically by build + diff --git a/tools/MapleSkillMakerReagentIndexer/nbproject/build-impl.xml b/tools/MapleSkillMakerReagentIndexer/nbproject/build-impl.xml new file mode 100644 index 0000000000..773305a96f --- /dev/null +++ b/tools/MapleSkillMakerReagentIndexer/nbproject/build-impl.xml @@ -0,0 +1,1448 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Must set platform.home + Must set platform.bootcp + Must set platform.java + Must set platform.javac + + The J2SE Platform is not correctly set up. + Your active platform is: ${platform.active}, but the corresponding property "platforms.${platform.active}.home" is not found in the project's properties files. + Either open the project in the IDE and setup the Platform with the same name or add it manually. + For example like this: + ant -Duser.properties.file=<path_to_property_file> jar (where you put the property "platforms.${platform.active}.home" in a .properties file) + or ant -Dplatforms.${platform.active}.home=<path_to_JDK_home> jar (where no properties file is used) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Must set src.dir + Must set test.src.dir + Must set build.dir + Must set dist.dir + Must set build.classes.dir + Must set dist.javadoc.dir + Must set build.test.classes.dir + Must set build.test.results.dir + Must set build.classes.excludes + Must set dist.jar + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Must set javac.includes + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + No tests executed. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Must set JVM to use for profiling in profiler.info.jvm + Must set profiler agent JVM arguments in profiler.info.jvmargs.agent + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Must select some files in the IDE or set javac.includes + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + To run this application from the command line without Ant, try: + + ${platform.java} -jar "${dist.jar.resolved}" + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Must select one file in the IDE or set run.class + + + + Must select one file in the IDE or set run.class + + + + + + + + + + + + + + + + + + + + + + + Must select one file in the IDE or set debug.class + + + + + Must select one file in the IDE or set debug.class + + + + + Must set fix.includes + + + + + + + + + + This target only works when run from inside the NetBeans IDE. + + + + + + + + + Must select one file in the IDE or set profile.class + This target only works when run from inside the NetBeans IDE. + + + + + + + + + This target only works when run from inside the NetBeans IDE. + + + + + + + + + + + + + This target only works when run from inside the NetBeans IDE. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Must select one file in the IDE or set run.class + + + + + + Must select some files in the IDE or set test.includes + + + + + Must select one file in the IDE or set run.class + + + + + Must select one file in the IDE or set applet.url + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Must select some files in the IDE or set javac.includes + + + + + + + + + + + + + + + + + + + + Some tests failed; see details above. + + + + + + + + + Must select some files in the IDE or set test.includes + + + + Some tests failed; see details above. + + + + Must select some files in the IDE or set test.class + Must select some method in the IDE or set test.method + + + + Some tests failed; see details above. + + + + + Must select one file in the IDE or set test.class + + + + Must select one file in the IDE or set test.class + Must select some method in the IDE or set test.method + + + + + + + + + + + + + + Must select one file in the IDE or set applet.url + + + + + + + + + Must select one file in the IDE or set applet.url + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/tools/MapleSkillMakerReagentIndexer/nbproject/genfiles.properties b/tools/MapleSkillMakerReagentIndexer/nbproject/genfiles.properties new file mode 100644 index 0000000000..af30fbb9f1 --- /dev/null +++ b/tools/MapleSkillMakerReagentIndexer/nbproject/genfiles.properties @@ -0,0 +1,8 @@ +build.xml.data.CRC32=49f97f2c +build.xml.script.CRC32=75bbe280 +build.xml.stylesheet.CRC32=8064a381@1.75.2.48 +# This file is used by a NetBeans-based IDE to track changes in generated files such as build-impl.xml. +# Do not edit this file. You may delete it but then the IDE will never regenerate such files for you. +nbproject/build-impl.xml.data.CRC32=49f97f2c +nbproject/build-impl.xml.script.CRC32=919b8bee +nbproject/build-impl.xml.stylesheet.CRC32=876e7a8f@1.75.2.48 diff --git a/tools/MapleSkillMakerReagentIndexer/nbproject/project.properties b/tools/MapleSkillMakerReagentIndexer/nbproject/project.properties new file mode 100644 index 0000000000..05e10df1c4 --- /dev/null +++ b/tools/MapleSkillMakerReagentIndexer/nbproject/project.properties @@ -0,0 +1,73 @@ +annotation.processing.enabled=true +annotation.processing.enabled.in.editor=false +annotation.processing.processor.options= +annotation.processing.processors.list= +annotation.processing.run.all.processors=true +annotation.processing.source.output=${build.generated.sources.dir}/ap-source-output +build.classes.dir=${build.dir}/classes +build.classes.excludes=**/*.java,**/*.form +# This directory is removed when the project is cleaned: +build.dir=build +build.generated.dir=${build.dir}/generated +build.generated.sources.dir=${build.dir}/generated-sources +# Only compile against the classpath explicitly listed here: +build.sysclasspath=ignore +build.test.classes.dir=${build.dir}/test/classes +build.test.results.dir=${build.dir}/test/results +# Uncomment to specify the preferred debugger connection transport: +#debug.transport=dt_socket +debug.classpath=\ + ${run.classpath} +debug.test.classpath=\ + ${run.test.classpath} +# Os arquivos em build.classes.dir que devem ser exclu\u00eddos do jar de distribui\u00e7\u00e3o +dist.archive.excludes= +# This directory is removed when the project is cleaned: +dist.dir=dist +dist.jar=${dist.dir}/MapleSkillMakerReagentIndexer.jar +dist.javadoc.dir=${dist.dir}/javadoc +excludes= +includes=** +jar.compress=false +javac.classpath= +# Space-separated list of extra javac options +javac.compilerargs= +javac.deprecation=false +javac.processorpath=\ + ${javac.classpath} +javac.source=1.7 +javac.target=1.7 +javac.test.classpath=\ + ${javac.classpath}:\ + ${build.classes.dir} +javac.test.processorpath=\ + ${javac.test.classpath} +javadoc.additionalparam= +javadoc.author=false +javadoc.encoding=${source.encoding} +javadoc.noindex=false +javadoc.nonavbar=false +javadoc.notree=false +javadoc.private=false +javadoc.splitindex=true +javadoc.use=true +javadoc.version=false +javadoc.windowtitle= +main.class=mapleskillmakerreagentindexer.MapleSkillMakerReagentIndexer +manifest.file=manifest.mf +meta.inf.dir=${src.dir}/META-INF +mkdist.disabled=false +platform.active=JDK_1.7 +run.classpath=\ + ${javac.classpath}:\ + ${build.classes.dir} +# Space-separated list of JVM arguments used when running the project. +# You may also define separate properties like run-sys-prop.name=value instead of -Dname=value. +# To set system properties for unit tests define test-sys-prop.name=value: +run.jvmargs= +run.test.classpath=\ + ${javac.test.classpath}:\ + ${build.test.classes.dir} +source.encoding=UTF-8 +src.dir=src +test.src.dir=test diff --git a/tools/MapleSkillMakerReagentIndexer/nbproject/project.xml b/tools/MapleSkillMakerReagentIndexer/nbproject/project.xml new file mode 100644 index 0000000000..24af6599c4 --- /dev/null +++ b/tools/MapleSkillMakerReagentIndexer/nbproject/project.xml @@ -0,0 +1,16 @@ + + + org.netbeans.modules.java.j2seproject + + + MapleSkillMakerReagentIndexer + + + + + + + + + + diff --git a/tools/MapleSkillMakerReagentIndexer/src/mapleskillmakerreagentindexer/MapleSkillMakerReagentIndexer.java b/tools/MapleSkillMakerReagentIndexer/src/mapleskillmakerreagentindexer/MapleSkillMakerReagentIndexer.java new file mode 100644 index 0000000000..464db4ab04 --- /dev/null +++ b/tools/MapleSkillMakerReagentIndexer/src/mapleskillmakerreagentindexer/MapleSkillMakerReagentIndexer.java @@ -0,0 +1,226 @@ +/* + * This file is part of the MapleSolaxiaV2 Maple Story Server + * + * Copyright (C) 2017 RonanLana + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ +package mapleskillmakerreagentindexer; + +import java.io.BufferedReader; +import java.io.FileInputStream; +import java.io.FileNotFoundException; +import java.io.IOException; +import java.io.InputStreamReader; +import java.io.PrintWriter; +import java.util.ArrayList; +import java.util.Collections; +import java.util.Comparator; +import java.util.List; + +/** + * + * @author RonanLana + * + * The main objective of this program is to index relevant reagent data + * from the Item.wz folder and generate a SQL table with them, to be used + * by the server source. + * + */ +public class MapleSkillMakerReagentIndexer { + static String host = "jdbc:mysql://localhost:3306/maplesolaxia"; + static String driver = "com.mysql.jdbc.Driver"; + static String username = "root"; + static String password = ""; + + static String fileName = "../../wz/Item.wz/Etc/0425.img.xml"; + static String newFile = "lib/MakerReagentData.sql"; + + static PrintWriter printWriter = null; + static InputStreamReader fileReader = null; + static BufferedReader bufferedReader = null; + static byte status = 0; + + static int id = -1; + static List>> reagentList = new ArrayList<>(); + + static int initialStringLength = 50; + + private static String getName(String token) { + int i, j; + char[] dest; + String d; + + i = token.lastIndexOf("name"); + i = token.indexOf("\"", i) + 1; //lower bound of the string + j = token.indexOf("\"", i); //upper bound + + dest = new char[initialStringLength]; + token.getChars(i, j, dest, 0); + + d = new String(dest); + return(d.trim()); + } + + private static String getValue(String token) { + int i, j; + char[] dest; + String d; + + i = token.lastIndexOf("value"); + i = token.indexOf("\"", i) + 1; //lower bound of the string + j = token.indexOf("\"", i); //upper bound + + dest = new char[initialStringLength]; + token.getChars(i, j, dest, 0); + + d = new String(dest); + return(d.trim()); + } + + private static void simpleToken(String token) { + if(token.contains("/imgdir")) { + status -= 1; + } + else if(token.contains("imgdir")) { + status += 1; + } + } + + private static void forwardCursor(int st) { + String line = null; + + try { + while(status >= st && (line = bufferedReader.readLine()) != null) { + simpleToken(line); + } + } + catch(Exception e) { + e.printStackTrace(); + } + } + + private static void translateToken(String token) { + String d; + + if(token.contains("/imgdir")) { + status -= 1; + } + else if(token.contains("imgdir")) { + if(status == 1) { //getting id + d = getName(token); + id = Integer.parseInt(d); + System.out.println("Parsing maker reagent id " + id); + } else if(status == 2) { + d = getName(token); + if(!d.equals("info")) { + System.out.println("not info"); + forwardCursor(status); + } + } + + status += 1; + } else { + if(status == 3) { + if(token.contains("int")) { + d = getName(token); + + if(d.contains("inc") || d.contains("rand")) { + Integer v = Integer.valueOf(getValue(token)); + Pair reagBuff = new Pair<>(d, v); + + Pair> reagItem = new Pair<>(id, reagBuff); + reagentList.add(reagItem); + } + } else { + if(token.contains("canvas")) { + forwardCursor(status + 1); + } + } + } + } + } + + private static void SortReagentList() { + Collections.sort(reagentList, new Comparator>>() { + @Override + public int compare(Pair> p1, Pair> p2) { + return p1.getLeft().compareTo(p2.getLeft()); + } + }); + } + + private static void WriteMakerReagentTableFile() { + printWriter.println(" # SQL File autogenerated from the MapleSkillMakerReagentIndexer feature by Ronan Lana."); + printWriter.println(" # Generated data is conformant with the Item.wz folder used to compile this."); + printWriter.println(); + + printWriter.println("CREATE TABLE IF NOT EXISTS `makerreagentdata` ("); + printWriter.println(" `itemid` int(11) NOT NULL,"); + printWriter.println(" `stat` varchar(20) NOT NULL,"); + printWriter.println(" `value` smallint(6) NOT NULL,"); + printWriter.println(" PRIMARY KEY (`itemid`)"); + printWriter.println(") ENGINE=MyISAM DEFAULT CHARSET=latin1;"); + printWriter.println(); + + StringBuilder sb = new StringBuilder("INSERT IGNORE INTO `makerreagentdata` (`itemid`, `stat`, `value`) VALUES\r\n"); + + for(Pair> it : reagentList) { + sb.append(" (" + it.left + ", \"" + it.right.left + "\", " + it.right.right + "),\r\n"); + } + + sb.setLength(sb.length() - 3); + sb.append(";"); + + printWriter.println(sb); + } + + private static void WriteMakerReagentTableData() { + // This will reference one line at a time + String line = null; + + try { + fileReader = new InputStreamReader(new FileInputStream(fileName), "UTF-8"); + bufferedReader = new BufferedReader(fileReader); + + while((line = bufferedReader.readLine()) != null) { + translateToken(line); + } + + bufferedReader.close(); + fileReader.close(); + + SortReagentList(); + + printWriter = new PrintWriter(newFile, "UTF-8"); + WriteMakerReagentTableFile(); + printWriter.close(); + } + + catch(FileNotFoundException ex) { + System.out.println("Unable to open file '" + fileName + "'"); + } + catch(IOException ex) { + System.out.println("Error reading file '" + fileName + "'"); + } + + catch(Exception e) { + e.printStackTrace(); + } + } + + public static void main(String[] args) { + WriteMakerReagentTableData(); + } +} diff --git a/tools/MapleSkillMakerReagentIndexer/src/mapleskillmakerreagentindexer/Pair.java b/tools/MapleSkillMakerReagentIndexer/src/mapleskillmakerreagentindexer/Pair.java new file mode 100644 index 0000000000..9377cb8178 --- /dev/null +++ b/tools/MapleSkillMakerReagentIndexer/src/mapleskillmakerreagentindexer/Pair.java @@ -0,0 +1,121 @@ +/* +This file is part of the OdinMS Maple Story Server +Copyright (C) 2008 ~ 2010 Patrick Huy +Matthias Butz +Jan Christian Meyer + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU Affero General Public License version 3 +as published by the Free Software Foundation. You may not use, modify +or distribute this program under any other version of the +GNU Affero General Public License. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU Affero General Public License for more details. + +You should have received a copy of the GNU Affero General Public License +along with this program. If not, see . + */ +package mapleskillmakerreagentindexer; + +/** + * Represents a pair of values. + * + * @author Frz + * @since Revision 333 + * @version 1.0 + * + * @param The type of the left value. + * @param The type of the right value. + */ +public class Pair { + + public E left; + public F right; + + /** + * Class constructor - pairs two objects together. + * + * @param left The left object. + * @param right The right object. + */ + public Pair(E left, F right) { + this.left = left; + this.right = right; + } + + /** + * Gets the left value. + * + * @return The left value. + */ + public E getLeft() { + return left; + } + + /** + * Gets the right value. + * + * @return The right value. + */ + public F getRight() { + return right; + } + + /** + * Turns the pair into a string. + * + * @return Each value of the pair as a string joined by a colon. + */ + @Override + public String toString() { + return left.toString() + ":" + right.toString(); + } + + /** + * Gets the hash code of this pair. + */ + @Override + public int hashCode() { + final int prime = 31; + int result = 1; + result = prime * result + ((left == null) ? 0 : left.hashCode()); + result = prime * result + ((right == null) ? 0 : right.hashCode()); + return result; + } + + /** + * Checks to see if two pairs are equal. + */ + @SuppressWarnings("unchecked") + @Override + public boolean equals(Object obj) { + if (this == obj) { + return true; + } + if (obj == null) { + return false; + } + if (getClass() != obj.getClass()) { + return false; + } + final Pair other = (Pair) obj; + if (left == null) { + if (other.left != null) { + return false; + } + } else if (!left.equals(other.left)) { + return false; + } + if (right == null) { + if (other.right != null) { + return false; + } + } else if (!right.equals(other.right)) { + return false; + } + return true; + } +} \ No newline at end of file diff --git a/wz/Quest.wz/Act.img.xml b/wz/Quest.wz/Act.img.xml index b84644b4b5..95f52423ba 100644 --- a/wz/Quest.wz/Act.img.xml +++ b/wz/Quest.wz/Act.img.xml @@ -34682,7 +34682,6 @@ - diff --git a/wz/Quest.wz/Check.img.xml b/wz/Quest.wz/Check.img.xml index b76319bf5e..3c5fa81f82 100644 --- a/wz/Quest.wz/Check.img.xml +++ b/wz/Quest.wz/Check.img.xml @@ -56514,33 +56514,12 @@ - - - - - - - - - - - - - - - - - - - - - @@ -56628,32 +56607,18 @@ + + - - - - - - - - - - - - - - - - @@ -56743,22 +56708,6 @@ - - - - - - - - - - - - - - - - @@ -56846,6 +56795,7 @@ + diff --git a/wz/Quest.wz/Say.img.xml b/wz/Quest.wz/Say.img.xml index 5dfe81e50f..3fbc6c45a1 100644 --- a/wz/Quest.wz/Say.img.xml +++ b/wz/Quest.wz/Say.img.xml @@ -22668,7 +22668,7 @@ - +