internal void Return(int i)
 {
     if (i == 77)
     {
         Wordlist back         = new Wordlist();
         Thread   workerThread = new Thread(back.MainCharacter);
     }
     else if (i == 88)
     {
         new Run(lang);
     }
     else if (i == 99)
     {
         Environment.Exit(0);
     }
 }
 internal void Return(int i)
 {
     if (i == 77)
     {
         Wordlist back = new Wordlist();                
         Thread workerThread = new Thread(back.MainCharacter);
     }
     else if (i == 88)
     {
         new Run(lang);
     }
     else if (i == 99)
     {
         Environment.Exit(0);
     }
 }
        public Run(ResourceManager lang)
        {
            Interface option = new Interface(lang);
            _option = option;

            commun = new Wordlist(lang);

            Main principal = new Main(lang);
            principal.Menu();                               
                        
            bool b = true;

            while (b)
            {
                int i = option.SelectOption(4); 
                bool zip = false;


                if (i == 1)
                {
                    
                    int typesAtGenerate = commun.Wifi();
                    if (typesAtGenerate == 1)
                    {
                        Parameter.NumberOfChar = 20;
                    }
                    else
                    {
                        Parameter.NumberOfChar = 26;
                    }
                                        
                    Parameter.CharsetSelecting = option.InterfaceSelectCharset(lang);
                    Parameter.NumberOfAllCombination = tools.CalculOfAllCombinaison(Repeat, 3, Parameter.NumberOfChar, Parameter.CharsetSelecting);
                    BackupFileWordlist();
                    tools.StatiscalInfoSize(Parameter.NumberOfAllCombination, 3, Parameter.NumberOfChar);
                    b = GenerateWordlist(3);
                    
                }
                else if (i == 2)
                {
                    
                    commun.MainCharacter();
                    
                    Parameter.CharsetSelecting = option.InterfaceSelectCharset(lang);
                    int typesAtGenerate = option.TypesAtGenerate();

                    if (typesAtGenerate == 1)
                    {
                        Parameter.NumberOfChar = option.SizeOfWorld(Parameter.CharsetSelecting, Parameter.NumberOfChar, typesAtGenerate);

                        Parameter.CharsetSelecting = ChangeStartEndReverseMixPattern(Parameter.CharsetSelecting);
                        BackupFileWordlist();
                        Parameter.NumberOfAllCombination = tools.CalculOfAllCombinaison(false, typesAtGenerate, Parameter.NumberOfChar, Parameter.CharsetSelecting);
                        
                        tools.StatiscalInfoSize(Parameter.NumberOfAllCombination, typesAtGenerate, Parameter.NumberOfChar);
                        b = GenerateWordlist(1);                        

                    }
                    else if (typesAtGenerate == 2 | typesAtGenerate == 4 | typesAtGenerate == 5)
                    {
                        Parameter.NumberOfChar = option.SizeOfWorld(Parameter.CharsetSelecting, Parameter.NumberOfChar, typesAtGenerate);
                        Repeat = option.Repetition(Repeat);

                        Parameter.CharsetSelecting = ChangeStartEndReverseMixPattern(Parameter.CharsetSelecting);
                        Parameter.NumberOfAllCombination = tools.CalculOfAllCombinaison(Repeat, typesAtGenerate, Parameter.NumberOfChar, Parameter.CharsetSelecting);
                        BackupFileWordlist();
                        tools.StatiscalInfoSize(Parameter.NumberOfAllCombination, typesAtGenerate, Parameter.NumberOfChar);

                        b =  GenerateWordlist(typesAtGenerate);


                    }
                    else if (typesAtGenerate == 3)
                    {
                        Parameter.NumberOfChar = option.SizeOfWorld(Parameter.CharsetSelecting, Parameter.NumberOfChar, typesAtGenerate);
                        Parameter.NumberOfAllCombination = tools.CalculOfAllCombinaison(Repeat, typesAtGenerate, Parameter.NumberOfChar, Parameter.CharsetSelecting);
                        BackupFileWordlist();
                        tools.StatiscalInfoSize(Parameter.NumberOfAllCombination, typesAtGenerate, Parameter.NumberOfChar);
                        b = GenerateWordlist(3);
                    }                    

                    
                }
                else if (i == 3)
                {

                    principal.TransformWordlist();                   
                    int typesAtGenerate = option.SelectOption(4);

                    if (typesAtGenerate == 88) new Run(lang);
                    if (typesAtGenerate == 99) Environment.Exit(0);

                    
                    PathBackUpFiles = option.PathOfBuckupFiles();
                    zip = option.SaveCharsetInFilesZip();
                    string extension = Interface.ExtensionFileOutputPath(zip);

                    Parameter.CharsetSelecting = option.MenuReadFileTxt();
                    
                    TransformTextFiles toDoTransformFile = new TransformTextFiles();
                    if (typesAtGenerate == 1) toDoTransformFile.L33tSpeek(Parameter.CharsetSelecting,PathBackUpFiles,extension,zip);
                    if (typesAtGenerate == 2) toDoTransformFile.LowercaseToUppercas(Parameter.CharsetSelecting, PathBackUpFiles, extension,zip);          
                    if (typesAtGenerate == 3) toDoTransformFile.UppercaseToLowercase(Parameter.CharsetSelecting,PathBackUpFiles,extension,zip);
                    if (typesAtGenerate == 4) toDoTransformFile.AutoUppercaseLowercase(Parameter.CharsetSelecting, PathBackUpFiles, extension, zip);                    

                    b = false;
                }
                else if (i == 4)
                {
                    Parameter.CharsetSelecting = option.UserPasswordProfilerCharset(Parameter.CharsetSelecting);
                    int typesAtGenerate = option.TypesAtGenerate();

                    Parameter.NumberOfChar = option.SizeOfWorld(Parameter.CharsetSelecting, Parameter.NumberOfChar, typesAtGenerate);
                    Repeat = option.Repetition(Repeat);

                    Parameter.CharsetSelecting = ChangeStartEndReverseMixPattern(Parameter.CharsetSelecting);
                    Parameter.NumberOfAllCombination = tools.CalculOfAllCombinaison(Repeat, typesAtGenerate, Parameter.NumberOfChar, Parameter.CharsetSelecting);
                    BackupFileWordlist();
                    tools.StatiscalInfoSize(Parameter.NumberOfAllCombination, typesAtGenerate, Parameter.NumberOfChar);

                    b = GenerateWordlist(typesAtGenerate);
                }                
                else if (i == 99)
                {
                    Environment.Exit(0);
                }
                else
                {
                    b = true;
                }
            }
        }