Fork me on GitHub

Android逆向笔记之ctflearn上的几道Android RE题目练手

一、 Basic Android RE 1

https://ctflearn.com/challenge/962

1

没啥特别说明,只说了这是一个apk文件,让你自己找乐子,OK,先下载文件:

https://ctflearn.com/challenge/download/962

或是从我的GitHub下载:

https://github.com/CC11001100/Android-RE-attachment-netdisk/blob/master/cnblogs/13974682/BasicAndroidRE1.apk

下载完之后二话不说先拖到jeb看下:

1

项目结构看起来很简单。嗯?似乎依赖了apache-codec库?不知道有啥猫腻,反编译MainActivity看下:

package com.example.secondapp;

import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.TextView;
import androidx.appcompat.app.AppCompatActivity;
import org.apache.commons.codec.digest.DigestUtils;

public class MainActivity extends AppCompatActivity {
    @Override  // androidx.appcompat.app.AppCompatActivity
    protected void onCreate(Bundle arg1) {
        super.onCreate(arg1);
        this.setContentView(0x7F09001C);  // layout:activity_main
    }

    public void submitPassword(View arg4) {
        EditText v4 = (EditText)this.findViewById(0x7F070037);  // id:editText2
        if(DigestUtils.md5Hex(v4.getText().toString()).equalsIgnoreCase("b74dec4f39d35b6a2e6c48e637c8aedb")) {
            ((TextView)this.findViewById(0x7F07008A)).setText("Success! CTFlearn{" + v4.getText().toString() + "_is_not_secure!}");  // id:textView
        }
    }
}

可以看到和大多数app一样,程序启动的时候设置了一个布局文件,找到这个布局文件:

<?xml version="1.0" encoding="UTF-8"?>
<androidx.constraintlayout.widget.ConstraintLayout android:layout_height="-1" android:layout_width="-1" xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto">
  <Button android:id="@id/button" android:layout_height="-2" android:layout_marginBottom="160.0dp" android:layout_marginRight="160.0dp" android:layout_width="-2" android:onClick="submitPassword" android:text="@string/button" app:layout_constraintBottom_toBottomOf="0" app:layout_constraintEnd_toEndOf="0"/>
  <EditText android:ems="10" android:hint="@string/username" android:id="@id/editText" android:inputType="0x81" android:layout_height="-2" android:layout_marginBottom="20.0dp" android:layout_marginLeft="96.0dp" android:layout_width="-2" app:layout_constraintBottom_toTopOf="@id/editText2" app:layout_constraintStart_toStartOf="0"/>
  <EditText android:ems="10" android:hint="@string/password" android:id="@id/editText2" android:inputType="0x21" android:layout_height="-2" android:layout_marginBottom="32.0dp" android:layout_marginLeft="96.0dp" android:layout_width="-2" app:layout_constraintBottom_toTopOf="@id/button" app:layout_constraintStart_toStartOf="0"/>
  <TextView android:id="@id/textView" android:layout_height="-2" android:layout_marginBottom="276.0dp" android:layout_marginLeft="175.0dp" android:layout_marginRight="179.0dp" android:layout_marginTop="86.0dp" android:layout_width="-2" android:text="@string/welcome_please_enter_the_password_for_the_flag" android:textSize="30.0sp" app:layout_constraintBottom_toTopOf="@id/editText" app:layout_constraintEnd_toEndOf="0" app:layout_constraintStart_toStartOf="0" app:layout_constraintTop_toTopOf="0"/>
</androidx.constraintlayout.widget.ConstraintLayout>

发现是一个登录界面,可以输入用户名和密码,然后单击按钮提交,按钮绑定了一个onClick函数到submitPassword,这个绑定的submitPassword函数在之前的MainActivity中,这里再贴一下:

    public void submitPassword(View arg4) {
        EditText v4 = (EditText)this.findViewById(0x7F070037);  // id:editText2
        if(DigestUtils.md5Hex(v4.getText().toString()).equalsIgnoreCase("b74dec4f39d35b6a2e6c48e637c8aedb")) {
            ((TextView)this.findViewById(0x7F07008A)).setText("Success! CTFlearn{" + v4.getText().toString() + "_is_not_secure!}");  // id:textView
        }
    }

id为editText2的组件就是密码输入框,这里会把输入的内容做一个md5,然后看是否和指定的md5相同,也就是说我们要找到md5为b74dec4f39d35b6a2e6c48e637c8aedb的明文,然后将其拼接到CTFlearn{" + v4.getText().toString() + "_is_not_secure!}中即可,

在这个网站:

https://www.somd5.com/

查表查到了明文是:Spring2019

1

然后拼接出flag提交即可:

CTFlearn{ Spring2019_is_not_secure!}



二、 Weird Android Calculator

https://ctflearn.com/challenge/290

1

说他发现了一个奇怪的应用,看起来像是一个计算器,但是有一些很奇怪的地方,看我们能不能发现哪里奇怪?

去他提供的这个地址去把apk文件下载下来:

https://mega.nz/#!qXIAgSKZ!u2QBlLV-3G8kmsr6yR0wqpQOFyv89e0WvBt45alBIRY

或是从我的GitHub下载:

https://github.com/CC11001100/Android-RE-attachment-netdisk/blob/master/cnblogs/13974682/WeirdCalculator.apk

这奇奇怪怪的网盘奇奇怪怪的使用方式....

下完之后二话不说,直接拖到jeb中看一下:

1

嗯,项目看起来很简单,看起来需要注意的除了MainActivity就只有一个叫做Parser的类了,先反编译MainActivity看下:

package de.vidar.weirdcalculator;

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {
    private View view;

    public void createBackground(View arg7) {
        String s = ((EditText)this.view).getText().toString();
        try {
            TextView result = (TextView)this.findViewById(0x7F0B0061);  // id:lblResult
            result.setText("");
            result.setText(String.valueOf(Parser.eval(s)));
        }
        catch(Exception e) {
            Toast.makeText(this, e.getMessage(), 1).show();
        }
    }

    @Override  // android.support.v7.app.AppCompatActivity
    protected void onCreate(Bundle arg2) {
        super.onCreate(arg2);
        this.setContentView(0x7F04001B);  // layout:activity_main
        this.view = this.findViewById(0x7F0B005F);  // id:txtExpression
    }
}

