Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.83/47: Рейтинг темы: голосов - 47, средняя оценка - 4.83
 Аватар для blackeangel
19 / 10 / 1
Регистрация: 22.07.2015
Сообщений: 908

Поиск текста в бинарном файле

30.06.2018, 08:35. Показов 10358. Ответов 22

Студворк — интернет-сервис помощи студентам
Всем доброго времени суток!
Решил написать для себя небольшой поисковик текста в бинарном файле. И тут же упёрся в ошибки и своё не понимание некоторых вещей питона. В общем вот что у меня есть
Python
1
2
3
4
5
6
7
8
9
10
11
12
import struct
import mmap
#word = 0x3d6b64732e6e6f69737265762e646c6975622e6f72
word = "ro.build.version.sdk="
def checkSignOffset(file):
    f = open(file, 'rb')
    mm = mmap.mmap(f.fileno(), 52428800, access=mmap.ACCESS_READ)  # 52428800=50Mb
    #offset = mm.find(word)
    offset = mm.find(struct.pack('<L', word))
    f.close()
    return offset
print(checkSignOffset("C:/Users/Sam/PycharmProjects/untitled2/vendor.new.img"))
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
30.06.2018, 08:35
Ответы с готовыми решениями:

Поиск текста в бинарном файле
нужно вывести текст из бинарного файла. начиная от слова &quot;word&quot; и до самого конца файла. помогите.

Поиск и парсинг текста в бинарном файле
Есть некий бинарный файл, в котором внутри бинарных данных в произвольном месте содержится обычная текстовая строка примерно такого...

Удаление текста в бинарном файле
Пишу на C. Создаю бинарный файл. Записываю в него данные, например, 12345 Мне нужно удалить определенный символ, например 3. С помощью...

22
1741 / 913 / 480
Регистрация: 05.12.2013
Сообщений: 3,074
30.06.2018, 09:05
Зачем тут struct?

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
import mmap
 
word = b'JFIF'
 
with open("ag.jpg", "r+b") as f:
    mm = mmap.mmap(f.fileno(), 15)
    print(mm.readline())
 
    mm.seek(0)
    offset = mm.find(word)
    print(offset)
 
    mm.close()
1
 Аватар для blackeangel
19 / 10 / 1
Регистрация: 22.07.2015
Сообщений: 908
30.06.2018, 09:26  [ТС]
ТабуретY, хорошо, спасибо. Но как теперь получить значения которое после "="?
Потому что первое это проверка файла на наличие нужного файла, и если он там есть то получить значения после "="
И все это надо учитывать, что файл 3 гига весит, а оперативки 1 гиг.
0
1741 / 913 / 480
Регистрация: 05.12.2013
Сообщений: 3,074
30.06.2018, 09:34
Цитата Сообщение от blackeangel Посмотреть сообщение
если он там есть то получить значения после "="
это можно сделать так

Python
1
2
3
4
mm.seek(offset)
mm.read(num)
# или прочитать один байт
mm.read_byte()
1
 Аватар для blackeangel
19 / 10 / 1
Регистрация: 22.07.2015
Сообщений: 908
30.06.2018, 13:30  [ТС]
ТабуретY,
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
import struct
import mmap
#word = 0x3d6b64732e6e6f69737265762e646c6975622e6f72
word = b'ro.build.version.sdk='
 
def checkSignOffset(file):
    #f = open(file, 'rb')
    #mm = mmap.mmap(f.fileno(), 52428800, access=mmap.ACCESS_READ)  # 52428800=50Mb
    #offset = mm.find(word)
    #offset = mm.find(struct.pack('<L', word))
    #f.close()
    with open(file, "r+b") as f:
        mm = mmap.mmap(f.fileno(), 52428800, access=mmap.ACCESS_READ)
        print(mm.readline())
        mm.seek(0)
        offset = mm.find(word)
        print(offset)
        mm.close()
    return offset
 
print(checkSignOffset("C:/Users/Sam/PycharmProjects/untitled2/vendor.new.img"))
вывод
Code
1
2
3
4
5
6
7
8
C:\Python34\python.exe "C:\Program Files\JetBrains\PyCharm 2017.2.3\helpers\pydev\pydevd.py" --multiproc --qt-support=auto --client 127.0.0.1 --port 20428 --file C:/Users/Sam/PycharmProjects/untitled2/find.py
pydev debugger: process 7484 is connecting
 
Connected to pydev debugger (build 172.3968.37)
b':\xff&\xed\x01\x00\x00\x00\x1c\x00\x0c\x00\x00\x10\x00\x00\x00@\x03\x00e\t\x00\x00\x00\x00\x00\x00\xc1\xca\x00\x00\x01\x00\x00\x00\x0c\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00@\xd0\x00\x00\x00@\x03\x00\x00\x00\x00\x00<\x0b\x02\x00\xe7\xca\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x02\x00\x00\x00\x00\x80\x00\x00\x00\x80\x00\x00\xc0\x1d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\n'
-1
-1
Process finished with exit code 0
а где "ro.build.version.sdk="?
0
1741 / 913 / 480
Регистрация: 05.12.2013
Сообщений: 3,074
30.06.2018, 14:07
А эта строка в первых 50 мегабайтах файла есть вообще?

В моем примере в файле jpeg ищется строка 'JFIF', если открыть любой файл jpeg в hex-редакторе, то в начале файла видна эта строка
Миниатюры
Поиск текста в бинарном файле  
0
 Аватар для blackeangel
19 / 10 / 1
Регистрация: 22.07.2015
Сообщений: 908
30.06.2018, 14:10  [ТС]
ТабуретY, у меня она неизвестно где. А берём по 50мб, ТК весь файл в оперативку не лезет, вот поэтому и ммапаем по 50мб.
Скрин вот https://yadi.sk/i/U4Nqfikb3YcoyS
0
1741 / 913 / 480
Регистрация: 05.12.2013
Сообщений: 3,074
30.06.2018, 14:42
На скриншоте видно, что искомая строка находится где-то на 365 мегабайте, попробуйте для проверки прочитать этот отрезок
0
 Аватар для blackeangel
19 / 10 / 1
Регистрация: 22.07.2015
Сообщений: 908
01.07.2018, 00:19  [ТС]
ТабуретY, взял 400 мб, результат тот же

Добавлено через 1 час 12 минут
В общем нашел медленный способ, который не зависит от кол-ва оперативной памяти
Python
1
2
3
4
5
6
7
8
def FindStringInByteFile(word,file):
    findword =  bytes(word, 'utf-8')
    with open(file, "r+b") as f:
        for line in f:
            if findword in line:
               return line.__str__().split("=")[1][:2]
 
print(FindStringInByteFile("ro.build.version.sdk=","C:/Users/Sam/PycharmProjects/untitled/system.img"))
Но очень медленный.
На 5 гиговом файле ищет аж 8 сек
0
 Аватар для blackeangel
19 / 10 / 1
Регистрация: 22.07.2015
Сообщений: 908
04.08.2018, 09:48  [ТС]
Приветствую всех!
Дабы не создавать новую тему пишу в этой.
Как организовать поиск типа "find next"?
Например зпдача такая вот:
Открываем файл
Пропускаем 100мб
Сначала ищем строку с "begin build properties"
Если нашли - Запоминаем адрес
Ищем дальше то что подается на фунцкию ниже того адреса, что был найден пунктом выше

Поиск в бинарном файле, файл больше кол-ва оперативной памяти, что мешает использованию mmap
но мне говорили что ммар можно использовать, если "скользить по файлу" как то через offset

Выручайте народ.
0
1741 / 913 / 480
Регистрация: 05.12.2013
Сообщений: 3,074
04.08.2018, 12:51
Параметр offset при чтении файла

Python
1
mm = mmap.mmap(f.fileno(), 52428800, access=mmap.ACCESS_READ, offset=offset)
offset должен быть кратным к mmap.ALLOCATIONGRANULARITY 64 кб
0
 Аватар для blackeangel
19 / 10 / 1
Регистрация: 22.07.2015
Сообщений: 908
04.08.2018, 15:19  [ТС]
ТабуретY, а приложите полный код, пожалуйста? а то никак не допетрю как его использовать

Добавлено через 25 минут
ТабуретY, как? как это зациклить чтоб искал кусками?
типа пока не конец файла берем кусок ммапом, ищем в нем, если не нашлось, то двигаем курсор дальше и т.д.?
На словах то это я могу понять как это происходит, но вот накодить не могу никак
Python
1
2
3
4
5
6
7
8
9
10
import mmap
def FindStringInByteFile(word,file):
    findword =  bytes(word, 'utf-8')
    with open(file, "r+b") as f:
        mm = mmap.mmap(f.fileno(), 52428800, access=mmap.ACCESS_READ, offset=mmap.ALLOCATIONGRANULARITY)
        offset = mm.find(findword)
        print()
        mm.seek(что тут?)
 
print(FindStringInByteFile("ro.product.model=","C:/Users/Sam/PycharmProjects/untitled/system.img"))
0
1741 / 913 / 480
Регистрация: 05.12.2013
Сообщений: 3,074
04.08.2018, 16:16
Лучший ответ Сообщение было отмечено blackeangel как решение

Решение

Так примерно

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
import mmap
import os
 
n = mmap.ALLOCATIONGRANULARITY
 
with open("Shildt.txt", "r+") as f:
    step = n
    offset = 0
    size =  os.stat("Shildt.txt").st_size
    i = 1
    map_ = mmap.mmap(f.fileno(), length=step)
    print(i, map_[:])
    while True:
        offset += step
        if offset + step > size:
            break
        map_ = mmap.mmap(f.fileno(), length=step, offset=offset)
        i += 1
        print(i, map_[:])  
    map_.close()
1
 Аватар для blackeangel
19 / 10 / 1
Регистрация: 22.07.2015
Сообщений: 908
04.08.2018, 17:50  [ТС]
ТабуретY, это здорово
получилось как то так
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
import mmap
    import os
    findword =  bytes(word, 'utf-8')
    detctbuild = bytes("begin build properties", 'utf-8')
    with open(file, "r+b") as f:
            step = mmap.ALLOCATIONGRANULARITY
            offset = 0
            size = os.stat(file).st_size
            map_ = mmap.mmap(f.fileno(), length=step)
            while True:
                    offset += step
                    if offset + step > size:
                        break
                    if map_.find(detctbuild)==-1:
                        map_ = mmap.mmap(f.fileno(), length=step, offset=offset)
                    else:
                        offset=map_.find(detctbuild)
                        break
            while True:
                offset += step
                if offset + step > size:
                    break
                if map_.find(findword) == -1:
                    map_ = mmap.mmap(f.fileno(), length=step, offset=offset)
                else:
                    offset = map_.find(findword)
                    print(offset)
                    break
            map_.close()
Но теперь встал вопрос, как перевести этот найденный offset в текст? или всю строку хотя бы
0
1741 / 913 / 480
Регистрация: 05.12.2013
Сообщений: 3,074
04.08.2018, 18:57
Цитата Сообщение от blackeangel Посмотреть сообщение
получилось как то так
Тут плохо, что переменная offset используется для прохода по файлу и для поиска и кроме того тут два цикла while, лучше сделать один цикл, переменную offset использовать только для прохода по файлу, а для каждого слова которое надо найти сделать отдельную переменную для поиска

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
import mmap
import os
 
n = mmap.ALLOCATIONGRANULARITY
 
search = bytes('такие', 'utf-8')
search_offset = 0
searched = []
 
with open("Shildt.txt", "r+") as f:
    step = n
    offset = 0
    size =  os.stat("Shildt.txt").st_size
    map_ = None
    while True:
        if offset + step > size:
            break
        map_ = mmap.mmap(f.fileno(), length=step, offset=offset)
        offset += step
        search_offset = map_.find(search)
        if search_offset != -1:
            map_.seek(search_offset)
            w = map_.read(10)
            searched.append(w)
    map_.close()
 
print(*[s.decode('utf-8') for s in searched])
0
 Аватар для blackeangel
19 / 10 / 1
Регистрация: 22.07.2015
Сообщений: 908
04.08.2018, 21:04  [ТС]
ТабуретY, в не могли б прояснить как можно одним циклом сразу найти 2 разных слова? Да и мне не нужен массив. Мне надо только строку вернуть но без лишего мусора, только текст.
0
1741 / 913 / 480
Регистрация: 05.12.2013
Сообщений: 3,074
04.08.2018, 21:16
Если надо найти две строки

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
import mmap
import os
 
n = mmap.ALLOCATIONGRANULARITY
 
search = bytes('такие', 'utf-8')
search_offset = 0
searched = ''
 
search2 = bytes('другие', 'utf-8')
search_offset2 = 0
searched2 = ''
 
with open("Shildt.txt", "r+") as f:
    step = n
    offset = 0
    size =  os.stat("Shildt.txt").st_size
    map_ = None
    while True:
        if offset + step > size:
            break
        map_ = mmap.mmap(f.fileno(), length=step, offset=offset)
        offset += step
        search_offset = map_.find(search)
        if search_offset != -1:
            map_.seek(search_offset)
            w = map_.readline()
            searched = w
        search_offset2 = map_.find(search2)
        if search_offset2 != -1:
            map_.seek(search_offset2)
            w = map_.readline()
            searched2 = w
    map_.close()
 
print(searched, searched2)
0
 Аватар для blackeangel
19 / 10 / 1
Регистрация: 22.07.2015
Сообщений: 908
04.08.2018, 21:25  [ТС]
ТабуретY, не, нн так поняли. Находим первую запись - она дает нам адрес откуда надоискать вторую запись. И вот надо вывести строку в которой содержится вторая искомая запись.
0
1741 / 913 / 480
Регистрация: 05.12.2013
Сообщений: 3,074
04.08.2018, 21:44
Цитата Сообщение от blackeangel Посмотреть сообщение
Находим первую запись - она дает нам адрес откуда надоискать вторую запись. И вот надо вывести строку в которой содержится вторая искомая запись.
В таком случае ваш код годится, только добавьте переменные для поиска
1
 Аватар для blackeangel
19 / 10 / 1
Регистрация: 22.07.2015
Сообщений: 908
04.08.2018, 22:58  [ТС]
ТабуретY, если делаю так
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
def FindStringInByteFile(word,file):
    import mmap
    import os
    findword =  bytes(word, 'utf-8')
    detctbuild = bytes("begin build properties", 'utf-8')
    with open(file, "r+b") as f:
            step = mmap.ALLOCATIONGRANULARITY
            offset = 0
            size = os.stat(file).st_size
            map_ = mmap.mmap(f.fileno(), length=step)
            while True:
                    offset += step
                    if offset + step > size:
                        break
                    if map_.find(detctbuild)==-1:
                        map_ = mmap.mmap(f.fileno(), length=step, offset=offset)
                    else:
                        offset=map_.find(detctbuild)
                        break
            while True:
                offset += step
                if offset + step > size:
                    break
                if map_.find(findword) == -1:
                    map_ = mmap.mmap(f.fileno(), length=step, offset=offset)
                else:
                    print(map_.read(map_.find(findword)))
                    break
            map_.close()
