-
Notifications
You must be signed in to change notification settings - Fork 2
/
convertWin.py
112 lines (90 loc) · 26 KB
/
convertWin.py
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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
#!/usr/bin/python
import os
import base64
def show_exception_and_exit(exc_type, exc_value, tb):
import traceback
traceback.print_exception(exc_type, exc_value, tb)
raw_input("Press key to exit.")
sys.exit(-1)
import sys
sys.excepthook = show_exception_and_exit
TMP_IMAGE_PATH = os.getcwd()+'\\tmpimage'
#SVG_START = '''<svg class="write-page" color-interpolation="linearRGB" width="1240px" height="1755px" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
# <g class="write-content write-v3" width="1240" height="1755" xruling="0" yruling="35" marginLeft="100" papercolor="#FFFFFF" rulecolor="#9F0000FF">
# <g class="ruleline write-std-ruling write-scale-down" fill="none" stroke="#0000FF" stroke-opacity="0.624" stroke-width="1" shape-rendering="crispEdges" vector-effect="non-scaling-stroke">
# <rect class="pagerect" fill="#FFFFFF" stroke="none" x="0" y="0" width="1240" height="1755" />
# <path class="yrule_1" d="M0 35 l1240 0" />
# <path class="leftmargin" stroke="#FF0000" d="M100 0 l0 1755" />'''
SVG_START = '''<svg width='1240px' height='1755px' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'>
<defs> <style type='text/css'><![CDATA[
path { stroke-linecap: round; stroke-linejoin: round; }
.ruleline { shape-rendering: crispEdges; }
]]></style> </defs>
<g id='page_1' width='1240' height='1755' xruling='0.000' yruling='35' marginLeft='100.000' papercolor='#FFFFFF' rulecolor='#FF0000FF'>
'''
SVG_END = '''
</g>
</svg>
'''
while True:
pdf_path = input('Give me a PDF Path: ')
pdf_name = pdf_path.split('\\')[-1].split('.')[0]
page_count = int(input("How many pages? "))
if os.path.isfile(pdf_path):
abs_path = pdf_path
elif os.path.isfile(os.path.join(os.path.expanduser("~"), pdf_path)):
abs_path = os.path.join(os.path.expanduser("~"), pdf_path)
elif os.path.isfile(os.path.join(os.getcwd(), pdf_path)):
abs_path = os.path.join(os.getcwd(), pdf_path)
else:
print("Unable to find file in home directory, script directory or absolute")
if not os.path.exists(TMP_IMAGE_PATH):
os.mkdir(TMP_IMAGE_PATH)
print('Converting PDF to images - may take some time')
print('If this fails, try installing imagemagick')
for page in range(page_count):
print('Converting page', page)
command = "convert -density 600 \"" + abs_path + "[" + str(page) + "]\" \"" + os.path.join(TMP_IMAGE_PATH, "tmp{:03}.jpg\"".format(page))
print(command)
#print('convert -density 150 \"'+abs_path+'[{}] '.format(page)+"\" \""+os.path.join(TMP_IMAGE_PATH, 'tmp{:03}.jpg'.format(page))+"\"")
#os.system('convert -density 150 \"'+abs_path+'[{}] '.format(page)+"\" \""+os.path.join(TMP_IMAGE_PATH, 'tmp{:03}.jpg'.format(page))+"\"")
os.system(command)
#input()
obj_string = ''
i = 0
for img in os.listdir(TMP_IMAGE_PATH):
print("Encoding Image: "+img)
i += 1
img_full = os.path.join(TMP_IMAGE_PATH, img)
png_file = open(img_full, 'rb')
base64data = base64.b64encode(png_file.read())
base64string = '<image xlink:href="data:image/jpg;base64,{0}" width="1240" height="1755" x="0" y="0" />'.format(str(base64data)[2:-1])
png_file.close()
os.remove(img_full)
svg_string = SVG_START + base64string + SVG_END
page_name = pdf_name + '_page{:03}.svg'.format(i)
with open(os.path.join(TMP_IMAGE_PATH, page_name), 'w') as sv:
sv.write(svg_string)
obj_string += '''<object data="{0}" type="image/svg+xml" width="1240" height="1755"></object>\n'''.format(page_name)
html_string = '''<!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.0 Strict//EN'
'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>{}</title>
<script type="text/writeconfig">
<int name="pageNum" value="{}" />
<float name="xOffset" value="-1948.8418" />
<float name="yOffset" value="-436.347839" />
</script>
</head>
<body>
<img id='thumbnail' style='display:none;' src='data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAPAAAAGQCAYAAACQ1u18AAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAACZzAAAmcwHzbHUKAAAAB3RJTUUH4AQFFhQjjKyeNQAAABxpVFh0Q29tbWVudAAAAAAATWFkZSBieSBzZGZnZW9mZqt9ZLsAACAASURBVHja7b17dFTV/f7/TC6TTCbkDhIIJCFgkLQhQhBBgSAqFCgGEq1CLbXUQF1irXKxsuy3YmsDlKIfLLWEi0GxShWEGPQDwQRCA1iisrB0wUcurQYkQxJCJsMkJHl+f7Qzv0zmds5cciHv11qzlH327Mt772fOPvuc80RDkhAEoUcSICEQBBGwIAgiYEEQRMCCIAIWBEEELAiCCFgQBBGwIIiABUEQAQuCIAIWBBGwIAgiYEEQRMCCIIiABUEELAiCCFgQBBGwIAgiYEEQAQuCIAIWBEEELAgiYEEQRMCCIIiABUEQAQuCCFjoOjQaDTQajc/zduf+NTU1Yfny5UhOTkZwcHC36tPVq1excOFCDB48GIGBgda2OUv3K/QBN27c4BtvvMFp06bxlltuYXBwMPV6Pb/zne9w0aJFPHLkCG9mANBHofS6fH+3pSPHjh3jrFmzOGjQIGq1WiYmJnL+/Pk8fPiwV/1bsWKFNb2z++SOBQsWOGybs3R/tt/rUi9evMg77rjDruHdNfgiYN+xc+dOBgQEeD3mjvIPGTKEAPj++++zqampW433gAEDCIB79+5lS0uL2/RuK+Dm5maOHj2aAJiQkMDXX3+d58+fZ3NzMxsbG3nq1Clu3LiR48ePFwHfhAJOS0sjAE6dOpVffPEFr1+/zurqar777rucNGmSV/0LDAwkALa1tXW78dZoNA7b5iy92wp448aNBMCkpCRevnxZ8feampqYn5/PkSNHMiwsjDqdjiNHjuTq1avZ3NzssPONjY38yU9+woiICMbGxnL58uXWQBkMBmq1WgYGBvLSpUt29TU2NjIiIoL9+vWzKf/NN9/kpEmTGBkZSa1Wy5SUFC5dupRXr1512AaTycQnn3yS/fr1Y1BQkM0xV2cfpfWcO3eODzzwAPV6PWNjY7lo0SI2NjZ6JODGxkbm5eUxNjaW4eHhzM7O5vnz50mSp0+fZkBAAMPCwnjlyhW7Murq6qjX6xkQEMDTp087rSskJIQA+O233ypqm5L+uVvFffXVV/z+979vLWPhwoUuY6Q09krmpLtVprM2d2ybyWTiCy+8wNTUVIaFhTEiIoL33nsvi4qKOlfA99xzDwFw27ZtqsQ7ceJEpx2ePHmyjcgs6bm5uXZ5169fb833gx/8gAD4hz/8wa7OTZs2EQCXLFlCkmxra+O8efOctiEtLY319fV2bcjJybH+v0ajcStgNfVcuXKFCQkJdnnmzJnjkYDbf8/ySUhIYE1NDUnywQcfJAD+5je/sStj9erVBMDs7GyXdd12220EwJUrV9JgMLjMq7R/rsRgMBgYHx+vKEZqYq90TvpKwPPnz/fZpaZXAo6NjVX1C0yS+fn5BMCoqChu2bKFBoOB1dXV3Lx5MyMiIgiAq1evtpuQo0aN4smTJ3n16lXm5eURADMzM635Dhw4YM3XkczMTALgqVOnSJIFBQXWCb1jxw4aDAaaTCZWVFRwzJgxBMDly5fbtWHgwIEsLi6m0WhUtERSU8+yZcsIgImJiSwrK2NDQwNLS0s5ePBgjwTsrJxly5aRJD/77DMCYHx8vM015o0bN6x5KyoqXNb1zjvv2Ey+lJQU/uAHP+Bbb71lt5JS2z9HaUuWLLGu+CxllJWVMTEx0S6/mth7Oic9vXyJiooiAK5du5a1tbU0m808duwY58yZ07kCDgoKIgDeuHFD8XfS09MJgFu3bnV6pszIyLALytGjR61pVVVVBEC9Xm/zizts2DAboZJkZWUlAdhch48dO5YAWF5ebteGs2fPEgCHDRtm14adO3equu5UU8/w4cMJgHv27LHJt2vXLo8E7Kyc2267zZo2depUu7GwiPLuu+9WVN8nn3xiXdK2F3NGRobNWVlt/xylpaamEoDdUnPPnj12+dXE3tM56amALfN0xowZfPHFF3nw4EG2trZ2/jWwJ2fg0NBQ63KoI9XV1QRAnU5nFxSz2WwjVkfBWrVqFQFwxYoV1jTL2Xrz5s3WtLCwMLdLH61Wa9eG2tpaVQJWU4/lerKurs6mjNraWo8E7Kyc0NBQa1pZWRkBMD093Zp25513OhSaO1paWviPf/yDf/zjH5mUlEQAXLhwod31stL+OUpTU4aa2Hs6Jz0VcElJCfv162fTlqFDh/KLL77oXAFPnjxZ9TWwq2AZDAYCYFhYmEfBqq6uplarZVJSEtva2njt2jWGh4czPDycDQ0N1nw6nU7x9YuSgXF2XE09XSFgkhw/fjwBcP/+/Txy5AgBcMSIEV7t/p46dYoAOGjQoE4RcF1dnV1+NbH355x0hslkYnFxMZ9++mnr7acJEyaojrVXT2I9/PDDAID/9//+HwwGg6Lv3HrrrQCAvXv32h0rKiqyyaOWvn374oEHHsCFCxfwt7/9Ddu3b4fRaMRDDz2E8PBwa760tDQAwKeffor//og5/Kh5kggAWltbbdLV1JOcnAwAKC8vtynj4MGDHsXCWTmWeiz88pe/BACsXbsW69atAwAsWbLEq6eIIiMjAQCXL1+2pvmif0lJSQCAw4cP26R3/Lfa2PtzTjpDp9Nh+vTpWLduHY4fPw4AqKys7NwnsZqamnj77bdbf23//Oc/88KFC2xubqbJZOI///lPu/vAlg2D6OhoFhYW0mAw0GAwcOvWrdaLe282DPbv329dvmVkZBAA//a3v9nk2bJlCwGwf//+LCgo4Pnz52kymWg2m3n69Glu3LiR48aNU/zLarmU+Pjjj22uZdTUY9nkab9B480mlrNyLJtY7S9Hvvvd71Kj0TAwMJADBgxQ/ODEHXfcwQ0bNvCf//wnzWYzGxoaWFFRYd3RHTFihN0mltL+OUp79tlnCYDJyck8dOgQjUYjDx06xOTkZLv8amLv7znZkWnTpnHfvn00Go1saGjghg0bHK6O/L6EJslvvvnG+jCHkuWo2WzmhAkTnObLysqymUBqg9XW1saUlBTrcmv48OEO2/3UU0/5bAnt6BaX2nqc3WZpf+tKjYBnz57t8jZSe7Zv327N036iKq3L0ScgIIDvvfee29tIzvrnKO3y5cvs37+/XRnZ2dkEYL03rzb2/p6TSuM2d+7czhcw+Z8nsrZs2cL777/f+pCD5Vnon/3sZzY7yJaA5efnMz09naGhodTpdExPT+eqVavsfv09CZblF9XdhCwpKWFubi4HDhzI4OBg6nQ6pqWl8ZlnnuGJEycUD0xVVRVzcnIYExNjfRrHk3rOnTvHWbNmUa/XMyYmho8//rjHD3IYjUYuWLCA0dHR1Ov1fOCBB3ju3DmH3zlz5gwBMDIy0ub+tzv+/ve/8+c//znT09Op0+kYHBzMgQMHMicnx+Hur5r+OevzmTNnOGPGDIaFhTEmJoZ5eXnWa+6+fft6PMb+npPtKS0tZU5ODmNjY6nT6ZiamsqVK1fSZDJ1jYCFnk3HB116GuvXr7eeKXsb8jphL6eurg5/+ctfAACPPfZYt29vdnY2ysvLce3aNVy6dAkFBQVYsWIFACAnJ6f3vWpKNdutwk33nrGF6dOno7i4uEe1uT2jR49GRUUFtFqtvNAv9B5CQ0Mxbdo0FBQU9Ij2FhcXY+rUqYiPj4dWq0VKSgqWLl2KTz75pNeJV87AgiBnYEEQRMCCIIiAb9prnR5oVif0cAFbJp3l06dPH0ycOBEffvih27zh4eEYPHgwZs6ciT/96U8wGo2K6uj48SfJycnQaDQ4ceKETfrhw4dt2vDVV1/ZHP/888+h0WgwZMgQEbX8UPacM7DRaER5eTm+//3vY8+ePS7zNjY24uuvv0ZxcTGeeOIJpKWlefawtx+55557AAClpaU26ZYH9IODgx0eLysrs/m+EtS+YCHIGdhnWCbfN998gwcffBAA8PLLL7vMazabcf78ebzxxhsYPnw4/v3vf2P69Omoqalx+T1P3yjypYAtAv3xj3/s8viUKVNkBgpei8tvwMGzod9++63dC9LuniM1Go1W14Rf//rXHr+D6Yzbb7+dr732mt17pu64ePGi1YrF8hZSc3Oz1RDuwoULDAwMZP/+/a3faW1tZXR0tJ0RAlwY5znqJ3xopueMGzdu8JVXXuHo0aOp1+up0+k4adIkm5f9xaBQfT0+1VhnC/jy5cuqBUyS77//PgFw7NixPhewpYzQ0FDOnTuXBw4cUPxCu8UqprKykiRZUVFhY8Fi8V+y2PxYvKjS0tIctsGRcZ5aAas17XP2gsr999/vsh4xKPSsnh4r4KqqKj788MMeCdFibRIdHa34lTalvPvuu7z//vttTMqTk5P50ksv8euvv3b53SeeeIIA+Pvf/54k+fLLLxMAf/GLX5Akly5dSgD84x//SJL8wx/+QABcvHixw36oMc6DD8z0nPH73/+eABgeHs5XX32VX3/9Nc1mMysqKqxulWJQ6Hk9PUrAjj4ffPCBKgHfuHHD4Tuf8OFfg/jXv/7FX//61zYuhwEBAfze977H9957z25J2H5lMHPmTJL/v1GcZZlZXFxsPeuQ5KxZs1z2X41xHnxgpueMkSNHEgA3btzoNI8YFHpeT48UsF6v59133+3QwNqd6CxL75iYGNVLaLXibmtr4759+/iDH/zAagwAJ++b1tTUMCAggBERETSbzQwPD2dgYKD1mujatWsMCgpiXFwcW1paGB0dzYCAALvrbXhgnAcfmOk5w+IpVV1d7TSPGBR6Xk+PvQb2NO97771HALzzzjs7RcD79+/nww8/bCPguLg4p5tgluu4jstBkta/HfXGG28QAMeMGaO6/2oErNa0zx8C7s0Ghb7am7lp3gdubGzEiy++CAD43ve+5/FtLHe3l/79739j5cqVGDJkCO677z688847uHHjBqZNm4a//vWvqKqqcnk7KT8/HwAwefJkm+NZWVkAgJdeekn1/V93Dx0A3pnpOSM1NRUAsHv3bqd5xKCwc29bdovbSErzNjU18cKFCywsLLTu9Pbr18/ub/n44pdux44dnDp1qt0m1sqVK91uYrW/zrV89u7da3N87969Nsf37dvnkzOwL8z0nLF27VoCYJ8+ffjaa6/xm2++odls5pEjR+w2scSgUH09N+0S2tln8ODB/Pvf/+5VHUpuIz3yyCMsKSlR5Yvc0NBg/SsVQUFBvHbtmtPjWq2WjY2NPhGwL8z0XN1GmjJlSpeawfVUg0IR8H83PxISEjh9+nRu2LDB5rrH1wLOyMjg+vXrvdpwsBikd7w91nEXc+LEiR71w9FxX5npuRLxmjVrrEZver2eWVlZNg9yiEGhZ/X4CnmhXxDkWWhBEETAgiCIgAVBBCwIgghYEAQRsCAIImBBEAELgiACFgRBBCwIImBBEETAgiCIgAVBEAELgghYEAQRsCAIImBBEETAgiACFgRBBCwIgghYEETAgiCIgAVBEAELgiACFgQRsCAIImBBEETANyEajcb6t2lvxvq6qs6bve0BEjTft7EnT9TeLFI5AwuCIAIWBKEXCrilpQWvvvoqMjMzER4ejrCwMGRlZaGoqMiaZ//+/Zg5cyaioqIQFhaG8ePH48CBA06XgiaTCQsWLEBkZCTi4uLw3HPPwdWfVG6/fLSUoWZJaTKZsHDhQsTFxaFPnz6YPXs2Lly4YJfvrbfeQlZWFqKiohASEoKhQ4di2bJlqK+vVxUzJfU1Nzdj1apVyMjIgF6vR1hYGDIyMrBmzRrcuHFDdd+VxlRpHy31XL9+HYsXL8Ytt9yC4OBgj8o6f/48srOzER4ejri4OPzsZz+DyWTqvpOe3Rio+Cvnzc3NvP/++63f6fjpWGb7T3BwMI8fP+6w7tzcXLv869evd9pGd/W76+ucOXPsvpuQkMCamhqSZFtbG+fNm+e0nrS0NNbX1/usvqamJk6cONFpfZMnT2Zzc7OiviuNqdo+WtJzcnKs/6/RaFSXdeXKFSYkJNjlaR+jbqeRm0XAv//97wmA4eHhfPXVV/n111/TbDazoqKC2dnZ1ny5ubmsrKyk2Wzm2bNnOXv2bALgww8/7LDuUaNG8eTJk7x69Srz8vIIgJmZmT5rd8fvJCYmsqysjA0NDSwtLeXgwYMJgMuWLSNJFhQUWEW2Y8cOGgwGmkwmVlRUcMyYMQTA5cuX+6y+/Px8AmBUVBS3bNlCg8HA6upqbt68mREREQTA1atXK+q70piq7aOl3IEDB7K4uJhGo9GjspYtW+YyJiJgPwp45MiRBMCNGzeqqqO6upoAOGjQIId1Hz161JpWVVVFANTr9X4T8J49e2zSd+3aRQC87bbbSJJjx44lAJaXl9uVcfbsWQLgsGHDfFZfeno6AXDr1q12ZWzatIkAmJGRoUrA7mKqto+Wcnfu3GmXX01Zw4cPdxkTEbAfBazT6QiA1dXVTvO0tLRwzZo1zMjIYFhYmM0ySavVOqzbbDbbLO2UtMkbAdfV1dmk19bWEgBDQ0NJ0q7djj4d++JNfaGhoQRAg8Hg9MdPp9OpErC7mKrtoyWttrbWrk41ZYWEhLiMSXcUcFBv2rFbunQp1q1b5/BYc3Ozw/SQkBCHmzRduGfhNo+zvvjjnq8ncXEXU0/7GB0d3a3jJbvQLkhNTQUA7N6922mewsJC639ramrQ0tKC2tpav03s1tZW1d8tLy+3+ffBgwcBAMnJyQCAtLQ0AMCnn36K/66gHH58Vd+tt94KANi7d6/ddy27+5Y83vbdgi/7qKYsS5+dxUR2of24hF67di0BsE+fPnzttdf4zTff0Gw288iRI9ZNrOjoaALgrl27rJtY7XculdStpE2xsbEEwI8//pitra2q+pqUlORyU2nLli0EwP79+7OgoIDnz5+nyWSi2Wzm6dOnuXHjRo4bN85n9Vk2saKjo1lYWEiDwUCDwcCtW7cyKirKbhPLVd+VxlRtH12NiZqyLJtYzmIi18B+vo00ZcoUl7cy5s6da5du2YX2pYAd3SZR2tf27XF0W4ckn3rqKbfXdb6qz2w2c8KECU7rycrKYlNTk6K+q4mpmj6667PSspzdRnL2Iy8C9qGALSJes2YN09PTGRoaSr1ez6ysLOuuYk1NDefNm8eYmBhGRUXxscceY0NDg88FXFVVxZycHMbExFCj0agSlNFo5IIFCxgdHU29Xs8HHniA586ds8tfUlLC3NxcDhw4kMHBwdTpdExLS+MzzzzDEydO+LQ+s9nM/Px8a1x1Oh3T09O5atUqG/G667vamCrto5IxUVrWuXPnOGvWLOr1esbExPDxxx9nY2NjtxWwhmoumARBkE0sQRBEwIIgApYQCIIIWBAEEbAgCCJgQRABC47o7p5Pnd2++vp6LFq0CIMGDUJAQIDN89HijdUJ4y33gR2LAHD8ILyrY72xfXl5eSgoKLBJI+mXdnSH2HfFmMoZ2IeofVngZqe4uBjAf152aGlpscZG4iRn4B73a9gbz8ABAQEgiba2Nr8vmeUMrPIMfPbsWcyaNctq8LVo0SKYTCan1zdqTcg629xMiaGdO2M2Vz7QSvqjNqbOBtpZ+yz4OrbOrrUtZVqufzt+lI7P9evX8atf/QrDhw+HXq9HZGQk7rvvPnz44Yeq+u2snUrM+5QaHvpLF+1xF4/2S0KHGAwGxsfHKzL48tSErDPNzZQa2sGDN1+U9kdNTN29hIBONo5T2g64eCvK1fjMnz/fZRnws1mg0vnhL110/K67eLh9G2nJkiV270aWlZUxMTHRriBPTcg609zME0M7pW9IKe2Pmph6+paWv2Krti2u4uRofCzvFq9du5a1tbU0m808duwY58yZ0ylmgUrnhz910R4l8XAp4NTUVAJgUVGRTfqePXvsGuqpCVlnmpt5YminVsDu+qMmpt4K2Nex9aWAHY3PsGHDCIAzZszgiy++yIMHDyo2BPCFeZ/S+eFPXaiNh0sBqzH48tSErDPNzTwxtFMrYHf98ZVpGrrAOM6XAnY0PiUlJezXr59N/UOHDuUXX3zRKWaBSueHP3WhNh4eCbiurs6uoRZHSHjpoOCvcknyF7/4heprNbUCdpdXTUy9FbCvY+tLATvDZDKxuLiYTz/9NAcMGEAAnDBhQqcIWOn88Kcu1MbDoyV0UVGRXcWZmZkEwE8//dSrCeivckkyJiaGAFhYWMiamhq2tLQ4PfNZnCRaWlp8KmA1MXXpwqCyfb6IbWcIuD0XL14kAIaFhSnqt7dLaKXzw5+6UBsPlwJ+9tlnCYDJyck8dOgQjUYjDx06xOTkZL+ZkMGP5mZqDO3UGrMp7Y+amLqiK4zj/C3gadOmcd++fTQajWxoaOCGDRtszpDu+u2ufe7M+5TOD3/qQm08XAr48uXL7N+/v93pPjs7mwAYFBTkcxMy+NHcTI2hnVpjNqX9URtTT0zz/BVbfwvYWf1z587tFLNApfPDn7pQGw+3pnZnzpzhjBkzGBYWxpiYGObl5fHUqVMEwL59+/rchAx+NDdTY2in1phNTX/UxlStaZ6/YutvAZeWljInJ4exsbHU6XRMTU3lypUraTKZOsUsUM388Jcu1MbDrYAdsX79equdqOAbJKb+A53kJtlVY+jyUcrs7GyUl5fj2rVruHTpEgoKCrBixQoAQE5Ojjw07QESUxnDTnuZwdmzpqNHj0ZFRQW0Wq2MpocPrUtMe+6LKd1pDAPcvSo2depUxMfHQ6vVIiUlBUuXLsUnn3wiE81DJKYyhp12BhYEoXsjL/QLgghYEISbVsDd2eCsq9vm6sV3oXuNsZpyOmsMA3qDSAUZ25u1r0EyPbsW2UOUcZVrYEGQa2Dvlh0dlyCeGq05+66ra0Wj0YjHHnsMkZGRiI+Px6uvvgoAqK2txQ9/+ENER0cjLi4OK1ascPrLqMT0TI15nVKDNG+WbEqMz5qbm7Fq1SpkZGRAr9cjLCwMGRkZWLNmDW7cuNGpy9CO6UqN25Sawp0/fx7Z2dlWs7mf/exnMJlM3WIeKzap8+BU77PnTeGl0ZqnD8c7etNk9+7dvOOOO+zSt23b5rAMNaZnavoBFwZp3r436874rKmpiRMnTnSaZ/LkyWxubvb588RKx9Bd+9WYwl25coUJCQndwjDQk756rL3OeGgcCo3WPBVwRkYGT5w4wfr6ej7xxBMEwMjISIfpd911l8MylJieqemHNwZ6SgfWnfFZfn4+ATAqKopbtmyhwWBgdXU1N2/ezIiICALg6tWru0zA7tqvxhRu2bJlLscRnWgY6Elfe4SA3RmteSrgI0eO2DkXOEvv16+fR44NavvRETUGekonnDvjs/T0dALg1q1b7b67adMm649fVwnYXfvVmMINHz7c5TiiEw0DPelrjxCwO6M1TwXsrFxH6e19otuX4c4zSU0/vDXQUzrh3BmfhYaGEgANBoPTHxSdTtdlAnbXfjWmcN3JMNCTvvYIAasRZVtbmzXNbDZ7LXZ39akRsLtyvTXQUzPhXBmfuRKwwWBw6LHkSwErGUNX7VdjCteZAvbUvECJSV2XCdgXRmskGRcXRwD85ptvrGlHjhzxu4DVLKHdlavGQM9bAbeno/GZZQldWFhol9fi1+SPJbSaMXTVfjWmcL5aQvtqHqvta5cL2BdGayQ5btw4AuDChQtZX1/PL7/8kqNGjfK7gN2ZnqkpV42BnjcCdmd8ZtnEio6OZmFhIQ0GAw0GA7du3WrdVPHHJpbSMXTXfjWmcJZNLGfjiE40DHSUptSkrssE7Cujtc2bN9uV075sfwnYnemZmnLVGOh5I2C4MT4zm82cMGGC03xZWVlsamryuYCVjiEUGLcpNYVzdhvJ2Q+nv+exJ33tUgH7ymitra2Ny5cvZ2xsLPv06cMf/ehHNBqNfhewO9MzNeWqMUjzRsBKjM/MZjPz8/OZnp7O0NBQ6nQ6pqenc9WqVYrE64mAlY6hUuM2paZw586d46xZs6jX6xkTE8PHH3+cjY2Nqtrvq3nsaV9VX7r+tzJBEHrro5SCIIiABUEQAQuCCFgQBBGwIAgiYEEQRMDdBfEPE0TAgiCIqV1XIM/OCHIGFgRBBNxdroF9YdCn1Ejv7NmzmDVrltX8bdGiRTCZTE6vzZWayglds5wTOhn42aAPLoz0DAYD4+PjFZm/qTGVE7poLkkIupeAvTHoU2Kkt2TJErv3ZsvKypiYmGjXLjWmcoIIWATspUFfRxwZ6aWmphIAi4qKbPLu2bPHrl1qTOWErkFeJ+yia+COu9GWNLPZjJCQEOvxgIAAp+kajQZtbW0AgNbWVqxbtw7bt2/HmTNnbAzNtVotmpqaAAChoaFoampCXV0doqKirHnq6uoQExNj0y69Xu/WGL192YLcRur1WETaXtTO0tv/ACxduhTr1q1zWGZzc7PiHxW1t7uUlC3ILrTghsLCQut/a2pq0NLSgtraWrt8SUlJAIDDhw/bpHf8NwCkpaUBAD799FP893LL4UcQAQve300AAERERECv1+Nf//oXHn/8cbt8M2fOBAA89dRTKC8vR2NjI8rLy/HUU0/Z5X3iiScAALNmzcKmTZtw4cIFXL9+HU1NTThz5gwKCgowfvx4Cb7cRpJNLHjp76XUSO/y5cvs37+/Xd7s7GwCYFBQkE09Sk3lPPHOEmQXWgTsgZHemTNnOGPGDIaFhTEmJoZ5eXk8deoUAbBv3752dSk1lRMByy600EW89tprWLx4MbKyslBaWioBkWtgobuSnZ2N8vJyXLt2DZcuXUJBQQFWrFgBAMjJyZEA9SDkDNwbB93Ju8ijR49GRUUFtFqtBEnOwEJ3pbi4GFOnTkV8fDy0Wi1SUlKwdOlSfPLJJyJeOQMLgiBnYEEQRMCCIAIWBEEELAiCCFgQBBGwIIiABUEQAQuCIAIWBBGwIAgiYEEQRMCCIIiABUEELAiCCFgQBBGwIAgiYEEQAQuCIAIWBEEELAgiYEEQRMCCIIiABUEQAfdcNBqN3V9UcJTWHdspiIC7xcTxq0oCqgAAH61JREFUpI7uMKGTk5Oh0Whw4sQJm/TDhw9b26fRaPDVV1/ZHP/888+h0WgwZMiQbj02vflHQ87AvYB77rkHAOz+6uDBgwcBAMHBwQ6Pl5WV2XxfCf/9k7USdBGw4G8BWwT64x//2OXxKVOmSBC7KzfzH81Wk24ymfjCCy8wNTWVYWFhjIiI4L333suioiKb/HDy1+ldtcnVd958801OmjSJkZGR1Gq1TElJ4dKlS3n16lWP/yh4Ry5evEgAjIqKYmtrK0myubmZer2eAQEBvHDhAgMDA9m/f3/rd1pbWxkdHU0A/Pbbb+3qNJlMfPLJJ9mvXz8GBQU5bZMvY+BJjJuampifn8+RI0cyLCyMOp2OI0eO5OrVq9nc3Nzz570I+D/Mnz/f5WTwtYDb2to4b948p3nS0tJYX1/vEwGT5PDhwwmAlZWVJMmKigoCYEZGBklyzJgxBMBTp06RJD/77DNrOxzVmZOTY/1/jUbjkYDVxkBtjJuamjhx4kSneSZPntzjRSxL6P+ye/duAMDatWtRW1sLs9mMY8eOYc6cOdZru47Xee6u9Vx9Z/Pmzdi+fTsSEhKwY8cOGAwGmEwmVFRUYMyYMfjHP/6Bl19+2W/LaMvyePLkyQCArKwsh8edXf8ePXoUxcXFMBqNaGtr67IYuCp/3bp1OHToEKKiorBlyxYYDAZUV1dj8+bNiIiIQGlpKV555RVZQt8MZ+Bhw4YRAGfMmMEXX3yRBw8etC43PTnjufvO2LFjCYDl5eV2x86ePUsAHDZsmM/OwO+//z4BcObMmSTJqVOnEgD37NlDkiwuLiYA5ubmkiRnzZpFAPzggw8c1rlz507F/fVVDNTGOD09nQC4detWu2ObNm2yWYHIErqHC7ikpIT9+vWzWWINHTqUX3zxhV8EHBYW5nRpZ/lotVqfCbimpoYBAQGMiIig2WxmeHg4AwMDrdeZ165dY1BQEOPi4tjS0sLo6GgGBASwrq7OYZ21tbVeC1htDNTGODQ0lABoMBjsjlVXVxMAdTqdLKF7yErD+v9NTU12x6dMmYILFy6guLgYTz/9NAYMGICvvvoKixcv9nt7nNHc3Oyz+mJiYjBy5Ehcu3YNBQUFMBqNuP322xEZGQkA6NOnD0aNGoUrV67grbfeQl1dHUaPHo2oqCiH5UVHR/e4GHS8d9z+v3IbqZsSFxcHALh48aI17fPPP3eYV6fTYfr06Vi3bh2OHz8OAKisrLQb9NbWVtUTpeN30tLSAACffvqpzbVbx48/bifl5+fbXP9asFwHv/TSS6rv/3ZlDJyVf+uttwIA9u7da/edoqIimzxyDdxNl9Djxo0jAC5cuJD19fX88ssvOWrUKLv806ZN4759+2g0GtnQ0MANGzYQAENDQ615YmNjCYAff/yx3fWxM5x9Z8uWLQTA/v37s6CggOfPn6fJZKLZbObp06e5ceNGjhs3zmdL6PbXuZbP3r17bY7v3bvX5vi+ffsUx9nVcV/FQG2M8/PzCYDR0dEsLCykwWCgwWDg1q1bGRUVRQBcvXq1XAN3ZwFv3rzZ7roqNzdX8e2OuXPnWvO0/55S8bj6zlNPPeX2GtCXAm5oaGBQUBABMCgoiNeuXXN6XKvVsrGx0ScC9lUM1MbYbDZzwoQJTsvNyspiU1OTCLiraWpqcrrh0dbWxuXLlzM2NpZ9+vThj370IxqNRrvJUVpaypycHMbGxlKn0zE1NZUrV66kyWSy5qmqqmJOTg5jYmKo0WgUTS533ykpKWFubi4HDhzI4OBg6nQ6pqWl8ZlnnuGJEyd8KmCSHD9+PAFw7NixDo9bdoYnTpyo6ofS1XFfxcCTGJvNZubn5zM9PZ2hoaHU6XRMT0/nqlWrerx4SVJD9vwHV7/88kt897vfxeDBg/Gvf/1LbmoLvYagntz4trY2nD17Fs888wwAYPz48TKiQq+iR5+B298CCA4ORkVFBTIzM2VUhV5Dj7+N1KdPH9xzzz3Yv3+/iFeQJXQPuwUmIyjIGVgQBBGwIAgiYEEQczwRsHDTCUxEbU+QhEDojsgGpZyBBUEEfDMv/65fv47FixfjlltusVqrWnjrrbeQlZWFqKgohISEYOjQoVi2bBnq6+tt8p09exazZs1CeHg44uLisGjRIphMJqfLPaXlWr5vMpmwYMECREZGIi4uDs8995zDs5Pacp31ff/+/Zg5cyaioqIQFhaG8ePH48CBA3ZldCyvY1+VtkfpcllJnb11qdLrgAtjNjVGawaDgfHx8XZ55syZY/dQv6cmdo7etFm/fr3X5bozpWv/CQ4O5vHjxzvNqE6tOV5vplcLeODAgSwuLqbRaLQeKygoIAAmJCRwx44dNBgMNJlMrKiosDo3Ll++nCS5ZMkSAmBSUhLLysrY0NDAsrIyJiYm2k0wNeW2b+OoUaN48uRJXr16lXl5eQTAzMxMr8t11HfLq3mVlZU0m808e/YsZ8+eTQB8+OGHFb2VpLY9at5qEtGKgG0mgiNjNjVGa6mpqQRg9Y62sGfPHrvJ5qmJ3dGjR21emwNAvV7vdbnOTOmceUcNGjRIkZj8aVQnAhYB20wER8ZsaozWQkJCCMDO+K22ttZusnlqYmc2m22Wy74q11HfW1pauGbNGmZkZNiV2/Fda3SBUZ0I2J5efRvJkTEbfWC05mhzxdNyQ0JC/FKuo74vXboU69at86jPvoyfILvQHqPGaC0pKQnAf/7KX3s6/lttuf5qrzsKCwut/62pqUFLSwtqa2td/kh1plmfJ6aCsgt9Ey+hHaHGaO3ZZ58lACYnJ/PQoUM0Go08dOgQk5OT7erwhYmdo3RflUvS+reQdu3aZd3Ear9b3R5/G9WpqVOugUXANig1Wrt8+TL79+9vdyw7O9tqHOdJuWoE7KtySXLu3Ll237PsQqOTjerU1tlbr49FwE5QarR25swZzpgxg2FhYYyJiWFeXh5PnTpFAOzbt6/H5ULlX5rwtlzyP3+9Yd68eYyJiWFUVBQfe+wxNjQ0dIlRndo6e6uAbwpTu+7Ga6+9hsWLFyMrK8vub+4KgmxidSOys7NRXl6Oa9eu4dKlSygoKMCKFSsAADk5ORIgwa/IGdjbADp5Hnf06NGoqKiAVquVIAlyBu6uFBcXY+rUqYiPj4dWq0VKSgqWLl2KTz75RMQryBlYEAQ5AwuCCFgQBBGwIAgiYEEQRMCCIAIWBEEELAiCCFgQRMCCIIiABUEQAQuCIAIWBBGwIAgiYEEQRMCCIAIWBEEELAiCCFgQBBGwIIiABUEQAQuCIAIWBEEELAgiYEEQRMCCIIiABUEELAiCCFgQBBGwIAgiYEEQAQuCIAIWBEEELAiCCFgQRMCCIIiABUEQAQuCCFgQBBGwIAgiYEEQRMCCIAIWBEEELAiCCFgQRMCCoBKNRgONRuPzvL05Tp7GKkBJgZZPeHg47rzzTvzlL3/pNUEVhO48/zQk6aoyZ2zbtg2PPvpojwwgALjotuDDGEq8lcfDk1gpWkKTBElcvHjRKtq1a9fKaAhCV0MXAGDHLNXV1QTAkJAQh9958803OWnSJEZGRlKr1TIlJYVLly7l1atXHZbd2NjIvLw8xsbGMjw8nNnZ2Tx//rxN3qamJubn53PkyJEMCwujTqfjyJEjuXr1ajY3Nzss12Qy8cknn2S/fv0YFBRkc6zjxx379u3jjBkzGBkZSZ1Ox3HjxrGkpMRpvBobG/mTn/yEERERjI2N5fLly9nW1kaSPH36NAMCAhgWFsYrV67YlVFXV0e9Xs+AgACePn2aSsZHSQxdxcXTGKup19t50tDQwB//+MeMiIhg//79+corr5Aka2pqOG/ePEZFRTE2NpbPP/+8NdYkaTKZ+MILLzA1NZVhYWGMiIjgvffey6KiIpexvX79OrVaLQMCAtjQ0GBNHzlyJAHw9ttvt6Y1NDQwICCAISEhvH79utO+u5t/SuaP3RzwVMCxsbE26W1tbZw3b57TRqalpbG+vt6u7Dlz5tjlTUhIYE1NjXViTZw40Wm5kydPtplglvScnBzr/2s0Gq8E7Og7wcHBPH78uMN8ubm5dvnXr19vzffggw8SAH/zm9/Y1bV69WoCYHZ2tuJ2uYuhu7h4GmM19Xo7T2bPnm2Xd/fu3bzjjjvs0rdt22b9/vz58z0e97vuuosAWFpaSpKsra1lQEAAATAgIMD6Y1NWVkYAvPvuu13qR6mA3c0fjwV86dIlPvroowTAuXPn2uQtKCiwDuCOHTtoMBhoMplYUVHBMWPGEACXL19uV3ZiYiLLysrY0NDA0tJSDh48mAC4bNkykmR+fj4BMCoqilu2bKHBYGB1dTU3b97MiIgIAuDq1avtyh04cCCLi4tpNBoVnRFckZuby8rKSprNZp49e9Y6mR5++GGHZY8aNYonT57k1atXmZeXRwDMzMy05vvss88IgPHx8WxqarKm37hxw9r/iooKxQJ2F0N3cfE0xmrq9XaeZGRk8MSJE6yvr+cTTzxBAIyMjHSYftddd1m/HxUVRQBcu3Yta2traTabeezYMc6ZM8dtfH/5y1/a9H337t0EwCFDhhAAP/zwQ5LkmjVrCIDPP/+827nmav4pnT+qBdzxM27cOF6+fNkm79ixYwmA5eXlduWcPXuWADhs2DC7svfs2WOTd9euXQTA2267jSSZnp5OANy6datduZs2bbIObsdyd+7cqXhVoRbLKmTQoEEOyz569Kg1raqqigCo1+tt8k6dOtWuX++8847DX3J34+Muhu7i4mmM1dTr7Tw5cuSINe3ixYsu0/v162dNGzZsGAFwxowZfPHFF3nw4EG2trYqiu/evXutZ0SS/MUvfkEAfPvtt21+qB566CEC4EcffeQTASuZPx4LODw8nMXFxXZ5w8LCnAre8tFqtXZl19XV2ZRTW1tLAAwNDSVJhoaGEgANBoNTIel0Ortya2trfSLglpYWrlmzhhkZGXZ9bN+f9mWbzWabJaOjOi3LrvT0dGvanXfe6VAY7sbHXQzdxcXTGKup19t54iymjtItlwYkWVJSwn79+tmUP3ToUH7xxRdu41tfX8/AwEAmJiaSJEeNGsUBAwawra2N8fHxHDt2LElyyJAhDAwM5LVr13wiYCXzR/US2mw28+2332ZISAi1Wi0rKytt8up0OrcD42i9742ADQYDATAsLEyxQNUK2PKrq+Q6ylnZztLHjx9PANy/fz+PHDlCABwxYoTTDQtfCNgRnsbYk3o9nSdKY+oo3WQysbi4mE8//TQHDBhAAJwwYYKiGN9+++0EwDNnzjAgIIDz588nSf7oRz9iUFAQ//3vfxMAR48eragtSgSsZs6q3sSybLKMHTvWZqJlZmYSAD/99FOfLv8sy7vCwkK7MrZs2eJ0eecMjUZDAGxpaVHUzpiYGGv9NTU1bGlpsU5UbwVcVFREAJw2bZp1GbZlyxbFPy7eLGUdLaHVxtiTej2dJ76Y7O2X2e1/kFzx85//nAC4cOFCAuBbb71l3UUHwCVLlhAAn376aUVtcTX/OkXAzc3NvO222wiAr7/+ut1A9+/fnwUFBTx//jxNJhPNZjNPnz7NjRs3cty4cXZlJyUlKdrEio6OZmFhIQ0GAw0GA7du3WrdoHC0weKM2NhYAuDHH3+s6FooOjqaALhr1y7rJlb7nVxvBqCtrY3f/e53qdFoGBgYyAEDBthsaimd3O5i6C4unsbYk3o9nSeeTvZp06Zx3759NBqNbGho4IYNG+xWCa54//33rfk1Go117+fbb7+lRqNhZGSk070FR210Nf86RcAkuX//fusuYFVVlTX9qaeeUr00cnR7oP2tCLPZzAkTJjgtLysry2bSuxOwoy16V8ydO9cuf/s2ezsA27dvtx5vLxI1AnYXQ3dt8DTGntbryTzxVMDOyu94F8XdhiUAjhw50uHKBQCrq6sVtdHV/Os0AZO0noVmz55tk15SUsLc3FwOHDiQwcHB1Ol0TEtL4zPPPMMTJ07YlW00GrlgwQJGR0dTr9fzgQce4Llz5+wmWH5+PtPT0xkaGkqdTsf09HSuWrXK7ozlTpRVVVXMyclhTEyMdTnjCsuDAjExMYyKiuJjjz3GhoYGnwn4zJkz1h/D9vc/1QhYSQzdxcWTGHtTr9p54qmAS0tLmZOTw9jYWOp0OqampnLlypU0mUyK4zx8+HAC4NKlS23SLcvn9pcM7troav55Mn9cPgstzyT7n82bN+OnP/0plixZgjVr1kgMBVXI64RdSF1dnfXNrscee0wCIqgmSELQtW+lAMD06dMxYsQICYogAu5JhIaGIisrCwUFBRIMwbMTAeUCShDkGlgQBBGwIAgi4E66/uhF5m7iJSYClonbS8QkYu88ZBe6k5C9QkHOwIIgiIDVLAU7LgsdLQ1NJhMWLFiAyMhIxMXF4bnnnrM743b87vXr1/GrX/0Kw4cPh16vR2RkJO677z58+OGHXrWpubkZq1atQkZGBvR6PcLCwpCRkYE1a9bgxo0bNmWpyeurmPmjzt6+tBNUWgp5YkLW8buemq25+o4aczpPjey8iZm/6uzVc1RC4NkL5e2PKTEh61iON2ZrztqkxpzOUyM7b2LmzzpFwILHAlZiQtaxHG/M1py1SY05nadGdp3VPkEE3GkCVmJC1jHNG7M1Z21SY07nqZGdNzFTW6fgHtnE8gEhISEON3FcMWXKFFy4cAHFxcV4+umnMWDAAHz11VdYvHixXzfklLRPTd6uaJ8gu9CqJ1Zra6vPy9bpdJg+fTrWrVuH48ePAwAqKys9btOtt94KANi7d6/dd4qKimzyqMnrq5j5s07ZhRYc4isTMvjQbM1Zm9SY0/naLNDX7RPkGtgn+MqEDD40W3PWJjXmdL42C/R1+2QXWgTsE3xlQgYfmq25apMaczpfmgX6o30iYPfIC/2CIJtYgiCIgAVBEAELgghYEAQRsCAIImBBEDpDwD3xWdZjx44hLS3NbZq3/fZVbHr688JqY6skBh988AEGDRrUZX5cf/vb3zBq1CiEhoZa63eU5qv+d+kZ2FmAu2pivvfee8jNzXWb1lsE1hXx9pZnn30W7777Lv77cFKn92nhwoX47W9/i8bGRmv9jtJ83n9/vH7naR500VM3ycnJPHnypNs0b2Pgq/6hhz+d5E1sncUgICCAbW1tXdanwMBAu/odpfmq/359nfDtt9+2Lh1uueUWPProo6ipqbE5O3X0S3KWbkn785//jGHDhkGr1SIlJQVvvPGGTZ1fffUVZs+ejX79+iEkJASjR4/Gu+++6/bMePz4cWi1WnznO99xmbZx40YkJydDq9Vi2LBh+POf/2zXRnf9UBobJWd0d/Fwxp49e5CZmYnQ0FAkJiZi8+bNduUOHToUWq0WQ4cOtfu7TRqNBm+//TbGjBmDsLAwhIeH47777sOXX36Jjz76CHfddRf0ej3i4uIwd+5ca9+cxVbJuG3duhUpKSk2se/Ypra2NgQEBNjEyt2YWeJx++23IyQkBElJSXbxUBqT1tZWa/2WT/s0V3Or252BR4wYwQMHDrChoYFVVVWcO3cuH3nkEY/PUACYmJjIsrIyNjQ0sLS0lIMHD+b//u//WvOMGjXKrT2No/KXL1/OFStWuEz78MMPmZSUZK2/rKyMiYmJds9FK+mHq9gojYuSeDjiww8/ZHx8PIuKitjQ0MD/+7//46OPPmo9vnPnTiYkJPDAgQO8du0aDxw4wISEBO7Zs8em7uHDh7OkpIQNDQ28dOkS58+fz5iYGI4YMYL79++3Se/4ckbH2Lobt48//tgm9pa+OopJx766G7PDhw8zKiqKb7/9Nuvr63ns2DEOGTKEe/fuVRUTZ2OndL51q5cZAPCzzz6zSbt8+TJjY2O9EnDHgO3atYuTJk2y/rtPnz78+uuvVbfXkQtGx7QJEyawqKjIJs+ePXs8ErCr2KgRsLt4OGLcuHH861//6vT4+PHjuWvXLpu0nTt38q677rKp+/jx4zZ5LG4alZWVduntx91RbN2N28SJEx321Z2AlYzZvffeaxePo0eP2viZKYmJGgErdV3pUgE78nZSOsGdpdfV1dmk1dbWMiYmxvrv5557jnFxcVy4cCELCwt58eJFt2397LPPOHToULdp0dHRDuv3RMCuYqNGwO7i4QidTseamhqnx6Ojo1lbW2tXbnR0tKI+uBt3R7F1N24xMTFuY+8oRkrGLC4uzuFrjYGBgapiolTAjvrfLa+BAwI6f3P7d7/7HQ4cOICUlBQUFRUhLS0N69at89vus6c7zWpj09bW5rMY6XQ6n+yqO+uDu745iq27cfPljnLHfhiNRjQ0NFh3ri2flpYWv4y/P3bfO20Xun16UFAQW1pa7PI4S3e2ZJw4caLTdpw7d46RkZEu25qammq37HOU5mg5VlRU5PSs66ofrmITGxvLy5cv2xyrrKxUvIR2FQ+SzMrK4nvvvedyCf3BBx/YldtxCe3puDuKrbtx8+USuuOY3XXXXSwrK3PZHiUxUXoGVtL/brGEdpc+ZMgQhxY1ztIBONzI+Oijj6x5HFnUOPJmtnDixAkmJyfbHHeUZhn45ORkHjp0iEajkYcOHWJycrJTAbvqh6vYPPLII5w7dy4vXrxIo9HITz75hCNGjHA4Wd3Fw1F9paWlHDhwIIuLi51uYg0ePJilpaU25XbcxPJk3J3F1t247d2716NNLCVjVlJSwszMTB48eJANDQ00Go0sKSnh9OnTVcVEiYCd9b9HCvj9999ncnIyAwMDFaUD4J/+9CempKQwKCiIycnJ3Lx5s035xcXFnDRpEkNDQxkXF8c5c+bw3LlzTtvwwgsvcOnSpTbHHaVZeP3115mYmMjg4GAOHTqUr7zyCrVarar+uYvNlStX+Oijj7Jv377UarXMyMjg9u3bHU5Wd/FwVt/777/PjIwMarVaJiUl2X2vfbkpKSncuHGjV/e4LenOYqtk3DZt2sSkpCRr7F9//XW3AlYyZiRZVlbGyZMnU6/XU6fTcfLkyTxw4ICqmCgRsKu51a0E7A/88eDCbbfdxmPHjrlNc0ZFRQWHDx9OwfN4dzZdOWb+6n+vFbBafvjDH/LkyZNsbGzk0aNHmZ6eLg6K3ZzeMGby94EVcu+99+KRRx7BuXPnMHjwYOTl5eHnP/+5BEbGrEsRUztB6MHI+8CCIAIWBEEELAhC7xRwZ79Er7a+7v6Sf3dzuBAUjlt328TSaDQePf/q6fc6q52d3T5v+5OSkoI333wT48eP7z1i6OZjJAIWAStuX2BgIFpaWnrV2bcnCrjTl9CuHBicuVlMmDABH3zwgV1ZV65cQUxMDGpra90uVTumK3GCUENVVRWefPJJ9OnTB8nJyVi2bBnMZrNNHl+4iribgEqcOjx1uHCHr9w+HDmW1NbWom/fvjZjbaG2thZxcXHWY+5cNiz1jB07FuHh4QgMDHTrpOJJmZ1CZz854s6BwVGTPvroI4dv2vz2t7/lggULPHqnVomDh5qnwxITE7llyxY2NDTw/PnzfOihh/jcc8/Z5PeFq4i7Nrmrw1OHC3f4yu3DlWPJT3/6U/7ud7+zq/vll19mXl4eSWUuGwB466238sCBA2xsbHTbZ2/K9PtTip0tYHcODM6COHr0aJtXsW7cuMGEhAR+/vnnHgnYUwcPpRO8traWQ4YMcfsKoC9cRdTU4enree7wlduHK8eSkydPMiEhgc3Nzdbjzc3NHDhwoNUkTonLBgAeOnRI8Zh6U+ZNJ2B3DgzOgvjee+/xhz/8ofXf7777Lu+++2677ykVsCcOHs7Kq6mp4ZNPPsnk5GSGhIRYnR2CgoJs8vvDVaRjm9zV4anDhTv87fZhYfLkydy+fbv132+99RanTJli/bcSlw0AvH79umIBe1PmTSdg8j/vRq5evZq5ubmMjo7mH/7wB7dBbGtr48iRI1lVVUXyPy9jv/vuu4oE3Nra6jDdVTvUCHjGjBlctGgRT58+bR3ExsZGu1cJldjgeNsmd3UosZrxRMAxMTEeCbh925T8+H7wwQc2Z77MzEzu3r3b+u/Q0FA2NDR4tHpylu5NmTelgNvT0YHBmZsFSW7bto3PP/88KysrOXDgQN64ccMugEpdLdy1Q42A+/Tpw6tXr9oc3717t52A/eEqomQJ3b4Ofy2hO8vto7W1lcnJyTx8+DDLy8s5ZMgQm7O2EpcNZ/U4m3velHnTCdidA4MzNwvLdW9mZiYffPBBrly50mEAlbpaKHHwUDpgd999N59//nnW1NSwrq6OO3bs4C233GInYF+4irhrk7s6PHW4cEdnun2sXbuWOTk5nDNnjt0KRYnLhrN6nM09b8q86QTszoHBmZuFhQ0bNlCr1fLbb791OMhKXS2UOEEoFfD58+c5c+ZMRkZGMiQkhOnp6SwsLPSLq4i7Nilx6vDU4cIdneX2cfXqVUZGRjIyMtJu5UO6d9lwVo+ruedpmf6mx71O+Nvf/hanT5/Gtm3b5Dm6m+BBBME7etQL/YcPH8b//M//4Pjx4zJygtCTBKzRaDBgwABs27YNgwYNkpETBIgjh6LHLh08vdar2tQd4yGIgAWhxyMv9AuCCFgQBBGwIAgiYEEQAQuCIAIWBEEELAiCCFgQRMCCIIiABUEQAQuCCFgQBBGwIAgiYEEQRMCCIAIWBEEELAiCCFgQBBGwIIiABUEQAQuCIAIWBBGwIAgiYEEQRMCCIIiABUEELAiCCFgQBBGwIAgiYEEQAQuCIAIWBEEELAgiYEEQRMCCIIiABUEQAQuCCFgQBBGwIAgiYEEQAQuCIAIWBEEELAiCCFgQRMCCIHRz/j+zxgUUmetAAwAAAABJRU5ErkJggg=='/>
{}
</body>
</html>'''.format(pdf_name, i, obj_string)
print("Saving HTML")
with open(os.path.join(TMP_IMAGE_PATH, pdf_name+'.html'), 'w') as ht:
ht.write(html_string)
os.rename(TMP_IMAGE_PATH, TMP_IMAGE_PATH.replace('tmpimage', pdf_name))
print("Converted document is located at "+TMP_IMAGE_PATH.replace('tmpimage', pdf_name))
input()