diff --git a/MobBookUpdate/build/built-jar.properties b/MobBookUpdate/build/built-jar.properties index 973b512f4c..ca380ffe33 100644 --- a/MobBookUpdate/build/built-jar.properties +++ b/MobBookUpdate/build/built-jar.properties @@ -1,4 +1,4 @@ -#Sun, 09 Aug 2015 19:24:52 -0300 +#Sun, 02 Apr 2017 20:43:09 -0300 C\:\\Nexon\\MapleSolaxia\\MobBookUpdate= diff --git a/MobBookUpdate/build/classes/.netbeans_automatic_build b/MobBookUpdate/build/classes/.netbeans_automatic_build deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/MobBookUpdate/build/classes/.netbeans_update_resources b/MobBookUpdate/build/classes/.netbeans_update_resources deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/MobBookUpdate/build/classes/mobbookupdate/MobBookUpdate.class b/MobBookUpdate/build/classes/mobbookupdate/MobBookUpdate.class index 5025f8e8cd..d4de6b675b 100644 Binary files a/MobBookUpdate/build/classes/mobbookupdate/MobBookUpdate.class and b/MobBookUpdate/build/classes/mobbookupdate/MobBookUpdate.class differ diff --git a/MobBookUpdate/dist/MobBookUpdate.jar b/MobBookUpdate/dist/MobBookUpdate.jar index 147466127e..dff2cc24c3 100644 Binary files a/MobBookUpdate/dist/MobBookUpdate.jar and b/MobBookUpdate/dist/MobBookUpdate.jar differ diff --git a/MobBookUpdate/dist/MonsterBook.img.xml b/MobBookUpdate/dist/MonsterBook.img.xml deleted file mode 100644 index 1432ef4e7e..0000000000 --- a/MobBookUpdate/dist/MonsterBook.img.xml +++ /dev/null @@ -1,12885 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/MobBookUpdate/dist/MonsterBook_updated.img.xml b/MobBookUpdate/dist/MonsterBook_updated.img.xml deleted file mode 100644 index 031c7f001d..0000000000 --- a/MobBookUpdate/dist/MonsterBook_updated.img.xml +++ /dev/null @@ -1,14980 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/MobBookUpdate/nbproject/private/private.xml b/MobBookUpdate/nbproject/private/private.xml index 5083cfa57d..6807a2ba19 100644 --- a/MobBookUpdate/nbproject/private/private.xml +++ b/MobBookUpdate/nbproject/private/private.xml @@ -2,8 +2,6 @@ - - file:/C:/Users/RonanLana/Documents/NetBeansProjects/MobBookUpdate/src/mobbookupdate/MobBookUpdate.java - + diff --git a/MobBookUpdate/src/mobbookupdate/MobBookUpdate.java b/MobBookUpdate/src/mobbookupdate/MobBookUpdate.java index 0b4f567fb7..bed562183b 100644 --- a/MobBookUpdate/src/mobbookupdate/MobBookUpdate.java +++ b/MobBookUpdate/src/mobbookupdate/MobBookUpdate.java @@ -42,7 +42,7 @@ public class MobBookUpdate { static Connection con = null; static PrintWriter printWriter = null; - static FileReader fileReader = null; + static InputStreamReader fileReader = null; static BufferedReader bufferedReader = null; static byte status = 0; static int mobId = -1; @@ -158,7 +158,7 @@ public class MobBookUpdate { con = DriverManager.getConnection(host, username, password); printWriter = new PrintWriter(newFile, "UTF-8"); - fileReader = new FileReader(fileName); + fileReader = new InputStreamReader(new FileInputStream(fileName), "UTF-8"); bufferedReader = new BufferedReader(fileReader); while((line = bufferedReader.readLine()) != null) { diff --git a/README.txt b/README.txt index 532abdd581..5d11db1d25 100644 --- a/README.txt +++ b/README.txt @@ -10,55 +10,143 @@ This is a NetBeans 8.0.2 Project. This means that it's easier to install the pro new project using existing code". Once installed, build this project on your machine and run the server using the "launch.bat" application. ----- Installing ---- +In this project, many gameplay-wise issues generated from either the original WZ files and the server sources +have been partially or completely solved. From now on, considering the use of some of this system's edited WZ +and server-side files should be a great asset for new private server instances. My opinion, though! Refer to +"README_wzchanges.txt" for more information on what have been changed from Nexon's v83 WZ files. -DropBox client files: https://www.dropbox.com/sh/fo3tg3q9liqvfeg/AACSqrjeytQepBOTeMHkKahya?dl=0 +---- Download items ---- -For additional tools described here, refer to the link to this folder on the DropBox: - - ManagerMsv83: original client for MapleStory v83. - - Localhostv83: overrides "MapleStory.exe" with the assigned IP in it's binary program. - - lolwut-v0.01: necessary for running on Windows 8/10. - - HaSuite-211: haha01haha01's repacker. - - free-hex-editor-neo: edit the "localhost.exe" binary file. +Server files: https://github.com/ronancpl/MapleSolaxiaV2 +Client files & general tools: https://drive.google.com/drive/folders/0BzDsHSr-0V4MYVJ0TWIxd05hYUk -To SET-UP the client: - - Open the Managermsv83.exe and proceed the installation. +---- Preparing the ambient ---- + +The following link teaches on how to install a MapleStory v83 private server, however IT DIFFERS on what is +used here: http://forum.ragezone.com/f428/maplestory-private-server-v83-741739/ + +Use that link ONLY AS AN ORIENTATION on where here things become ambiguous. + +Firstly, install all the general tools required to run the server: + - WampServer2.0i.exe -> recipient of the server. + - hamachi.msi -> used for establishing a tunnelling route for the server/client communication. + - mysql-workbench-gpl-5.2.39-win32 -> MySQL server component, will store the server's DB. + +Now install the Java 7 Development Kit: + - jdk-7u79-windows-x64.exe + - netbeans-8.0.2-javase-windows.exe -> It's a NetBeans project, use other IDE at your own risk. + +Overwrite whenever prompted with the JAR files under "jce_policy-7/UnlimitedJCEPolicy" in these Java folders: +C:\Program Files\Java\jre7\lib +C:\Program Files\Java\jre7\lib\ext +C:\Program Files\Java\jre7\lib\security +C:\Program Files\Java\jdk1.7.0_01\lib +C:\Program Files\Java\jdk1.7.0_01\jre\lib +C:\Program Files\Java\jdk1.7.0_01\jre\lib\ext +C:\Program Files\Java\jdk1.7.0_01\jre\lib\security + +Now that the tools have been installed, test if they are working. + +For WampServer: +Once your done installing it, run it and you will see the Wamp icon on the bottom right corner. +Left click it and click 'Put Online'. +In case of ORANGE ICON, change port 80 at "httpd.conf" to another, as it clashes with a Windows default port. +Then Left click it again and click 'Start All Services'. +The Wamp icon must look completely green (if its orange or red, you have a problem). + +For Hamachi: +Try opening it. It's that simple. +Hamachi is optional, though. You don't have to install Hamachi if you want to make the server just for use on +your own machine. However, if you want to let other players access your server, consider alternatively using +port-forwarding methods. + +---- Installing the SERVER ---- + +Set the "MapleSolaxia" folder on a place of your preference. It is recommended for use "C:\Nexon\MapleSolaxia". + +Setting up the SQL: open MySQL Query Browser, and define these parameters at startup and click OK: +Server Host: localhost Port: 3306 Username: root + +Now it must be done CAREFULLY: + - File -> Open Script... -> Browse for "C:\MapleSolaxia\sql" -> db_database.sql, and execute it. + - File -> Open Script... -> Browse for "C:\MapleSolaxia\sql" -> db_drops.sql, and execute it. + +Now it is OPTIONAL, you don't need to run it if you don't want, as it will simply change some NPC shops to set +some new goods, not present in the original MapleStory, to sell: + - File -> Open Script... -> Browse for "C:\MapleSolaxia\sql" -> db_shopupdate.sql, and execute it. + +At the end of the execution of these SQLs, you should have installed a database schema named "maplesolaxia". REGISTER +YOUR FIRST ACCOUNT to be used in-game by creating manually a entry on the table "accounts" at that database with a +login and a password. + +Configure the IP you want to use for your MapleStory server in "configuration.ini" file, or set it as "localhost" +if you want to run it only on your machine. Alternatively, you can use the IP given by Hamachi to use on a +Hamachi network, or you can use a non-Hamachi method of port-forwarding. Neither will be approached here. + +Now open NetBeans, and choose to Open a project... Select then the "MapleSolaxia" folder, that should already be +a project recognizable by NetBeans. If it doesn't, you have a problem. + +Finally, select "Clean and Build project" to build the JAR file for the MapleStory server. Once done, make sure both +WampServer and Hamachi are on and functioning, and then execute "launch.bat" on the root of the project. If no errors +were raised from this action, your MapleStory server is now online. + +---- Installing the CLIENT ---- + +The client's set-up is quite straightforward: + - From "ManagerMsv83.exe", install MapleStory on your folder of preference (e.g. "C:\Nexon\MapleStory") and +follow their instructions. - Once done, erase these files: "HShield" (folder), "ASPLauncher.exe", "MapleStory.exe" and "patcher.exe". - Extract into the client folder the "localhost.exe" from Localhostv83. - - Overwrite the original WZ files with the ones provided from "client_wz" folder on the DropBox. + - Overwrite the original WZ files with the ones provided from "client_wz" folder on the Google Drive. - In need of changing the server IP fetch on the MapleStory client, "localhost.exe" uses the -following byte addresses to store the server's IP address: +If you are not using "localhost" as the target IP on the server's config file, you will need to HEX-EDIT "localhost.exe" +to fetch your IP. The "localhost.exe" uses the following byte addresses to store the server's IP address: - 006FE084; - 006FE094; - 006FE0A4; -To SET-UP the server: - - Simply move the server folder to the destination place; - - Compile the project on NetBeans. The JAR will be created at "dist" folder. Let it stay there. - - Run the SQL scripts in sequence: db_database.sql, db_drops.sql, (optional) db_shopupdate.sql; - - Create an login and password account at the "accounts" table. +To hex-edit, install the Neo Hex Editor from "free-hex-editor-neo.exe" and follow their instructions. Once done, open +"localhost.exe" for editing and overwrite the IP values under these 3 addresses. Save the changes and exit the editor. + +Open the "localhost.exe" client. If by any means the program did not open, and checking que server log your ping has +been listened and you are using Windows 8 or 10, it probably might be some compatibility issue. Extract "lolwut.exe" +from "lolwut-v0.01.rar" and place it on the MapleStory client folder ("C:\Nexon\MapleStory"). Your "localhost.exe" +property settings must follow these: + - Run in compatibility mode: Windows 7; + - Unchecked reduced color mode; + - 640 x 480 resolution; + - Unchecked disable display on high DPI settings; + - Run as an administrator; + - Opening "lolwut.exe", use Fraysa's method. ---- Important note about CLIENT EDITING ---- - DO NOT USE THE SERVER'S XMLs for importing into the client's WZ, it WILL generate some kind of bugs -afterwards. +DO NOT USE the server's XMLs for reimporting into the client's WZ, it WILL generate some kind of bugs afterwards. - Use instead the HaRepacker 4.2.4, encryption "GMS (old)". - - Open the desired WZ for editing and, USING IT'S UI, make the necessary changes. + - Open the desired WZ for editing and, USING THE UI, make the desired changes. - Save the changed WZ, overwriting the original content at the client folder. - - Finally, re-export ("Private Server..." option) the changed XMLs into the server's WZ.XML files, + - Finally, RE-EXPORT ("Private Server..." exporting option) the changed XMLs into the server's WZ.XML files, overwriting the old contents. -These steps are important to maintain synchronization between the server and client modules. +These steps are IMPORTANT to maintain synchronization between the server and client modules. ----- Running issues ---- +As an example of client WZ editing, consider the MobBookUpdate project I developed, for updating all reported drop +data of the mobs in the game based on the current drop data on the database: -Firstly, launch the server using the server's "launch.bat". Then, try running the "localhost.exe" client. -If all goes well, we're done. + - Open the MobBookUpdate project on NetBeans, located at "C:\Nexon\MapleSolaxia\MobBookUpdate", and build it. + - At the subfolder "lib", copy the file "MonsterBook.img.xml". This is from the original WZ v83. + - Paste it on the "dist" subfolder. + - Inside "dist", open the command prompt by alt+right clicking there. + - Execute "java -jar MobBookUpdate.jar". It will generate a "MonsterBook_updated.img.xml" file. + - At last, overwrite the "MonsterBook.img.xml" on "C:\Nexon\MapleSolaxia\wz\String.wz" with this file, renaming +it back to "MonsterBook.img.xml". -To run it in Windows 10: - - Install everything normally; - - WampServer 2.0 -> change port 80 at "httpd.conf" to another, as it clashes with a Windows -default port. - - It is recommended to run the MapleStory client using: "Windows XP (SP2)" & "(8 or 16)-bit color mode"; - - If all else fails, use "lolwut.exe" to launch it. \ No newline at end of file +At this point, the server-side Monster Book has been updated with the current state of the database's drop data. Then, +open HaRepacker 4.2.2 and load "String.wz" from "C:\Nexon\MapleStory". Drop the "MonsterBook.img" node by removing it +from the hierarchy tree, then (CONTRARY TO WHAT SHOULD BE DONE NORMALLY!) import the server's "MonsterBook.img.xml". + +Take note that this is absolutely dangerous if done unwary. Once the MonsterBook does not hold client specific data in +it's node contents, importing the XML causes no harm at all. However, try not to remove/reimport nodes from WZ files, +as it may cause data losses. Use the HaRepacker's UI instead to make the changes. + +Save the changes and overwrite the older WZ on the MapleStory client folder. \ No newline at end of file diff --git a/README_wzchanges.txt b/README_wzchanges.txt index 77540e038d..ee73db2ab7 100644 --- a/README_wzchanges.txt +++ b/README_wzchanges.txt @@ -1,8 +1,5 @@ Changes from the original v83 WZs: -Map/Physics.wz: - Altered values for walk, fly and swim attributes. - Map.wz/MapX/*: Fixed entries of portals placed incorrectly. @@ -10,9 +7,24 @@ Item.wz/Etc: Set flag "Quest Item" for Springy Worm. Quest.wz/*: - Modified/created some quests. + Fixed a bunch of quests, now giving the proper output. Added new quests. String.wz/*: Fixed some NPC speeches. Updated MonsterBook with current drop data on the sql's DB, using -Ronan Lana's MobBookUpdate facility. \ No newline at end of file +Ronan Lana's MobBookUpdate facility. + + +P.S.: + +Yeah, these explanations are pretty simplistic, I know. If one really wants to +compare the two WZ systems, I recommend do the following: + - Open HaRepacker and, for each MapleSolaxiaV2's WZ file, extract all the XMLs +for "Private Server". + - Now, install MapleStory from "ManagerMsv83.exe" on an other folder and do the +same procediment said above. + - Finally use some app to compare folders, like WinMerge, tracking differences +for all WZs. + +Simply edit out any modification that ranges too far from the original MapleStory server +and overwrite the given WZ file, assuming you want a server more "GMS-like". \ No newline at end of file diff --git a/configuration.ini b/configuration.ini index e221722289..27f4a27d67 100644 --- a/configuration.ini +++ b/configuration.ini @@ -1,4 +1,4 @@ -HOST=25.106.98.2 +HOST=127.0.0.1 URL=jdbc:mysql://localhost:3306/maplesolaxia DB_USER=root DB_PASS= diff --git a/mychanges_ptbr.txt b/mychanges_ptbr.txt index 78bfd0177b..fc09183ebb 100644 --- a/mychanges_ptbr.txt +++ b/mychanges_ptbr.txt @@ -110,5 +110,10 @@ N Elaboração do IMG XML Parser, atuando complementarmente com o HaRepacker v4.2.2. Correção de scripts de NPCs e quests. -28 - 30 Março 2017, -Revamp dos WZs e XMLs referentes ao cliente MapleStory e ao servidor MapleSolaxia. \ No newline at end of file +28 - 31 Março 2017, +Revamp dos WZs e XMLs referentes ao cliente MapleStory e ao servidor MapleSolaxia. +Inclusão de printStackTraces nos blocos catches do sistema. + +01 - 02 Abril 2017, +Correção de bug que impedia carregamento do mapa Singapore: Spooky World. +Adição dos cards de mob restantes no drop_data do BD. \ No newline at end of file diff --git a/nbproject/private/private.xml b/nbproject/private/private.xml index 6807a2ba19..f3a54d3653 100644 --- a/nbproject/private/private.xml +++ b/nbproject/private/private.xml @@ -2,6 +2,9 @@ - + + file:/C:/Nexon/MapleSolaxia/src/provider/MapleDataTool.java + file:/C:/Nexon/MapleSolaxia/src/server/maps/MapleMapFactory.java + diff --git a/scripts/event/Cabin.js b/scripts/event/Cabin.js index f6402cf61b..cb35d0a89f 100644 --- a/scripts/event/Cabin.js +++ b/scripts/event/Cabin.js @@ -91,8 +91,8 @@ function takeoff() { } function arrived() { - Cabin_to_Orbis.warpEveryone(Orbis_Station.getId()); - Cabin_to_Leafre.warpEveryone(Leafre_Station.getId()); + Cabin_to_Orbis.warpEveryone(Orbis_Station.getId()); + Cabin_to_Leafre.warpEveryone(Leafre_Station.getId()); scheduleNew(); } diff --git a/scripts/event/Subway.js b/scripts/event/Subway.js index 36b19ce4ba..483a09948d 100644 --- a/scripts/event/Subway.js +++ b/scripts/event/Subway.js @@ -1,5 +1,5 @@ //Time Setting is in millisecond -var closeTime = 30 * 1000; //[30 seconds] The time to close the gate +var closeTime = 24 * 1000; //[30 seconds] The time to close the gate var beginTime = 30 * 1000; //[30 seconds] The time to begin the ride var rideTime = 30 * 1000; //[30 seconds] The time that require move to destination var KC_Waiting; diff --git a/scripts/npc/world0/1032008.js b/scripts/npc/world0/1032008.js index 72295381c5..ae1a498d80 100644 --- a/scripts/npc/world0/1032008.js +++ b/scripts/npc/world0/1032008.js @@ -20,8 +20,8 @@ function action(mode, type, selection) { } var em = cm.getEventManager("Boats"); if (em.getProperty("entry") == "true") { - cm.gainItem(4031045, -1); cm.warp(101000301); + cm.gainItem(4031045, -1); cm.dispose(); } else{ diff --git a/scripts/npc/world0/2012001.js b/scripts/npc/world0/2012001.js index a252a3e4e0..eddd22db7e 100644 --- a/scripts/npc/world0/2012001.js +++ b/scripts/npc/world0/2012001.js @@ -21,8 +21,8 @@ function action(mode, type, selection) { var em = cm.getEventManager("Boats"); if (em.getProperty("entry") == "true") { - cm.gainItem(4031047, -1); cm.warp(200000112); + cm.gainItem(4031047, -1); cm.dispose(); } else{ diff --git a/scripts/npc/world0/2012013.js b/scripts/npc/world0/2012013.js index c23cebc211..9a6707c25f 100644 --- a/scripts/npc/world0/2012013.js +++ b/scripts/npc/world0/2012013.js @@ -20,8 +20,8 @@ function action(mode, type, selection) { } var em = cm.getEventManager("Trains"); if (em.getProperty("entry") == "true") { - cm.gainItem(4031074, -1); cm.warp(200000122); + cm.gainItem(4031074, -1); cm.dispose(); } else{ diff --git a/scripts/npc/world0/2012021.js b/scripts/npc/world0/2012021.js index b938693f5b..0544ebbe20 100644 --- a/scripts/npc/world0/2012021.js +++ b/scripts/npc/world0/2012021.js @@ -21,8 +21,8 @@ function action(mode, type, selection) { var em = cm.getEventManager("Cabin"); if (em.getProperty("entry") == "true") { - cm.gainItem(4031331, -1); cm.warp(200000132); + cm.gainItem(4031331, -1); } else { cm.sendOk("The flight has not arrived yet. Come back soon."); } diff --git a/scripts/npc/world0/2012025.js b/scripts/npc/world0/2012025.js index a4ad664a19..0c93ad6b8f 100644 --- a/scripts/npc/world0/2012025.js +++ b/scripts/npc/world0/2012025.js @@ -21,8 +21,8 @@ function action(mode, type, selection) { var em = cm.getEventManager("Genie"); if (em.getProperty("entry") == "true") { - cm.gainItem(4031576, -1); cm.warp(200000152); + cm.gainItem(4031576, -1); } else { cm.sendOk("This genie is getting ready for takeoff. I'm sorry, but you'll have to get on the next ride. The ride schedule is available through the guide at the ticketing booth."); } diff --git a/scripts/npc/world0/2041000.js b/scripts/npc/world0/2041000.js index 39a33752f8..84b0be8e79 100644 --- a/scripts/npc/world0/2041000.js +++ b/scripts/npc/world0/2041000.js @@ -21,8 +21,8 @@ function action(mode, type, selection) { var em = cm.getEventManager("Trains"); if (em.getProperty("entry") == "true") { - cm.gainItem(4031045, -1); cm.warp(220000111); + cm.gainItem(4031045, -1); cm.dispose(); } else { diff --git a/scripts/npc/world0/2082001.js b/scripts/npc/world0/2082001.js index c9c48083d0..1fa482ab25 100644 --- a/scripts/npc/world0/2082001.js +++ b/scripts/npc/world0/2082001.js @@ -20,8 +20,8 @@ function action(mode, type, selection) { } var em = cm.getEventManager("Cabin"); if (em.getProperty("entry") == "true") { - cm.gainItem(4031045, -1); cm.warp(240000111); + cm.gainItem(4031045, -1); } else { cm.sendOk("The flight has not arrived yet. Come back soon."); } diff --git a/scripts/npc/world0/2102000.js b/scripts/npc/world0/2102000.js index 56bce8adf3..976cb52f55 100644 --- a/scripts/npc/world0/2102000.js +++ b/scripts/npc/world0/2102000.js @@ -43,8 +43,8 @@ function action(mode, type, selection) { var em = cm.getEventManager("Genie"); if (em.getProperty("entry") == "true") { - cm.gainItem(4031045, -1); cm.warp(260000110); + cm.gainItem(4031045, -1); } else { cm.sendOk("This genie is getting ready for takeoff. I'm sorry, but you'll have to get on the next ride. The ride schedule is available through the guide at the ticketing booth."); diff --git a/sql/db_drops.sql b/sql/db_drops.sql index 3d1d66eb78..0e92c616ca 100644 --- a/sql/db_drops.sql +++ b/sql/db_drops.sql @@ -18757,7 +18757,30 @@ (3230306, 2022355, 1, 1, 3248, 4000), (4230113, 2022354, 1, 1, 3248, 4000), (5220003, 4031991, 1, 1, 3248, 15000), -(4230122, 2022354, 1, 1, 0, 4000); +(4230122, 2022354, 1, 1, 0, 4000), +(3210100, 2382003, 1, 1, 0, 8000), +(3100101, 2382008, 1, 1, 0, 8000), +(3110301, 2382010, 1, 1, 0, 8000), +(4230600, 2382046, 1, 1, 0, 8000), +(4230126, 2383005, 1, 1, 0, 8000), +(5120000, 2383020, 1, 1, 0, 8000), +(6230401, 2384005, 1, 1, 0, 8000), +(7110301, 2384031, 1, 1, 0, 8000), +(7110300, 2384034, 1, 1, 0, 8000), +(8220000, 2388015, 1, 1, 0, 8000), +(8810018, 2388024, 1, 1, 0, 8000), +(9500320, 2388027, 1, 1, 0, 8000), +(8220002, 2388032, 1, 1, 0, 8000), +(9300182, 2388039, 1, 1, 0, 8000); + + + + + + + + +# (dropperid, itemid, minqty, maxqty, questid, chance) UPDATE IGNORE temp_data SET dropperid=9000002 WHERE dropperid=9000000; UPDATE IGNORE temp_data SET questid=0 WHERE dropperid=2022354; @@ -18818,8 +18841,9 @@ UPDATE drop_data SET questid=3248 WHERE itemid=2022354; UPDATE drop_data SET chance=40000, questid=3250 WHERE itemid=4031992; UPDATE drop_data SET questid=6191 WHERE itemid=4001107; + UPDATE drop_data SET questid=28344 WHERE itemid=4032475; - UPDATE drop_data SET questid=77777 WHERE itemid=4001358; #id 77777 for ALL quest items with no v83 quest. + UPDATE drop_data SET questid=77777 WHERE itemid=4001358; #id 77777 for ALL "quest items" with no v83 quest. UPDATE drop_data SET questid=77777 WHERE itemid=4001359; UPDATE drop_data SET questid=77777 WHERE itemid=4001342; UPDATE drop_data SET chance=0 WHERE itemid=2050099; diff --git a/sql/testemobcarddrop.sql b/sql/testemobcarddrop.sql new file mode 100644 index 0000000000..00aed8651a --- /dev/null +++ b/sql/testemobcarddrop.sql @@ -0,0 +1,26 @@ +delimiter // + +CREATE PROCEDURE countMobCardsBySection() +BEGIN + DECLARE x INT DEFAULT 0; + DECLARE I INT DEFAULT 0; + WHILE I < 10 DO + SELECT count(*) INTO x FROM ( + SELECT DISTINCT itemid FROM drop_data WHERE itemid >= (2380000 + I*1000) and itemid < (2380000 + (I+1)*1000) + ) AS anysqltab_; + + insert into `_mob_card_counter` (`keyid`,`count`) values (2380000 + I*1000 , x); + SET I = I + 1; + END WHILE; +END; + +// + +delimiter ; + +CREATE TABLE `_mob_card_counter` ( + `keyid` INTEGER(10), + `count` INTEGER(10) +); + +CALL countMobCardsBySection(); \ No newline at end of file diff --git a/src/client/MapleCharacter.java b/src/client/MapleCharacter.java index 8f6fafec53..aebd0e9e95 100644 --- a/src/client/MapleCharacter.java +++ b/src/client/MapleCharacter.java @@ -1145,8 +1145,8 @@ public class MapleCharacter extends AbstractAnimatedMapleMapObject { private void changeMapInternal(final MapleMap to, final Point pos, final byte[] warpPacket) { if (this.getTrade() != null) { - MapleTrade.cancelTrade(this); - } + MapleTrade.cancelTrade(this); + } client.announce(warpPacket); map.removePlayer(MapleCharacter.this); if (client.getChannelServer().getPlayerStorage().getCharacterById(getId()) != null) { @@ -1191,7 +1191,7 @@ public class MapleCharacter extends AbstractAnimatedMapleMapObject { ps.execute(); } } catch (SQLException ex) { - System.out.print("Error deleting skill: " + ex); + ex.printStackTrace(); } } } @@ -1293,7 +1293,7 @@ public class MapleCharacter extends AbstractAnimatedMapleMapObject { ps.execute(); } } catch (SQLException ex) { - System.out.print("Error deleting guild: " + ex); + ex.printStackTrace(); } } @@ -1383,6 +1383,7 @@ public class MapleCharacter extends AbstractAnimatedMapleMapObject { try { Server.getInstance().disbandGuild(guildid); } catch (Exception e) { + e.printStackTrace(); } } @@ -1955,6 +1956,7 @@ public class MapleCharacter extends AbstractAnimatedMapleMapObject { try { return Server.getInstance().getGuild(getGuildId(), getWorld(), null); } catch (Exception ex) { + ex.printStackTrace(); return null; } } @@ -2003,6 +2005,7 @@ public class MapleCharacter extends AbstractAnimatedMapleMapObject { } return id; } catch (Exception e) { + e.printStackTrace(); } return -1; } @@ -2023,6 +2026,7 @@ public class MapleCharacter extends AbstractAnimatedMapleMapObject { } return name; } catch (Exception e) { + e.printStackTrace(); } return null; } @@ -2625,6 +2629,7 @@ public class MapleCharacter extends AbstractAnimatedMapleMapObject { ps.executeUpdate(); } } catch (SQLException e) { + e.printStackTrace(); } } @@ -4239,6 +4244,7 @@ public class MapleCharacter extends AbstractAnimatedMapleMapObject { con.setAutoCommit(true); con.setTransactionIsolation(Connection.TRANSACTION_REPEATABLE_READ); } catch (Exception e) { + e.printStackTrace(); } } } @@ -4450,6 +4456,7 @@ public class MapleCharacter extends AbstractAnimatedMapleMapObject { ps.executeUpdate(); } } catch (SQLException e) { + e.printStackTrace(); return; } merchantmeso += add; @@ -4463,6 +4470,7 @@ public class MapleCharacter extends AbstractAnimatedMapleMapObject { ps.executeUpdate(); } } catch (SQLException e) { + e.printStackTrace(); return; } merchantmeso = set; @@ -4835,6 +4843,7 @@ public class MapleCharacter extends AbstractAnimatedMapleMapObject { } } } catch (SQLException e) { + e.printStackTrace(); } } @@ -5159,6 +5168,7 @@ public class MapleCharacter extends AbstractAnimatedMapleMapObject { ps.executeUpdate(); } } catch (SQLException e) { + e.printStackTrace(); } } diff --git a/src/client/MapleClient.java b/src/client/MapleClient.java index e24309df35..5e513ede2d 100644 --- a/src/client/MapleClient.java +++ b/src/client/MapleClient.java @@ -401,6 +401,7 @@ public class MapleClient { ps.executeUpdate(); } } catch (SQLException e) { + e.printStackTrace(); } } @@ -429,6 +430,7 @@ public class MapleClient { ps.executeUpdate(); } } catch (SQLException e) { + e.printStackTrace(); } } @@ -534,6 +536,7 @@ public class MapleClient { lTempban.setTimeInMillis(rs.getTimestamp("tempban").getTime()); return lTempban; } catch (SQLException e) { + e.printStackTrace(); } finally { try { if (ps != null) { @@ -543,6 +546,7 @@ public class MapleClient { rs.close(); } } catch (SQLException e) { + e.printStackTrace(); } } return null;//why oh why!?! @@ -590,6 +594,7 @@ public class MapleClient { ps.close(); } } catch (SQLException e) { + e.printStackTrace(); } } } else { @@ -623,6 +628,7 @@ public class MapleClient { ps.close(); } } catch (SQLException ex) { + ex.printStackTrace(); } } } @@ -724,6 +730,7 @@ public class MapleClient { try { merchant.saveItems(false); } catch (SQLException ex) { + ex.printStackTrace(); System.out.println("Error while saving Hired Merchant items."); } } @@ -931,6 +938,7 @@ public class MapleClient { try { Server.getInstance().deleteGuildCharacter(new MapleGuildCharacter(cid, 0, rs.getString("name"), (byte) -1, (byte) -1, 0, rs.getInt("guildrank"), rs.getInt("guildid"), false, rs.getInt("allianceRank"))); } catch (Exception re) { + re.printStackTrace(); return false; } } @@ -994,6 +1002,7 @@ public class MapleClient { } } } catch (NullPointerException e) { + e.printStackTrace(); } } }, 15000); @@ -1061,6 +1070,7 @@ public class MapleClient { ps.executeUpdate(); ps.close(); } catch (SQLException e) { + e.printStackTrace(); } return disconnectForBeingAFaggot; } @@ -1079,6 +1089,7 @@ public class MapleClient { rs.close(); } catch (SQLException e) { + e.printStackTrace(); } votePoints = points; return votePoints; @@ -1152,6 +1163,7 @@ public class MapleClient { ps.executeUpdate(); } } catch (SQLException e) { + e.printStackTrace(); } return true; } @@ -1180,6 +1192,7 @@ public class MapleClient { rs.close(); } } catch (SQLException e) { + e.printStackTrace(); } } return 0; diff --git a/src/client/MapleFamily.java b/src/client/MapleFamily.java index f3ce2a30fe..f9953e5476 100644 --- a/src/client/MapleFamily.java +++ b/src/client/MapleFamily.java @@ -48,6 +48,7 @@ public class MapleFamily { rs.close(); getMapleFamily(); } catch (SQLException ex) { + ex.printStackTrace(); } } @@ -72,6 +73,7 @@ public class MapleFamily { rs.close(); ps.close(); } catch (SQLException sqle) { + sqle.printStackTrace(); } } diff --git a/src/client/MonsterBook.java b/src/client/MonsterBook.java index 2aa3eab80a..b448240b06 100644 --- a/src/client/MonsterBook.java +++ b/src/client/MonsterBook.java @@ -134,6 +134,7 @@ public final class MonsterBook { ps.execute(); ps.close(); } catch (SQLException e) { + e.printStackTrace(); } } } diff --git a/src/client/command/Commands.java b/src/client/command/Commands.java index 838a65eefa..25f25d2c63 100644 --- a/src/client/command/Commands.java +++ b/src/client/command/Commands.java @@ -417,6 +417,7 @@ public class Commands { float chance = 1000000 / drop.chance / player.getDropRate(); output += "- " + name + " (1/" + (int) chance + ")\r\n"; } catch (Exception ex){ + ex.printStackTrace(); continue; } } @@ -629,6 +630,7 @@ public class Commands { rs.close(); } } catch (SQLException e) { + e.printStackTrace(); } } break; @@ -765,6 +767,7 @@ public class Commands { } player.changeMap(target, target.getPortal(0)); } catch (Exception ex) { + ex.printStackTrace(); player.yellowMessage("Map ID " + sub[1] + " is invalid."); return false; } @@ -859,6 +862,7 @@ public class Commands { victim.getClient().disconnect(true, false); player.getMap().removePlayer(victim); } catch (Exception e) { + e.printStackTrace(); } } else { return true; @@ -961,6 +965,7 @@ public class Commands { } } } catch (Exception e) { + e.printStackTrace(); } } else if (sub[0].equals("item") || sub[0].equals("drop")) { int itemId = Integer.parseInt(sub[1]); @@ -968,6 +973,7 @@ public class Commands { try { quantity = Short.parseShort(sub[2]); } catch (Exception e) { + e.printStackTrace(); } if (sub[0].equals("item")) { int petid = -1; @@ -1077,8 +1083,10 @@ public class Commands { player.changeSkillLevel(skill, (byte) skill.getMaxLevel(), skill.getMaxLevel(), -1); } } catch (NumberFormatException nfe) { + nfe.printStackTrace(); break; } catch (NullPointerException npe) { + npe.printStackTrace(); continue; } } @@ -1099,6 +1107,7 @@ public class Commands { is.close(); packet = packetProps.getProperty("pe"); } catch (IOException ex) { + ex.printStackTrace(); player.yellowMessage("Failed to load pe.txt"); return false; } @@ -1223,6 +1232,7 @@ public class Commands { p.executeUpdate(); } } catch (Exception e) { + e.printStackTrace(); player.message("Failed to unban " + sub[1]); return true; } @@ -1249,6 +1259,7 @@ public class Commands { ps.close(); } } catch (SQLException ex) { + ex.printStackTrace(); c.getPlayer().message("Error occured while banning IP address"); c.getPlayer().message(target.getName() + "'s IP was not banned: " + ip); } @@ -1317,6 +1328,7 @@ public class Commands { player.saveToDB();//To set the new world :O (true because else 2 player instances are created, one in both worlds) c.announce(MaplePacketCreator.getChannelChange(InetAddress.getByName(socket[0]), Integer.parseInt(socket[1]))); } catch (UnknownHostException | NumberFormatException ex) { + ex.printStackTrace(); player.message("Error when trying to change worlds, are you sure the world you are trying to warp to has the same amount of channels?"); } diff --git a/src/constants/ServerConstants.java b/src/constants/ServerConstants.java index 8c7881eb84..cfeeb8747c 100644 --- a/src/constants/ServerConstants.java +++ b/src/constants/ServerConstants.java @@ -82,6 +82,7 @@ public class ServerConstants { ServerConstants.SHUTDOWNHOOK = p.getProperty("SHUTDOWNHOOK").equalsIgnoreCase("true"); } catch (Exception e) { + e.printStackTrace(); System.out.println("Failed to load configuration.ini."); System.exit(0); } diff --git a/src/dropspider/Main.java b/src/dropspider/Main.java index d217822735..43eed77730 100644 --- a/src/dropspider/Main.java +++ b/src/dropspider/Main.java @@ -78,9 +78,11 @@ public class Main { System.out.println("Finished crawling section."); } } catch (MalformedURLException mue) { + mue.printStackTrace(); System.out.println("Error parsing URL: " + url); return; } catch (IOException ioe) { + ioe.printStackTrace(); System.out.println("Error reading from URL: " + ioe.getLocalizedMessage()); return; } @@ -277,6 +279,7 @@ public class Main { pw.close(); bw.close(); } catch (IOException ioe) { + ioe.printStackTrace(); System.out.println("Error writing to file: " + ioe.getLocalizedMessage()); } } diff --git a/src/net/MapleServerHandler.java b/src/net/MapleServerHandler.java index 7608c777b0..e1aacb9027 100644 --- a/src/net/MapleServerHandler.java +++ b/src/net/MapleServerHandler.java @@ -61,6 +61,7 @@ public class MapleServerHandler extends IoHandlerAdapter { @Override public void exceptionCaught(IoSession session, Throwable cause) throws Exception { System.out.println("disconnect by exception"); + cause.printStackTrace(); if (cause instanceof IOException || cause instanceof ClassCastException) { return; diff --git a/src/net/PacketProcessor.java b/src/net/PacketProcessor.java index ba707e0ed0..feed421137 100644 --- a/src/net/PacketProcessor.java +++ b/src/net/PacketProcessor.java @@ -79,6 +79,7 @@ public final class PacketProcessor { try { handlers[code.getValue()] = handler; } catch (ArrayIndexOutOfBoundsException e) { + e.printStackTrace(); System.out.println("Error registering handler - " + code.name()); } } diff --git a/src/net/server/CreateINI.java b/src/net/server/CreateINI.java index a7f39f9db1..b60cd4021a 100644 --- a/src/net/server/CreateINI.java +++ b/src/net/server/CreateINI.java @@ -73,12 +73,14 @@ public class CreateINI { out = new FileOutputStream("moople.ini", false); out.write(sb.toString().getBytes()); } catch (Exception ex) { + ex.printStackTrace(); } finally { try { if (out != null) { out.close(); } } catch (IOException ex) { + ex.printStackTrace(); } } @@ -113,12 +115,14 @@ public class CreateINI { } out.write(sb.toString().getBytes()); } catch (Exception ex) { + ex.printStackTrace(); } finally { try { if (out != null) { out.close(); } } catch (IOException ex) { + ex.printStackTrace(); } } System.out.println("\r\nMake sure that ServerConstants in modified too, and clean+compiled before you start the server."); diff --git a/src/net/server/Server.java b/src/net/server/Server.java index f5a79dfbf9..236e236ea7 100644 --- a/src/net/server/Server.java +++ b/src/net/server/Server.java @@ -130,6 +130,7 @@ public class Server implements Runnable { try { p.load(new FileInputStream("world.ini")); } catch (Exception e) { + e.printStackTrace(); System.out.println("Please start create_server.bat"); System.exit(0); } @@ -200,8 +201,8 @@ public class Server implements Runnable { System.out.println("Finished loading world " + i + "\r\n"); } } catch (Exception e) { - System.out.println("Error in moople.ini, start CreateINI.bat to re-make the file."); e.printStackTrace();//For those who get errors + System.out.println("Error in moople.ini, start CreateINI.bat to re-make the file."); System.exit(0); } @@ -574,6 +575,7 @@ public class Server implements Runnable { try { Thread.sleep(1000); } catch (InterruptedException ie) { + ie.printStackTrace(); System.err.println("FUCK MY LIFE"); } } diff --git a/src/net/server/channel/Channel.java b/src/net/server/channel/Channel.java index d7873684b5..d498c717ad 100644 --- a/src/net/server/channel/Channel.java +++ b/src/net/server/channel/Channel.java @@ -124,6 +124,7 @@ public final class Channel { finishedShutdown = true; System.out.println("Successfully shut down Channel " + channel + " on World " + world + "\r\n"); } catch (Exception e) { + e.printStackTrace(); System.err.println("Error while shutting down Channel " + channel + " on World " + world + "\r\n" + e); } } @@ -138,9 +139,9 @@ public final class Channel { hmit.remove(); } } catch (Exception e) { - e.printStackTrace(); + e.printStackTrace(); } finally { - wlock.unlock(); + wlock.unlock(); } } diff --git a/src/net/server/channel/handlers/BuddylistModifyHandler.java b/src/net/server/channel/handlers/BuddylistModifyHandler.java index 6b1025c771..a017fb2685 100644 --- a/src/net/server/channel/handlers/BuddylistModifyHandler.java +++ b/src/net/server/channel/handlers/BuddylistModifyHandler.java @@ -154,6 +154,7 @@ public class BuddylistModifyHandler extends AbstractMaplePacketHandler { c.announce(MaplePacketCreator.serverNotice(1, "A character called \"" + addName + "\" does not exist")); } } catch (SQLException e) { + e.printStackTrace(); } } else { ble.changeGroup(group); @@ -185,6 +186,7 @@ public class BuddylistModifyHandler extends AbstractMaplePacketHandler { notifyRemoteChannel(c, channel, otherCid, ADDED); } } catch (SQLException e) { + e.printStackTrace(); } } nextPendingRequest(c); diff --git a/src/net/server/channel/handlers/CashOperationHandler.java b/src/net/server/channel/handlers/CashOperationHandler.java index 69d7b32c0b..794bd581bb 100644 --- a/src/net/server/channel/handlers/CashOperationHandler.java +++ b/src/net/server/channel/handlers/CashOperationHandler.java @@ -238,6 +238,7 @@ public final class CashOperationHandler extends AbstractMaplePacketHandler { try { chr.sendNote(partner.getName(), text, (byte) 1); } catch (SQLException ex) { + ex.printStackTrace(); } partner.showNote(); } diff --git a/src/net/server/channel/handlers/CouponCodeHandler.java b/src/net/server/channel/handlers/CouponCodeHandler.java index 14aaf315d8..b4d6df509e 100644 --- a/src/net/server/channel/handlers/CouponCodeHandler.java +++ b/src/net/server/channel/handlers/CouponCodeHandler.java @@ -59,6 +59,7 @@ public final class CouponCodeHandler extends AbstractMaplePacketHandler { ps.executeUpdate(); ps.close(); } catch (SQLException e) { + e.printStackTrace(); } } switch (type) { @@ -98,6 +99,7 @@ public final class CouponCodeHandler extends AbstractMaplePacketHandler { rs.close(); ps.close(); } catch (SQLException ex) { + ex.printStackTrace(); } return item; } @@ -113,6 +115,7 @@ public final class CouponCodeHandler extends AbstractMaplePacketHandler { rs.close(); ps.close(); } catch (SQLException ex) { + ex.printStackTrace(); } return validcode; } diff --git a/src/net/server/channel/handlers/EnterMTSHandler.java b/src/net/server/channel/handlers/EnterMTSHandler.java index 06e4a17422..d0cfd8afaa 100644 --- a/src/net/server/channel/handlers/EnterMTSHandler.java +++ b/src/net/server/channel/handlers/EnterMTSHandler.java @@ -117,6 +117,7 @@ public final class EnterMTSHandler extends AbstractMaplePacketHandler { rs.close(); ps.close(); } catch (SQLException e) { + e.printStackTrace(); } c.announce(MaplePacketCreator.sendMTS(items, 1, 0, 0, pages)); c.announce(MaplePacketCreator.transferInventory(getTransfer(chr.getId()))); @@ -163,6 +164,7 @@ public final class EnterMTSHandler extends AbstractMaplePacketHandler { } } } catch (SQLException e) { + e.printStackTrace(); } return items; } @@ -208,6 +210,7 @@ public final class EnterMTSHandler extends AbstractMaplePacketHandler { } } } catch (SQLException e) { + e.printStackTrace(); } return items; } diff --git a/src/net/server/channel/handlers/FredrickHandler.java b/src/net/server/channel/handlers/FredrickHandler.java index f3a2eed7d4..c724486556 100644 --- a/src/net/server/channel/handlers/FredrickHandler.java +++ b/src/net/server/channel/handlers/FredrickHandler.java @@ -115,6 +115,7 @@ public class FredrickHandler extends AbstractMaplePacketHandler { } return true; } catch (SQLException e) { + e.printStackTrace(); return false; } diff --git a/src/net/server/channel/handlers/HiredMerchantRequest.java b/src/net/server/channel/handlers/HiredMerchantRequest.java index 6910dffd43..73c76cf97f 100644 --- a/src/net/server/channel/handlers/HiredMerchantRequest.java +++ b/src/net/server/channel/handlers/HiredMerchantRequest.java @@ -47,6 +47,7 @@ public final class HiredMerchantRequest extends AbstractMaplePacketHandler { chr.announce(MaplePacketCreator.retrieveFirstMessage()); } } catch (SQLException ex) { + ex.printStackTrace(); } } else { chr.dropMessage(1, "You already have a store open."); diff --git a/src/net/server/channel/handlers/MTSHandler.java b/src/net/server/channel/handlers/MTSHandler.java index 420f6f69f9..1de09d91bf 100644 --- a/src/net/server/channel/handlers/MTSHandler.java +++ b/src/net/server/channel/handlers/MTSHandler.java @@ -202,6 +202,7 @@ public final class MTSHandler extends AbstractMaplePacketHandler { ps.close(); MapleInventoryManipulator.removeFromSlot(c, type, slot, quantity, false); } catch (SQLException e) { + e.printStackTrace(); } c.getPlayer().gainMeso(-5000, false); c.announce(MaplePacketCreator.MTSConfirmSell()); @@ -329,6 +330,7 @@ public final class MTSHandler extends AbstractMaplePacketHandler { rs.close(); ps.close(); } catch (SQLException e) { + e.printStackTrace(); System.out.println("MTS Transfer error: " + e); } } else if (op == 9) { //add to cart @@ -441,6 +443,7 @@ public final class MTSHandler extends AbstractMaplePacketHandler { rs.close(); ps.close(); } catch (SQLException e) { + e.printStackTrace(); c.announce(MaplePacketCreator.MTSFailBuy()); } } else if (op == 17) { //buy from cart @@ -498,6 +501,7 @@ public final class MTSHandler extends AbstractMaplePacketHandler { rs.close(); ps.close(); } catch (SQLException e) { + e.printStackTrace(); c.announce(MaplePacketCreator.MTSFailBuy()); } } else { @@ -551,6 +555,7 @@ public final class MTSHandler extends AbstractMaplePacketHandler { rs.close(); ps.close(); } catch (SQLException e) { + e.printStackTrace(); } return items; } @@ -616,6 +621,7 @@ public final class MTSHandler extends AbstractMaplePacketHandler { rs.close(); ps.close(); } catch (SQLException e) { + e.printStackTrace(); } return MaplePacketCreator.sendMTS(items, 4, 0, 0, pages); } @@ -663,6 +669,7 @@ public final class MTSHandler extends AbstractMaplePacketHandler { rs.close(); ps.close(); } catch (SQLException e) { + e.printStackTrace(); } return items; } @@ -735,6 +742,7 @@ public final class MTSHandler extends AbstractMaplePacketHandler { rs.close(); ps.close(); } catch (SQLException e) { + e.printStackTrace(); } return MaplePacketCreator.sendMTS(items, tab, type, page, pages); // resniff } @@ -828,6 +836,7 @@ public final class MTSHandler extends AbstractMaplePacketHandler { ps.close(); } } catch (SQLException e) { + e.printStackTrace(); } return MaplePacketCreator.sendMTS(items, tab, type, page, pages); } diff --git a/src/net/server/channel/handlers/PlayerLoggedinHandler.java b/src/net/server/channel/handlers/PlayerLoggedinHandler.java index 2c7e576118..8ac3a5b802 100644 --- a/src/net/server/channel/handlers/PlayerLoggedinHandler.java +++ b/src/net/server/channel/handlers/PlayerLoggedinHandler.java @@ -126,6 +126,7 @@ public final class PlayerLoggedinHandler extends AbstractMaplePacketHandler { pss.executeUpdate(); pss.close(); } catch (SQLException e) { + e.printStackTrace(); } c.announce(MaplePacketCreator.sendDueyMSG((byte) 0x1B)); } diff --git a/src/net/server/channel/handlers/RingActionHandler.java b/src/net/server/channel/handlers/RingActionHandler.java index 5c1d2a61a8..e3f88e393a 100644 --- a/src/net/server/channel/handlers/RingActionHandler.java +++ b/src/net/server/channel/handlers/RingActionHandler.java @@ -84,6 +84,7 @@ public final class RingActionHandler extends AbstractMaplePacketHandler { ps.executeUpdate(); ps.close(); } catch (Exception ex) { + ex.printStackTrace(); } c.getPlayer().dropMessage(1, "Your engagement has been broken up."); break; diff --git a/src/net/server/channel/handlers/SpouseChatHandler.java b/src/net/server/channel/handlers/SpouseChatHandler.java index 29fb8e0fdc..c9640ad59a 100644 --- a/src/net/server/channel/handlers/SpouseChatHandler.java +++ b/src/net/server/channel/handlers/SpouseChatHandler.java @@ -47,6 +47,7 @@ public final class SpouseChatHandler extends AbstractMaplePacketHandler { // } else // c.getPlayer().message("You are either not married or your spouse is currently offline."); // } catch (Exception e) { +// e.printStackTrace(); // c.getPlayer().message("You are either not married or your spouse is currently offline."); // c.getChannelServer().reconnectWorld(); // } diff --git a/src/net/server/channel/handlers/UseCashItemHandler.java b/src/net/server/channel/handlers/UseCashItemHandler.java index c42035e2b6..4b6c728ffd 100644 --- a/src/net/server/channel/handlers/UseCashItemHandler.java +++ b/src/net/server/channel/handlers/UseCashItemHandler.java @@ -357,6 +357,7 @@ public final class UseCashItemHandler extends AbstractMaplePacketHandler { try { player.sendNote(sendTo, msg, (byte) 0); } catch (SQLException e) { + e.printStackTrace(); } remove(c, itemId); } else if (itemType == 510) { diff --git a/src/net/server/guild/MapleAlliance.java b/src/net/server/guild/MapleAlliance.java index e4364da235..213bb261dc 100644 --- a/src/net/server/guild/MapleAlliance.java +++ b/src/net/server/guild/MapleAlliance.java @@ -79,6 +79,7 @@ public class MapleAlliance { ps.close(); rs.close(); } catch (SQLException e) { + e.printStackTrace(); } return alliance; } @@ -107,6 +108,7 @@ public class MapleAlliance { ps.executeQuery(); ps.close(); } catch (SQLException e) { + e.printStackTrace(); } } @@ -146,6 +148,7 @@ public class MapleAlliance { ps.close(); } } catch (SQLException e) { + e.printStackTrace(); } return ret; } diff --git a/src/net/server/guild/MapleGuild.java b/src/net/server/guild/MapleGuild.java index 7ffc32ce0b..0d37842538 100644 --- a/src/net/server/guild/MapleGuild.java +++ b/src/net/server/guild/MapleGuild.java @@ -103,6 +103,7 @@ public class MapleGuild { ps.close(); rs.close(); } catch (SQLException se) { + se.printStackTrace(); System.out.println("unable to read guild information from sql" + se); } } @@ -171,6 +172,7 @@ public class MapleGuild { this.broadcast(MaplePacketCreator.guildDisband(this.id)); } } catch (SQLException se) { + se.printStackTrace(); } } @@ -267,6 +269,7 @@ public class MapleGuild { } } } catch (Exception re) { + re.printStackTrace(); System.out.println("Failed to contact channel(s) for broadcast.");//fu? } } @@ -337,6 +340,7 @@ public class MapleGuild { ps.close(); return guildid; } catch (Exception e) { + e.printStackTrace(); return 0; } } @@ -389,6 +393,7 @@ public class MapleGuild { ps.executeUpdate(); } } catch (SQLException e) { + e.printStackTrace(); System.out.println("expelMember - MapleGuild " + e); } Server.getInstance().getWorld(mgc.getWorld()).setOfflineGuildStatus((short) 0, (byte) 5, cid); @@ -531,6 +536,7 @@ public class MapleGuild { } rs.close(); } catch (SQLException e) { + e.printStackTrace(); System.out.println("failed to display guild ranks. " + e); } } @@ -548,6 +554,7 @@ public class MapleGuild { ps.executeUpdate(); } } catch (SQLException e) { + e.printStackTrace(); } } diff --git a/src/net/server/handlers/login/CharSelectedHandler.java b/src/net/server/handlers/login/CharSelectedHandler.java index 0dff59976f..dd60f262d1 100644 --- a/src/net/server/handlers/login/CharSelectedHandler.java +++ b/src/net/server/handlers/login/CharSelectedHandler.java @@ -49,6 +49,7 @@ public final class CharSelectedHandler extends AbstractMaplePacketHandler { try { c.announce(MaplePacketCreator.getServerIP(InetAddress.getByName(socket[0]), Integer.parseInt(socket[1]), charId)); } catch (UnknownHostException | NumberFormatException e) { + e.printStackTrace(); } } } \ No newline at end of file diff --git a/src/net/server/handlers/login/CharSelectedWithPicHandler.java b/src/net/server/handlers/login/CharSelectedWithPicHandler.java index 2b5a616ad3..5420b1fd6f 100644 --- a/src/net/server/handlers/login/CharSelectedWithPicHandler.java +++ b/src/net/server/handlers/login/CharSelectedWithPicHandler.java @@ -35,6 +35,7 @@ public class CharSelectedWithPicHandler extends AbstractMaplePacketHandler { try { c.announce(MaplePacketCreator.getServerIP(InetAddress.getByName(socket[0]), Integer.parseInt(socket[1]), charId)); } catch (UnknownHostException | NumberFormatException e) { + e.printStackTrace(); } } else { c.announce(MaplePacketCreator.wrongPic()); diff --git a/src/net/server/handlers/login/PickCharHandler.java b/src/net/server/handlers/login/PickCharHandler.java index 2b40c22974..de1ba7a4e2 100644 --- a/src/net/server/handlers/login/PickCharHandler.java +++ b/src/net/server/handlers/login/PickCharHandler.java @@ -46,6 +46,7 @@ public final class PickCharHandler extends AbstractMaplePacketHandler { try { c.setChannel(Randomizer.nextInt(Server.getInstance().getWorld(world).getChannels().size())); } catch (Exception e) { + e.printStackTrace(); c.setChannel(1); } if (c.getIdleTask() != null) { @@ -56,6 +57,7 @@ public final class PickCharHandler extends AbstractMaplePacketHandler { try { c.announce(MaplePacketCreator.getServerIP(InetAddress.getByName(socket[0]), Integer.parseInt(socket[1]), charId)); } catch (UnknownHostException e) { + e.printStackTrace(); } } } diff --git a/src/net/server/handlers/login/RegisterPicHandler.java b/src/net/server/handlers/login/RegisterPicHandler.java index 7a247b2df0..795db39548 100644 --- a/src/net/server/handlers/login/RegisterPicHandler.java +++ b/src/net/server/handlers/login/RegisterPicHandler.java @@ -37,6 +37,7 @@ public final class RegisterPicHandler extends AbstractMaplePacketHandler { try { c.announce(MaplePacketCreator.getServerIP(InetAddress.getByName(socket[0]), Integer.parseInt(socket[1]), charId)); } catch (UnknownHostException e) { + e.printStackTrace(); } } else { c.getSession().close(true); diff --git a/src/net/server/handlers/login/ViewAllCharSelectedWithPicHandler.java b/src/net/server/handlers/login/ViewAllCharSelectedWithPicHandler.java index 3752df5ca6..e35da2a132 100644 --- a/src/net/server/handlers/login/ViewAllCharSelectedWithPicHandler.java +++ b/src/net/server/handlers/login/ViewAllCharSelectedWithPicHandler.java @@ -38,6 +38,7 @@ public class ViewAllCharSelectedWithPicHandler extends AbstractMaplePacketHandle try { c.announce(MaplePacketCreator.getServerIP(InetAddress.getByName(socket[0]), Integer.parseInt(socket[1]), charId)); } catch (UnknownHostException e) { + e.printStackTrace(); } } else { diff --git a/src/net/server/handlers/login/ViewAllPicRegisterHandler.java b/src/net/server/handlers/login/ViewAllPicRegisterHandler.java index 4c695b319f..63557c0ad8 100644 --- a/src/net/server/handlers/login/ViewAllPicRegisterHandler.java +++ b/src/net/server/handlers/login/ViewAllPicRegisterHandler.java @@ -36,6 +36,7 @@ public final class ViewAllPicRegisterHandler extends AbstractMaplePacketHandler try { c.announce(MaplePacketCreator.getServerIP(InetAddress.getByName(socket[0]), Integer.parseInt(socket[1]), charId)); } catch (UnknownHostException e) { + e.printStackTrace(); } } } diff --git a/src/net/server/handlers/login/ViewCharHandler.java b/src/net/server/handlers/login/ViewCharHandler.java index acbf4bf13a..62979fce5e 100644 --- a/src/net/server/handlers/login/ViewCharHandler.java +++ b/src/net/server/handlers/login/ViewCharHandler.java @@ -76,6 +76,7 @@ public final class ViewCharHandler extends AbstractMaplePacketHandler { c.announce(MaplePacketCreator.showAllCharacterInfo(w, chrsinworld)); } } catch (Exception e) { + e.printStackTrace(); } } } diff --git a/src/provider/MapleDataTool.java b/src/provider/MapleDataTool.java index 8c29eba9bf..25f4c7f817 100644 --- a/src/provider/MapleDataTool.java +++ b/src/provider/MapleDataTool.java @@ -105,6 +105,7 @@ public class MapleDataTool { try { return Integer.parseInt(getString(d)); } catch (NumberFormatException nfe) { + nfe.printStackTrace(); return def; } } else { diff --git a/src/provider/wz/ListWZFile.java b/src/provider/wz/ListWZFile.java index 14ed715992..1672a08c59 100644 --- a/src/provider/wz/ListWZFile.java +++ b/src/provider/wz/ListWZFile.java @@ -75,6 +75,7 @@ public class ListWZFile { listwz = new ListWZFile(MapleDataProviderFactory.fileInWZPath("List.wz")); modernImgs = new HashSet(listwz.getEntries()); } catch (FileNotFoundException e) { + e.printStackTrace(); } } } diff --git a/src/provider/wz/WZFile.java b/src/provider/wz/WZFile.java index 537e1f445d..c6c0abf537 100644 --- a/src/provider/wz/WZFile.java +++ b/src/provider/wz/WZFile.java @@ -142,6 +142,7 @@ public class WZFile implements MapleDataProvider { MapleData ret = imgFile.getRoot(); return ret; } catch (IOException e) { + e.printStackTrace(); } return null; } diff --git a/src/provider/wz/WZTool.java b/src/provider/wz/WZTool.java index e1b13c2048..85e1c8d90b 100644 --- a/src/provider/wz/WZTool.java +++ b/src/provider/wz/WZTool.java @@ -56,11 +56,14 @@ public class WZTool { 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++) { diff --git a/src/provider/wz/XMLDomMapleData.java b/src/provider/wz/XMLDomMapleData.java index 438ba5b6e3..151a04c2fd 100644 --- a/src/provider/wz/XMLDomMapleData.java +++ b/src/provider/wz/XMLDomMapleData.java @@ -28,6 +28,8 @@ 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; @@ -42,6 +44,7 @@ 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 { @@ -57,10 +60,12 @@ public class XMLDomMapleData implements MapleData { 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 @@ -114,25 +119,35 @@ public class XMLDomMapleData implements MapleData { case DOUBLE: case FLOAT: case INT: - case SHORT: + 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(); - switch (type) { - case DOUBLE: - return Double.valueOf(Double.parseDouble(value)); - case FLOAT: - return Float.valueOf(Float.parseFloat(value)); - case INT: - return Integer.valueOf(Integer.parseInt(value)); - case SHORT: - return Short.valueOf(Short.parseShort(value)); - case STRING: - case UOL: - return value; - default: - break; - } + return value; } case VECTOR: { String x = attributes.getNamedItem("x").getNodeValue(); diff --git a/src/scripting/AbstractPlayerInteraction.java b/src/scripting/AbstractPlayerInteraction.java index 5a859a0823..c1489175d1 100644 --- a/src/scripting/AbstractPlayerInteraction.java +++ b/src/scripting/AbstractPlayerInteraction.java @@ -216,7 +216,7 @@ public class AbstractPlayerInteraction { try { return getQuestStatus(quest) == MapleQuestStatus.Status.COMPLETED; } catch (NullPointerException e) { - e.printStackTrace(); + e.printStackTrace(); return false; } } @@ -229,7 +229,7 @@ public class AbstractPlayerInteraction { try { return getQuestStatus(quest) == MapleQuestStatus.Status.STARTED; } catch (NullPointerException e) { - e.printStackTrace(); + e.printStackTrace(); return false; } } @@ -461,7 +461,7 @@ public class AbstractPlayerInteraction { try { return Server.getInstance().getGuild(getPlayer().getGuildId(), getPlayer().getWorld(), null); } catch (Exception e) { - e.printStackTrace(); + e.printStackTrace(); } return null; } diff --git a/src/scripting/event/EventManager.java b/src/scripting/event/EventManager.java index 671db0b503..87387d90fc 100644 --- a/src/scripting/event/EventManager.java +++ b/src/scripting/event/EventManager.java @@ -61,9 +61,7 @@ public class EventManager { public void cancel() { try { iv.invokeFunction("cancelSchedule", (Object) null); - } catch (ScriptException ex) { - ex.printStackTrace(); - } catch (NoSuchMethodException ex) { + } catch (ScriptException | NoSuchMethodException ex) { ex.printStackTrace(); } } @@ -77,9 +75,7 @@ public class EventManager { public void run() { try { iv.invokeFunction(methodName, eim); - } catch (ScriptException ex) { - Logger.getLogger(EventManager.class.getName()).log(Level.SEVERE, null, ex); - } catch (NoSuchMethodException ex) { + } catch (ScriptException | NoSuchMethodException ex) { Logger.getLogger(EventManager.class.getName()).log(Level.SEVERE, null, ex); } } @@ -95,9 +91,7 @@ public class EventManager { public void run() { try { iv.invokeFunction(methodName, (Object) null); - } catch (ScriptException ex) { - Logger.getLogger(EventManager.class.getName()).log(Level.SEVERE, null, ex); - } catch (NoSuchMethodException ex) { + } catch (ScriptException | NoSuchMethodException ex) { Logger.getLogger(EventManager.class.getName()).log(Level.SEVERE, null, ex); } } @@ -156,9 +150,7 @@ public class EventManager { EventInstanceManager eim = (EventInstanceManager) (iv.invokeFunction("setup", (Object) null)); eim.registerExpedition(exped); exped.start(); - } catch (ScriptException ex) { - Logger.getLogger(EventManager.class.getName()).log(Level.SEVERE, null, ex); - } catch (NoSuchMethodException ex) { + } catch (ScriptException | NoSuchMethodException ex) { Logger.getLogger(EventManager.class.getName()).log(Level.SEVERE, null, ex); } } @@ -168,9 +160,7 @@ public class EventManager { try { EventInstanceManager eim = (EventInstanceManager) (iv.invokeFunction("setup", (Object) null)); eim.registerPlayer(chr); - } catch (ScriptException ex) { - Logger.getLogger(EventManager.class.getName()).log(Level.SEVERE, null, ex); - } catch (NoSuchMethodException ex) { + } catch (ScriptException | NoSuchMethodException ex) { Logger.getLogger(EventManager.class.getName()).log(Level.SEVERE, null, ex); } } @@ -180,9 +170,7 @@ public class EventManager { try { EventInstanceManager eim = (EventInstanceManager) (iv.invokeFunction("setup", (Object) null)); eim.registerParty(party, map); - } catch (ScriptException ex) { - Logger.getLogger(EventManager.class.getName()).log(Level.SEVERE, null, ex); - } catch (NoSuchMethodException ex) { + } catch (ScriptException | NoSuchMethodException ex) { Logger.getLogger(EventManager.class.getName()).log(Level.SEVERE, null, ex); } } @@ -192,9 +180,7 @@ public class EventManager { try { iv.invokeFunction("setup", eim); eim.setProperty("leader", leader); - } catch (ScriptException ex) { - Logger.getLogger(EventManager.class.getName()).log(Level.SEVERE, null, ex); - } catch (NoSuchMethodException ex) { + } catch (ScriptException | NoSuchMethodException ex) { Logger.getLogger(EventManager.class.getName()).log(Level.SEVERE, null, ex); } } diff --git a/src/scripting/item/ItemScriptManager.java b/src/scripting/item/ItemScriptManager.java index e24589814e..33319d47b9 100644 --- a/src/scripting/item/ItemScriptManager.java +++ b/src/scripting/item/ItemScriptManager.java @@ -91,6 +91,7 @@ public class ItemScriptManager { try { fr.close(); } catch (IOException e) { + e.printStackTrace(); } } } diff --git a/src/scripting/map/MapScriptManager.java b/src/scripting/map/MapScriptManager.java index e5b53b35d8..a8ad9d45b6 100644 --- a/src/scripting/map/MapScriptManager.java +++ b/src/scripting/map/MapScriptManager.java @@ -66,6 +66,7 @@ public class MapScriptManager { try { scripts.get(scriptName).invokeFunction("start", new MapScriptMethods(c)); } catch (final ScriptException | NoSuchMethodException e) { + e.printStackTrace(); } return; } @@ -93,6 +94,7 @@ public class MapScriptManager { try { fr.close(); } catch (IOException e) { + e.printStackTrace(); } } } diff --git a/src/scripting/npc/NPCConversationManager.java b/src/scripting/npc/NPCConversationManager.java index d1d8227d54..af2c1ddb03 100644 --- a/src/scripting/npc/NPCConversationManager.java +++ b/src/scripting/npc/NPCConversationManager.java @@ -191,6 +191,7 @@ public class NPCConversationManager extends AbstractPlayerInteraction { try { MapleQuest.getInstance(id).forceStart(getPlayer(), npc); } catch (NullPointerException ex) { + ex.printStackTrace(); } } @@ -198,6 +199,7 @@ public class NPCConversationManager extends AbstractPlayerInteraction { try { MapleQuest.getInstance(id).forceComplete(getPlayer(), npc); } catch (NullPointerException ex) { + ex.printStackTrace(); } } @@ -205,6 +207,7 @@ public class NPCConversationManager extends AbstractPlayerInteraction { try { MapleQuest.getInstance(id).forceStart(getPlayer(), npc); } catch (NullPointerException ex) { + ex.printStackTrace(); } } @@ -212,6 +215,7 @@ public class NPCConversationManager extends AbstractPlayerInteraction { try { MapleQuest.getInstance(id).forceComplete(getPlayer(), npc); } catch (NullPointerException ex) { + ex.printStackTrace(); } } @@ -326,8 +330,10 @@ public class NPCConversationManager extends AbstractPlayerInteraction { Skill skill = SkillFactory.getSkill(Integer.parseInt(skill_.getName())); getPlayer().changeSkillLevel(skill, (byte) 0, skill.getMaxLevel(), -1); } catch (NumberFormatException nfe) { + nfe.printStackTrace(); break; } catch (NullPointerException npe) { + npe.printStackTrace(); continue; } } @@ -368,6 +374,7 @@ public class NPCConversationManager extends AbstractPlayerInteraction { ps.close(); } } catch (SQLException ex) { + ex.printStackTrace(); } } } @@ -425,6 +432,7 @@ public class NPCConversationManager extends AbstractPlayerInteraction { Server.getInstance().addAlliance(id, alliance); Server.getInstance().allianceMessage(id, MaplePacketCreator.makeNewAlliance(alliance, chr1.getClient()), -1, -1); } catch (Exception e) { + e.printStackTrace(); return null; } return alliance; @@ -440,7 +448,7 @@ public class NPCConversationManager extends AbstractPlayerInteraction { return true; } } catch (SQLException e) { - e.printStackTrace(); + e.printStackTrace(); return false; } if (getPlayer().getMerchantMeso() == 0) { diff --git a/src/scripting/portal/PortalPlayerInteraction.java b/src/scripting/portal/PortalPlayerInteraction.java index 53aa15ee24..caa2dbcebd 100644 --- a/src/scripting/portal/PortalPlayerInteraction.java +++ b/src/scripting/portal/PortalPlayerInteraction.java @@ -68,6 +68,7 @@ public class PortalPlayerInteraction extends AbstractPlayerInteraction { rs.close(); } } catch (SQLException ex) { + ex.printStackTrace(); } } return false; diff --git a/src/scripting/portal/PortalScriptManager.java b/src/scripting/portal/PortalScriptManager.java index bafabf3537..8875f32a15 100644 --- a/src/scripting/portal/PortalScriptManager.java +++ b/src/scripting/portal/PortalScriptManager.java @@ -73,7 +73,7 @@ public class PortalScriptManager { try { fr.close(); } catch (IOException e) { - System.out.println("ERROR CLOSING " + e); + e.printStackTrace(); } } } diff --git a/src/server/MakerItemFactory.java b/src/server/MakerItemFactory.java index 25bea44061..cc2f0ec3c4 100644 --- a/src/server/MakerItemFactory.java +++ b/src/server/MakerItemFactory.java @@ -71,6 +71,7 @@ public class MakerItemFactory { ps.close(); createCache.put(toCreate, ret); } catch (SQLException sqle) { + sqle.printStackTrace(); } } return createCache.get(toCreate); diff --git a/src/server/MapleItemInformationProvider.java b/src/server/MapleItemInformationProvider.java index 0ab2155ecd..f96d845656 100644 --- a/src/server/MapleItemInformationProvider.java +++ b/src/server/MapleItemInformationProvider.java @@ -1134,6 +1134,7 @@ public class MapleItemInformationProvider { rs.close(); ps.close(); } catch (SQLException e) { + e.printStackTrace(); } finally { try { if (rs != null) { @@ -1143,6 +1144,7 @@ public class MapleItemInformationProvider { ps.close(); } } catch (SQLException e) { + e.printStackTrace(); } } } @@ -1293,6 +1295,7 @@ public class MapleItemInformationProvider { } } } catch (SQLException ex) { + ex.printStackTrace(); }*/ int tdex = chr.getDex(), tstr = chr.getStr(), tint = chr.getInt(), tluk = chr.getLuk(), fame = chr.getFame(); if (chr.getJob() != MapleJob.SUPERGM || chr.getJob() != MapleJob.GM) { @@ -1374,6 +1377,7 @@ public class MapleItemInformationProvider { } } } catch (SQLException ex) { + ex.printStackTrace(); }*/ int reqLevel = getEquipStats(equip.getItemId()).get("reqLevel"); diff --git a/src/server/TimerManager.java b/src/server/TimerManager.java index 4f9559fffb..e8c1fa0216 100644 --- a/src/server/TimerManager.java +++ b/src/server/TimerManager.java @@ -40,6 +40,7 @@ public class TimerManager implements TimerManagerMBean { try { mBeanServer.registerMBean(this, new ObjectName("server:type=TimerManger")); } catch (Exception e) { + e.printStackTrace(); } } diff --git a/src/server/life/MapleMonsterInformationProvider.java b/src/server/life/MapleMonsterInformationProvider.java index 1c11ebd0b8..13cf59916f 100644 --- a/src/server/life/MapleMonsterInformationProvider.java +++ b/src/server/life/MapleMonsterInformationProvider.java @@ -79,7 +79,7 @@ public class MapleMonsterInformationProvider { rs.close(); ps.close(); } catch (SQLException e) { - System.err.println("Error retrieving drop" + e); + System.err.println("Error retrieving drop" + e); } finally { try { if (ps != null) { @@ -89,6 +89,7 @@ public class MapleMonsterInformationProvider { rs.close(); } } catch (SQLException ignore) { + ignore.printStackTrace(); } } } @@ -116,6 +117,7 @@ public class MapleMonsterInformationProvider { rs.getShort("questid"))); } } catch (SQLException e) { + e.printStackTrace(); return ret; } finally { try { @@ -126,6 +128,7 @@ public class MapleMonsterInformationProvider { rs.close(); } } catch (SQLException ignore) { + ignore.printStackTrace(); return ret; } } @@ -159,6 +162,8 @@ public class MapleMonsterInformationProvider { return MapleLifeFactory.getMonster(id).getName(); } catch (Exception e) { + e.printStackTrace(); + System.err.println("Nonexistant mob id " + id); return null; //nonexistant mob } } diff --git a/src/server/maps/HiredMerchant.java b/src/server/maps/HiredMerchant.java index 59fb71aba5..8b030353b5 100644 --- a/src/server/maps/HiredMerchant.java +++ b/src/server/maps/HiredMerchant.java @@ -175,6 +175,7 @@ public class HiredMerchant extends AbstractMapleMapObject { ps.executeUpdate(); } } catch (Exception e) { + e.printStackTrace(); } } } else { @@ -186,6 +187,7 @@ public class HiredMerchant extends AbstractMapleMapObject { try { this.saveItems(false); } catch (Exception e) { + e.printStackTrace(); } } } @@ -198,6 +200,7 @@ public class HiredMerchant extends AbstractMapleMapObject { saveItems(true); items.clear(); } catch (SQLException ex) { + ex.printStackTrace(); } //Server.getInstance().getChannel(world, channel).removeHiredMerchant(ownerId); map.broadcastMessage(MaplePacketCreator.destroyHiredMerchant(getOwnerId())); @@ -247,10 +250,12 @@ public class HiredMerchant extends AbstractMapleMapObject { try { this.saveItems(timeout); } catch (Exception e) { + e.printStackTrace(); } items.clear(); } catch (Exception e) { + e.printStackTrace(); } schedule.cancel(false); } @@ -284,6 +289,7 @@ public class HiredMerchant extends AbstractMapleMapObject { try { this.saveItems(false); } catch (SQLException ex) { + ex.printStackTrace(); } } @@ -292,6 +298,7 @@ public class HiredMerchant extends AbstractMapleMapObject { try { this.saveItems(false); } catch (SQLException ex) { + ex.printStackTrace(); } } diff --git a/src/server/maps/MapleMap.java b/src/server/maps/MapleMap.java index 0b39acf55a..dc2db8900c 100644 --- a/src/server/maps/MapleMap.java +++ b/src/server/maps/MapleMap.java @@ -733,6 +733,39 @@ public class MapleMap { public List getAllPlayer() { return getMapObjectsInRange(new Point(0, 0), Double.POSITIVE_INFINITY, Arrays.asList(MapleMapObjectType.PLAYER)); } + + + public List getAllPlayers() { + List character = new LinkedList<>(); + chrRLock.lock(); + try { + for (MapleCharacter a : characters) { + character.add(a); + } + } finally { + chrRLock.unlock(); + } + + return character; + } + + public List getPlayersInRange(Rectangle box, List chr) { + List character = new LinkedList<>(); + chrRLock.lock(); + try { + for (MapleCharacter a : characters) { + if (chr.contains(a.getClient().getPlayer())) { + if (box.contains(a.getPosition())) { + character.add(a); + } + } + } + } finally { + chrRLock.unlock(); + } + + return character; + } public void destroyReactor(int oid) { final MapleReactor reactor = getReactorByOid(oid); @@ -1131,23 +1164,6 @@ public class MapleMap { } - public List getPlayersInRange(Rectangle box, List chr) { - List character = new LinkedList<>(); - chrRLock.lock(); - try { - for (MapleCharacter a : characters) { - if (chr.contains(a.getClient().getPlayer())) { - if (box.contains(a.getPosition())) { - character.add(a); - } - } - } - return character; - } finally { - chrRLock.unlock(); - } - } - public void spawnSummon(final MapleSummon summon) { spawnAndAddRangedMapObject(summon, new DelayedPacketCreation() { @Override diff --git a/src/server/maps/MapleMapFactory.java b/src/server/maps/MapleMapFactory.java index 6f2ede7901..5d63b1e97a 100644 --- a/src/server/maps/MapleMapFactory.java +++ b/src/server/maps/MapleMapFactory.java @@ -146,6 +146,7 @@ public class MapleMapFactory { } } } catch (Exception e) { + e.printStackTrace(); } for (MapleData life : mapData.getChildByPath("life")) { String id = MapleDataTool.getString(life.getChildByPath("id")); @@ -180,6 +181,9 @@ public class MapleMapFactory { map.setMapName(MapleDataTool.getString("mapName", nameData.getChildByPath(getMapStringName(omapid)), "")); map.setStreetName(MapleDataTool.getString("streetName", nameData.getChildByPath(getMapStringName(omapid)), "")); } catch (Exception e) { + e.printStackTrace(); + System.err.println("Not found mapid " + omapid); + map.setMapName(""); map.setStreetName(""); } @@ -270,7 +274,7 @@ public class MapleMapFactory { builder.append("victoria"); } else if (mapid >= 200000000 && mapid < 300000000) { builder.append("ossyria"); - } else if (mapid >= 540000000 && mapid < 551030200) { + } else if (mapid >= 540000000 && mapid < 560000000) { builder.append("singapore"); } else if (mapid >= 600000000 && mapid < 620000000) { builder.append("MasteriaGL"); diff --git a/src/server/maps/PlayerNPCs.java b/src/server/maps/PlayerNPCs.java index 7b8037ec43..47e6c7dae7 100644 --- a/src/server/maps/PlayerNPCs.java +++ b/src/server/maps/PlayerNPCs.java @@ -63,6 +63,7 @@ public class PlayerNPCs extends AbstractMapleMapObject { rs2.close(); ps.close(); } catch (SQLException e) { + e.printStackTrace(); } } diff --git a/src/tools/FilePrinter.java b/src/tools/FilePrinter.java index b84e719e8d..c236f07160 100644 --- a/src/tools/FilePrinter.java +++ b/src/tools/FilePrinter.java @@ -60,12 +60,14 @@ public class FilePrinter { out.write(getString(t).getBytes()); out.write("\n---------------------------------\r\n".getBytes()); } catch (IOException ess) { + ess.printStackTrace(); } finally { try { if (out != null) { out.close(); } } catch (IOException ignore) { + ignore.printStackTrace(); } } } @@ -85,12 +87,14 @@ public class FilePrinter { out.write(getString(t).getBytes()); out.write("\n---------------------------------\r\n".getBytes()); } catch (IOException ess) { + ess.printStackTrace(); } finally { try { if (out != null) { out.close(); } } catch (IOException ignore) { + ignore.printStackTrace(); } } } @@ -109,12 +113,14 @@ public class FilePrinter { out.write(s.getBytes()); //out.write("\n---------------------------------\n".getBytes()); } catch (IOException ess) { + ess.printStackTrace(); } finally { try { if (out != null) { out.close(); } } catch (IOException ignore) { + ignore.printStackTrace(); } } } @@ -140,12 +146,14 @@ public class FilePrinter { out.write("---------------------------------\r\n".getBytes()); } } catch (IOException ess) { + ess.printStackTrace(); } finally { try { if (out != null) { out.close(); } } catch (IOException ignore) { + ignore.printStackTrace(); } } } @@ -168,6 +176,7 @@ public class FilePrinter { sw.close(); } } catch (IOException ignore) { + ignore.printStackTrace(); } } return retValue; diff --git a/src/tools/MapleAESOFB.java b/src/tools/MapleAESOFB.java index bf7c9b74ec..7e80eb5422 100644 --- a/src/tools/MapleAESOFB.java +++ b/src/tools/MapleAESOFB.java @@ -63,6 +63,7 @@ public class MapleAESOFB { try { cipher.init(Cipher.ENCRYPT_MODE, skeySpec); } catch (InvalidKeyException e) { + e.printStackTrace(); } this.setIv(iv); this.mapleVersion = (short) (((mapleVersion >> 8) & 0xFF) | ((mapleVersion << 8) & 0xFF00)); @@ -97,7 +98,9 @@ public class MapleAESOFB { myIv[j] = newIv[j]; } } catch (IllegalBlockSizeException e) { + e.printStackTrace(); } catch (BadPaddingException e) { + e.printStackTrace(); } } data[x] ^= myIv[(x - start) % myIv.length]; diff --git a/src/tools/data/input/GenericSeekableLittleEndianAccessor.java b/src/tools/data/input/GenericSeekableLittleEndianAccessor.java index ab20a02fdf..fdd147d796 100644 --- a/src/tools/data/input/GenericSeekableLittleEndianAccessor.java +++ b/src/tools/data/input/GenericSeekableLittleEndianAccessor.java @@ -57,6 +57,7 @@ public class GenericSeekableLittleEndianAccessor extends GenericLittleEndianAcce try { bs.seek(offset); } catch (IOException e) { + e.printStackTrace(); System.out.println("Seek failed " + e); } } @@ -72,6 +73,7 @@ public class GenericSeekableLittleEndianAccessor extends GenericLittleEndianAcce try { return bs.getPosition(); } catch (IOException e) { + e.printStackTrace(); System.out.println("getPosition failed" + e); return -1; } diff --git a/src/tools/data/input/InputStreamByteStream.java b/src/tools/data/input/InputStreamByteStream.java index 001edcc6ca..70aef3489f 100644 --- a/src/tools/data/input/InputStreamByteStream.java +++ b/src/tools/data/input/InputStreamByteStream.java @@ -85,6 +85,7 @@ public class InputStreamByteStream implements ByteInputStream { try { return is.available(); } catch (IOException e) { + e.printStackTrace(); System.out.println("ERROR" + e); return 0; } diff --git a/src/tools/data/input/RandomAccessByteStream.java b/src/tools/data/input/RandomAccessByteStream.java index ea96f8734b..c0004be17f 100644 --- a/src/tools/data/input/RandomAccessByteStream.java +++ b/src/tools/data/input/RandomAccessByteStream.java @@ -76,6 +76,7 @@ public class RandomAccessByteStream implements SeekableInputStreamBytestream { try { return raf.length() - raf.getFilePointer(); } catch (IOException e) { + e.printStackTrace(); System.out.println("ERROR " + e); return 0; } diff --git a/wz/Quest.wz/Act.img.xml b/wz/Quest.wz/Act.img.xml index 66f3486eec..9c3adeccc6 100644 --- a/wz/Quest.wz/Act.img.xml +++ b/wz/Quest.wz/Act.img.xml @@ -37251,6 +37251,10 @@ + + + + @@ -55686,40 +55690,44 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/wz/Quest.wz/Check.img.xml b/wz/Quest.wz/Check.img.xml index 68b60f5fab..a574d0c0ca 100644 --- a/wz/Quest.wz/Check.img.xml +++ b/wz/Quest.wz/Check.img.xml @@ -76666,13 +76666,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - + diff --git a/wz/Quest.wz/QuestInfo.img.xml b/wz/Quest.wz/QuestInfo.img.xml index 99f5ca82ec..1ae33e1cc6 100644 --- a/wz/Quest.wz/QuestInfo.img.xml +++ b/wz/Quest.wz/QuestInfo.img.xml @@ -10314,13 +10314,11 @@ Able to proceed to 'For the peace of Victoria Island...' as next quest - + - - - - - + + + diff --git a/wz/Quest.wz/Say.img.xml b/wz/Quest.wz/Say.img.xml index e65f312fe6..fd5bc851af 100644 --- a/wz/Quest.wz/Say.img.xml +++ b/wz/Quest.wz/Say.img.xml @@ -64785,16 +64785,22 @@ - - + + + + + - + + + + diff --git a/wz/String.wz/MonsterBook.img.xml b/wz/String.wz/MonsterBook.img.xml index 9263f03c06..48ad28f150 100644 --- a/wz/String.wz/MonsterBook.img.xml +++ b/wz/String.wz/MonsterBook.img.xml @@ -1,14980 +1,14844 @@ - + - - - - - - - - - - - - + + + + + + + + + + + + - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - + - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - - - + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - + + + + + - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - + + + + + + + + - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + - + - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - - + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + - - + + - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + - + - - + + - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + - + - - + + - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - + + + - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + - + - - + + - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + - + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - + + + + - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + - + - - - + + + - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - - - + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - - - + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - + + - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - + + + + - - - - - - - - - - - + + + + + + + + + + + - + - - - - - - - - - + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - + + + - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + - + - - - + + + - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + - + - - - - + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - - + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - + + - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + - + - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - - + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - - - + + + + + + + - - - - - - - - - - + + + + + + + + + + - + - - - - - - - - + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - - + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + - + - - + + - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - - + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - - + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - - - + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - - + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - + + + - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + - + - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - + + - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + - + - - + + - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + - + - - + + - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + - + - - - - + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - + + + - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + - + - - - + + + - - - - - - - - - - - - - + + + + + + + + + + + + + - + - - + + - - + + - + - + - - + + - + - - - - - + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - - + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + - + - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + - + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - + + + + - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + - + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - - + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - - - + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - - - + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - + + + + - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + - + - - - - + + + + - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - + + - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + - + - - - + + + - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + - + - + - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + - + - - - - + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - + + + + - - + + - + - - - + + + - - + + - + - + - - + + - + - - - + + + - - + + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - - - - - - - - - - + + + + + + + + + + + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - - + + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - + + - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - + + - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + - + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - - + + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - - + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - - - - - + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - + + - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + - + - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + - + - + - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + - + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - + + - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + - + - - - + - + - + - - + - + - + - - + - + - + - - + - + - + - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + - + - + - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + - + - + - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + - + - + - - - - - - - - - + + + + + + + + + - + - - + + - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + - + - + - - - + + - + - + - - - + + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - - - - - - - - - - - - - - - + + + + + + + + + + + + + + - + - + - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + - + - + - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + - + - + - - - - - - - - - - - - - - - + + + + + + + + + + + + + - + - + - - - - - - - - - - - + + + + + + + + + + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - - + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - + + + - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - - + + - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + - + - - - - - + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + - + - - - + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - +