Advertisement
Guest User

Untitled

a guest
Jun 3rd, 2017
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 35.91 KB | None | 0 0
  1.  
  2. import java.awt.Color;
  3. import java.awt.Font;
  4. import org.rsbot.script.Script;
  5. import org.rsbot.script.ScriptManifest;
  6.  
  7. import java.awt.Graphics;
  8. import java.awt.Point;
  9. import java.util.Map;
  10. import org.rsbot.bot.Bot;
  11. import java.io.*;
  12. import org.rsbot.script.wrappers.*;
  13.  
  14. import org.rsbot.event.listeners.PaintListener;
  15. import org.rsbot.script.wrappers.RSNPC;
  16.  
  17. @ScriptManifest( authors = { "Botter118" }, category = "CCTools", name = "AccountCreator", description = "Account Creator"
  18.             + "An asterisk next to a name in SucceededNames.txt means we skipped the tutorial")
  19. public class AccountCreator extends Script implements PaintListener {
  20.  
  21.     public String pass;
  22.     public String[] letter1 = { "q", "w", "e", "r", "t", "y", "u", "i", "o", "p", "a", "s", "d", "f", "g", "h", "j", "k", "l", "z", "x", "c", "v", "b", "n", "m" };
  23.     public String[] letter2 = { "q", "w", "e", "r", "t", "y", "u", "i", "o", "p", "a", "s", "d", "f", "g", "h", "j", "k", "l", "z", "x", "c", "v", "b", "n", "m", "1", "2", "3", "4", "5", "6", "7", "8", "9", "0" };
  24.     public String[] letter3 = { "q", "w", "e", "r", "t", "y", "u", "i", "o", "p", "a", "s", "d", "f", "g", "h", "j", "k", "l", "z", "x", "c", "v", "b", "n", "m", "1", "2", "3", "4", "5", "6", "7", "8", "9", "0" };
  25.     public String[] letter4 = { "q", "w", "e", "r", "t", "y", "u", "i", "o", "p", "a", "s", "d", "f", "g", "h", "j", "k", "l", "z", "x", "c", "v", "b", "n", "m", "1", "2", "3", "4", "5", "6", "7", "8", "9", "0", " ", " ", " ", " ", " ", " " };
  26.     public String[] letter5 = { "q", "w", "e", "r", "t", "y", "u", "i", "o", "p", "a", "s", "d", "f", "g", "h", "j", "k", "l", "z", "x", "c", "v", "b", "n", "m"};
  27.     public String[] letter6 = { "q", "w", "e", "r", "t", "y", "u", "i", "o", "p", "a", "s", "d", "f", "g", "h", "j", "k", "l", "z", "x", "c", "v", "b", "n", "m", "1", "2", "3", "4", "5", "6", "7", "8", "9", "0", " ", " ", " ", " ", " ", " ", "_" };
  28.     public String[] letter7 = { "q", "w", "e", "r", "t", "y", "u", "i", "o", "p", "a", "s", "d", "f", "g", "h", "j", "k", "l", "z", "x", "c", "v", "b", "n", "m", "1", "2", "3", "4", "5", "6", "7", "8", "9", "0"};
  29.     public String[] letter8 = { "1", "2", "3", "4", "5", "6", "7", "8", "9", "0", " ", " ", " ", " ", " ", " ", " ", " ", " " };
  30.     public String[] letter9 = { "q", "w", "e", "r", "t", "y", "u", "i", "o", "p", "a", "s", "d", "f", "g", "h", "j", "k", "l", "z", "x", "c", "v", "b", "n", "m" };
  31.     public String[] letter10 = { "q", "w", "e", "r", "t", "y", "u", "i", "o", "p", "a", "s", "d", "f", "g", "h", "j", "k", "l", "z", "x", "c", "v", "b", "n", "m" };
  32.     public String[] letter11 = { "1", "2", "3", "4", "5", "6", "7", "8", "9", "0"};
  33.     public String[] letter12 = { "q", "w", "e", "r", "t", "y", "u", "i", "o", "p", "a", "s", "d", "f", "g", "h", "j", "k", "l", "z", "x", "c", "v", "b", "n", "m" };
  34.     public String name;
  35.     public String[] usedNames = new String[100000];
  36.     public int usedNamesNextPoint = 0;
  37.     public Boolean accountUsed = false;
  38.  
  39.     public String[] pass1 = { "q", "w", "e", "r", "t", "y", "u", "i", "o", "p", "a", "s", "d", "f", "g", "h", "j", "k", "l", "z", "x", "c", "v", "b", "n", "m" };
  40.     public String[] pass2 = { "q", "w", "e", "r", "t", "y", "u", "i", "o", "p", "a", "s", "d", "f", "g", "h", "j", "k", "l", "z", "x", "c", "v", "b", "n", "m", "1", "2", "3", "4", "5", "6", "7", "8", "9", "0" };
  41.     public String[] pass3 = { "q", "w", "e", "r", "t", "y", "u", "i", "o", "p", "a", "s", "d", "f", "g", "h", "j", "k", "l", "z", "x", "c", "v", "b", "n", "m", "1", "2", "3", "4", "5", "6", "7", "8", "9", "0" };
  42.     public String[] pass4 = { "q", "w", "e", "r", "t", "y", "u", "i", "o", "p", "a", "s", "d", "f", "g", "h", "j", "k", "l", "z", "x", "c", "v", "b", "n", "m", "1", "2", "3", "4", "5", "6", "7", "8", "9", "0"};
  43.     public String[] pass5 = { "q", "w", "e", "r", "t", "y", "u", "i", "o", "p", "a", "s", "d", "f", "g", "h", "j", "k", "l", "z", "x", "c", "v", "b", "n", "m"};
  44.     public String[] pass6 = { "q", "w", "e", "r", "t", "y", "u", "i", "o", "p", "a", "s", "d", "f", "g", "h", "j", "k", "l", "z", "x", "c", "v", "b", "n", "m", "1", "2", "3", "4", "5", "6", "7", "8", "9", "0"};
  45.     public String[] pass7 = { "q", "w", "e", "r", "t", "y", "u", "i", "o", "p", "a", "s", "d", "f", "g", "h", "j", "k", "l", "z", "x", "c", "v", "b", "n", "m", "1", "2", "3", "4", "5", "6", "7", "8", "9", "0"};
  46.     public String[] pass8 = { "1", "2", "3", "4", "5", "6", "7", "8", "9", "0"};
  47.     public String[] pass9 = { "q", "w", "e", "r", "t", "y", "u", "i", "o", "p", "a", "s", "d", "f", "g", "h", "j", "k", "l", "z", "x", "c", "v", "b", "n", "m" };
  48.     public String[] pass10 = { "q", "w", "e", "r", "t", "y", "u", "i", "o", "p", "a", "s", "d", "f", "g", "h", "j", "k", "l", "z", "x", "c", "v", "b", "n", "m" };
  49.  
  50.     public RSInterfaceChild tutText = getInterface(896, 6);
  51.     public RSInterfaceChild tutClick = getInterface(896, 4);
  52.     public Boolean shouldSkip = true;
  53.     public Boolean skipped = false;
  54.  
  55.     public RSNPC vant, goblin, vant2, roddeck;
  56.     public int[] NPCIDs = {8850, 8862, 8848, 8867};
  57.     public int[] armoursonfloor = {1117, 1173, 1277};
  58.     public RSTile referenceTile;
  59.  
  60.  
  61.     public void getUsedNames() {
  62.         try{
  63.             File file = new File("TriedNames.txt");
  64.             @SuppressWarnings("unused")
  65.             boolean create = file.createNewFile();
  66.             BufferedReader br = new BufferedReader(new FileReader("TriedNames.txt"));
  67.             String thisLine = br.readLine();
  68.             while(thisLine != null) {
  69.                 String aName = thisLine;
  70.                 usedNames[usedNamesNextPoint] = aName;
  71.                 usedNamesNextPoint++;
  72.                 thisLine = br.readLine();
  73.             }
  74.             try{
  75.                 if(br != null)
  76.                     br.close();
  77.             }catch(IOException e) {
  78.             }
  79.         }catch(IOException e) {
  80.         }
  81.     }
  82.  
  83.     public boolean checkNames() {
  84.         for(int i = 0; i == usedNames.length; i++) {
  85.             if(usedNames[i].equalsIgnoreCase(name)) {
  86.                 log("Avoiding " + name + ", we've already tried it!");
  87.                 return false;
  88.             }
  89.         }
  90.         return true;
  91.     }
  92.  
  93.     public void newName() {
  94.         name = letter1[random(0, letter1.length-1)].toUpperCase();
  95.         name = name + letter2[random(0, letter2.length-1)];
  96.         name = name + letter3[random(0, letter3.length-1)];
  97.         name = name + letter4[random(0, letter4.length-1)];
  98.         name = name + letter5[random(0, letter5.length-1)].toUpperCase();
  99.         name = name + letter6[random(0, letter6.length-1)];
  100.         name = name + letter7[random(0, letter7.length-1)];
  101.         name = name + letter8[random(0, letter8.length-1)];
  102.         name = name + letter9[random(0, letter9.length-1)].toUpperCase();
  103.         if(random(1, 3) == 1) {
  104.             name = name + letter10[random(0, letter10.length-1)];
  105.             name = name + letter11[random(0, letter11.length-1)];
  106.             name = name + letter12[random(0, letter12.length-1)];
  107.         }else if(random(1, 2) == 1) {
  108.             name = name + letter10[random(0, letter10.length-1)];
  109.             name = name + letter11[random(0, letter11.length-1)];
  110.         }else{
  111.             name = name + letter10[random(0, letter10.length-1)];
  112.         }
  113.         log("The name of the next account is: " + name);
  114.     }
  115.  
  116.     public void newPass() {
  117.         if(random(1, 6) == 1) {
  118.             pass = pass1[random(0, pass1.length-1)];
  119.             pass = pass + pass2[random(0, pass2.length-1)];
  120.             pass = pass + pass3[random(0, pass3.length-1)];
  121.             pass = pass + pass4[random(0, pass4.length-1)];
  122.             pass = pass + pass5[random(0, pass5.length-1)];
  123.             pass = pass + pass6[random(0, pass6.length-1)];
  124.             pass = pass + pass7[random(0, pass7.length-1)];
  125.             pass = pass + pass8[random(0, pass8.length-1)];
  126.             pass = pass + pass9[random(0, pass9.length-1)];
  127.             pass = pass + pass10[random(0, letter10.length-1)];
  128.         }else if(random(1, 5) ==1 ) {
  129.             pass = pass1[random(0, pass1.length-1)];
  130.             pass = pass + pass2[random(0, pass2.length-1)];
  131.             pass = pass + pass3[random(0, pass3.length-1)];
  132.             pass = pass + pass4[random(0, pass4.length-1)];
  133.             pass = pass + pass5[random(0, pass5.length-1)];
  134.             pass = pass + pass6[random(0, pass6.length-1)];
  135.             pass = pass + pass7[random(0, pass7.length-1)];
  136.             pass = pass + pass8[random(0, pass8.length-1)];
  137.             pass = pass + pass9[random(0, pass9.length-1)];
  138.         }else if(random(1, 4) == 1) {
  139.             pass = pass1[random(0, pass1.length-1)];
  140.             pass = pass + pass2[random(0, pass2.length-1)];
  141.             pass = pass + pass3[random(0, pass3.length-1)];
  142.             pass = pass + pass4[random(0, pass4.length-1)];
  143.             pass = pass + pass5[random(0, pass5.length-1)];
  144.             pass = pass + pass6[random(0, pass6.length-1)];
  145.             pass = pass + pass7[random(0, pass7.length-1)];
  146.             pass = pass + pass8[random(0, pass8.length-1)];
  147.         }else if(random(1, 3) == 1) {
  148.             pass = pass1[random(0, pass1.length-1)];
  149.             pass = pass + pass2[random(0, pass2.length-1)];
  150.             pass = pass + pass3[random(0, pass3.length-1)];
  151.             pass = pass + pass4[random(0, pass4.length-1)];
  152.             pass = pass + pass5[random(0, pass5.length-1)];
  153.             pass = pass + pass6[random(0, pass6.length-1)];
  154.             pass = pass + pass7[random(0, pass7.length-1)];
  155.         }else if(random(1, 2) == 1) {
  156.             pass = pass1[random(0, pass1.length-1)];
  157.             pass = pass + pass2[random(0, pass2.length-1)];
  158.             pass = pass + pass3[random(0, pass3.length-1)];
  159.             pass = pass + pass4[random(0, pass4.length-1)];
  160.             pass = pass + pass5[random(0, pass5.length-1)];
  161.             pass = pass + pass6[random(0, pass6.length-1)];
  162.         }else{
  163.             pass = pass1[random(0, pass1.length-1)];
  164.             pass = pass + pass2[random(0, pass2.length-1)];
  165.             pass = pass + pass3[random(0, pass3.length-1)];
  166.             pass = pass + pass4[random(0, pass4.length-1)];
  167.             pass = pass + pass5[random(0, pass5.length-1)];
  168.         }
  169.         log("The password for the next account is: " + pass);
  170.     }
  171.  
  172.     public void createAccount(String name2) {
  173.         sendText(name2, false);
  174.         wait(random(200, 1000));
  175.         moveMouse(389, 224, 170, 10);
  176.         wait(random(0, 100));
  177.         clickMouse(true);
  178.         wait(random(2000, 3200));
  179.         if(getInterface(673, 12).getText().length() > 16) {
  180.             accountUsed = true;
  181.             return;
  182.         }
  183.         sendText(pass, false);
  184.         moveMouse(389, 297, 170, 10);
  185.         wait(random(0, 100));
  186.         clickMouse(true);
  187.         wait(random(700, 800));
  188.         sendText(pass, false);
  189.         wait(random(200, 400));
  190.         moveMouse(198, 407, 367, 30);
  191.         wait(random(0, 500));
  192.         clickMouse(true);
  193.         wait(random(700, 1500));
  194.         moveMouse(261, 297, 240, 30);
  195.         wait(random(0, 300));
  196.         clickMouse(true);
  197.     }
  198.  
  199.     public void login(String name2) {
  200.         moveMouse(255, 215, 255, 17);
  201.         wait(random(0, 500));
  202.         clickMouse(true);
  203.         wait(random(0, 300));
  204.         sendText(name2, false);
  205.         wait(random(0, 200));
  206.         moveMouse(255, 267, 255, 17);
  207.         wait(random(0, 500));
  208.         clickMouse(true);
  209.         wait(random(0, 300));
  210.         sendText(pass, false);
  211.         wait(random(0, 20));
  212.         moveMouse(253, 308, 253, 30);
  213.         wait(random(0, 200));
  214.         clickMouse(true);
  215.         wait(random(700, 1300));
  216.         moveMouse(269, 296, 228, 20);
  217.         wait(random(20, 700));
  218.         clickMouse(true);
  219.     }
  220.  
  221.     public void logoutToLogin() {
  222.         while (!isOnLogoutTab()) {
  223.             atInterface(548, 175);
  224.             while (!isOnLogoutTab()) {
  225.                 wait(random(200, 400));
  226.             }
  227.         }
  228.         atInterface(182, 15);
  229.         wait(random(1500, 2000));
  230.     }
  231.  
  232.     public Boolean doTut() { //Original code - Frederick
  233.         if(tutText.isValid() && shouldSkip) {
  234.             atInterface(tutClick);
  235.             wait(random(600, 800));
  236.             if(getInterface(212, 1).containsText("Warning")) {
  237.                 skipped = true;
  238.                 moveMouse(138, 452, 230, 6);
  239.                 wait(random(30, 600));
  240.                 clickMouse(true);
  241.                 wait(random(400, 700));
  242.                 moveMouse(196, 398, 200, 7);
  243.                 wait(random(30, 600));
  244.                 clickMouse(true);
  245.                 wait(random(7000, 9000));
  246.                 return true;
  247.             }else{
  248.                 shouldSkip = false;
  249.                 return false;
  250.             }
  251.         }
  252.         if (interfaceThatContains("Controls") != null) {
  253.             int key = java.awt.event.KeyEvent.VK_UP;
  254.             Bot.getInputManager().pressKey((char) key);
  255.             wait(random(1000, 1500));
  256.             Bot.getInputManager().releaseKey((char) key);
  257.             key = (random(0, 2) == 0) ? java.awt.event.KeyEvent.VK_LEFT : java.awt.event.KeyEvent.VK_RIGHT;
  258.             Bot.getInputManager().pressKey((char) key);
  259.             wait(random(1000, 1500));
  260.             Bot.getInputManager().releaseKey((char) key);
  261.             return false;
  262.         }
  263.         if (interfaceThatContains("Rotate the camera using the arrow") != null || interfaceThatContains("Talk to Sir vant to find out") != null) {
  264.             if (interfaceThatContains("Great, you've got the dragon in the right place") != null) {
  265.                 vant = getNearestNPCByID(NPCIDs[2]);
  266.             }else{
  267.                 vant = getNearestNPCByID(NPCIDs[0]);
  268.             }
  269.             if (vant == null) {
  270.                 return false;
  271.             }
  272.             if (!pointOnScreen(vant.getScreenLocation())) {
  273.                 walkTo(vant.getLocation());
  274.                 waitUntilNotMoving();
  275.             }
  276.             if(interfaceThatContains("Rotate the camera using the arrow") != null) {
  277.                 atNPC(vant, "Talk");
  278.                 waitUntilNotMoving();
  279.                 wait(random(200, 1000));
  280.                 moveMouse(138, 450, 50, 10);
  281.                 wait(random(0, 300));
  282.                 clickMouse(true);
  283.                 wait(random(600, 900));
  284.                 moveMouse(138, 450, 50, 10);
  285.                 wait(random(0, 300));
  286.                 clickMouse(true);
  287.                 wait(random(9000, 13000));
  288.                 moveMouse(138, 450, 50, 10);
  289.                 wait(random(0, 300));
  290.                 clickMouse(true);
  291.                 wait(random(400, 500));
  292.             }else{
  293.                 atNPC(vant, "Talk");
  294.                 waitUntilNotMoving();
  295.                 wait(random(200, 1000));
  296.                 moveMouse(138, 450, 50, 10);
  297.                 wait(random(0, 300));
  298.                 clickMouse(true);
  299.                 wait(random(600, 900));
  300.             }
  301.             return false;
  302.         }
  303.         if (interfaceThatContains("Right-click on the items on the floor") != null) {
  304.             RSItemTile stuff = getNearestGroundItemByID(armoursonfloor);
  305.             while (stuff != null) {
  306.                 atTile(stuff, "Take");
  307.                 wait(random(500, 750));
  308.                 stuff = getNearestGroundItemByID(armoursonfloor);
  309.             }
  310.             return false;
  311.         }
  312.         if (interfaceThatContains("Click on the flashing") != null) {
  313.             if (interfaceThatContains("worn items") != null) {
  314.                 openTab(TAB_EQUIPMENT);
  315.             } else if (interfaceThatContains("quest journal") != null) {
  316.                 openTab(TAB_QUESTS);
  317.             } else if (interfaceThatContains("objectives") != null) {
  318.                 atInterface(interfaceThatHasActions("Objectives"));
  319.             } else if (interfaceThatContains("stats") != null) {
  320.                 openTab(TAB_STATS);
  321.             } else {
  322.                 openTab(TAB_INVENTORY);
  323.             }
  324.             return false;
  325.         }
  326.         if (interfaceThatContains("Right-click on an item in your inventory") != null) {
  327.             while (getInventoryCount(1117) == 1) {
  328.                 atInventoryItem(1117, "Wear");
  329.                 wait(random(500, 750));
  330.             }
  331.             while (getInventoryCount(1173) == 1) {
  332.                 atInventoryItem(1173, "Wield");
  333.                 wait(random(500, 750));
  334.             }
  335.             while (getInventoryCount(1277) == 1) {
  336.                 atInventoryItem(1277, "Wield");
  337.                 wait(random(500, 750));
  338.             }
  339.             return false;
  340.         }
  341.         if (interfaceThatContains("Your worn items screen shows you") != null) {
  342.             while ((goblin = getNearestNPCByID(NPCIDs[1])) != null) {
  343.                 if (goblin.getAnimation() == 6182) {
  344.                     break;
  345.                 }
  346.                 if (!pointOnScreen(goblin.getScreenLocation())) {
  347.                     walkTo(goblin.getLocation());
  348.                      waitUntilNotMoving();
  349.                 }
  350.                 if (!getMyPlayer().isInCombat()) {
  351.                     atNPC(goblin, "Attack");
  352.                     wait(random(3000, 4000));
  353.                 }
  354.             }
  355.             return false;
  356.         }
  357.         if (interfaceThatContains("You'll see that Unstable Foundations is") != null) {
  358.             moveMouse(random(564, 664), random(309, 314));
  359.             clickMouse(true);
  360.             return false;
  361.         }
  362.         if (interfaceThatContains("Now click on the world map") != null) {
  363.             atInterface(interfaceThatHasActions("World Map"));
  364.             return false;
  365.         }
  366.         if (interfaceThatContains("Click on the compass") != null) {
  367.             while (RSInterface.getChildInterface(755, 0).getComponents().length > 0) {
  368.                 wait(random(100, 200));
  369.             }
  370.             atInterface(interfaceThatHasActions("Face North"));
  371.             return false;
  372.         }
  373.         if (interfaceThatContains("Time to get on with the quest") != null) {
  374.             if (interfaceThatContains("You'll need to climb over") != null) {
  375.                 RSObject hole = getNearestObjectByID(45603);
  376.                 atObject(hole, "Climb");
  377.                 return false;
  378.             }
  379.             RSObject bag = getNearestObjectByID(45783);
  380.             while (getInventoryCount(15277) == 0) {
  381.                 if (!tileOnScreen(bag.getLocation())) {
  382.                     walkTo(bag.getLocation());
  383.                     waitUntilNotMoving();
  384.                 }
  385.                 atObject(bag, "Search");
  386.                 wait(random(6000, 7000));
  387.             }
  388.             return false;
  389.         }
  390.         if (interfaceThatContains("The wall is too high") != null) {
  391.             RSObject plank = getNearestObjectByID(45652);
  392.             setCameraAltitude(true);
  393.             atObject(plank, "Take");
  394.             return false;
  395.         }
  396.         if (interfaceThatContains("Right-click on the plank in your inventory") != null) {
  397.             RSObject hole = getNearestObjectByID(45603);
  398.             openTab(TAB_INVENTORY);
  399.             while (getInventoryCount(15276) == 1) {
  400.                 atInventoryItem(15276, "Use");
  401.                 wait(random(750, 1000));
  402.                 atObject(hole, "Use");
  403.                 wait(random(2000, 3000));
  404.             }
  405.             wait(random(1000, 1500));
  406.             return false;
  407.         }
  408.         if (interfaceThatContains("The ramp should make it possible for you") != null) {
  409.             RSObject hole = getNearestObjectByID(45603);
  410.             RSTile currentTile = getMyPlayer().getLocation();
  411.             while (getMyPlayer().getLocation().getY() == currentTile.getY()) {
  412.                 atObject(hole, "Climb");
  413.                 wait(random(1000, 1500));
  414.                 while (getMyPlayer().getAnimation() != -1) {
  415.                     wait(100);
  416.                 }
  417.             }
  418.             wait(random(2000, 3000));
  419.             return false;
  420.         }
  421.         if (getNearestObjectByID(45795) != null) {
  422.             if (distanceTo(getNearestObjectByID(45795).getLocation()) < 5) {
  423.                 while (getInventoryCount(15277) == 1) {
  424.                     atInventoryItem(15277, "Use");
  425.                     wait(random(300, 500));
  426.                     atObject(getNearestObjectByID(45795), "Use");
  427.                     wait(random(3000, 5000));
  428.                 }
  429.                 return false;
  430.             }
  431.         }
  432.         if (interfaceThatContains("Explore the cellar until") != null) {
  433.             referenceTile = getNearestObjectByID(45563).getLocation();
  434.             if (distanceTo(new RSTile(referenceTile.getX() - 1, referenceTile.getY() + 17)) > 5 && getMyPlayer().getLocation().getY() < referenceTile.getY() + 17) {
  435.                 walkTo(new RSTile(referenceTile.getX() - 1, referenceTile.getY() + 17));
  436.                 waitUntilNotMoving();
  437.                 setRun(true);
  438.                 walkTo(new RSTile(referenceTile.getX() - 1, referenceTile.getY() + 17));
  439.                 waitUntilNotMoving();
  440.             }
  441.             walkTo(new RSTile(referenceTile.getX() - 15, referenceTile.getY() + 24));
  442.             waitUntilNotMoving();
  443.             return false;
  444.         }
  445.         if (interfaceThatContains("Check the quest journal") != null) {
  446.             setCameraAltitude(true);
  447.             if (getInventoryCount(590) == 0) {
  448.                 RSObject bag = getNearestObjectByID(45783);
  449.                 while (getInventoryCount(590) == 0) {
  450.                     if (!tileOnScreen(bag.getLocation())) {
  451.                         walkTo(bag.getLocation());
  452.                         waitUntilNotMoving();
  453.                     }
  454.                     atObject(bag, "Search");
  455.                     wait(random(6000, 7000));
  456.                 }
  457.                 wait(random(500, 750));
  458.                 return false;
  459.             }
  460.             if (getInventoryCount(15278) == 1) {
  461.                 atInventoryItem(15278, "Rip");
  462.                 wait(random(500, 750));
  463.                 return false;
  464.             }
  465.             if (getInventoryCount(15280) > 0) {
  466.                 atInventoryItem(15284, "Use");
  467.                 wait(random(500, 750));
  468.                 atInventoryItem(15280, "Use");
  469.                 wait(random(500, 750));
  470.                 return false;
  471.             }
  472.             RSObject Pillar = getNearestObjectByID(45564);
  473.             if (getInventoryCount(15281) == 2) {
  474.                 atInventoryItem(15281, "Use");
  475.                 wait(random(500, 750));
  476.                 atObject(Pillar, "Use");
  477.                 wait(random(1000, 1500));
  478.                 return false;
  479.             }
  480.             if (getInventoryCount(15282) == 1) {
  481.                 atInventoryItem(15282, "Use");
  482.                 wait(random(500, 750));
  483.                 atObject(Pillar, "Use");
  484.                 wait(random(1000, 1500));
  485.                 return false;
  486.             }
  487.             Pillar = getNearestObjectByID(45565);
  488.             if (!tileOnScreen(Pillar.getLocation())) {
  489.                 walkTo(Pillar.getLocation());
  490.                 waitUntilNotMoving();
  491.                 wait(random(500, 750));
  492.                 return false;
  493.             }
  494.             if (getInventoryCount(15281) == 1) {
  495.                 atInventoryItem(15281, "Use");
  496.                 wait(random(500, 750));
  497.                 atObject(Pillar, "Use");
  498.                 wait(random(1000, 1500));
  499.                 return false;
  500.             }
  501.             if (getInventoryCount(15283) == 1) {
  502.                 atInventoryItem(15283, "Use");
  503.                 wait(random(500, 750));
  504.                 atObject(Pillar, "Use");
  505.                 wait(random(1000, 1500));
  506.                 return false;
  507.             }
  508.         }
  509.         if (interfaceThatContains("give Sir vant a tinderbox") != null) {
  510.             setCameraAltitude(true);
  511.             vant = getNearestNPCByID(NPCIDs[2]);
  512.             if (vant == null) {
  513.                 wait(random(500, 750));
  514.                 return false;
  515.             }
  516.             if (!pointOnScreen(vant.getScreenLocation())) {
  517.                 walkTo(vant.getLocation());
  518.                 waitUntilNotMoving();
  519.             }
  520.             while (getInventoryCount(590) > 1) {
  521.                 atInventoryItem(590, "Use");
  522.                 wait(random(500, 750));
  523.                 atNPC(vant, "Use");
  524.                 wait(random(2000, 3000));
  525.                 return false;
  526.             }
  527.         }
  528.         if (interfaceThatContains("Use your tinderbox on the pillar") != null) {
  529.             setCameraAltitude(true);
  530.             RSObject Pillar = getNearestObjectByID(45565);
  531.             if (!tileOnScreen(Pillar.getLocation())) {
  532.                 walkTo(Pillar.getLocation());
  533.                 waitUntilNotMoving();
  534.             }
  535.             atInventoryItem(590, "Use");
  536.             wait(random(500, 750));
  537.             atObject(Pillar, "Use");
  538.             wait(random(3000, 400));
  539.             return false;
  540.         }
  541.         if (interfaceThatContains("RUN! RUN! RUN!") != null) {
  542.             RSObject Pillar = getNearestObjectByID(45565);
  543.             walkTo(new RSTile(Pillar.getLocation().getX() + 7, Pillar.getLocation().getY()));
  544.             wait(random(2000, 3000));
  545.             return false;
  546.         }
  547.         if (interfaceThatContains("Congratulations, the dragon's dead!") != null) {
  548.             roddeck = getNearestNPCByID(NPCIDs[3]);
  549.             atNPC(roddeck, "Talk");
  550.             wait(random(1000, 1500));
  551.             return false;
  552.         }
  553.         if (interfaceThatContains("Click on the question mark button") != null) {
  554.             atInterface(interfaceThatHasActions("Advisor"));
  555.             wait(random(500, 750));
  556.             return false;
  557.         }
  558.         if (interfaceThatContains("Sir vant wants his squire's kit back") != null) {
  559.             openTab(TAB_EQUIPMENT);
  560.             wait(random(500, 750));
  561.             while (equipmentContains(1117)) {
  562.                 atEquippedItem(1117, "Remove");
  563.             }
  564.             while (equipmentContains(1173)) {
  565.                 atEquippedItem(1173, "Remove");
  566.             }
  567.             while (equipmentContains(1277)) {
  568.                 atEquippedItem(1277, "Remove");
  569.             }
  570.             wait(random(500, 750));
  571.             return false;
  572.         }
  573.         if (interfaceThatContains("To give Sir vant an item") != null) {
  574.             openTab(TAB_INVENTORY);
  575.             wait(random(500, 750));
  576.             vant = getNearestNPCByID(NPCIDs[2]);
  577.             if (!pointOnScreen(vant.getScreenLocation())) {
  578.                 walkTo(vant.getLocation());
  579.                 waitUntilNotMoving();
  580.             }
  581.             while (getInventoryCount(590) == 1) {
  582.                 atInventoryItem(590, "Use");
  583.                 wait(random(500, 750));
  584.                 atNPC(vant, "Use");
  585.                 wait(random(5000, 6000));
  586.             }
  587.             wait(random(500, 750));
  588.             return false;
  589.         }
  590.         if (interfaceThatContains("Okay, I'll get on with it") != null) {
  591.             atInterface(interfaceThatContains("Okay, I'll get on with it"));
  592.             wait(random(500, 750));
  593.             return false;
  594.         }
  595.         if (interfaceThatContains("I'll mine through the rocks") != null) {
  596.             atInterface(interfaceThatContains("I'll chop through the roots"));
  597.             wait(random(500, 750));
  598.             return false;
  599.         }
  600.         if (interfaceThatContains("Speak to roddeck, your advisor, about breaking") != null) {
  601.             setCameraAltitude(true);
  602.             roddeck = getNearestNPCByID(NPCIDs[3]);
  603.             if (!pointOnScreen(roddeck.getScreenLocation())) {
  604.                 walkTo(roddeck.getLocation());
  605.                 waitUntilNotMoving();
  606.             }
  607.             atNPC(roddeck, "Talk");
  608.             wait(random(500, 750));
  609.             return false;
  610.         }
  611.         if (interfaceThatContains("While you've got a pickaxe") != null) {
  612.             RSObject damagedWallRock = getNearestObjectByID(45595);
  613.             if (!tileOnScreen(damagedWallRock.getLocation())) {
  614.                 walkTo(damagedWallRock.getLocation());
  615.                 waitUntilNotMoving();
  616.             }
  617.             atObject(damagedWallRock, "Mine");
  618.             wait(random(5000, 6000));
  619.             return false;
  620.         }
  621.         if (interfaceThatContains("While you've got a hatchet") != null) {
  622.             RSObject roots = getNearestObjectByID(45598);
  623.             if (!tileOnScreen(roots.getLocation())) {
  624.                 walkTo(roots.getLocation());
  625.                 waitUntilNotMoving();
  626.             }
  627.             atObject(roots, "Chop");
  628.             wait(random(5000, 6000));
  629.             return false;
  630.         }
  631.         if (interfaceThatContains("Your current objective is to raise your Mining level") != null) {
  632.             setCameraAltitude(true);
  633.             RSObject Rocks = getNearestObjectByID(45580);
  634.             if (!tileOnScreen(Rocks.getLocation())) {
  635.                 walkTo(Rocks.getLocation());
  636.                 waitUntilNotMoving();
  637.             }
  638.             while (skills.getCurrentSkillLevel(STAT_MINING) < 2) {
  639.                 atObject(Rocks, "Mine");
  640.                 wait(random(2000, 3000));
  641.                 while (getMyPlayer().getAnimation() == 6747) {
  642.                     wait(random(100, 200));
  643.                 }
  644.             }
  645.             wait(random(500, 750));
  646.             return false;
  647.         }
  648.         if (interfaceThatContains("Your current objective is to raise your Woodcutting level") != null) {
  649.             setCameraAltitude(true);
  650.             RSObject treeRoots = getObjectAt(getNearestObjectByID(45589).getLocation().getX(), getNearestObjectByID(45589).getLocation().getY() + 1);
  651.             if (!tileOnScreen(treeRoots.getLocation())) {
  652.                 walkTo(treeRoots.getLocation());
  653.                 waitUntilNotMoving();
  654.             }
  655.             while (skills.getCurrentSkillLevel(STAT_WOODCUTTING) < 2) {
  656.                 atObject(treeRoots, "Chop");
  657.                 wait(random(2000, 3000));
  658.                 while (getMyPlayer().getAnimation() == 879) {
  659.                     wait(random(100, 200));
  660.                 }
  661.             }
  662.             wait(random(500, 750));
  663.             return false;
  664.         }
  665.         if (interfaceThatContains("set yourself an objective") != null) {
  666.             atInterface(interfaceThatHasActions("Objectives"));
  667.             wait(random(1000, 1500));
  668.             if (interfaceThatContains("Increase Woodcutting from") == null) {
  669.                 atInterface(interfaceThatHasActions("Give random objective"));
  670.             }
  671.             wait(random(1000, 1500));
  672.             atInterface(interfaceThatContains("Increase Woodcutting from"));
  673.             wait(random(500, 750));
  674.             if (interfaceThatContains("Advisor") == null) {
  675.                 atInterface(interfaceThatHasActions("Advisor"));
  676.             }
  677.             wait(random(500, 750));
  678.             return false;
  679.         }
  680.         if (interfaceThatContains("advisor button") != null) {
  681.             if (interfaceThatContains("How can I raise my") == null) {
  682.                 atInterface(interfaceThatHasActions("Advisor"));
  683.             }
  684.             wait(random(1000, 1500));
  685.             if (interfaceThatContains("How can I raise my") == null) {
  686.                 wait(random(500, 750));
  687.                 return false;
  688.             }
  689.             atInterface(interfaceThatContains("How can I raise my"));
  690.             wait(random(500, 750));
  691.             return false;
  692.         }
  693.         if (interfaceThatContains("Your Mining level is now high enough") != null) {
  694.             RSObject damagedWallRock = getNearestObjectByID(45595);
  695.             if (damagedWallRock != null) {
  696.                 if (!tileOnScreen(damagedWallRock.getLocation())) {
  697.                     walkTo(damagedWallRock.getLocation());
  698.                     waitUntilNotMoving();
  699.                 }
  700.                 atObject(damagedWallRock, "Mine");
  701.                 wait(random(500, 750));
  702.                 return false;
  703.             } else {
  704.                 damagedWallRock = getNearestObjectByID(45597);
  705.                 if (damagedWallRock == null) {
  706.                     return false;
  707.                 }
  708.                 atObject(damagedWallRock, "Climb");
  709.                 wait(random(750, 1000));
  710.                 while (getMyPlayer().getAnimation() == 12280 || getMyPlayer().isMoving()) {
  711.                     wait(random(100, 200));
  712.                 }
  713.                 wait(random(500, 750));
  714.                 return false;
  715.             }
  716.         }
  717.         if (interfaceThatContains("Your Woodcutting level is now high enough") != null) {
  718.             RSObject root = getNearestObjectByID(45598);
  719.             if (root != null) {
  720.                 if (!tileOnScreen(root.getLocation())) {
  721.                     walkTo(root.getLocation());
  722.                     waitUntilNotMoving();
  723.                 }
  724.                 atObject(root, "Chop");
  725.                 wait(random(500, 750));
  726.                 return false;
  727.             } else {
  728.                 root = getNearestObjectByID(45600);
  729.                 if (root == null) {
  730.                     return false;
  731.                 }
  732.                 atObject(root, "Climb");
  733.                 wait(random(750, 1000));
  734.                 while (getMyPlayer().isMoving()) {
  735.                     wait(random(100, 200));
  736.                 }
  737.                 wait(random(500, 750));
  738.                 return false;
  739.             }
  740.         }
  741.         if (interfaceThatContains("Escape up the ladder to freedom!") != null) {
  742.             openTab(TAB_INVENTORY);
  743.             while (inventoryContains(15286)) {
  744.                 atInventoryItem(15286, "Drop");
  745.                 wait(random(500, 750));
  746.                 clickContinue();
  747.             }
  748.             while (inventoryContains(15285)) {
  749.                 atInventoryItem(15285, "Drop");
  750.                 wait(random(500, 750));
  751.                 clickContinue();
  752.             }
  753.             RSObject ladder = getNearestObjectByID(45784);
  754.             if (ladder == null) {
  755.                 wait(random(500, 750));
  756.                 return false;
  757.             }
  758.             atInterface(interfaceThatHasActions("Face North"));
  759.             if (distanceTo(ladder.getLocation()) > 3) {
  760.                 walkTo(ladder.getLocation());
  761.                 waitUntilNotMoving();
  762.             }
  763.             while (interfaceThatContains("Thank you again") == null) {
  764.                 ladder = getNearestObjectByID(45784);
  765.                 if (ladder == null) {
  766.                     break;
  767.                 }
  768.                 atTile(ladder.getLocation(), random(20, 50), 0.5, 1, "Climb");
  769.             }
  770.             wait(random(500, 750));
  771.             return false;
  772.         }
  773.         if (interfaceThatContains("You're out!") != null) {
  774.             vant = getNearestNPCByID(NPCIDs[2]);
  775.             if (vant == null) {
  776.                 moveMouse(random(188, 332), random(444, 453));
  777.                 clickMouse(true);
  778.                 wait(random(500, 750));
  779.                 return false;
  780.             }
  781.             if (vant.isMoving()) {
  782.                 moveMouse(random(188, 332), random(444, 453));
  783.                 clickMouse(true);
  784.                 wait(random(500, 750));
  785.                 return false;
  786.             }
  787.             walkTo(vant.getLocation());
  788.             setCameraAltitude(true);
  789.             waitUntilNotMoving();
  790.             if (!pointOnScreen(vant.getScreenLocation())) {
  791.                 walkTo(vant.getLocation());
  792.                 waitUntilNotMoving();
  793.             }
  794.             atNPC(vant, "Talk");
  795.             wait(random(500, 750));
  796.             return false;
  797.         }
  798.         if (interfaceThatContains("roddeck would like to offer you some") != null) {
  799.             setCameraAltitude(true);
  800.             roddeck = getNearestNPCByID(NPCIDs[3]);
  801.             if (!pointOnScreen(roddeck.getScreenLocation())) {
  802.                 walkTo(roddeck.getLocation());
  803.                 waitUntilNotMoving();
  804.             }
  805.             atNPC(roddeck, "Talk");
  806.             wait(random(500, 750));
  807.             return false;
  808.         }
  809.         if (interfaceThatContains("You may now leave via the door") != null) {
  810.             atInterface(interfaceThatHasActions("Face North"));
  811.             RSObject door = getNearestObjectByID(45801);
  812.             if (door == null) {
  813.                 return false;
  814.             }
  815.             atTile(door.getLocation(), random(20, 50), random(0.0, 1.0), 0, "Open");
  816.             wait(random(500, 750));
  817.             return false;
  818.         }
  819.         if (distanceTo(new RSTile(3204, 3246)) < 8) {
  820.             return true;
  821.         }
  822.         return false;
  823.     }
  824.    
  825.     public void waitUntilNotMoving() {
  826.         wait(random(500, 600));
  827.         while(getMyPlayer().isMoving()) {
  828.             wait(random(200, 300));
  829.         }
  830.         wait(random(200, 600));
  831.     }
  832.  
  833.     public int[] interfaceIDThatContains(String str) {
  834.         if(Bot.getClient().getRSInterfaceCache() == null) {
  835.             return null;
  836.         }
  837.         for(int i = 0; i < RSInterface.getAllInterfaces().length; i++) {
  838.             if(RSInterface.getAllInterfaces()[i].isValid()) {
  839.                 for(int o = 0; o < RSInterface.getAllInterfaces()[i].getChildren().length; o++) {
  840.                     if(RSInterface.getAllInterfaces()[i].getChildren()[o].isValid()) {
  841.                         if(RSInterface.getAllInterfaces()[i].getChildren()[o].getComponents().length > 0) {
  842.                             for(int l = 0; l < RSInterface.getAllInterfaces()[i].getChildren()[o].getComponents().length; o++) {
  843.                                 if(RSInterface.getAllInterfaces()[i].getChildren()[o].getComponents()[l].isValid()) {
  844.                                     if(RSInterface.getAllInterfaces()[i].getChildren()[o].getComponents()[l].containsText(str)) {
  845.                                         return new int[]{i, o, l};
  846.                                     }
  847.                                 }
  848.                             }
  849.                         }else{
  850.                             if(RSInterface.getAllInterfaces()[i].getChildren()[o].containsText(str)) {
  851.                                 return new int[]{i, o};
  852.                             }
  853.                         }
  854.                     }
  855.                 }
  856.             }
  857.         }
  858.         return null;
  859.     }
  860.  
  861.     public RSInterfaceChild interfaceThatContains(String str) {
  862.         if (Bot.getClient().getRSInterfaceCache() == null) {
  863.             return null;
  864.         }
  865.         for (RSInterface interfaces : RSInterface.getAllInterfaces()) {
  866.             if (interfaces.isValid()) {
  867.                 for (RSInterfaceChild children : interfaces.getChildren()) {
  868.                     if (children.isValid()) {
  869.                         if (children.getComponents().length > 0) {
  870.                             for (RSInterfaceComponent component : children.getComponents()) {
  871.                                 if (component.isValid()) {
  872.                                     if (component.containsText(str)) {
  873.                                         return component;
  874.                                     }
  875.                                 }
  876.                             }
  877.                         } else {
  878.                             if (children.containsText(str)) {
  879.                                 return children;
  880.                             }
  881.                         }
  882.                     }
  883.                 }
  884.             }
  885.         }
  886.         return null;
  887.     }
  888.  
  889.     public RSInterfaceChild interfaceThatHasActions(String str) {
  890.         if (Bot.getClient().getRSInterfaceCache() == null) {
  891.             return null;
  892.         }
  893.         for (RSInterface interfaces : RSInterface.getAllInterfaces()) {
  894.             if (interfaces.isValid()) {
  895.                 for (RSInterfaceChild children : interfaces.getChildren()) {
  896.                     if (children.isValid()) {
  897.                         if (children.getComponents().length > 0) {
  898.                             for (RSInterfaceComponent component : children.getComponents()) {
  899.                                 if (component.isValid() && component.getActions() != null) {
  900.                                     if (component.getActions().length > 0) {
  901.                                         if (component.getActions()[0] != null) {
  902.                                             if (component.getActions()[0].contains(str)) {
  903.                                                 return component;
  904.                                             }
  905.                                         }
  906.                                     }
  907.                                 }
  908.                             }
  909.                         } else {
  910.                             if (children.getActions() != null) {
  911.                                 if (children.getActions().length > 0) {
  912.                                     if (children.getActions()[0] != null) {
  913.                                         if (children.getActions()[0].contains(str)) {
  914.                                             return children;
  915.                                         }
  916.                                     }
  917.                                 }
  918.                             }
  919.                         }
  920.                     }
  921.                 }
  922.             }
  923.         }
  924.         return null;
  925.     }
  926.  
  927.     @Override
  928.     public RSInterfaceChild getContinueChildInterface() {
  929.         if (Bot.getClient().getRSInterfaceCache() == null) {
  930.             return null;
  931.         }
  932.         RSInterface[] valid = RSInterface.getAllInterfaces();
  933.         for (RSInterface iface : valid) {
  934.             if (iface.getIndex() != 137 && iface.getIndex() != 752) {
  935.                 int len = iface.getChildCount();
  936.                 for (int i = 0; i < len; i++) {
  937.                     RSInterfaceChild child = iface.getChild(i);
  938.                     if (child.containsText("Click here to continue") && child.getWidth() > 30 && child.getAbsoluteY() > 337) {
  939.                         return child;
  940.                     }
  941.                 }
  942.             }
  943.         }
  944.         return null;
  945.     }
  946.  
  947.     @Override
  948.     public boolean canContinue() {
  949.         return getContinueChildInterface() != null;
  950.     }
  951.  
  952.     @Override
  953.     public boolean clickContinue() {
  954.         RSInterfaceChild cont = getContinueChildInterface();
  955.         return !(cont != null && cont.isValid()) || atInterface(cont);
  956.     }
  957.  
  958.     public void exit() {
  959.         moveMouse(572, 102, 10, 20);
  960.         wait(random(20, 600));
  961.         clickMouse(true);
  962.         wait(random(300, 1000));
  963.     }
  964.  
  965.     public void enterDate(int year) {
  966.         //day
  967.         wait(random(300, 600));
  968.         moveMouse(82, 384, 15, 16);
  969.         wait(random(0, 300));
  970.         clickMouse(true);
  971.         wait(random(400, 700));
  972.         moveMouse(35, 414, 37, 49);
  973.         wait(random(0, 300));
  974.         clickMouse(true);
  975.        
  976.         //month
  977.         wait(random(300, 600));
  978.         moveMouse(121, 384, 160, 16);
  979.         wait(random(0, 300));
  980.         clickMouse(true);
  981.         wait(random(400, 700));
  982.         moveMouse(121, 414, 138, 49);
  983.         wait(random(0, 300));
  984.         clickMouse(true);
  985.        
  986.         //year
  987.         wait(random(300, 600));
  988.         moveMouse(308, 384, 90, 16);
  989.         wait(random(0, 300));
  990.         clickMouse(true);
  991.         wait(random(1200, 1900));
  992.         sendText(Integer.toString(year), true);
  993.         wait(random(500, 900));
  994.        
  995.         //submit
  996.         moveMouse(417, 381, 84, 22);
  997.         wait(random(30, 600));
  998.         clickMouse(true);
  999.         wait(random(1000, 1500));
  1000.        
  1001.         //accept
  1002.         moveMouse(87, 203, 150, 21);
  1003.         wait(random(30, 400));
  1004.         clickMouse(true);
  1005.        
  1006.         wait(random(1000, 2000));
  1007.     }
  1008.  
  1009.         public int loop() {
  1010.         moveMouse(310, 391, 140, 14);
  1011.         wait(random(300, 700));
  1012.         clickMouse(true);
  1013.         wait(random(600, 1200));
  1014.         newName();
  1015.         newPass();
  1016.         while(!checkNames()) {
  1017.             newName();
  1018.         }
  1019.         try{
  1020.             BufferedWriter out = new BufferedWriter(new FileWriter("TriedNames.txt", true));
  1021.             out.write(name);
  1022.             out.newLine();
  1023.             out.close();
  1024.         }catch (Exception e){
  1025.         }
  1026.         wait(random(100, 400));
  1027.         createAccount(name);
  1028.         if(accountUsed) {
  1029.             exit();
  1030.             accountUsed = false;
  1031.             return random(300, 900);
  1032.         }
  1033.         wait(random(700, 1300));
  1034.         login(name);
  1035.         wait(random(4000, 6000));
  1036.         moveMouse(319, 398, 125, 19);
  1037.         wait(random(30, 800));
  1038.         clickMouse(true);
  1039.         wait(random(200, 300));
  1040.         shouldSkip = true;
  1041.         skipped = false;
  1042.         while(!doTut()) {
  1043.             wait(random(200, 600));
  1044.             doTut();
  1045.         }
  1046.         wait(random(300, 600));
  1047.         enterDate(random(1960, 1992));
  1048.         wait(random(600, 700));
  1049.         String myName = getMyPlayer().getName();
  1050.         log("Created account \"" + myName + "\", with the password \"" + pass + "\"");
  1051.         try{
  1052.             BufferedWriter out = new BufferedWriter(new FileWriter("SucceededNames.txt", true));
  1053.             out.write((skipped ? "*" : "") + "Username: " + myName + " - Password: " + pass);
  1054.             out.newLine();
  1055.             out.close();
  1056.         }catch (Exception e){//Catch exception if any
  1057.         }
  1058.         logoutToLogin();
  1059.         return 100;
  1060.     }
  1061.  
  1062.     public void onRepaint(Graphics grphcs) {
  1063.     }
  1064.  
  1065.     @Override
  1066.     public boolean onStart(final Map<String, String> args) {
  1067.         try{
  1068.             pass = args.get("pass");
  1069.         }catch(Exception e) {
  1070.             log.severe("Please enter a password");
  1071.             stopScript();
  1072.         }
  1073.         log("Your password: " + pass);
  1074.         getUsedNames();
  1075.         return true;
  1076.     }
  1077. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement