CF 19D

//在二维平面,给三种操作:
//add x y: 在(x,y)加入一个点,保证加之前这个坐标没有点存在
//remove x y: 删除(x,y)这个点,保证这个坐标有点存在
//find x y: 输出横坐标严格大于x,纵坐标严格大于y的最左边的点的坐标,如果有多个输出最下面的那个,如果无解输出-1
//1<=n<=2*10^5个操作,0<=x,y<=10^9

#include<set>
#include<cstdio>
#include<cstring>
#include<iostream>
#include<algorithm>
using namespace std;

#define Lson(x) (x<<1)
#define Rson(x) (Lson(x)|1)
#define Mid(x,y) ((x+y)>>1)
#define Sum(x,y) (x+y)

const int MAXN = 200010;

struct Edge{
    int mark;
    int x;
    int y;
};
Edge e[MAXN];

struct Node{
    int left;
    int right;
    int max_y;
};
Node node[4*MAXN];

int n , m;
int num[MAXN];
set<int>s[MAXN];

void input()
{
    m = 1;
    char str[10];
    for(int i = 1 ; i <= n ; i++)
    {
        scanf("%s%d%d" , str , &e[i].x , &e[i].y);
        if(str[0] == 'a')
            e[i].mark = 1;
        else if(str[0] == 'r')
            e[i].mark = 2;
        else
            e[i].mark = 3;
        s[m].clear();
        num[m++] = e[i].x;
    }
}

inline void push_up(int pos){
    node[pos].max_y = max(node[Lson(pos)].max_y , node[Rson(pos)].max_y);
}

void buildTree(int left , int right , int pos)
{
    node[pos].left = left;
    node[pos].right = right;
    node[pos].max_y = -1;
    if(left == right)
        return;
    int mid = Mid(left , right);
    buildTree(left , mid , Lson(pos));
    buildTree(mid+1 , right , Rson(pos));
}

void update(int x , int pos)
{
    if(node[pos].left == node[pos].right){
        if(s[x].size())
            node[pos].max_y = *(--s[x].end());
        else
            node[pos].max_y = -1;
        return;
    }
    int mid = Mid(node[pos].left , node[pos].right);
    if(x <= mid)
        update(x , Lson(pos));
    else
        update(x , Rson(pos));
    push_up(pos);
}

int query(int x , int y , int pos)
{
    if(node[pos].right <= x)
        return -1;
    if(node[pos].max_y <= y)
        return -1;
    if(node[pos].left == node[pos].right)
        return node[pos].left;
    int t = query(x , y , Lson(pos));
    if(t == -1)
        t = query(x , y , Rson(pos));
    return t;
}

void solve(){
    sort(num+1 , num+1+m);
    m = unique(num+1 , num+1+m)-(num+1);
    buildTree(1 , m , 1);

    for(int i = 1 ; i <= n ; i++){
        int x = upper_bound(num+1 , num+1+m , e[i].x)-(num+1);
        int y = e[i].y;
        // add
        if(e[i].mark == 1){
            s[x].insert(y);
            update(x , 1);
        }
        // remove
        else if(e[i].mark == 2){
            s[x].erase(y);
            update(x , 1);
        }
        // find
        else{
            int ans = query(x , y , 1);
            if(ans == -1)
                puts("-1");
            else{
                printf("%d %d\n" , num[ans] , *s[ans].upper_bound(y));
            }
        }
    }
}

int main(){
    while(scanf("%d%*c" , &n) != EOF){
        input();
        solve();
    }
    return 0;
}

import binascii from Crypto.Util.Padding import unpad # 固定 keystream(从姓名/手机号推导) key_stream = bytes([0x26, 0x63, 0x07, 0x74, 0x31, 0x16, 0x1e, 0x64, 0xab, 0x97, 0x55, 0x42, 0xfd, 0xee, 0x50, 0x49]) def decrypt_data(cipher_hex, length=None): cipher_bytes = binascii.unhexlify(cipher_hex) keystream_repeated = key_stream * (len(cipher_bytes) // len(key_stream) + 1) keystream_repeated = keystream_repeated[:len(cipher_bytes)] plain = bytes(c ^ k for c, k in zip(cipher_bytes, keystream_repeated)) if length: # 取前 length 字节 plain = plain[:length] else: # 自动去除 PKCS7 填充 try: plain = unpad(plain, 16) except: pass return plain # 读取 Excel 数据(这里用你给的文本格式) # 我们手动找到“何浩璐”的行 # 为了节省时间,我直接搜索:解密姓名列,看哪一行是“何浩璐” data_lines = """cef18c919f99f9ea19905245fae9574e,c3c69d92859dfbef2c905245fae9574e,c0ffb69293b0146ea19d5f48f7e45a43, cfd88991b98cf8d102905245fae9574e, c1cb8c9282b4146ea19d5f48f7e45a43, cfcaab9198a1146ea19d5f48f7e45a43, c3f2af93929cf8c808905245fae9574e, c0feaf93a386146ea19d5f48f7e45a43, c3deaa9dac8f146ea19d5f48f7e45a43, c0fe9b908e9cf9f401905245fae9574e, cffab192a8ac146ea19d5f48f7e45a43, c0f5ba93929cfbcc37905245fae9574e, c0d18f9cbf9f146ea19d5f48f7e45a43, c0d3b39284bf146ea19d5f48f7e45a43, c3c49b91b49ffadc16905245fae9574e, c1c9a1908ca5146ea19d5f48f7e45a43, c3f3929dac8f146ea19d5f48f7e45a43, c0eb9d9198a1f6db37905245fae9574e, cffa8f9d8899fbe122905245fae9574e, c1c8a29198a1146ea19d5f48f7e45a43, c3d3a39182a6146ea19d5f48f7e45a43, cee8909282b4146ea19d5f48f7e45a43, c0de9f9282b4f9ea19905245fae9574e, c1c8a79294b6146ea19d5f48f7e45a43, cfe1be91b98c146ea19d5f48f7e45a43, c1c8a29daabcf9f51d905245fae9574e, cfe0969cb28afbe230905245fae9574e, cecdbf91b98c146ea19d5f48f7e45a43, cffab193a0a0146ea19d5f48f7e45a43, c2dba29d8899146ea19d5f48f7e45a43, c1c4a19284bf146ea19d5f48f7e45a43, c3dfa79182a6f9f63b905245fae9574e, c0d18f9cbfaf146ea19d5f48f7e45a43, cfc89f919b8dfbcd0c905245fae9574e, cfe4969dac8ff8d020905245fae9574e, c2d9969198b1146ea19d5f48f7e45a43, c0fe899282b4146ea19d5f48f7e45a43, c0f8be93a386146ea19d5f48f7e45a43, cfe49691b78d146ea19d5f48f7e45a43, c0eb9d918aacfade05905245fae9574e, cee0a6929db5146ea19d5f48f7e45a43, cfe0899cbfaf146ea19d5f48f7e45a43, c0fb8b91b49ff8d709905245fae9574e, c0fc8891998af9ea19905245fae9574e, ceedac92a8ac146ea19d5f48f7e45a43, cfc89f91bc8c146ea19d5f48f7e45a43, c3eea5929db5f8d709905245fae9574e, c3f39292aca6f8fc25905245fae9574e, c2d8bc9284bff6ea22905245fae9574e, c0fb8b908ca5f8e436905245fae9574e, c0fe9b918dac146ea19d5f48f7e45a43, cfd186908ca5fbcc37905245fae9574e, ceedac90889f146ea19d5f48f7e45a43, c3dfa7908d89146ea19d5f48f7e45a43, c0fcb493a1a5f8f124905245fae9574e, c3ce939dac8f146ea19d5f48f7e45a43, c0d3b391b78d146ea19d5f48f7e45a43, c0d18f908e9c146ea19d5f48f7e45a43, ceef8491998a146ea19d5f48f7e45a43, cfe1b69daabc146ea19d5f48f7e45a43, cef29c9284bf146ea19d5f48f7e45a43, c3f2af919b8df8d102905245fae9574e, cfe1b29c8e8afbe230905245fae9574e, c0fc8892a8ac146ea19d5f48f7e45a43, c2d99692878dfbe931905245fae9574e, ced69191b6b7fadd22905245fae9574e, c3dfa79198b1146ea19d5f48f7e45a43, cfe1b293929c146ea19d5f48f7e45a43, c0d18f918dac146ea19d5f48f7e45a43, cfcaab9d8899146ea19d5f48f7e45a43, c3e5a893a1a5146ea19d5f48f7e45a43, ced3a591b98c146ea19d5f48f7e45a43, c0d2a79cbf9ff9f51d905245fae9574e, c0d3b39c8e8afade05905245fae9574e, c3f2af92878d146ea19d5f48f7e45a43, c0de9f908e9c146ea19d5f48f7e45a43, c2d8bc9182a6146ea19d5f48f7e45a43, c3ce93908bb8146ea19d5f48f7e45a43 c3ce9391b98c146ea19d5f48f7e45a43 c0fe89919b8d146ea19d5f48f7e45a43 ceef8491b98c146ea19d5f48f7e45a43 c3dd979284bf146ea19d5f48f7e45a43 c0fc889d8899146ea19d5f48f7e45a43 cfdd9d908d89fadc16905245fae9574e c3f2af91b78df8fd11905245fae9574e c1c8a7908e9c146ea19d5f48f7e45a43 c3d3a3908e9cf8f91b905245fae9574e c3c69d93a1a5146ea19d5f48f7e45a43 c1ed8c9293b0146ea19d5f48f7e45a43 ced6b29282b4146ea19d5f48f7e45a43 c3dfa79293b0f8fc25905245fae9574e c0d2a790889ff8e436905245fae9574e c3ce9e92b18bfbe30a905245fae9574e c0d3b392b18b146ea19d5f48f7e45a43 cfe09691bc8c146ea19d5f48f7e45a43 cfc89f908ca5f6ea22905245fae9574e c1ed8c9c8e8af9f401905245fae9574e c3d3a39293b0f9c721905245fae9574e cfd8899daabc146ea19d5f48f7e45a43 c0feaf93a1a5fbe230905245fae9574e c0fe9b90889ffbcc37905245fae9574e ceef8493a1a5f6ea12905245fae9574e cffa8f9182a6fbe230905245fae9574e c3ee89919b8dfade05905245fae9574e cee8889daabc146ea19d5f48f7e45a43 c3f3929cbfaf146ea19d5f48f7e45a43 cffcae93a0a0146ea19d5f48f7e45a43 c3f2af9284bf146ea19d5f48f7e45a43 c3ce9393a1bcfbce30905245fae9574e cec1869284bf146ea19d5f48f7e45a43 c0de9f929db5146ea19d5f48f7e45a43 c0fe9b92aca6146ea19d5f48f7e45a43 cfe08993a1a5f6e737905245fae9574e c0f8be9284bffad834905245fae9574e c3ee899daabc146ea19d5f48f7e45a43 cfce88908bb8146ea19d5f48f7e45a43 c0de9f9293b0f8f91b905245fae9574e c0fcb49198a1146ea19d5f48f7e45a43 cecdbf9284bffbdf11905245fae9574e ced3a592a998146ea19d5f48f7e45a43 cfc89f93a1bcf8fc25905245fae9574e c2de929089abfade05905245fae9574e cfe496908bb8fad834905245fae9574e c3ce9e919f99f6db37905245fae9574e c3c49b9c8e8a146ea19d5f48f7e45a43 cfce88908d89f6e737905245fae9574e c0f5ba91ba91146ea19d5f48f7e45a43 c2dba29182a6146ea19d5f48f7e45a43 ced7bd93a1a5146ea19d5f48f7e45a43 ceef84919f99f8d020905245fae9574e c3c49b9daabcf6e737905245fae9574e c3ee899daabcf9f401905245fae9574e c0de9f92b3b0fadd22905245fae9574e c1c8a79c8e8af8e436905245fae9574e c0d3b39d8899fbe230905245fae9574e cffa8f9284bff8f124905245fae9574e c3ee899282b4fbe230905245fae9574e c1c8a7908d89fbcc37905245fae9574e c0feaf91b49f146ea19d5f48f7e45a43 c0fe899cbf9f146ea19d5f48f7e45a43 cff19891ba91f8fd11905245fae9574e cec18691998af9f418905245fae9574e c0f5be918dacfbca24905245fae9574e c1cb8c91998af8d709905245fae9574e c3eea59cbfaf146ea19d5f48f7e45a43 c0fcb49198b1f9ea19905245fae9574e cfd1869dac8ff8e436905245fae9574e cfce889198a1f8c10b905245fae9574e c0fcb49cbf9ffadc16905245fae9574e ced7bd919f99146ea19d5f48f7e45a43 cef18c9d8899146ea19d5f48f7e45a43 c3e5a891b98cf9f401905245fae9574e c0fe899cbfaff8fd11905245fae9574e cef29c908bb8146ea19d5f48f7e45a43 ced6919284bf146ea19d5f48f7e45a43 c0de9f9daabc146ea19d5f48f7e45a43 c0ffb691998afbe230905245fae9574e c0d18f93a1a5146ea19d5f48f7e45a43 cfe4969cbfaff9f418905245fae9574e cfcaab9182a6fadb21905245fae9574e cfe1b693a386fbe230905245fae9574e c2de929284bf146ea19d5f48f7e45a43 cef29c90889ffad834905245fae9574e c0de9f92b3b0146ea19d5f48f7e45a43 c3f3b3908e9cf8fc25905245fae9574e c0fe9b9282b4fadd22905245fae9574e c0feaf91ba91146ea19d5f48f7e45a43 c2dc99908d89f8d230905245fae9574e cfdd9d9198a1146ea19d5f48f7e45a43 cfdd9d91998a146ea19d5f48f7e45a43 c0fb8b93bfa4fbdf11905245fae9574e c2de929cbfaff8f124905245fae9574e c0fe9b929db5146ea19d5f48f7e45a43 cee0a6908e9c146ea19d5f48f7e45a43 c1c9a19293b0f8f124905245fae9574e c0feaf91ba91f8c808905245fae9574e c1c8a79c8e8a146ea19d5f48f7e45a43 cef18c918aacf8c808905245fae9574e c0d18f918dac146ea19d5f48f7e45a43 c3f2af918aacfbe230905245fae9574e cfc89f91b78d146ea19d5f48f7e45a43 c0de9f91ba91fbef2c905245fae9574e c0de9f91998a146ea19d5f48f7e45a43 cee9b692a8acf9ea19905245fae9574e cfe496918dac146ea19d5f48f7e45a43 c0d3b391998af6e737905245fae9574e c0feaf92aca6146ea19d5f48f7e45a43 cfdd9d9dac8ff8c10b905245fae9574e c3f2af91b6b7fbe230905245fae9574e c2de92908d89fbce30905245fae9574e ced7bd91998afbce30905245fae9574e c0f5ba9198b1f9f418905245fae9574e c3c69d9cbfaf146ea19d5f48f7e45a43 c3dfa79293b0146ea19d5f48f7e45a43 ceef84918dac146ea19d5f48f7e45a43 c3eeac91b6b7fbe122905245fae9574e ceef849d8899146ea19d5f48f7e45a43 cfc89f91998a146ea19d5f48f7e45a43 cfce88908e9cf6ea12905245fae9574e c3ee899293b0f8d102905245fae9574e c1c8a79282b4fbdf11905245fae9574e c0ffb6908d89fad918905245fae9574e c3ce939cbfaf146ea19d5f48f7e45a43 c0de9f9293b0f8c60d905245fae9574e c0f5be92859d146ea19d5f48f7e45a43 c2de9291b98c146ea19d5f48f7e45a43 ceef849dac8ff8e436905245fae9574e cecdbf908ca5146ea19d5f48f7e45a43 c3c69d908d89f6d22e905245fae9574e c3eeac9294b6fade05905245fae9574e cfe1be908bb8f6ea12905245fae9574e c3d3a3929db5146ea19d5f48f7e45a43 cfd88991bc8cfbca24905245fae9574e cffa8f92b3b0fbce30905245fae9574e cecdbf918dacf7dd24905245fae9574e c2dba291b78d146ea19d5f48f7e45a43 cef29c93929c146ea19d5f48f7e45a43 cfe08993929c146ea19d5f48f7e45a43 ceedac91998afad834905245fae9574e c2dc999198b1f8d709905245fae9574e c0f5ba918dac146ea19d5f48f7e45a43 c3c69d91b6b7fbd811905245fae9574e c3c49b93bfa4146ea19d5f48f7e45a43 ced6b292aca6146ea19d5f48f7e45a43 ced7bd9284bf146ea19d5f48f7e45a43 cef18c92a8acfbec31905245fae9574e c3dd9791998afbcc37905245fae9574e cfe09693a1bcf9f418905245fae9574e c3dfa791998a146ea19d5f48f7e45a43 ceedac92aca6f8c808905245fae9574e c0f8be92b18bfbcd1c905245fae9574e c3f5bc9284bf146ea19d5f48f7e45a43 c2d8bc92a499fbdf11905245fae9574e cfce889198a1146ea19d5f48f7e45a43 cffa8f918aacf8c60d905245fae9574e c3f39293929cf8e60d905245fae9574e c3deaa918aac146ea19d5f48f7e45a43 c3eeac92859d146ea19d5f48f7e45a43 c3deaa92a499146ea19d5f48f7e45a43 c2de929282b4146ea19d5f48f7e45a43 cff19892aca6f9f401905245fae9574e c0f8be91bc8cfade05905245fae9574e cfe1be92b3b0f6ea12905245fae9574e ced691908d89f8c808905245fae9574e c3ce9393a386f6d22e905245fae9574e c3dfa79cbf9f146ea19d5f48f7e45a43 c0d3b3929db5146ea19d5f48f7e45a43 cff1b69d8899f9f418905245fae9574e cfce889198a1146ea19d5f48f7e45a43 c0fe9b92a998f8e60d905245fae9574e c2d8bc92878d146ea19d5f48f7e45a43 c0fc88929db5146ea19d5f48f7e45a43 c1c4a19daabcf8d709905245fae9574e c0fe8992a8ac146ea19d5f48f7e45a43 c3f3b3919f99146ea19d5f48f7e45a43 c3f2af9282b4146ea19d5f48f7e45a43 cfd88990889f146ea19d5f48f7e45a43 cffa8f93a0a0146ea19d5f48f7e45a43 c3eeac929db5fbef2c905245fae9574e c3deaa9182a6146ea19d5f48f7e45a43 c0f8be9294b6146ea19d5f48f7e45a43 cfce8893a1bcf9f401905245fae9574e c3f5bc918aacfbe230905245fae9574e c0fcb49cbf9f146ea19d5f48f7e45a43 c0f5ba929db5146ea19d5f48f7e45a43 cee890908ca5146ea19d5f48f7e45a43 ced6b2908d89146ea19d5f48f7e45a43 c3f39292a998f8e60d905245fae9574e c0fe899daabcfbe230905245fae9574e c3ee89919b8df8d230905245fae9574e c0d2a7929db5fbe30a905245fae9574e c3c69d9daabc146ea19d5f48f7e45a43 c3f3b39c8793f7dd24905245fae9574e c3ce9e9198a1f8e436905245fae9574e c0fb8b92aca6146ea19d5f48f7e45a43 c3e5a893a1bcf6ea22905245fae9574e cfdd9d908e9c146ea19d5f48f7e45a43 c3c49b9294b6fbe30a905245fae9574e c0f5be9293b0146ea19d5f48f7e45a43 cffab191b6b7146ea19d5f48f7e45a43 cfcaab92b18bf6ea22905245fae9574e c3dfa79282b4146ea19d5f48f7e45a43 cfd88991bc8cfbca24905245fae9574e ceedac929db5f8d230905245fae9574e c1c9a191bc8cf8c10b905245fae9574e ced7bd9dac8f146ea19d5f48f7e45a43 ced3a59cb28af8e60d905245fae9574e cffa8f919f99fad834905245fae9574e c1c4a19daabcfbef2c905245fae9574e c0eb9d92b3b0146ea19d5f48f7e45a43 c3f39293a1a5fbe931905245fae9574e ced3a59dac8ffad918905245fae9574e c1c4a190889f146ea19d5f48f7e45a43 c1c8a7918aac146ea19d5f48f7e45a43 cffab19cbf9ff9c721905245fae9574e cee890919b8d146ea19d5f48f7e45a43 cec79d93a1a5f8c60d905245fae9574e c0fb8b9c8e8a146ea19d5f48f7e45a43 cffca19c8e8af8c808905245fae9574e c0fcb491b49f146ea19d5f48f7e45a43 c1c4a19089ab146ea19d5f48f7e45a43 cee8909d8899146ea19d5f48f7e45a43 c0fe899293b0146ea19d5f48f7e45a43 cef29c92859d146ea19d5f48f7e45a43 ced3a59cb28afbcd1c905245fae9574e c3deaa919b8d146ea19d5f48f7e45a43 c3c49b92b3b0fbef2c905245fae9574e c0fc88918aac146ea19d5f48f7e45a43 c0d2a792a998146ea19d5f48f7e45a43 c3e5a891998afbe122905245fae9574e cfe0899dac8ffbd811905245fae9574e ceef84929db5146ea19d5f48f7e45a43 cfe08991998a146ea19d5f48f7e45a43 c1ed8c92aca6f8e436905245fae9574e cff1989182a6146ea19d5f48f7e45a43 ceef8492aca6146ea19d5f48f7e45a43 cff1989dac8f146ea19d5f48f7e45a43 c3ee8991bc8cfbd811905245fae9574e c0d18f91bc8c146ea19d5f48f7e45a43 cfe0899182a6146ea19d5f48f7e45a43 cecdbf92a998146ea19d5f48f7e45a43 c3f5bc9284bffbcd1c905245fae9574e cff19890889f146ea19d5f48f7e45a43 cfe49692aca6146ea19d5f48f7e45a43 c2de9293929cf8d102905245fae9574e ced3a59089ab146ea19d5f48f7e45a43 cfe49692859d146ea19d5f48f7e45a43 c3f2af91b49f146ea19d5f48f7e45a43 ceedac93929c146ea19d5f48f7e45a43 cee9b69c8793fbcd1c905245fae9574e c0d2a79294b6146ea19d5f48f7e45a43 c0fc8892a499146ea19d5f48f7e45a43 cef18c9282b4f6ea12905245fae9574e cfdd9d91b6b7fadb21905245fae9574e c2d996918dacfbcd0c905245fae9574e cffab1908d89f6db37905245fae9574e c0d2a79c8793f8d709905245fae9574e c0feaf918aac146ea19d5f48f7e45a43 c3f3b392b18b146ea19d5f48f7e45a43 c3c49b9284bff8c808905245fae9574e cfdd9d93929c146ea19d5f48f7e45a43 ced7bd92aca6fad834905245fae9574e cffcae9cbf9f146ea19d5f48f7e45a43 c0fe9b90889f146ea19d5f48f7e45a43 ced6b2908e9cfbcc37905245fae9574e c0de9f91998af8fd11905245fae9574e c2de929284bff7dd24905245fae9574e c3f2af908d89146ea19d5f48f7e45a43 cfc89f9cbfaff8e436905245fae9574e c3dd97908ca5146ea19d5f48f7e45a43 cef29c908ca5146ea19d5f48f7e45a43 cec79d908e9c146ea19d5f48f7e45a43 c0fb8b91998afadc16905245fae9574e c1c9a19294b6146ea19d5f48f7e45a43 cff1b692859d146ea19d5f48f7e45a43 c0d2a793a1a5146ea19d5f48f7e45a43 cef29c91ba91fbd71b905245fae9574e c1ed8c919b8d146ea19d5f48f7e45a43 c3deaa92859d146ea19d5f48f7e45a43 ced3a592a8acf8f91b905245fae9574e c1ed8c9182a6146ea19d5f48f7e45a43 cfdd9d91b78dfad918905245fae9574e c3f2af93a0a0146ea19d5f48f7e45a43 cfe1be9182a6f9f401905245fae9574e cffab192878d146ea19d5f48f7e45a43 c3eeac92b18bf6db37905245fae9574e c3ce9e91b98c146ea19d5f48f7e45a43 c0d2a79293b0f6ea22905245fae9574e c0de9f9198b1146ea19d5f48f7e45a43 c0d2a7919f99fadc16905245fae9574e c3f2af91998a146ea19d5f48f7e45a43 cff19891b49f146ea19d5f48f7e45a43 c3dfa793a0a0146ea19d5f48f7e45a43 c1c4a193929cf6d22e905245fae9574e c3f2af92a8ac146ea19d5f48f7e45a43 cff19891bc8c146ea19d5f48f7e45a43 cfc89f919f99146ea19d5f48f7e45a43 c0f5ba9284bffbdf11905245fae9574e c2d8bc91b98cf8c808905245fae9574e c3eea591b98c146ea19d5f48f7e45a43 c3ee899284bffbe122905245fae9574e c1c8a79dac8ff8d020905245fae9574e ced7bd93a386146ea19d5f48f7e45a43 cee0a6929db5146ea19d5f48f7e45a43 c3e4a393a1bc146ea19d5f48f7e45a43 cfe1b2908e9c146ea19d5f48f7e45a43 cfc89f9284bff8c60d905245fae9574e cffab19294b6f8d102905245fae9574e cee0a69daabc146ea19d5f48f7e45a43 c3ee8992878dfbec31905245fae9574e c3eea59294b6fbe122905245fae9574e c1c4a19cbfaf146ea19d5f48f7e45a43 c0f5ba93a0a0146ea19d5f48f7e45a43 c0f5ba9294b6146ea19d5f48f7e45a43 cfcaab91ba91fbcc37905245fae9574e c3f39293a1a5fbef2c905245fae9574e cfcaab91b6b7146ea19d5f48f7e45a43 c3e4a391bc8cfadd22905245fae9574e c0ffb6919f99fbec31905245fae9574e c0feaf91ba91f6e737905245fae9574e c2de92918dacf8f91b905245fae9574e cecdbf91b98cfad834905245fae9574e c2dc999089abfbd71b905245fae9574e c3dfa7908d89fbce30905245fae9574e cffa8f91bc8c146ea19d5f48f7e45a43 c2d8bc9089ab146ea19d5f48f7e45a43 ced6b290889f146ea19d5f48f7e45a43 cfc89f929db5146ea19d5f48f7e45a43 cff19892b3b0fbca24905245fae9574e c2dba2929db5f9f418905245fae9574e c0fc88908d89146ea19d5f48f7e45a43 cee8909c8e8af8c60d905245fae9574e c3c69d91b49f146ea19d5f48f7e45a43 c0d3b392b18b146ea19d5f48f7e45a43 c0fc88929db5f9f401905245fae9574e cef29c9c8e8a146ea19d5f48f7e45a43 c0ffb6919f99fbcd1c905245fae9574e cec1869294b6146ea19d5f48f7e45a43 c0de9f9284bf146ea19d5f48f7e45a43 cee9b69c8e8a146ea19d5f48f7e45a43 c0feaf92a998fbce30905245fae9574e cfe496919f99fad834905245fae9574e cfe1b6908d89146ea19d5f48f7e45a43 c3f3b39294b6146ea19d5f48f7e45a43 cffab191ba91fadc16905245fae9574e c3c69d93a0a0146ea19d5f48f7e45a43 cff1b693a1bcf9f401905245fae9574e cfd8899c8e8a146ea19d5f48f7e45a43 cfe1be919b8df8fd11905245fae9574e cff19892a998fad918905245fae9574e c3ce9e92a8acf8e436905245fae9574e c0ffb69198a1146ea19d5f48f7e45a43 cffa8f92aca6fbd811905245fae9574e c1c9a193bfa4146ea19d5f48f7e45a43 cfe08992b18bf6ea12905245fae9574e c2dba293bfa4146ea19d5f48f7e45a43 cffa8f92a8acfbcd0c905245fae9574e cffa8f93a1bcf8f91b905245fae9574e ceef849284bff8c60d905245fae9574e c3f39291b49ffadb21905245fae9574e c1c8a290889f146ea19d5f48f7e45a43 c0d18f9284bffade05905245fae9574e cffa8f93a1a5146ea19d5f48f7e45a43 c2dba2918aac146ea19d5f48f7e45a43 c3e5a89198b1f6ea12905245fae9574e ced7bd9282b4f9f401905245fae9574e c3e4a3908bb8f8f124905245fae9574e cecdbf908d89146ea19d5f48f7e45a43 cec79d9284bf146ea19d5f48f7e45a43 cfe1b691bc8c146ea19d5f48f7e45a43 c0fe9b91998a146ea19d5f48f7e45a43 cec186919f99f6e737905245fae9574e c0de9f9293b0146ea19d5f48f7e45a43 cff1b6918dac146ea19d5f48f7e45a43 c1c8a79c8e8afbe931905245fae9574e cee890908ca5146ea19d5f48f7e45a43 c0de9f9294b6fade05905245fae9574e cfe1be92a499fbe230905245fae9574e cee0a69d8899fbcc37905245fae9574e ceef8492b3b0f8c60d905245fae9574e c2dc9992a998fade05905245fae9574e cfd186908d89f8c60d905245fae9574e c2dba2908e9c146ea19d5f48f7e45a43 c3f39291b98cf8c10b905245fae9574e c0de9f92a998fbcd0c905245fae9574e c3f5bc92878d146ea19d5f48f7e45a43 ceef849c8793146ea19d5f48f7e45a43 c0de9f92b18b146ea19d5f48f7e45a43 c3deaa9c8793f9c721905245fae9574e cec18692878d146ea19d5f48f7e45a43 c3deaa908ca5146ea19d5f48f7e45a43 cfce8892a8acfbcd1c905245fae9574e c0fe9b9c8793fbe122905245fae9574e cfe4969c8e8af9c721905245fae9574e c0d18f929db5fbe30a905245fae9574e c2dba292b3b0146ea19d5f48f7e45a43 c0fe8991b49f146ea19d5f48f7e45a43 cffab1908bb8fadc16905245fae9574e c0fb8b92a499fad834905245fae9574e c1ed8c9293b0f9f401905245fae9574e cfe49692a499146ea19d5f48f7e45a43 cee9b69cbf9ff8d230905245fae9574e cef18c9dac8ff8d102905245fae9574e c3ce9393a386fbe30a905245fae9574e c0fb8b93a0a0f8f124905245fae9574e cfe1b2908d89146ea19d5f48f7e45a43 c2d9969089ab146ea19d5f48f7e45a43 cffca19cb28afbd811905245fae9574e c3f3b391b78d146ea19d5f48f7e45a43 c2dba2918aac146ea19d5f48f7e45a43 c0f5ba91bc8c146ea19d5f48f7e45a43 c2d996919f99f8e60d905245fae9574e cecdbf9198a1146ea19d5f48f7e45a43 c0f5ba93bfa4146ea19d5f48f7e45a43 c1ed8c908bb8f7f932905245fae9574e c3c49b9d8899146ea19d5f48f7e45a43 cef29c92859dfbdf11905245fae9574e c2d8bc9cbf9ffbd811905245fae9574e cffca1929db5146ea19d5f48f7e45a43 cfd18693929cfadb21905245fae9574e ced6919293b0146ea19d5f48f7e45a43 cfe09693a386146ea19d5f48f7e45a43 c3e5a892a998146ea19d5f48f7e45a43 cfce8893929cf6db37905245fae9574e cef29c908d89146ea19d5f48f7e45a43 c3f3929198a1146ea19d5f48f7e45a43 cfe49692a499146ea19d5f48f7e45a43 cfe1be908ca5146ea19d5f48f7e45a43 c3e5a8908ca5146ea19d5f48f7e45a43 c0feaf91b6b7146ea19d5f48f7e45a43 cee0a69198b1f8f91b905245fae9574e c3c69d9198a1146ea19d5f48f7e45a43 c2d8bc92859df7f932905245fae9574e ced691908e9c146ea19d5f48f7e45a43 cfe1b6918aac146ea19d5f48f7e45a43 c0fe8991998afbe931905245fae9574e c0d2a792a998146ea19d5f48f7e45a43 ceedac919f99146ea19d5f48f7e45a43 c3dfa79198a1f6d22e905245fae9574e cff1989282b4f6ea12905245fae9574e c0fc889c8e8af7ff01905245fae9574e c0ffb692b3b0146ea19d5f48f7e45a43 c0fcb49198a1f7f932905245fae9574e cfd18692aca6fbcd0c905245fae9574e ced6b29cbf9f146ea19d5f48f7e45a43 cee89093a1a5f8fc25905245fae9574e cfd889908bb8146ea19d5f48f7e45a43 c1ed8c908d89f8fc25905245fae9574e c2dba293929cf8d709905245fae9574e c3deaa908bb8146ea19d5f48f7e45a43 cfe1be9daabc146ea19d5f48f7e45a43 cffcae92b18bfbe30a905245fae9574e ced6919282b4146ea19d5f48f7e45a43 c3f3929293b0fbe122905245fae9574e cec79d92a499f9f418905245fae9574e c0f5ba929db5fbef2c905245fae9574e c0fe9b9daabcf9c721905245fae9574e c0fe9b9d8899f9f401905245fae9574e c3e5a893a1bc146ea19d5f48f7e45a43 c1c8a292aca6146ea19d5f48f7e45a43 c2dc9993bfa4146ea19d5f48f7e45a43 c3eeac92a998146ea19d5f48f7e45a43 cfe4969cbf9ff9f51d905245fae9574e cee9b69cb28a146ea19d5f48f7e45a43 ceef84908bb8146ea19d5f48f7e45a43 c3d3a393a1bc146ea19d5f48f7e45a43 c0fb8b9cbf9ff7dd24905245fae9574e c0eb9d929db5f9ea19905245fae9574e c0d2a792b3b0146ea19d5f48f7e45a43 c0f5ba9294b6146ea19d5f48f7e45a43 cee9b6908d89fbd71b905245fae9574e cee9b691b98cf8f124905245fae9574e c2d8bc9c8793146ea19d5f48f7e45a43 cffca19cb28a146ea19d5f48f7e45a43 cfd88991bc8cfbcd1c905245fae9574e c3ee899daabcfadc16905245fae9574e c2dba292b18b146ea19d5f48f7e45a43 c0f5be92b18b146ea19d5f48f7e45a43 c3c69d9c8e8a146ea19d5f48f7e45a43 cfd1869282b4146ea19d5f48f7e45a43 c1ed8c908d89146ea19d5f48f7e45a43 cfe1b69cb28a146ea19d5f48f7e45a43 c0de9f92aca6f9f51d905245fae9574e cfdd9d919f99146ea19d5f48f7e45a43 c0fcb492b18b146ea19d5f48f7e45a43 c0eb9d918aacf7ff01905245fae9574e c0fb8b90889f146ea19d5f48f7e45a43 c3f2af918dac146ea19d5f48f7e45a43 c3c69d92a8ac146ea19d5f48f7e45a43 c0fc889c8e8af7dd24905245fae9574e c2dba2919b8d146ea19d5f48f7e45a43 c3dfa79284bff6ea22905245fae9574e cfe09692aca6146ea19d5f48f7e45a43 c3ce939198a1f6ea12905245fae9574e cfe1b29198b1fadc16905245fae9574e cfe1be92878df8d102905245fae9574e c0fcb49089abfbdf11905245fae9574e c0d18f91b6b7146ea19d5f48f7e45a43 c3d3a392a8ac146ea19d5f48f7e45a43 c0de9f918aacf8c10b905245fae9574e cfe4969284bf146ea19d5f48f7e45a43 ceef8492aca6f6e737905245fae9574e c0de9f93a1bcf9f51d905245fae9574e cffa8f92878df8fd11905245fae9574e cffab1908d89146ea19d5f48f7e45a43 c3f39292b18b146ea19d5f48f7e45a43 cfd1869284bff8f91b905245fae9574e c3e5a89cbfaf146ea19d5f48f7e45a43 c3e5a89dac8ff9ea19905245fae9574e c3eea592aca6146ea19d5f48f7e45a43 c2dba29198a1146ea19d5f48f7e45a43 c0fc8890889f146ea19d5f48f7e45a43 c3f2af91998afbdf11905245fae9574e c3dd979cb28a146ea19d5f48f7e45a43 c3dd9791ba91f8c60d905245fae9574e cec79d91b78df7f932905245fae9574e c1c4a19282b4146ea19d5f48f7e45a43 cec1869c8793146ea19d5f48f7e45a43 cff1b69cbf9ff9ea19905245fae9574e ceedac929db5f6d22e905245fae9574e c1cb8c91998afbef2c905245fae9574e cfdd9d92a499f8fd11905245fae9574e ceef8493a386146ea19d5f48f7e45a43 cff198919b8d146ea19d5f48f7e45a43 c0de9f918aac146ea19d5f48f7e45a43 cff1989284bf146ea19d5f48f7e45a43 cffa8f9182a6146ea19d5f48f7e45a43 c3f3b391b49f146ea19d5f48f7e45a43 c2dba2918aac146ea19d5f48f7e45a43 c3dfa79284bff8c808905245fae9574e cfdd9d9c8793146ea19d5f48f7e45a43 c3dd97918dac146ea19d5f48f7e45a43 c3f3929cb28a146ea19d5f48f7e45a43 c3e5a892aca6f9c721905245fae9574e cff19892a998146ea19d5f48f7e45a43 c1c8a791b78d146ea19d5f48f7e45a43 cfc89f92aca6146ea19d5f48f7e45a43 c3ee8993bfa4146ea19d5f48f7e45a43 cfd18692859d146ea19d5f48f7e45a43 c3e5a89293b0f7ff01905245fae9574e ced69192878dfadb21905245fae9574e c0eb9d9089abfad834905245fae9574e c3ee8993929c146ea19d5f48f7e45a43 c2dba291b78df7ff01905245fae9574e cef18c93a1a5146ea19d5f48f7e45a43 c0fe8992aca6146ea19d5f48f7e45a43 ced69191998a146ea19d5f48f7e45a43 cef18c92aca6146ea19d5f48f7e45a43 c0eb9d91ba91146ea19d5f48f7e45a43 cffca191ba91f9f401905245fae9574e c3ee8991998af7f932905245fae9574e cec79d9089abf9f418905245fae9574e cff1b69d8899146ea19d5f48f7e45a43 cffab193a1a5146ea19d5f48f7e45a43 c2dc9993a1bcfbce30905245fae9574e c3e5a892aca6146ea19d5f48f7e45a43 c1c8a792a998f8c808905245fae9574e cfe1b693a0a0146ea19d5f48f7e45a43 ced69191bc8c146ea19d5f48f7e45a43 c2dba292a998f8e60d905245fae9574e c1cb8c92b3b0146ea19d5f48f7e45a43 cee9b69282b4146ea19d5f48f7e45a43 c0feaf9cbfaf146ea19d5f48f7e45a43 ced3a5908e9c146ea19d5f48f7e45a43 c3c69d9c8793fbe122905245fae9574e c2de9292aca6146ea19d5f48f7e45a43 cff19893bfa4fade05905245fae9574e c0ffb69cbf9f146ea19d5f48f7e45a43 ceef8492aca6fbe122905245fae9574e ced69192aca6f8d102905245fae9574e ced3a5918aacfbdf11905245fae9574e c0d2a7918aacf7f932905245fae9574e cfce8892a998146ea19d5f48f7e45a43 c3f5bc92859d146ea19d5f48f7e45a43 ced69191b78df8c808905245fae9574e c0ffb693a1bc146ea19d5f48f7e45a43 cfc89f9284bf146ea19d5f48f7e45a43 c2dc9993bfa4fadd22905245fae9574e cff1b69284bff8c808905245fae9574e c0fc8893a1a5f7f932905245fae9574e c3e4a3919b8d146ea19d5f48f7e45a43 c3e4a3908e9c146ea19d5f48f7e45a43 cfe1b690889ffbe931905245fae9574e c0de9f908ca5fbd71b905245fae9574e cfe1b291b78d146ea19d5f48f7e45a43 cffab19cb28afadd22905245fae9574e c0fc8892a499f8f91b905245fae9574e c1c8a793bfa4fbd811905245fae9574e cee9b69089ab146ea19d5f48f7e45a43 c0fe9b91b98cf9f401905245fae9574e c0d3b391b6b7146ea19d5f48f7e45a43 cfc89f92aca6146ea19d5f48f7e45a43 c3e4a392a499f8d709905245fae9574e c3f3b3929db5146ea19d5f48f7e45a43 c2d996908d89146ea19d5f48f7e45a43 c3dd9793a0a0f8f91b905245fae9574e c3e4a393a0a0146ea19d5f48f7e45a43 c2dba2918aac146ea19d5f48f7e45a43 cfdd9d908d89146ea19d5f48f7e45a43 c2dc99908bb8146ea19d5f48f7e45a43 c3f2af9089abf9c721905245fae9574e c2dc9993a1a5fbcc37905245fae9574e c0fb8b9198b1146ea19d5f48f7e45a43 c3f2af9284bffbe230905245fae9574e c0de9f9182a6f7dd24905245fae9574e c3ee8992a8acfbec31905245fae9574e cecdbf919f99f6db37905245fae9574e c2dc99919f99146ea19d5f48f7e45a43 ceedac92859d146ea19d5f48f7e45a43 c0f8be919f99146ea19d5f48f7e45a43 c3deaa92b18b146ea19d5f48f7e45a43 c0d18f9089abf8d020905245fae9574e ced3a59198b1146ea19d5f48f7e45a43 c1c8a29cbf9f146ea19d5f48f7e45a43 c3e4a39284bf146ea19d5f48f7e45a43 c2dc9993a1a5146ea19d5f48f7e45a43 c3f3b3919f99f8c808905245fae9574e c3eeac91b49f146ea19d5f48f7e45a43 c0fe9b92a499fbe30a905245fae9574e c3dfa79cb28afbcc37905245fae9574e cfce889d8899f8d020905245fae9574e cffca192878d146ea19d5f48f7e45a43 c2d8bc908e9cf7ff01905245fae9574e c3e5a892aca6146ea19d5f48f7e45a43 cff1989198b1146ea19d5f48f7e45a43 c3deaa9c8e8a146ea19d5f48f7e45a43 c3ee899dac8ff8d230905245fae9574e cef29c92a998146ea19d5f48f7e45a43 c3dfa792aca6146ea19d5f48f7e45a43 c3f39292b18bf9f63b905245fae9574e c0fe8992a8ac146ea19d5f48f7e45a43 c3c69d92859df8d709905245fae9574e c0eb9d9198b1146ea19d5f48f7e45a43 cfe496918dacf8c10b905245fae9574e cffab192a8acfadb21905245fae9574e c3f5bc9d8899f7dd24905245fae9574e c3eea59284bff6e737905245fae9574e cfe08992a8ac146ea19d5f48f7e45a43 cee0a693bfa4fadc16905245fae9574e c0d18f908e9cf7ff01905245fae9574e c0d2a792a998f9f418905245fae9574e cffcae9dac8ff9ea19905245fae9574e c3dfa79284bff8f91b905245fae9574e cffcae92878df9c721905245fae9574e cfe1be9293b0146ea19d5f48f7e45a43 cfd8899c8e8a146ea19d5f48f7e45a43 c2d99692859d146ea19d5f48f7e45a43 c0d3b391998a146ea19d5f48f7e45a43 c3f5bc9089ab146ea19d5f48f7e45a43 c0fcb4908bb8fbcc37905245fae9574e c0de9f92a499146ea19d5f48f7e45a43 c3dfa793a386f8fc25905245fae9574e c3ce9e9c8e8a146ea19d5f48f7e45a43 c3d3a3929db5fad918905245fae9574e cef18c9294b6f8fd11905245fae9574e cffcae929db5fadc16905245fae9574e c0fcb49182a6146ea19d5f48f7e45a43 cff1b6908bb8f9f51d905245fae9574e cffa8f92a499f9ea19905245fae9574e c3f2af93bfa4fbd811905245fae9574e c0f5be9cb28af8d230905245fae9574e cfe1be92aca6f8d102905245fae9574e c3f3b393929cf8d102905245fae9574e cfd88993a1bc146ea19d5f48f7e45a43 ced6919198a1f6ea22905245fae9574e cfe0969cb28a146ea19d5f48f7e45a43 c3c69d9282b4146ea19d5f48f7e45a43 c3eeac92aca6fbcd0c905245fae9574e cec79d919f99146ea19d5f48f7e45a43 cecdbf9daabcf9c721905245fae9574e ceef849cb28afadc16905245fae9574e c0fb8b9294b6146ea19d5f48f7e45a43 c3f3b39198a1146ea19d5f48f7e45a43 c0d3b393a386146ea19d5f48f7e45a43 c0fe9b93a0a0fbef2c905245fae9574e cfe09693bfa4f7f932905245fae9574e c2d8bc93929cfbef2c905245fae9574e c2d8bc92a8ac146ea19d5f48f7e45a43 c0fb8b9cb28a146ea19d5f48f7e45a43 c3eea592a8ac146ea19d5f48f7e45a43 c0d3b3908bb8146ea19d5f48f7e45a43 c3f5bc93a386f9ea19905245fae9574e cff1b690889ffbef2c905245fae9574e cfce889c8793f8d102905245fae9574e c0f5be9089abf8f91b905245fae9574e c0fe9b91b78d146ea19d5f48f7e45a43 c2dc9991bc8cf8f124905245fae9574e cfe1b29198b1146ea19d5f48f7e45a43 ced6919282b4fbd811905245fae9574e cfe1b2929db5146ea19d5f48f7e45a43 cfe1be9cb28af6e737905245fae9574e cffa8f929db5146ea19d5f48f7e45a43 c3e4a39daabcfbcc37905245fae9574e c0d3b393a1a5f6ea12905245fae9574e cec79d9198b1f7f932905245fae9574e c3f2af9cbf9f146ea19d5f48f7e45a43 cfdd9d93a386fbcc37905245fae9574e ced6919dac8f146ea19d5f48f7e45a43 c1cb8c92859dfbd811905245fae9574e ced6b2908d89146ea19d5f48f7e45a43 c3f392908ca5146ea19d5f48f7e45a43 c3eeac93a0a0f9f401905245fae9574e c3c69d9cbfaf146ea19d5f48f7e45a43 cfe1b291b98c146ea19d5f48f7e45a43 c3e5a89198b1fbd71b905245fae9574e c2d8bc91998afbca24905245fae9574e c3ce9e92b3b0f8fd11905245fae9574e c0d3b393929c146ea19d5f48f7e45a43 c1c8a29282b4fbce30905245fae9574e cff19893929c146ea19d5f48f7e45a43 cecdbf91ba91146ea19d5f48f7e45a43 cfe1b291998af7f932905245fae9574e cfe089918aac146ea19d5f48f7e45a43 c0de9f9089abf8d709905245fae9574e c0d2a791998af8d102905245fae9574e cfd8899089abfadd22905245fae9574e cee88893a1bc146ea19d5f48f7e45a43 c3c49b93a386f8fc25905245fae9574e cec18693a0a0146ea19d5f48f7e45a43 cfdd9d908ca5146ea19d5f48f7e45a43 ced7bd9dac8ffbce30905245fae9574e ceef8492a499146ea19d5f48f7e45a43 c0eb9d908ca5146ea19d5f48f7e45a43 cfd1869089abf9f401905245fae9574e c3f5bc9284bff9c721905245fae9574e c3f392908d89f6db37905245fae9574e c0de9f92a8acfbec31905245fae9574e c3f5bc9198a1f8d102905245fae9574e c3dfa79daabc146ea19d5f48f7e45a43 c2dba292b3b0146ea19d5f48f7e45a43 cee9b69dac8ff9c721905245fae9574e c1c4a19294b6f8d230905245fae9574e c0fe8991b49ff8d020905245fae9574e ceef849c8793146ea19d5f48f7e45a43 cffcae9089abfadc16905245fae9574e c0ffb69293b0146ea19d5f48f7e45a43 c0f5ba91998af6e737905245fae9574e cef18c92b18bf6ea22905245fae9574e c2d8bc91b78dfadc16905245fae9574e c0de9f929db5fade05905245fae9574e c0de9f91b49ffadc16905245fae9574e c1c4a19284bf146ea19d5f48f7e45a43 c3eeac91998af8c10b905245fae9574e c3c49b93a1bcf8f91b905245fae9574e c0ffb69182a6146ea19d5f48f7e45a43 cfe096918aacfbdf11905245fae9574e c3dd9793bfa4146ea19d5f48f7e45a43 c3dd97919b8dfbe931905245fae9574e cee9b69dac8f146ea19d5f48f7e45a43 c1c8a292aca6fadd22905245fae9574e c0f5be9293b0146ea19d5f48f7e45a43 cfd186918dac146ea19d5f48f7e45a43 c3ce9e919b8df9f51d905245fae9574e c3eea5919b8d146ea19d5f48f7e45a43 cffcae91b6b7146ea19d5f48f7e45a43 c0fe9b9294b6f9f401905245fae9574e c3dfa79d8899fbe931905245fae9574e c3ce9393a1a5fbcd1c905245fae9574e c1ed8c9182a6f6e737905245fae9574e c0fcb49198b1146ea19d5f48f7e45a43 c1ed8c92a8acf9ea19905245fae9574e ced3a59182a6f8c808905245fae9574e c0de9f92878dfbce30905245fae9574e c3eeac9c8e8af8d020905245fae9574e c0d3b3908e9cfbce30905245fae9574e cfe0969cbf9ff9f51d905245fae9574e c2d8bc9c8793f8e60d905245fae9574e ced3a5908bb8146ea19d5f48f7e45a43 ced69192878dfbcc37905245fae9574e c0de9f908d89fbe230905245fae9574e cee8909c8e8a146ea19d5f48f7e45a43 c0ffb691b78dfad834905245fae9574e c0f8be908e9c146ea19d5f48f7e45a43 cffca1908d89fbca24905245fae9574e cffa8f91bc8c146ea19d5f48f7e45a43 c2de92929db5f9ea19905245fae9574e c3e5a8918aac146ea19d5f48f7e45a43 c3ce9e9293b0146ea19d5f48f7e45a43 c2de929284bff9f63b905245fae9574e c2d8bc9cb28a146ea19d5f48f7e45a43 c3e4a39cbfaff9f418905245fae9574e c0ffb69294b6146ea19d5f48f7e45a43 c1c4a1929db5146ea19d5f48f7e45a43 c3eeac918aac146ea19d5f48f7e45a43 c3f3b392859d146ea19d5f48f7e45a43 cee0a69cb28af7dd24905245fae9574e c0fcb49198b1fbec31905245fae9574e c2dc99919b8d146ea19d5f48f7e45a43 cfcaab9282b4f8c808905245fae9574e cecdbf908d89146ea19d5f48f7e45a43 c3ce9e9284bf146ea19d5f48f7e45a43 cee88891b6b7f9f51d905245fae9574e cef29c9cbfaff8c808905245fae9574e cff198929db5fbe931905245fae9574e cfe0899293b0fbdf11905245fae9574e c0fb8b91b78df8d102905245fae9574e c3c69d9182a6fade05905245fae9574e c3deaa91ba91146ea19d5f48f7e45a43 c0fe8991b49ff8f124905245fae9574e c3c49b908e9c146ea19d5f48f7e45a43 c0fcb49198b1146ea19d5f48f7e45a43 c3d3a393929cfbca24905245fae9574e cef18c93a1a5f9f418905245fae9574e cfcaab92859d146ea19d5f48f7e45a43 cfe08992859d146ea19d5f48f7e45a43 c2d9969294b6146ea19d5f48f7e45a43 c0fc889089abfbcc37905245fae9574e cfe09691b98c146ea19d5f48f7e45a43 c3d3a393a1a5146ea19d5f48f7e45a43 c2d8bc9c8793fbd811905245fae9574e c0f8be9293b0146ea19d5f48f7e45a43 c3d3a3908ca5146ea19d5f48f7e45a43 c1c4a192859d146ea19d5f48f7e45a43 c2d8bc9198a1fbcd1c905245fae9574e cfd88992a499146ea19d5f48f7e45a43 c0d18f92a998146ea19d5f48f7e45a43 ceedac9282b4146ea19d5f48f7e45a43 cffab19089abfbe122905245fae9574e c2dc99929db5146ea19d5f48f7e45a43 ced7bd929db5f8c60d905245fae9574e c0de9f92a998146ea19d5f48f7e45a43 c1cb8c918aac146ea19d5f48f7e45a43 c1cb8c929db5f9f401905245fae9574e c0fe9b9cb28af8e436905245fae9574e c0d3b39daabcf6e737905245fae9574e cfe1b291b6b7146ea19d5f48f7e45a43 c3e5a892859dfbdf11905245fae9574e c3e4a39089ab146ea19d5f48f7e45a43 c1c8a792878df8d709905245fae9574e c0fe9b929db5fbe30a905245fae9574e cfdd9d918aacf6db37905245fae9574e c0f5be9293b0fad918905245fae9574e cff1b69293b0146ea19d5f48f7e45a43 cfe1b29dac8ff8e60d905245fae9574e c3e5a893bfa4fbef2c905245fae9574e c3d3a3919b8dfbec31905245fae9574e cfc89f91b98cf6ea22905245fae9574e c3f5bc9089ab146ea19d5f48f7e45a43 c3ce9e92a499fbca24905245fae9574e c1c8a2919f99146ea19d5f48f7e45a43 c3c49b9cb28afade05905245fae9574e c1c8a790889f146ea19d5f48f7e45a43 cfce8891b6b7fad918905245fae9574e c3e5a8919b8d146ea19d5f48f7e45a43 cfcaab9198b1146ea19d5f48f7e45a43 c2de929d8899f8c808905245fae9574e c0fe9b91bc8c146ea19d5f48f7e45a43 ced6919293b0146ea19d5f48f7e45a43 c0eb9d92a8ac146ea19d5f48f7e45a43 c1c8a79284bf146ea19d5f48f7e45a43 c0ffb69284bf146ea19d5f48f7e45a43 c3ce9392859d146ea19d5f48f7e45a43 c2de9293a386146ea19d5f48f7e45a43 c0fc8892b3b0f8f91b905245fae9574e c3eea590889ff9f51d905245fae9574e ceedac908e9c146ea19d5f48f7e45a43 cffa8f92a8acf6d22e905245fae9574e c0f5ba9294b6fad834905245fae9574e c3dd9793a386146ea19d5f48f7e45a43 c0ffb693a1bcf8f91b905245fae9574e cfd889908d89f6ea12905245fae9574e c3e5a89198b1146ea19d5f48f7e45a43 cfce8891b6b7146ea19d5f48f7e45a43 cfe1be91ba91146ea19d5f48f7e45a43 cfdd9d9198b1146ea19d5f48f7e45a43 cffcae9cbfaf146ea19d5f48f7e45a43 c3d3a3908bb8146ea19d5f48f7e45a43 c0feaf91bc8cfadc16905245fae9574e c0feaf9294b6f6ea12905245fae9574e ceef849284bf146ea19d5f48f7e45a43 c0fb8b92878df9f418905245fae9574e c2d99692a8ac146ea19d5f48f7e45a43 cfe1b692a499f8d230905245fae9574e cfe1b292a998146ea19d5f48f7e45a43 c3e5a89284bf146ea19d5f48f7e45a43 c0f5be919b8d146ea19d5f48f7e45a43 cff198929db5146ea19d5f48f7e45a43 c3deaa9089abf8e436905245fae9574e c0fe8991ba91146ea19d5f48f7e45a43 c0f5ba90889ff8d709905245fae9574e c2dba29dac8ff6db37905245fae9574e c3c49b929db5f8d102905245fae9574e c0f5ba9294b6146ea19d5f48f7e45a43 c1c4a1918dac146ea19d5f48f7e45a43 cfe1be908e9cf8fc25905245fae9574e c0fcb49198a1fbcc37905245fae9574e cffa8f9cbf9ffad834905245fae9574e cffa8f908e9c146ea19d5f48f7e45a43 cef18c9daabcf8f124905245fae9574e c0feaf9cb28a146ea19d5f48f7e45a43 ced3a592b3b0146ea19d5f48f7e45a43 cfcaab9198a1146ea19d5f48f7e45a43 c3f3929d8899146ea19d5f48f7e45a43 c0eb9d90889ff8d102905245fae9574e c1ed8c91b78d146ea19d5f48f7e45a43 cfe0969cbfaff8f91b905245fae9574e c0d2a7918dac146ea19d5f48f7e45a43 c2d8bc93bfa4146ea19d5f48f7e45a43 c3ee899182a6f7ff01905245fae9574e c3c69d9284bffbdf11905245fae9574e cfe4969cb28a146ea19d5f48f7e45a43 c0fb8b92b18bf7f932905245fae9574e cee0a6908e9cf8e436905245fae9574e ced7bd93bfa4fad918905245fae9574e cfc89f9cbf9ffbcc37905245fae9574e cfe09693a1a5146ea19d5f48f7e45a43 c3f5bc9c8793146ea19d5f48f7e45a43 cec79d908d89146ea19d5f48f7e45a43 c3eea59284bffad834905245fae9574e ced3a590889f146ea19d5f48f7e45a43 c2de9292a499fadc16905245fae9574e cfe1b69c8e8a146ea19d5f48f7e45a43 cffab19089abf8fd11905245fae9574e cef18c91bc8c146ea19d5f48f7e45a43 cef29c92859df8d102905245fae9574e c0d18f90889ffad834905245fae9574e cee9b69d8899146ea19d5f48f7e45a43 c0f8be9182a6146ea19d5f48f7e45a43 c0de9f91b49ff8e436905245fae9574e """ # 这里放你的 600 多行数据 lines = data_lines.strip().split('\n') for i, line in enumerate(lines): cols = line.split(' | ') if len(cols) < 5: continue seq = cols[1].strip() name_cipher = cols[2].strip() phone_cipher = cols[3].strip() id_cipher = cols[4].strip() iv = cols[5].strip() name_plain = decrypt_data(name_cipher).decode('utf-8', errors='ignore') if '何浩璐' in name_plain: print(f"找到何浩璐,行号 {seq}") phone_plain = decrypt_data(phone_cipher).decode('utf-8', errors='ignore') id_plain = decrypt_data(id_cipher, 18).decode('utf-8', errors='ignore') # 身份证号 18 字节 print(f"手机号: {phone_plain}") print(f"身份证: {id_plain}") # 计算身份证号 MD5 import hashlib md5_val = hashlib.md5(id_plain.encode('utf-8')).hexdigest() print(f"MD5: {md5_val}") break
10-13
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值