то выдает такое
Кликните здесь для просмотра всего текста
Code
1
2
b'U\xb0\x00\x00\x80\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x93;\r\x00\x01\xaf\x00\x00U\xb0\x00\x00\x84\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9c@\r\x00\x01\xaf\x00\x00U\xb0\x00\x00\x88\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\xa0@\r\x00\x01\xaf\x00\x00U\xb0\x00\x00\x90\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xaa@\r\x00\x01\xaf\x00\x00U\xb0\x00\x00\xa0\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb1@\r\x00\x01\xaf\x00\x00U\xb0\x00\x00\xa4\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb9@\r\x00\x01\xaf\x00\x00U\xb0\x00\x00\xa8\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc4....
\x00\x00\x00@0\x13\x00!\x00\x00\x00\x08\x00\x00\x00\x19\x00\x00\x00H0\x13\x00\x1b\x00\x00\x00\x08\x00\x00\x00\x1a\x00\x00\x00P0\x13\x00\x1c\x00\x00\x00\x08\x00\x00\x00\x1e\x00\x00\x00\x08\x00\x00\x00\xfb\xff\xffo\x01\x00\x00\x00\xf0\xff\xffo\x8c@\x00\x00\xfe\xff\xffo\x90D\x00\x00\xff\xff\xffo\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00@0\x13\x00H0\x13\x00P0\x13\x00%~\x0b\x00\x00\x00\x00\x00\x00`\x13\x00\xc8h\x13\x00\x00\x00\x00\x00p\x18\x13\x00\xcd\xe0\x02\x00\xb1\xed\x02\x00!)\x02\x00)\x02\x03\x009H\x04\x00\xd9\xa0\x02\x00\xbdA\x07\x00\r\x02\x07\x00\x155\x07\x00M\xb7\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8J\x13\x00\xa0M\x13\x004M\x13\x00\x10`\x13\x000p\x13\x00\xcdd\t\x00\x15\xf7\n\x00\xd9\xf7\n\x00\xcch\x13\x00\xe1v\x0b\x00\xd4k\x13\x00hV\x13\x00]\xcc\n\x00\xe9\xa7\n\x00\x15\xfb\x00\x00YP\x0b\x00]P\x0b\x00\xd1\x19\x01\x00\xd5\x18\x01\x00\xe1\xf8\x00\x00\x98Q\x13\x00\x00\x00\x00\x00\xa0Q\x13\x00\xa4Q\x13\x00\xa8Q\x13\x00\xacQ\x13\x00\xb0Q\x13\x00\x9cQ\x13\x00\xc1u\x0c\x00\x8d@\x0c\x00\x85n\x0c\x00\x11X\x0c\x00\x00\x00\x00\x00\xf5\xce\x0c\x00\xed\xce\x0c\x00\x89\xce\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xf8}\x00\x00\x03\x00\x00\x00\x07\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\x01\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00la\x13\x00la\x13\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x10\x00\x00\x00\x10\x00\x10\x00\x00\x00\x08\x00\x08\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x06\x00\x06\x00\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1d\x00\x00\x00\x18d\x13\x000\x00\x00\x00\x02\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x000\x00\x00\x00\x03\x00\x00\x00d\x00\x00\x00\x08\x00\x00\x00L\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00P\x00\x00\x00\x00\x00\x00\x00T\x00\x00\x00\x0f\x00\x00\x00\x15\x00\xff\x00\x00\x00\x00\x00H\x00\x00\x00\x00\x00\x00\x00T\x00\x00\x00\x03\x0f\x00\x00\x15\x00\xff\x00\x01\x08\x00\x00P\x00\x00\x00\x01\x00\x00\x00T\x00\x00\x00\x03\x00\x00\x00\x15\x00\xff\x00\x03\x00\x00\x00P\x00\x00\x00\x00\x00\x00\x00T\x00\x00\x00\x80\x00\x00\x00t\x00\x00\x00\x06\x00\x00\x00\x04\x00\x00\x00\x18\x00\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x1d\x00\xff\x00\x00\x00\x00\x00@\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\xfe\x00\x03\xaa\xaa@\x00\x00\x00\x04\x00\x00\x00\x15\x00\xff\xfe\x8e\x88\x00\x00\x06\x00\x00\x00\x00\x00\x00\x00\x06\x00\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x02\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00GCC: (GNU) 4.9 20150123 (prerelease)\x00Android clang version 3.8.256229  (based on LLVM 3.8.256229)\x00\x00\x04\x00\x00\x00\t\x00\x00\x00\x04\x00\x00\x00GNU\x00gold 1.11\x00\x00\x00AA\x00\x00\x00aeabi\x00\x017\x00\x00\x00\x05ARM v7\x00\x06\n\x07A\x08\x01\t\x02\n\x05\x0c\x02\x11\x02\x12\x04\x14\x01\x15\x01\x17\x03\x18\x01\x1a\x02\x1b\x03\x1e\x06"\x01$\x01&\x01*\x01,\x02D\x03\x00.shstrtab\x00.interp\x00.note.android.ident\x00.note.gnu.build-id\x00.dynsym\x00.dynstr\x00.gnu.hash\x00.gnu.version\x00.gnu.version_r\x00.rel.dyn\x00.rel.plt\x00.text\x00.ARM.exidx\x00.rodata\x00.ARM.extab\x00.preinit_array\x00.init_array\x00.fini_array\x00.data.rel.ro\x00.dynamic\x00.got\x00.data\x00.bss\x00.comment\x00.note.gnu.gold-version\x00.ARM.attributes\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0b\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00T\x01\x00\x00T\x01\x00\x00\x13\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x13\x00\x00\x00\x07\x00\x00\x00\x02\x00\x00\x00h\x01\x00\x00h\x01\x00\x00\x18\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\'\x00\x00\x00\x07\x00\x00\x00\x02\x00\x00\x00\x80\x01\x00\x00\x80\x01\x00\x00 \x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00:\x00\x00\x00\x0b\x00\x00\x00\x02\x00\x00\x00\xa0\x01\x00\x00\xa0\x01\x00\x00\x10 \x00\x00\x05\x00\x00\x00\x01\x00\x00\x00\x04\x00\x00\x00\x10\x00\x00\x00B\x00\x00\x00\x03\x00\x00\x00\x02\x00\x00\x00\xb0!\x00\x00\xb0!\x00\x002\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00J\x00\x00\x00\xf6\xff\xffo\x02\x00\x00\x00\xe4?\x00\x00\xe4?\x00\x00\xa8\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00T\x00\x00\x00\xff\xff\xffo\x02\x00\x00\x00\x8c@\x00\x00\x8c@\x00\x00\x02\x04\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\x00\x02\x00\x00\x00a\x00\x00\x00\xfe\xff\xffo\x02\x00\x00\x00\x90D\x00\x00\x90D\x00\x00P\x00\x00\x00\x05\x00\x00\x00\x02\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00p\x00\x00\x00\t\x00\x00\x00\x02\x00\x00\x00\xe0D\x00\x00\xe0D\x00\x008+\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x08\x00\x00\x00y\x00\x00\x00\t\x00\x00\x00B\x00\x00\x00\x18p\x00\x00\x18p\x00\x00\xe0\r\x00\x00\x04\x00\x00\x00\x0b\x00\x00\x00\x04\x00\x00\x00\x08\x00\x00\x00}\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xf8}\x00\x00\xf8}\x00\x00\xe4\x14\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x82\x00\x00\x00\x01\x00\x00\x00\x06\x00\x00\x00\xe0\x92\x00\x00\xe0\x92\x00\x00@R\x0c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x88\x00\x00\x00\x01\x00\x00p\x82\x00\x00\x00 \xe5\x0c\x00 \xe5\x0c\x00@U\x00\x00\x0c\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x08\x00\x00\x00\x93\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00`:\r\x00`:\r\x00\xbc\xe0\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x9b\x00\x00\x00\x01\x00\x00\x00\x02\x00\x00\x00\x1c\x1b\x13\x00\x1c\x1b\x13\x00x\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\xa6\x00\x00\x00\x10\x00\x00\x00\x03\x00\x00\x00@0\x13\x00@ \x13\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\xb5\x00\x00\x00\x0e\x00\x00\x00\x03\x00\x00\x00H0\x13\x00H \x13\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\xc1\x00\x00\x00\x0f\x00\x00\x00\x03\x00\x00\x00P0\x13\x00P \x13\x00\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\xcd\x00\x00\x00\x01\x00\x00\x00\x03\x00\x00\x00`0\x13\x00` \x13\x00X&\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\xda\x00\x00\x00\x06\x00\x00\x00\x03\x00\x00\x00\xb8V\x13\x00\xb8F\x13\x00X\x01\x00\x00\x05\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x08\x00\x00\x00\xe3\x00\x00\x00\x01\x00\x00\x00\x03\x00\x00\x00\x1cX\x13\x00\x1cH\x13\x00\xe4\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\xe8\x00\x00\x00\x01\x00\x00\x00\x03\x00\x00\x00\x00`\x13\x00\x00P\x13\x00<\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\xee\x00\x00\x00\x08\x00\x00\x00\x03\x00\x00\x00@h\x13\x00<X\x13\x00\xf4\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x08\x00\x00\x00\x00\x00\x00\x00\xf3\x00\x00\x00\x01\x00\x00\x000\x00\x00\x00\x00\x00\x00\x00<X\x13\x00c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x01\x00\x00\x00\xfc\x00\x00\x00\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa0X\x13\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x13\x01\x00\x00\x03\x00\x00p\x00\x00\x00\x00\x00\x00\x00\x00\xbcX\x13\x00B\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfeX\x13\x00#\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc3\xca\x00\x00\x01\x00\x00\x00\x0c\x00\x00\x00\xc1\xca\x00\x00\x02\x00\x00\x00\x0c \x00\x00\n# begin build properties\n# autogenerated by buildinfo.sh\nro.build.id=NRD90M\nro.build.version.incremental=1513075014\nro.build.version.sdk=24\nro.build.version.preview_sdk=0\nro.build.version.codename=REL\nro.build.version.all_codenames=REL\nro.build.version.release=7.0\nro.build.version.security_patch=2017-10-05\nro.build.version.base_os=\nro.build.date=Tue Dec 12 18:36:18 CST 2017\nro.build.date.utc=1513074978\nro.build.type=user\nro.build.user=jenkins\nro.build.host=80-12\nro.build.tags=release-keys\nro.build.flavor=full_t699_cq_7171c_cubot_n_37m35-user\n'

и что то не нахожу тут
Code
1
ro.product.model=
где ошибка то?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
04.08.2018, 22:58
Помогаю со студенческими работами здесь

Поиск в бинарном файле
в бинарном файле записаны цены вводится цена программа должна выдать все услуги равные цене не пойму почему он выдаёт cout &lt;&lt;...

Поиск в бинарном файле
мне надо в бинарном файле найти одну 8-ми байтную строку, я сделал вот такой поиск, но он почему то не работает :( std::fstream stream; ...

Поиск в бинарном файле
Создайте программу поиска вхождения строки в бинарном файле. Входит ли строку 'This program' в исполняемый файл программы (*.exe)? Для...

Поиск в бинарном файле
Привет! Мне нужно в бинарный файл записать: ФИО, Номер телефона и дату рождения(массив из трех чисел) и сделать поиск:Вывести всех людей...

Поиск в бинарном файле
как определить где в файле находится 0A DD


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru