public void _0001()
 {
     //Discarded unreachable code: IL_0002
     //IL_0003: Incompatible stack heights: 0 vs 1
     if (_InfoList != null)
     {
         ((ServerList)_InfoList)._0001();
         _InfoList = null;
         GC.SuppressFinalize(this);
     }
 }
        private void ResolverList_MouseDown(object sender, MouseEventArgs e)
        {
            var MouseEvent = e as MouseEventArgs;

            var Result = ResolverList.HitTest(MouseEvent.X, MouseEvent.Y);

            if (Result.SubItem != null)
            {
                if (Result.SubItem.Text.StartsWith("http"))
                {
                    System.Diagnostics.Process.Start(Result.SubItem.Text);
                }
            }
        }
        private void ResolverList_MouseMove(object sender, MouseEventArgs e)
        {
            var MouseEvent = e as MouseEventArgs;

            var Result = ResolverList.HitTest(MouseEvent.X, MouseEvent.Y);

            if (Result.SubItem != null)
            {
                if (Result.SubItem.Text.StartsWith("http://") || Result.SubItem.Text.StartsWith("https://"))
                {
                    ResolverList.Cursor = Cursors.Hand;
                }
                else
                {
                    ResolverList.Cursor = Cursors.Default;
                }
            }
        }
        public DNSCryptResolverPicker(string ResolverFilename)
        {
            InitializeComponent();
            ColumnSorter = new ListViewColumnSorter();
            ResolverList.ListViewItemSorter = ColumnSorter;

            int        NameColumn          = -1;
            int        FullNameColumn      = -1;
            int        URLColumn           = -1;
            List <int> IgnoreColumnIndices = new List <int>();

            var Trim          = new char[] { '\"', ' ' };
            var CSVSplitRegex = new Regex(",(?=(?:[^\"]*\"[^\"]*\")*(?![^\"]*\"))");

            var NameHeader = new ColumnHeader();

            NameHeader.Text = "Name";
            ResolverList.Columns.Add(NameHeader);

            int Index = 0;

            string[] Lines = System.IO.File.ReadAllLines(ResolverFilename);
            foreach (var Line in Lines)
            {
                string[] Elements      = CSVSplitRegex.Split(Line);
                int      ElementsCount = Elements.Count();
                for (int i = 0; i < ElementsCount; i++)
                {
                    Elements[i] = Elements[i].Trim(Trim);
                }

                if (Index == 0)
                {
                    int ColIndex = 0;
                    foreach (string Elem in Elements)
                    {
                        if (Elem.Equals("Name"))
                        {
                            NameColumn = ColIndex;
                        }

                        if (Elem.Equals("Full name"))
                        {
                            FullNameColumn = ColIndex;
                        }

                        if (Elem.Equals("URL"))
                        {
                            URLColumn = ColIndex;
                        }

                        bool ShouldIgnore = false;
                        foreach (string Ignore in IgnoreColumns)
                        {
                            if (Elem.StartsWith(Ignore))
                            {
                                ShouldIgnore = true;
                                IgnoreColumnIndices.Add(ColIndex);
                                break;
                            }
                        }

                        if (!ShouldIgnore)
                        {
                            var Header = new ColumnHeader();
                            Header.Text = Elem;

                            ResolverList.Columns.Add(Header);
                        }

                        ColIndex++;
                    }
                }
                else
                {
                    int           URLIndex         = -1;
                    int           ColIndex         = 0;
                    List <string> RemainingColData = new List <string>();
                    foreach (string Elem in Elements)
                    {
                        if (ColIndex == URLColumn)
                        {
                            URLIndex = RemainingColData.Count;
                        }

                        if (IgnoreColumnIndices.IndexOf(ColIndex) == -1)
                        {
                            RemainingColData.Add(Elem);
                        }

                        ColIndex++;
                    }

                    var Item = new ListViewItem();
                    Item.Text = Elements[FullNameColumn];

                    int DataIndex = 0;
                    foreach (var Data in RemainingColData)
                    {
                        if (DataIndex == URLIndex)
                        {
                            var SubItem = new ListViewItem.ListViewSubItem();
                            SubItem.ForeColor = Color.Blue;
                            SubItem.Text      = RemainingColData[DataIndex];
                            SubItem.Font      = new Font(SubItem.Font, FontStyle.Underline);

                            Item.SubItems.Add(SubItem);
                        }
                        else
                        {
                            Item.SubItems.Add(RemainingColData[DataIndex]);
                        }

                        DataIndex++;
                    }

                    Item.UseItemStyleForSubItems = false;
                    Item.SubItems.AddRange(RemainingColData.ToArray());
                    Item.Tag = Elements[NameColumn];

                    ResolverList.Items.Add(Item);
                }

                Index++;
            }

            ResolverList.AutoResizeColumns(ColumnHeaderAutoResizeStyle.HeaderSize);
        }