先看onCreate部分,app启动的时候设置了一个布局文件,把这个文件找出来看一下:

<?xml version="1.0" encoding="UTF-8"?>
<RelativeLayout android:layout_height="-1" android:layout_width="-1" android:paddingBottom="10.0px" android:paddingLeft="10.0px" android:paddingRight="10.0px" android:paddingTop="10.0px" xmlns:android="http://schemas.android.com/apk/res/android">
  <TextView android:id="@id/textView1" android:layout_height="-2" android:layout_width="-2" android:text="Enter your math expression:"/>
  <EditText android:ems="10" android:id="@id/txtExpression" android:layout_alignLeft="@id/textView1" android:layout_below="@id/textView1" android:layout_height="-2" android:layout_marginTop="22.0dp" android:layout_width="-2"/>
  <Button android:id="@id/btnCalc" android:layout_alignLeft="@id/txtExpression" android:layout_below="@id/txtExpression" android:layout_height="-2" android:layout_marginTop="53.0dp" android:layout_width="-2" android:onClick="createBackground" android:text="Calculate"/>
  <TextView android:id="@id/lblResult" android:layout_alignRight="@id/btnCalc" android:layout_below="@id/btnCalc" android:layout_height="-2" android:layout_marginTop="132.0dp" android:layout_width="-2"/>
</RelativeLayout>

从布局文件看不出来啥,看起来中规中矩,提供了一个输入框用来输入表达式,然后点击计算按钮就将结果展示出来,没啥特别的,然后再来看Button的onClick的createBackground方法,在上面的MainActivity中,它获取输入的表达式,提供给一个叫做Parser的类,然后将计算的结果展示出来,接下来就是重点Parser了,这个类的代码很长,我本来打算仔细分析一遍的,感谢老天爷,我有在仔细分析之前先有个概览的习惯,所以在一目十行的时候我一不小心就撇到了一个奇怪的地方:

1

看起来像是这个计算器还是需要购买的,不买只能用部分功能之类的,但是下边执行不到的那部分,那数组中的一串数字看起来很奇怪,将其拷贝出来并复现一下这个逻辑,看看输出的都是什么东西:

#!/usr/bin/env python3
# encoding: utf-8
"""
@author: CC11001100
"""

if __name__ == "__main__":
    flarry = [0x57F, 0x575, 1400, 1406, 0x542, 1400, 0x569, 0x572, 0x566, 0x50D, 0x557, 0x558, 0x555, 0x540, 0x54A,
              0x508, 0x54A, 0x566, 0x508, 0x54A, 0x566, 0x54B, 0x50D, 0x54D, 0x551, 0x50A, 0x54B, 0x566, 0x50A, 0x558,
              0x54A, 0x540, 0x566, 0x508, 0x54A, 0x557, 0x54D, 0x566, 0x508, 0x54D, 0x544]
    for _ in flarry:
        print(_ ^ 0x539)

输出看起来像是ASCII码:

1

那我们就将其当做是ASCII码好了,每个码转成一个字符,然后把所有拼接起来看看到底是个啥:

#!/usr/bin/env python3
# encoding: utf-8
"""
@author: CC11001100
"""

if __name__ == "__main__":
    flarry = [0x57F, 0x575, 1400, 1406, 0x542, 1400, 0x569, 0x572, 0x566, 0x50D, 0x557, 0x558, 0x555, 0x540, 0x54A,
              0x508, 0x54A, 0x566, 0x508, 0x54A, 0x566, 0x54B, 0x50D, 0x54D, 0x551, 0x50A, 0x54B, 0x566, 0x50A, 0x558,
              0x54A, 0x540, 0x566, 0x508, 0x54A, 0x557, 0x54D, 0x566, 0x508, 0x54D, 0x544]
    s = ""
    for _ in flarry:
        s += chr(_ ^ 0x539)
    print(s)

看起来找到了FLAG:

1

将这串字符:

FLAG{APK_4nalys1s_1s_r4th3r_3asy_1snt_1t}

复制提交即可完成此任务。

另外想吐槽的是flarry这变量名字取得还真是隐蔽啊~~!



三、 Android, run!

https://ctflearn.com/challenge/317

1

不愧是hard,之前两个题目的Solves都是两百多,到这里直接下降了一个数量级,而且连题目描述都长了一些,这让我的散装英语压力很大...

还是从奇怪的网盘下载下来apk:

https://mega.nz/#!XCwVRZgL!hzP0UnEFVw_eLM1_s3nj9Bps4J_Fc0MLDknWT95SMNA

或是从我的GitHub下载:

https://github.com/CC11001100/Android-RE-attachment-netdisk/blob/master/cnblogs/13974682/Run.apk

二话不说直接拖进jeb:

1

单看项目的结构感觉就很难啊,老规矩还是先看MainActivity:

package de.vidar.run;

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.widget.Button;

public class MainActivity extends AppCompatActivity {
    Button wjan6g1aXIJQJJbfuT;
    boolean zI5xFkVDsajIQcz4DH2;

    public MainActivity() {
        this.zI5xFkVDsajIQcz4DH2 = false;
    }

    @Override  // android.support.v7.app.AppCompatActivity
    protected void onCreate(Bundle arg3) {
        super.onCreate(arg3);
        this.setContentView(0x7F04001B);  // layout:activity_main
        this.wjan6g1aXIJQJJbfuT = (Button)this.findViewById(0x7F0B005E);  // id:start
        this.wjan6g1aXIJQJJbfuT.setOnClickListener(new wjan6g1aXIJQJJbfuT(this));
    }
}

启动后设置了布局文件:

<?xml version="1.0" encoding="UTF-8"?>
<android.support.constraint.ConstraintLayout android:layout_height="-1" android:layout_width="-1" xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto">
  <TextView android:layout_height="-2" android:layout_width="-2" android:text="Hello World!" app:layout_constraintBottom_toBottomOf="0" app:layout_constraintLeft_toLeftOf="0" app:layout_constraintRight_toRightOf="0" app:layout_constraintTop_toTopOf="0"/>
  <Button android:id="@id/start" android:layout_height="-2" android:layout_width="-2" android:text="Start"/>
</android.support.constraint.ConstraintLayout>

这个叫start的按钮是在MainActivity中绑定了一个单击事件,绑定了wjan6g1aXIJQJJbfuT,这又是个什么鬼呢:

package de.vidar.run;

import android.support.constraint.BsdFKBmxbpWmGnzYUKFl;
import android.view.View.OnClickListener;
import android.view.View;

final class wjan6g1aXIJQJJbfuT implements View.OnClickListener {
    private MainActivity wjan6g1aXIJQJJbfuT;

    wjan6g1aXIJQJJbfuT(MainActivity arg1) {
        this.wjan6g1aXIJQJJbfuT = arg1;
        super();
    }

    @Override  // android.view.View$OnClickListener
    public final void onClick(View arg3) {
        if(!this.wjan6g1aXIJQJJbfuT.zI5xFkVDsajIQcz4DH2) {
            this.wjan6g1aXIJQJJbfuT.zI5xFkVDsajIQcz4DH2 = true;
            this.wjan6g1aXIJQJJbfuT.wjan6g1aXIJQJJbfuT.setText("Running...");
            BsdFKBmxbpWmGnzYUKFl.wjan6g1aXIJQJJbfuT(this.wjan6g1aXIJQJJbfuT);
        }
    }
}

顺着BsdFKBmxbpWmGnzYUKFl.wjan6g1aXIJQJJbfuT(this.wjan6g1aXIJQJJbfuT);继续追查下去:

    public static void wjan6g1aXIJQJJbfuT(Activity arg3) {
        File v0 = new File(arg3.getApplicationInfo().dataDir + "/roman");
        v0.mkdirs();
        File v1 = new File(v0, "result.txt");
        try {
            RandomAccessFile v0_2 = new RandomAccessFile(v1, "rw");
            ArrayList v1_1 = new ArrayList();
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2 = v1_1;
            v1_1.add(new r9qRzaQ057dMuQIAwzn2(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new bdDiaKzIuQ2hrQeLe84P(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new Wdyzq101jrOGlKsBKcPq(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new tnxVNVhIdGr31SCTSUOO(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new Z7U3gZjdrThtKIMa4N9S(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new xgjXlAaT5Bkm4oWeFd3(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new uLqbLOXblKCXB2eduneJ(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new U8RqtFHsCIgzB130xlem(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new DtVNjG3Z1RV3eqvVGC1I(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new FmHhRJBWPnG7PtkXe6Q(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new UIMzJEUasPTRsBDWuPTg(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new a8gU93aMnHyhWpN5JM50(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new KB7I76D5WyHHWSU3nE5u(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new n7WVnMPltd5UpZaRtFyl(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new de.vidar.run.a.BsdFKBmxbpWmGnzYUKFl(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new tzLwE9kccskotIRnCXCD(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new jCBoHZZ4ipPbMeAJoTvG(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new MZfav4JgUqZNO9NJys2(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new KJCK6x8oBFrOmoT8AEvf(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new VzAbvxLv50yobnyJh3hE(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new UAbLpp8k4epd9ZC28CPl(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new Mj1LkbpkFjf6kHnYSSSe(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new Kol5CCqOKU5uRuP3PNWN(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new tG1kkLIQMRvcRcOSkNUq(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new zD6vz21PwEmo3gQ3NCJs(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new MfxCIX6Ey2D6IDf6QXJb(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new nLwEz3FdUFncFkpPau52(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new TCra40syDPc8v6WJusH3(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new xvaScESgm3qQE2u010w0(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new VVtGIubny2bnIazta9W3(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new rEvyQ7KMoQAxm0OVB5dK(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new YseovIfzjcB5j5RFhVUF(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new JeQIJX0dWGPVOcnWgRAu(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new gbHJEeXc1fDwsEmweclp(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new x9GfdC2XZolqaMXe19fL(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new axDF5wyCrv0SGFJy5eTF(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new tDbsHvEtvjkFg7BGj6K(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new WQ0zCirBfwSoQGfmJBwq(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new v2M5tDdWJhh6Ih9TdTGS(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new J53OQDTaeh1JgLKn1GLp(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new leY3apPAZqcDGFrFQ83y(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new imOzm0b7qaz5cyC7azeS(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new stySDGOEXKr4H0VrTirU(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new Q2WYO9yGCDiRDguInU(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new Klti7ntENdGsjR2dQw7T(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new pGBpsebBD1jDBdRHhia(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new TSH3FdQz4GYDh5DyUsc6(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new OegeWopgjLzbqthDALKM(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new SrMancb72JpOI1g5QdkW(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new ZffTQnnWMH7dFZpq4sg(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new hPWhKhHwUaOKbpFzQlJy(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new IHOglSuBA7Kn10UDYiVQ(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new zJv1P5vUhDzc4VN7ZnZC(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new af70XmlcZmsHs1A4RaFL(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new RScqDbF1WSSBQmKn7(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new NEJl3IQ9MtK92s6E2kzQ(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new Uwr5CHl9TCZyx3zagl2v(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new CGQUbNdu2k9bxt97yRCV(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new u59Nw6maHPI5xCTMqq0A(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new ZdqUeRbZFBorajFLfoPQ(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new Rygn7jezYcTqLNcXY7RD(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new KTfaPF8Lv7aVpCbWjdL(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new kEUDovZ4K5gknqutzzET(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new c8taMw5pTOUPfUP6l1hP(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new YmcWx9gJTQrEGsHtoKyl(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new DWje0Sc7Z1FWMi2MnaNb(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new EiIQAGUU9TPPNN2La7Yz(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new xOmU9697gOyulJqLOqSx(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new vL8VeuvPomJUS79592Ng(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new lkxWRuhVrcpxMTIj0xg(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new Ar9UJd5AU0LZO3j8THQX(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new tYoOEEQjFvdD713ZDErW(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new rLEZWosKPpskJRDwyBiD(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new TbEVo8RtUInltWya7Yxd(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new amCOVPwvaYQQhZbAsqRY(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new TwPhP07049CzAC8EgbJ2(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new IXi8PmDgwTwQwfuNwQBv(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new cmGLdHgXDtuaE9klxt1Q(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new CVxFAavhJzoGgbHONB7(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new sxtK2b0qYt5Dmms6PXt0(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new ifJKvHFryjvBOp0eazu2(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new rFvsaPlTTKwrIlEkleP(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new lzL3amzKV2skPAIa7Rl(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new V1vVV15cwxP8yDnYDQmz(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new tMrjJA944fsoyCJV9dhc(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new fgsexkE1bJ5gs9j6sRqO(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new JUyTxsnUQI8q7fh3hHxI(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new wbO2BGIeMlNMhSqLzhts(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new K4rIXzvSLMRRBi8WyEVQ(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new Cbwxuxlm6IjK2gxkm2om(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new l7uHCni0oJsbqT0h3tBC(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new qPapuidHyAny6RI7U2oS(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new PrOjaJ9giGbuOadEGtS(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new QPLEUI4FPBIgHJNA4G65(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new Z9gJqlbF265TtRVPkkT7(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new KPMD6mtLFmwDjSLILwW(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new NJEUKjSK6Sx6fQjmdx9N(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new dRSnE7bmaZMm0sNXyXYn(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new bNJ6hFEJHvBeZbRL19PN(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new g8Xmlqp2h3vVGk4YgMC8(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new Rt1iJWIdoR3LzogvV41H(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new ZWhAGPmTz5gmhiUj46tL(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new nposoxe6rIA5C44ZDkA6(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new wjan6g1aXIJQJJbfuT(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new Kk4OfZfUN4QcCknOSC69(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new FyPgwvhaZ7UDGf1NDZng(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new er4tBB1eqtxfdh1U8Erb(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new LERAS8ADZL1k07wMMoVX(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new JghYLfAooFDeLSVV3sZY(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new a9lZHbReqDb4r1xDb94d(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new fqSPtMpHf6GbZe9IkVoe(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new jmZxnBefzFZW9GIV9IeG(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new gan2AoF1UPfGYTmFS7S(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new kwnNqp3kosshUMbWEWVN(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new QSwvVKW5iZsKsZR4md12(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new N1vru7r8FMAawEwqHsdp(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new ZJOuoW3zEwOUibX1fMnt(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new H4Zm9m6ZDw80FBsma36c(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new SnS7sAZNZKng1Auz74A8(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new rDih0P5k5riwRnN3oFom(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new nAFwFIS2HXkcpCLF64m5(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new de.vidar.run.a.oBrsElUDyc29IB6vfNnJ(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new zI5xFkVDsajIQcz4DH2(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new fKxVeHrJP3w0RdWwa976(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new wzpWLgiYpCTqBo0DN2U(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new OXIpDqrBnTYmDSyBrGKm(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new C55idkdKM6e5AxOTm7gT(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new fPvS6ItPxWSLALhyp1j(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new NYswMe5kYmZCJKK8h3YZ(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new hS1x8mZPrCBpiL6xsTKT(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new ysMjT9zV7l0fSsb7bw(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new HmPdw4VkdGUg3Tsf46M1(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new Gx5fzkAAbNXnczKSZ3Xk(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new hJJ3EhIlVmNesn97hFpA(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new prCANKZF2XJcLRSoPxz5(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new NBC9E5aFSSQ9U7Cqpa4o(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new aG47QwnmUtzUEjbrWuzh(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new e7nimol9fXf0jmmAJMjG(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new OXv6TreqtgxoYj7KdikN(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new fcLSCbRSYTERD2JOMRpU(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new TadQsWcQXGj4n4rpvGTU(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new Y2EhKr0eVGbBTsDn3ab(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new qV5V1WO09kVTwXkOoEdD(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new QTfCaOKP1MKe3c7EBZVK(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new PnSvoIcEjOlAxslP3DuX(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new oF7wVHY1dNGorFkMrkr7(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new Mp0vQV2pCAoq6GwuBEMt(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new DLMlxmd8r08P1GuT2D(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new LrsRXSWUfDnPc0ufxkXO(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new VjXufTyBOtyZjbrBgTvY(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new mIy4ngMMVWQYrOb5cN9o(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new FPICm7ZDhPEeGkQQ9vaL(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new iuyYSQmRpETpwBKFpaVZ(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new NZSjriCiBCmHW5rfoI(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new jIjck81wV8L6n4MQfwaI(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new JZVjPNI7JDqFySXWMrkw(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new xUymWNK8iOD73VaAPicn(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new DDDXZNGjLpELRvjPszwO(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new bxlwfVlgK2hLFyz0sFO0(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new wJ1BpK4gIgAFTw2KOrV0(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new ILYMhxEukRyBhjBttv2c(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new GxlbCr340IokmbGE5IzS(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new iyD5jul0EUmmvcQhxTQD(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new Cmkh8CXvalZ6cd8fP7VG(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new ChhiTjp2wGru3qNnIdn6(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new Fq2Bnhg7EeMjocfQPsC(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new XF7WF077osuB8DvaIx6m(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new IimJL6EgO07nogzmREwa(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new Phyu81x1eD5SgVJATwz(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new HO5c7mderwUCdCEFLJbJ(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new XzlqI4shQaSUtcnBr4B(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new eUmpUlciN4wJA4DtmJk(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new LCKOdHWdX0U9w0G44wXc(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new tytPw9Xgix6Ez2sYgTLE(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new r52lRphi4lDygyfVE7AX(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new NMlG0ZstYPVYiftGnx3s(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new CFhrkwITmPsWIFzzmf7(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new glZWf8XU8xnk9JEGXAqb(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new FA9wpogw7T2cch1yvAhu(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new gtvHmpu1iSiviVdEhU1E(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new GuO869aGNpwdgzhBTex(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new TzfdACUn2DT52tc4EOuV(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new AwHRhcGSsWDVBqmZnF6L(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new BFv4pPCEdSvqY66TJYS4(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new Gh15CFQeRqYlRFOo9pK1(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new ubT4q125yeOcOGN5JfxT(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new WuK90hXbPHStQjOzosLA(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new Rw06P5mlExxBHnJJ9Fe(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new qgF2FTOm6HXN2oRPJ2S(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new gxz4p8CrpVJS5WRNzwfx(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new kpUtVjydu9Fgtj2Z5NAS(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new M886HgLqqNf8vQD05h05(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new mf5Jfdwi2J0dFP1hPZk7(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new zfQliGoAwkV7mGXc2Fu5(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new V2cxjtjOnnnLwvRBfGMX(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new khxs0oHfSW9ClTkCAd0m(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new OljRxboxFH6tHmKVuKMh(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new gsK3DLL9i8fOm1rYqIMw(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new BYLkUWnnEXzPinu0GMnF(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new krw3TgxQezuYAKvbEdnr(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new hADBmQRhUkDlxBVHz6Ww(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new k0k1kCIlgpNZXuWIm7rY(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new CnKaJK9rmO9y0o3G6zA(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new jatY8aH2rvT6c3WWcfF(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new fXm5PBlbDCdk02pokFeP(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new TZ9HYVNqMtNDNDY2J12P(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new knHntI4hx8YiXWH8DVU(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new slxwzT05n2QBlsrlXeiW(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new kY8Yaxiy9e7C6IkmYA(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new hsHGGt4DIMvOXgtVifor(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new SSTLUsWDYYkCCffcJieA(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new B44rMKxsC7nb2Sd0MaUs(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new VJBdGsSD0uUMRNER41L(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new yPcJ0lE4c1qXpMGrgi5T(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new NYzmscmkR3HJEpCgT76L(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new uqeVdRdUoFgYAuMjex63(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new QzJyobcmHeT54fW3mAS6(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new SMRHZahv5C1qeTEPuoTc(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new uv9tMzjIng1nQsd09m30(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new ChrYMp3ONBwhZ3GqmjO9(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new RguGoAeZZ3koOuEHAoQ(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new LUxYzMgOu2JPE3a67g7r(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new LuvQRJn4BAsnsCs5RUIr(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new GiIXmg5Mh0Iw9oKQBeYU(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new pRhrP5XFmkMZbPkvZjdI(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new vUzcOXGSyV5W2JNdzi4(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new v9LdsWGXdpSZHDPxADQl(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new BRS6bup1TUXZPp8ik3Vu(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new RJ1KNBN0QDzCepMiCEMj(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new QfpbEMXqre1FmKOphhPm(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new fEh4EENjqk9TxRw20Hkc(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new QAlcas6Rf3wgtrXvYGAe(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new X7TjLPa07wpSic8MzfZG(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new KmcwR8TX0BKLTmbwQXeH(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new USXAZJOol8At2J650aFW(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new EJfQEhYK5Xrhpik9sGmj(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new RVv4edPHFm4Lios2NUcs(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new VM9fbnxTfvEtsw4zoGF(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new US0Qdczh24BRIu9z3Yol(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new THtwPRo8uGE9g5DsqZh3(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new bNCr0nUz69zkY39CeXtt(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new q26kipgyh5sgHkPnzw09(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new HQKvP03ShnwyiPibD5aK(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new LTX0ZTe5P590gW2Tpx9p(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new TWj3Hdi86ZPGrDFrNS78(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new D4CVUxs8mRTKwYk9vNfI(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new PLrLPs9yfQLowMWIB4Q2(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new GqzOEKikyfj2CBgDzRiM(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new VZ8G1CcigcSj1jmvkHGi(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new iycPZh2pxHdp4ErKKnsQ(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new xkvdJCSu8KdRZfVNUAab(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new vqFWJYt5tcT94oP5AcWx(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new OsJCZIYxdPMvxKg7g6oQ(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new C1vqJXHEQiDbHvHyyX9c(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new mV9zpPO5IIaeih5X6hFo(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new L8zLmAwrFdNsDj48TaYo(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new q3ymU5JSb3lap5tVobxB(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new jhDpvjoas67EmAIwpuEc(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new zkFZ7xRTSae3VzO0fwqv(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new JNNJjNLbl2vAVtxZOuW3(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new iyHmHgaypVEkQ7mYIGtC(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new OJzHQVUyHkAWOWmbJcCo(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new b2hX8OFq3aRame9NLoQN(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new IXm3xNeqCvzmhqI2Oeq8(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new gKXNzCaKhLF7nklB5un6(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new eTOpEddoO332OctwxXyR(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new hhQRQrjxszf238PQO9Dy(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new cZEpQFClPlkNdoN2bEA(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new wUWuBKMALD0L6RCLDrQ9(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new kNdqgGyHbaJ6qRSQS3Ds(v0_2));
            BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new LqLy9NugWoZ3fvFR8hSp(v0_2));
        }
        catch(IOException v0_1) {
            v0_1.printStackTrace();
        }

        for(Object v0_3: BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2) {
            ((Thread)v0_3).start();
        }
    }

可以看到这里是创建了一个ArrayList,然后往里面添加了很多个Thread,然后再一一启动这些Thread,看下这些Thread的实现,随便找几个点进去:

package de.vidar.run.a;

import java.io.IOException;
import java.io.RandomAccessFile;

public final class kNdqgGyHbaJ6qRSQS3Ds extends Thread {
    private long BsdFKBmxbpWmGnzYUKFl;
    private RandomAccessFile wjan6g1aXIJQJJbfuT;
    private char zI5xFkVDsajIQcz4DH2;

    public kNdqgGyHbaJ6qRSQS3Ds(RandomAccessFile arg3) {
        this.zI5xFkVDsajIQcz4DH2 = 'p';
        this.BsdFKBmxbpWmGnzYUKFl = 271000L;
        this.wjan6g1aXIJQJJbfuT = arg3;
    }

    @Override
    public final void run() {
        try {
            Thread.sleep(this.BsdFKBmxbpWmGnzYUKFl);
        }
        catch(InterruptedException v0) {
            v0.printStackTrace();
        }

        try {
            this.wjan6g1aXIJQJJbfuT.seek(0L);
            this.wjan6g1aXIJQJJbfuT.writeChar(this.zI5xFkVDsajIQcz4DH2);
            this.wjan6g1aXIJQJJbfuT.writeChar(10);
        }
        catch(IOException v0_1) {
            v0_1.printStackTrace();
        }
    }
}

发现这些Thread类的代码格式都是类似于这个格式,每个Thread的实现都是sleep一段时间,然后往文件最前面写一个字符,那么现在思路就比较清晰了,根据wjan6g1aXIJQJJbfuT中使用到的类,将每个类解析出sleep的时间和要写入的char,然后手动排序输出就可以了。

首先将反编译出的类的源码导出以方便处理,在jeb中将光标定位到bytecode,然后选择文件-->导出-->解码,

1

在弹出的导出设置对话框中设置过滤器,只导出de包下面的,否则的话会连android框架的依赖都包括在内,那就太多了,文件太多了就会花费很长时间:

1

然后工作环境切换到pycharm,新建一个文件file_name_index,把往数组中放Thread的部分赋值粘贴到file_name_index中,其中有两行比较特殊,是这个格式的:

1

数据不统一的数据只有两条,不值当的用程序去兼容,因此这里就手动处理下,处理完是这个样子的:

v1_1.add(new r9qRzaQ057dMuQIAwzn2(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new bdDiaKzIuQ2hrQeLe84P(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new Wdyzq101jrOGlKsBKcPq(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new tnxVNVhIdGr31SCTSUOO(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new Z7U3gZjdrThtKIMa4N9S(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new xgjXlAaT5Bkm4oWeFd3(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new uLqbLOXblKCXB2eduneJ(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new U8RqtFHsCIgzB130xlem(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new DtVNjG3Z1RV3eqvVGC1I(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new FmHhRJBWPnG7PtkXe6Q(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new UIMzJEUasPTRsBDWuPTg(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new a8gU93aMnHyhWpN5JM50(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new KB7I76D5WyHHWSU3nE5u(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new n7WVnMPltd5UpZaRtFyl(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new BsdFKBmxbpWmGnzYUKFl(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new tzLwE9kccskotIRnCXCD(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new jCBoHZZ4ipPbMeAJoTvG(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new MZfav4JgUqZNO9NJys2(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new KJCK6x8oBFrOmoT8AEvf(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new VzAbvxLv50yobnyJh3hE(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new UAbLpp8k4epd9ZC28CPl(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new Mj1LkbpkFjf6kHnYSSSe(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new Kol5CCqOKU5uRuP3PNWN(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new tG1kkLIQMRvcRcOSkNUq(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new zD6vz21PwEmo3gQ3NCJs(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new MfxCIX6Ey2D6IDf6QXJb(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new nLwEz3FdUFncFkpPau52(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new TCra40syDPc8v6WJusH3(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new xvaScESgm3qQE2u010w0(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new VVtGIubny2bnIazta9W3(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new rEvyQ7KMoQAxm0OVB5dK(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new YseovIfzjcB5j5RFhVUF(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new JeQIJX0dWGPVOcnWgRAu(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new gbHJEeXc1fDwsEmweclp(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new x9GfdC2XZolqaMXe19fL(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new axDF5wyCrv0SGFJy5eTF(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new tDbsHvEtvjkFg7BGj6K(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new WQ0zCirBfwSoQGfmJBwq(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new v2M5tDdWJhh6Ih9TdTGS(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new J53OQDTaeh1JgLKn1GLp(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new leY3apPAZqcDGFrFQ83y(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new imOzm0b7qaz5cyC7azeS(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new stySDGOEXKr4H0VrTirU(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new Q2WYO9yGCDiRDguInU(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new Klti7ntENdGsjR2dQw7T(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new pGBpsebBD1jDBdRHhia(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new TSH3FdQz4GYDh5DyUsc6(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new OegeWopgjLzbqthDALKM(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new SrMancb72JpOI1g5QdkW(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new ZffTQnnWMH7dFZpq4sg(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new hPWhKhHwUaOKbpFzQlJy(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new IHOglSuBA7Kn10UDYiVQ(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new zJv1P5vUhDzc4VN7ZnZC(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new af70XmlcZmsHs1A4RaFL(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new RScqDbF1WSSBQmKn7(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new NEJl3IQ9MtK92s6E2kzQ(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new Uwr5CHl9TCZyx3zagl2v(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new CGQUbNdu2k9bxt97yRCV(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new u59Nw6maHPI5xCTMqq0A(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new ZdqUeRbZFBorajFLfoPQ(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new Rygn7jezYcTqLNcXY7RD(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new KTfaPF8Lv7aVpCbWjdL(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new kEUDovZ4K5gknqutzzET(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new c8taMw5pTOUPfUP6l1hP(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new YmcWx9gJTQrEGsHtoKyl(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new DWje0Sc7Z1FWMi2MnaNb(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new EiIQAGUU9TPPNN2La7Yz(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new xOmU9697gOyulJqLOqSx(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new vL8VeuvPomJUS79592Ng(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new lkxWRuhVrcpxMTIj0xg(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new Ar9UJd5AU0LZO3j8THQX(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new tYoOEEQjFvdD713ZDErW(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new rLEZWosKPpskJRDwyBiD(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new TbEVo8RtUInltWya7Yxd(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new amCOVPwvaYQQhZbAsqRY(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new TwPhP07049CzAC8EgbJ2(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new IXi8PmDgwTwQwfuNwQBv(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new cmGLdHgXDtuaE9klxt1Q(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new CVxFAavhJzoGgbHONB7(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new sxtK2b0qYt5Dmms6PXt0(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new ifJKvHFryjvBOp0eazu2(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new rFvsaPlTTKwrIlEkleP(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new lzL3amzKV2skPAIa7Rl(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new V1vVV15cwxP8yDnYDQmz(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new tMrjJA944fsoyCJV9dhc(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new fgsexkE1bJ5gs9j6sRqO(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new JUyTxsnUQI8q7fh3hHxI(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new wbO2BGIeMlNMhSqLzhts(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new K4rIXzvSLMRRBi8WyEVQ(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new Cbwxuxlm6IjK2gxkm2om(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new l7uHCni0oJsbqT0h3tBC(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new qPapuidHyAny6RI7U2oS(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new PrOjaJ9giGbuOadEGtS(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new QPLEUI4FPBIgHJNA4G65(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new Z9gJqlbF265TtRVPkkT7(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new KPMD6mtLFmwDjSLILwW(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new NJEUKjSK6Sx6fQjmdx9N(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new dRSnE7bmaZMm0sNXyXYn(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new bNJ6hFEJHvBeZbRL19PN(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new g8Xmlqp2h3vVGk4YgMC8(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new Rt1iJWIdoR3LzogvV41H(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new ZWhAGPmTz5gmhiUj46tL(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new nposoxe6rIA5C44ZDkA6(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new wjan6g1aXIJQJJbfuT(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new Kk4OfZfUN4QcCknOSC69(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new FyPgwvhaZ7UDGf1NDZng(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new er4tBB1eqtxfdh1U8Erb(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new LERAS8ADZL1k07wMMoVX(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new JghYLfAooFDeLSVV3sZY(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new a9lZHbReqDb4r1xDb94d(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new fqSPtMpHf6GbZe9IkVoe(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new jmZxnBefzFZW9GIV9IeG(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new gan2AoF1UPfGYTmFS7S(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new kwnNqp3kosshUMbWEWVN(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new QSwvVKW5iZsKsZR4md12(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new N1vru7r8FMAawEwqHsdp(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new ZJOuoW3zEwOUibX1fMnt(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new H4Zm9m6ZDw80FBsma36c(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new SnS7sAZNZKng1Auz74A8(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new rDih0P5k5riwRnN3oFom(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new nAFwFIS2HXkcpCLF64m5(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new oBrsElUDyc29IB6vfNnJ(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new zI5xFkVDsajIQcz4DH2(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new fKxVeHrJP3w0RdWwa976(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new wzpWLgiYpCTqBo0DN2U(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new OXIpDqrBnTYmDSyBrGKm(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new C55idkdKM6e5AxOTm7gT(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new fPvS6ItPxWSLALhyp1j(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new NYswMe5kYmZCJKK8h3YZ(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new hS1x8mZPrCBpiL6xsTKT(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new ysMjT9zV7l0fSsb7bw(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new HmPdw4VkdGUg3Tsf46M1(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new Gx5fzkAAbNXnczKSZ3Xk(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new hJJ3EhIlVmNesn97hFpA(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new prCANKZF2XJcLRSoPxz5(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new NBC9E5aFSSQ9U7Cqpa4o(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new aG47QwnmUtzUEjbrWuzh(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new e7nimol9fXf0jmmAJMjG(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new OXv6TreqtgxoYj7KdikN(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new fcLSCbRSYTERD2JOMRpU(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new TadQsWcQXGj4n4rpvGTU(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new Y2EhKr0eVGbBTsDn3ab(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new qV5V1WO09kVTwXkOoEdD(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new QTfCaOKP1MKe3c7EBZVK(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new PnSvoIcEjOlAxslP3DuX(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new oF7wVHY1dNGorFkMrkr7(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new Mp0vQV2pCAoq6GwuBEMt(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new DLMlxmd8r08P1GuT2D(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new LrsRXSWUfDnPc0ufxkXO(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new VjXufTyBOtyZjbrBgTvY(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new mIy4ngMMVWQYrOb5cN9o(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new FPICm7ZDhPEeGkQQ9vaL(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new iuyYSQmRpETpwBKFpaVZ(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new NZSjriCiBCmHW5rfoI(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new jIjck81wV8L6n4MQfwaI(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new JZVjPNI7JDqFySXWMrkw(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new xUymWNK8iOD73VaAPicn(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new DDDXZNGjLpELRvjPszwO(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new bxlwfVlgK2hLFyz0sFO0(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new wJ1BpK4gIgAFTw2KOrV0(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new ILYMhxEukRyBhjBttv2c(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new GxlbCr340IokmbGE5IzS(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new iyD5jul0EUmmvcQhxTQD(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new Cmkh8CXvalZ6cd8fP7VG(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new ChhiTjp2wGru3qNnIdn6(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new Fq2Bnhg7EeMjocfQPsC(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new XF7WF077osuB8DvaIx6m(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new IimJL6EgO07nogzmREwa(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new Phyu81x1eD5SgVJATwz(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new HO5c7mderwUCdCEFLJbJ(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new XzlqI4shQaSUtcnBr4B(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new eUmpUlciN4wJA4DtmJk(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new LCKOdHWdX0U9w0G44wXc(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new tytPw9Xgix6Ez2sYgTLE(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new r52lRphi4lDygyfVE7AX(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new NMlG0ZstYPVYiftGnx3s(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new CFhrkwITmPsWIFzzmf7(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new glZWf8XU8xnk9JEGXAqb(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new FA9wpogw7T2cch1yvAhu(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new gtvHmpu1iSiviVdEhU1E(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new GuO869aGNpwdgzhBTex(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new TzfdACUn2DT52tc4EOuV(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new AwHRhcGSsWDVBqmZnF6L(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new BFv4pPCEdSvqY66TJYS4(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new Gh15CFQeRqYlRFOo9pK1(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new ubT4q125yeOcOGN5JfxT(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new WuK90hXbPHStQjOzosLA(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new Rw06P5mlExxBHnJJ9Fe(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new qgF2FTOm6HXN2oRPJ2S(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new gxz4p8CrpVJS5WRNzwfx(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new kpUtVjydu9Fgtj2Z5NAS(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new M886HgLqqNf8vQD05h05(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new mf5Jfdwi2J0dFP1hPZk7(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new zfQliGoAwkV7mGXc2Fu5(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new V2cxjtjOnnnLwvRBfGMX(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new khxs0oHfSW9ClTkCAd0m(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new OljRxboxFH6tHmKVuKMh(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new gsK3DLL9i8fOm1rYqIMw(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new BYLkUWnnEXzPinu0GMnF(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new krw3TgxQezuYAKvbEdnr(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new hADBmQRhUkDlxBVHz6Ww(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new k0k1kCIlgpNZXuWIm7rY(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new CnKaJK9rmO9y0o3G6zA(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new jatY8aH2rvT6c3WWcfF(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new fXm5PBlbDCdk02pokFeP(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new TZ9HYVNqMtNDNDY2J12P(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new knHntI4hx8YiXWH8DVU(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new slxwzT05n2QBlsrlXeiW(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new kY8Yaxiy9e7C6IkmYA(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new hsHGGt4DIMvOXgtVifor(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new SSTLUsWDYYkCCffcJieA(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new B44rMKxsC7nb2Sd0MaUs(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new VJBdGsSD0uUMRNER41L(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new yPcJ0lE4c1qXpMGrgi5T(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new NYzmscmkR3HJEpCgT76L(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new uqeVdRdUoFgYAuMjex63(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new QzJyobcmHeT54fW3mAS6(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new SMRHZahv5C1qeTEPuoTc(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new uv9tMzjIng1nQsd09m30(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new ChrYMp3ONBwhZ3GqmjO9(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new RguGoAeZZ3koOuEHAoQ(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new LUxYzMgOu2JPE3a67g7r(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new LuvQRJn4BAsnsCs5RUIr(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new GiIXmg5Mh0Iw9oKQBeYU(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new pRhrP5XFmkMZbPkvZjdI(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new vUzcOXGSyV5W2JNdzi4(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new v9LdsWGXdpSZHDPxADQl(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new BRS6bup1TUXZPp8ik3Vu(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new RJ1KNBN0QDzCepMiCEMj(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new QfpbEMXqre1FmKOphhPm(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new fEh4EENjqk9TxRw20Hkc(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new QAlcas6Rf3wgtrXvYGAe(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new X7TjLPa07wpSic8MzfZG(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new KmcwR8TX0BKLTmbwQXeH(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new USXAZJOol8At2J650aFW(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new EJfQEhYK5Xrhpik9sGmj(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new RVv4edPHFm4Lios2NUcs(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new VM9fbnxTfvEtsw4zoGF(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new US0Qdczh24BRIu9z3Yol(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new THtwPRo8uGE9g5DsqZh3(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new bNCr0nUz69zkY39CeXtt(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new q26kipgyh5sgHkPnzw09(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new HQKvP03ShnwyiPibD5aK(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new LTX0ZTe5P590gW2Tpx9p(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new TWj3Hdi86ZPGrDFrNS78(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new D4CVUxs8mRTKwYk9vNfI(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new PLrLPs9yfQLowMWIB4Q2(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new GqzOEKikyfj2CBgDzRiM(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new VZ8G1CcigcSj1jmvkHGi(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new iycPZh2pxHdp4ErKKnsQ(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new xkvdJCSu8KdRZfVNUAab(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new vqFWJYt5tcT94oP5AcWx(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new OsJCZIYxdPMvxKg7g6oQ(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new C1vqJXHEQiDbHvHyyX9c(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new mV9zpPO5IIaeih5X6hFo(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new L8zLmAwrFdNsDj48TaYo(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new q3ymU5JSb3lap5tVobxB(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new jhDpvjoas67EmAIwpuEc(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new zkFZ7xRTSae3VzO0fwqv(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new JNNJjNLbl2vAVtxZOuW3(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new iyHmHgaypVEkQ7mYIGtC(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new OJzHQVUyHkAWOWmbJcCo(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new b2hX8OFq3aRame9NLoQN(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new IXm3xNeqCvzmhqI2Oeq8(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new gKXNzCaKhLF7nklB5un6(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new eTOpEddoO332OctwxXyR(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new hhQRQrjxszf238PQO9Dy(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new cZEpQFClPlkNdoN2bEA(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new wUWuBKMALD0L6RCLDrQ9(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new kNdqgGyHbaJ6qRSQS3Ds(v0_2));
BsdFKBmxbpWmGnzYUKFl.zI5xFkVDsajIQcz4DH2.add(new LqLy9NugWoZ3fvFR8hSp(v0_2));

然后再将a包复制到python源码文件目录下,可以开始写代码了,我们先从file_name_index中解析出都使用到了哪些类,然后再从这些类中解析出char和sleep时间,这里需要注意的是sleep时间有些是十六进制的,char有些并不是只有一位字符,有的是有转义符的那就是两位字符,注意一下对这些情况做个兼容就可以了,然后按照sleep时间从大到小排列,因为每次都写到最前面,所以sleep时间越长越靠前,但是结果有点不太对劲:

1

明显像是某句话被倒过来了,原始就想着还是把sleep时间小的放前面,然后就得到了一行字符串:

Sdaj ukq snepa w lnkcnwi bkn Wjznkez, ukq qoa pda Knwyha Fwrw pkkho bkn aranupdejc, wjz wp pda ranu ajz, ukq lqod w xqppkj wjz owu, \'Ykjranp pdeo pk Wjznkez bkniwp.\' BHWC{Yd4hh4jc3-5QyY33Z3z-y0jp1jQa!} Ajfku pda peju qjatlhwejwxha oaykjz. Ukq ywj hawnj sdwparan ukq swjp!

看标点符号和空格感觉像是一句话没错,但是字母却不对,于是想到了可能是凯撒加密,于是穷举一下,得到很多句话,找一下看看有没有哪句话是有意义的:

1

红框框起来的就是明文,完整的是:

When you write a program for Android, you use the Oracle Java tools for everything, and at the very end, you push a button and say, \'Convert this to Android format.\' FLAG{Ch4ll4ng3-5UcC33D3d-c0nt1nUe!} Enjoy the tiny unexplainable second. You can learn whatever you want!

OK,得到了答案是:

FLAG{Ch4ll4ng3-5UcC33D3d-c0nt1nUe!}

最后吐槽,这困难级别好像有点水啊...



附上本题目解题完整代码:

#!/usr/bin/env python3
# encoding: utf-8
"""
@author: CC11001100
"""

import re


def extract_file_char_and_priority(file_path):
    with open(file_path, "r") as f:
        file_content = f.read()
        # 当前文件中的字符
        char = re.findall(r"= '(.+?)';", file_content)[0]
        # 当前文件中字符的优先级,注意有些是十六进制的
        priority_matcher = re.findall(r" = (0x)?([\d+A-Z]+)L;", file_content)
        base = 10
        if priority_matcher[0][0] == "0x":
            base = 16
        priority = int(priority_matcher[0][1], base)
        return char, priority


def read_file_name_index():
    with open("file_name_index", "r") as f:
        file_content = f.read()
        return re.findall(r"new (.+?)\(v0_2\)", file_content)


def round_string(s, distance):
    new_s = ""
    for c in s:
        new_s += round_char(c, distance)
    return new_s


def round_char(c, distance):
    base = -1
    if 'A' <= c <= 'Z':
        base = ord('A')
    elif 'a' <= c <= 'z':
        base = ord('a')

    if base == -1:
        return c
    c = (((ord(c) - base) + distance) % 26) + base
    return chr(c)


def process():
    file_name_list = read_file_name_index()
    char_list = []
    for file_name in file_name_list:
        char, priority = extract_file_char_and_priority("./a/%s.java" % file_name)
        char_list.append((priority, char))
    char_list.sort()
    print(char_list)
    s = ""
    for _ in char_list:
        s += _[1]
    print(s)

    # 凯撒轮转
    for _ in range(0, 26):
        print(round_string(s, _))


if __name__ == "__main__":
    process()
posted @ 2020-11-14 20:57  CC11001100  阅读(1034)  评论(0编辑  收藏  举报