bash shell学习-实践 (自己实现一些小工具)
The poor starve while the rich feast.
"穷人饥肠辘辘,富人大吃大喝"
一、简易单词管理程序
简介: 本程序主要用于记录和查询英文单词信息,可能没有什么实际用途,也可能代码中有一些不太简洁的实现,主要是因为编写本程序的目的是为了熟练一下shell script编程的基础知识
功能: ①单词查询; ②单个单词导入词库; ③从文件导入词库;④统计词库信息;
程序结构: 一个Bash shell程序 explain (解释), 一个词库文件: .word_lib.txt , 保存在用户家目录下的 .word_manager 目录中
文件内容: .word_lib.txt 是词库文件,保存所有单词信息, 每行一个单词, 包括: 原型, 中文意思。所有单词信息已经过排序去重处理;
程序执行流程: 解析命令选项-->根据解析结果执行对应的操作-->退出程序
程序介绍:
用法: explain [-afcb] [单词|文件名] [单词信息]
选项:
不带选项: 查询单词并打印出查询结果,结果格式: word 中文意思
-a : 将单词信息导入词库,后跟单词和单词信息
-f : 从文件导入词库,后跟文件名
-c : 统计词库中的单词总数
-b : 浏览词库的单词信息(通过more命令打开)
所有正确的命令格式:
explain word #查询word指定的单词
explain -c #打印出词库当前共有多少个单词
explain -b #浏览词库的单词信息
explain -a word wordinfo #添加单词信息至词库
explain -f filename #将文件导入词库,要求格式一致 说明:word可以为英文单词,也可以为中文,只要词库中某一行包含word,就会打印出该行,所以查询结果可能包含多行
退出码:
:程序执行成功
:没有输入选项和参数
:输入了未知的选项
:-a后面没有跟着单词和解释
:-f后面没有文件名或者是不存在的文件
源码如下:
#/bin/bash -
#===============================================================================
#
# FILE: explain.sh
#
# USAGE: ./explain.sh
#
# DESCRIPTION: 简易单词管理程序
#
# OPTIONS: ---
# REQUIREMENTS: ---
# BUGS: ---
# NOTES: ---
# AUTHOR: Aut (yinjing), autyinjing@.com
# ORGANIZATION:
# CREATED: 2015年06月29日 :
# REVISION: ---
#=============================================================================== # 可执行文件的查找路径设置
PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
export PATH # 相关的全局变量声明和设置
home_path=~/.word_manager #相关文件的主目录
lib_path=$home_path/.word_lib.txt #词库文件的路径 # 相关目录和文件的设置
if [ ! -d "$home_path" ]; then
mkdir $home_path #~/.word_manager
touch $lib_path #~/.word_manager/.word_lib.txt
fi # 相关函数实现
function query() #直接查询单词信息
{
ret=$(cat $lib_path | grep "$1")
if [ -z "$ret" ]; then
echo "$1 not be found!"
else
echo "$ret"
fi
} function update_lib() #对词库进行排序去重,目前还没有想到更好的方法,只能利用临时文件
{
cat $lib_path | sort -fb | uniq > ~/.word_manager/._word_lib.txt
rm $lib_path
mv ~/.word_manager/._word_lib.txt $lib_path
} function print_count()
{
ret=$(wc -l $lib_path | cut -d ' ' -f1 | grep '[[:digit:]]')
echo "当前词库共有$ret个单词"
} function add_to_lib() #添加单词到词库
{
word=$\ $ #将新的单词信息保存为一整行
echo "$word" >> $lib_path #~/.word_manager/.word_lib.txt
update_lib
echo "成功将 $word 导入词库!"
print_count
} function add_from_file() #通过文件导入词库
{
cat $ >> $lib_path #~/.word_manager/.word_lib.txt
update_lib
echo "成功将 $1 内的单词导入词库!"
print_count
} function browse_lib()
{
echo ""
more $lib_path
echo ""
print_count
} function print_help()
{
echo ""
echo "用法: explain [选项] [单词|文件名] [单词信息]"
echo ""
echo "选项:"
echo " 不带选项: 查询单词并打印出查询结果"
echo " -a : 将单词信息导入词库,后跟单词和单词信息"
echo " -f : 从文件导入词库,后跟要导入的文件名"
echo " -c : 统计词库中的单词总数"
echo " -b : 浏览词库中单词信息"
echo " --help : 显示帮助信息"
echo ""
} # 主程序部分
if [ "$#" -lt ]; then #首先判断命令格式是否正确
print_help
exit
fi opt=$(echo $* | cut -d ' ' -f1 | grep '^-') #解析选项
case $opt in
"")
query $
;;
"-a")
if [ "$#" -eq "" ]; then
add_to_lib $ $
else
echo "正确格式:explain -a word wordinfo"
exit
fi
;;
"-f")
if [ -f "$2" ]; then
add_from_file $
else
echo "不存在的文件 $2"
exit
fi
;;
"-c")
print_count
;;
"-b")
browse_lib
;;
"--help")
print_help
;;
*)
echo "未知的选项,输入 explain --help 查看帮助信息"
exit
esac exit
使用截图如下,笔者已增加了文件的可执行权限并复制到/usr/bin/,所以可以直接输入程序名来执行命令
空的词库:(不知道为什么图片和文字之间的间隔那么大,并没有空行~~)
添加单个单词:
从文件导入词库:
查询:
篇幅有限,错误的命令提示就不发图了
二、回文串检测程序
程序说明:本程序用于检测一个文件内的回文单词,并将所有回文单词按照每个一行的格式打印出来
用法:match_plalindrome filename
输出:按照单词长度递增的顺序打印出所有的回文单词(默认检测长度在3~20之间的单词)
核心思想:用正则表达式中的'(.)'匹配任意字符,再用反向引用 '...\2\1' 匹配前面的任意字符达到检测回文串的目的,详细内容参见下面源码
说明:程序默认将 空格、,、.、?、:、! 作为单词分隔符
程序源码:
#!/bin/bash -
#===============================================================================
#
# FILE: match_plalindrome.sh
#
# USAGE: ./match_plalindrome.sh
#
# DESCRIPTION:
#
# OPTIONS: ---
# REQUIREMENTS: ---
# BUGS: ---
# NOTES: ---
# AUTHOR: Aut (yinjing), autyinjing@.com
# ORGANIZATION:
# CREATED: 2015年06月30日 :
# REVISION: ---
#=============================================================================== # 判断命令格式是否正确
if [ "$#" -ne ];
then
echo "Usage: $0 filename"
exit
fi # 全局变量的声明和设置
filename=$ #要查找的文件名
tmpfile=tmp.txt #临时文件的文件名
declare -i count #回文串的重复部分长度 # 由于原文件中的内容可能不是每行一个单词,所以这里要使用一个临时文件将原文件的信息转换为每行一个单词
cat $filename | tr '[ ,.?:!]' '\n' > $tmpfile #将所有的标点符号及空格替换为换行符
sed -i '/^$/d' $tmpfile #删除所有空行 # 默认查找长度为3到20的回文串
for ((len=; len<=; len++)) #循环查找各个长度的回文串
do
basepattern='/^\(.\)' #基础模式
count=$(( $len / )) #计算重复部分的长度 for ((i=; i<$count; i++)) #设置正则表达式
do
basepattern=$basepattern'\(.\)'
done if [ $(( $len % )) -ne ]; #判断字符串长度是奇数还是偶数并设置对称轴
then
basepattern=$basepattern'.'
fi for ((count; count>; count--)) #设置反向引用
do
basepattern=$basepattern'\'"$count"
done basepattern=$basepattern'$/p' #添加打印参数 sed -n "$basepattern" $tmpfile
done # 删除临时文件
rm $tmpfile exit
运行截图:
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAqsAAADaCAIAAAAOmJzrAAAAA3NCSVQICAjb4U/gAAAgAElEQVR4XuxdB3wUxfff3est19J77wmEHguIIAoCPxXBn4oKiP4UQf8/sWCXYgWxi4Bd7KAoCvwUu2CoIYUkpPeeS67X3f2/vUu5XO42B4hGnPnwIbdT3rz57uy8N2/ezOC7d++22+02m+3555/HUEAIIATOPgKU3L5kcXkan3ZVRfTwt7yV2HF13fsXt+i3xV+fr75xaUU6j+pNtRE7NqfkmTm++CIF5C3PHLlSTO59bPSrLWJf2TAckyqtUqK30t5sDqJTy0u7r/jJBD25N+Kaz2Os3srTOB2WoA/tY5jJYsdrKmU9GDZ65Yl1yTpRoWr+q6ndg2l7o4RxeRTuwO007jUVRSIEEAJ/JgLcP7MyVBdCACEACNA8KjVdm96HBWEjLrqwrTPSCBHiFN0MmeOitJ5AN6RCOKAN+NQA/ISU5JMLHj0OioJ7fmGn8I6N6XPiDBB5/IQCF5BCt2TSxrE7hTrFp2YtL3Uvy7Fynrh33P44w13JOshgzta8t/mAqyi/h7/qoTH5dmIoY2SIZf3aY+HvJN5wILhXwRmaCcUgBBACfxYCgzQAikvNXnP89kBL4bOZD1UG/Fk8+FUPTdBxF7fcMqM5W2GjNIL9u6JeOxBsoLGRzLNfDfv7ZJLMrf94dmM/v9vuG/dJD9+DfSrC9PDK4vO6BWs3ZBw0j2j98gx7Djsa7Kku0HgG3ksfxk+/9WQSn5p7bY0rkjO+c7nzF2En3n4jOfO2srGDZ8ucnK51lzeJ3HCHCXqEU65Pvu1kkn2wolAqf3BHjMmZGadxQ7fAgNk4YgcUxylcb+GYe/i8HE2u0zAwduWJz9zIws8dD459p1MwOG7giZY4rltUETQkGSjbh0S6IugAWzCGNXUJzob4BxyyVpY8laytez3lzmPqM6+CFpHjLmybEmn89v2EYm8KjddWnmG/8kqzP9KffuWLgj9l/4DvF8dS7y9aH6/XvpV0Y17Qmb8FX835Q+LPpL3Q3+IuaVk6tWWUmjGcWStljzyfUep3P/HF/+n1Ohe10yg7osfofoxA/GcsrnxmYgfRIvr+RIg8s/vCmyrDHfg9B4NsvoAcwfGUgFr89JGrJY5DT2WvrZHCBOvyhwqXhZn4RcrFr6Y2U7jHtwpN4Rq5j68ad9DKzKtYUh2p2s/uPiHta7ujh1+Wr9r+ddRRPQ/i+ut1pYMxtq0iYO8XMTtqpf58qI5Gyc/5Kj6PHp3Z7S6B3JEWpWlzpQ5a6pgeYjlY28/ICH4Zp8saOxrsqa467VL7tItaopzC/n+7I7uzuxfE6akC1XttwitmNKvteF2NNILEMe4g2zqhtGVGM1P2oUEcZk4YHCvV8fo1ArA0fLp69KcYFn5H2eZRGsvO6Bv3Rlh51JzVx4eSghjCQQwV5BAjtHKquVQsj5p0c8VUJfP9iRrF967POhpge/CRgvP5VOO34ScHj4OUkJw4u/GaSe0pAQzJwDtL3y6TP7UppdzhxU7glRl/Iqlgy03JWp6e994JhT/9eViaZJD51qtro0ycA0T8sJn/nAz+9CtfnPhT9p/z/bpQOpP2iqa2vnB1LXxfPfXSOiuhpPEzNdM5eTqTXncaZf8eGoDw/PY1EzuwI4G3v5VY7yBIqf0/a/MXXFWfdkxd4MfSo69PYoTEqy9rAvHPNXCfezcRxL9XrmBe5TXeFTk0ta1F5BCTEQpb5tTWnDFdG9eN+lY7MF+3tguhoqBQc3CadlFCse3hMV8Omc0Prc56TL3hmJqU29euPzx2aLIzxnwo8O0k3fhu/vuNvhekfZT9e0Wzo8Ge2t/SZKcJnWPhHPguvFJmBw3AWKTYUawcAxqADzgcx9QPtor7xxo8pWf1zKb+zsErka/+NtLcX1bLcxkAfBDDuKO6bwy0QOqRp7NWV8vgB5mm/fS/JwLbhcsfzznp8NnrQCkfHcsoInV6Xkyk6cl7iw7I7RP4lKBcvuaXUHfVgebQuctLH07WQS9tsxHBfKpNy1NHG5TQBocvvk4nPvji1lQMM/4UWmD9Q4bi0+HhbJfxs195ZcOfsv+c79cF0Wm3F/p/9gXt0M/0n8Yt2Rc2VFf2+gpGYKR3DcCotC28t/jKJJ3YyN3/Sdz6vKBe/yACC5rYsfSyxolhZg6NaSrkX2/vnUG6bF/LVNaXX06Lv6JuZoyR51EWw3iJuiXz6qYl6GEG2VUi3/5J/DctInAJirql/LVxneIy+bUvZLQ7tXdSaXvsqSMTCezHNaPXdwquvqJeauBtLJEv23g4k091mzldnUJrjOHiYEtBW+/C5YjieaPf8o+KMj44uwGanLc1eZ+Oman3B+vnMdfujfDVt1hShe3CZ9eOggkWJ8aw8p4TF8rtd81p2L8tQd9HOm9zyoYGCam03r8ufwqfmhFpctcAeGO6nru5IrpOsubl9GO+HdDcWYXfHpaJ3L0R9X1aBXvfoHjUFWvzb1FZjz2d9RgIIQLLvL/wqThD1+spi46psWTda/cUw0S5dFPqqnwVKELB82vfnN4srpcseybLY67pwRLzSGAhue03z2gaF2YGcAkbp+Wn0BXbYwZkJMgMX73dV4/1Us3pRHFMnG27os+/pibhVErTPfyifmBF5NULK92ltCNVl/Sh4L1299V8n9Rhan7V/FqXppYaY+RWy0AiS2IMYLoh2kSt3sQ/YAiOh9GgtVg5W5/JIjj0z0buqtX550eaJoClysTdsCW5dnBBMsR8rVPR2fnY6B8XVr+utD7zeE45TnP/UAMAKXFck9uOUdin+4Ndg5XsyroPZzZ9vCNm0hX1SXre628lhSysmh1kqfgo/oGfQiEPHmO4bV7dmChjqITRRLTVsj3bYz+ulMGCiqusCzhSTD708kHX7/KNGSvL5K7ftNOwsWBie4qc+UatLeItGzO+1Q58wiz9ytcr8fql5O2Mfu6XUFjxHDawtGjYsqf9/TKUcUye03XzzKZJMQYY2z0MMC7K+i+iXw+2LM7tCCToriOBz76bUOJS1HzLlGHfINTsXaYM29ozGK9ctEEDCBQyS28N9RLPIdp3i9j5GqbXsY6EzbMboLe76PvqsV5r926Fm3hL+TVJOouF45A4Ji6qmOdc54CguLRpy+KK80D8m7ggTlTJ2htXFS6NGJhmAC7L7yqZG2gtqJJ5lMUS9M/eVzw7Qd9RpPy1SqZO1y5bVThHYcNorGZfWCuGmVK0Fyt6KxLldIH4lzRIPm8R4Qn62TK7Ni8wfUFtNoadsHAUEkd1gQq+2owgZvriCiOK536u2H+QPPKyJRUwcbF8F76x7I8xXbrXSNZJX9wF0hPjjNIk9/mW92fA4cN1hg7TwJwJFrcyZjbF8ShOov6aKMY3zc9ANkv2F6oOlirchat7Wba+wVJHRcDqfeGQnnVD5VSpnYo1PDS9GR4/eTtpePGPYfzc9lduqswNMzfmq/cdCsxrEHNlHkvlmK+e47PHsnDrXxINnR7kpYWbX6DqALd6mf32u088MgF+YsqZTc/cVQL9fPhAYDHzahcHMp+M6z21G7kA8g2LKuO4fljBcUx5adNNyt4vLiSnSwGDAYElZmuAYFuxguXdu/oNbeC2RhnuXlF6fl/Xcogddz9Q+H/Tm1OkbqMih3ZJxbhkHayY8roFHQ6cthMuH8Phm+lfDkFO16VCUnBc/W33IMeFf8+rs1TJ7ArbzXefmG7g1eNY+tyGbKcfAhFjuCxRZ20WHzwSmNcklsfrr/u/E7Oc4tzRJDlQqMqrZIwiEKqLlYcKVYeOq/L7dHRQnmbdW/zIjCYQ/w49r9vGEYSZwgd/Yj771XAt6v1S1NbjJ+UGiWPc9dWrUnt8WmPcqLG0aLg6sTP5fsUXtW697eTUGANVLymoCOjyVpnsyvp7z2/XFyvgs1WP61x9SbPLJjmsTGF5g2fyhZ52e8low8rlZY/efnK2mpE+CfPqHllexvyb0ezSu4dtkTd4mLhheh3rSDhMWV9VwijkNYlv4r79TOanGuGVa/KXKK1To4wfdgkcctstc+qhQN0HCff8EmISkDNWFt8VY7z68oaPt6TAviBXELWJHn0ma7+FM+3R4/8NNbvKQp+esKA2EcOqtiSvPBJIEthXd5Suz+pedEH73q8j6Xrpx62i/ws1/2ts147vwm1cOndKG1Cr3hfeQOJBOV0wKdnTLZgsJPWfxb45SvNcsq6tQwDTClnAwGg+onj2iurQSOWlzSsiTOIm8QNfRuuH6PiCq+o+v6rOYeQ2lwd8szNmD9hL3Eiwp/ZnNFbJQLAEye0RAvJoH1pjrq9+3IFHJOpDCdp6KHBr3cCCPfiLnTwQZIoxKDWCvc2+lvuHNgWzHFE/fWSYNQKvfcMLLfcoGmv5KmprluaWEMtd11WHRJlgSVb7RfS7TX6tMoRO6IDPUpivenhTCjMP9Ra89hz2Hnum3iccGr4jq8q6dFEFzKchBMfrwUUOgkNt7d8j4I3ZgThRbtuzk5nPpHNX1KFpzbPE5NFP45IXVyQk6p68ov62z2O17GoAjemPqndP7MytkWrHd8Yn6idI7Lu49L/iGdv+L6UKXxZ6nMQ7OHSggLz/2SO93FBY0a7or/nU4pmNoWrrtAW10+fVvfnA2C+ctgqiVfR1ixjWubJvqALNxqbnpgZa8jqF7Nyxt90jlebSF13aDArML9+Ge+xIJH4Leey78CdW56cauS++kkqtPPFAhCkERLWVoA8HLdwfogdPC5i28qi5a/L/o7ZeEmHcpVWAcfipQ4GOaMObDxeCH8BHm5PzBq8sSCa3LYsygmvFjo0Z71YzZgNhiEU12IbntV/52S5Ri+ihZ7MOmrihC6u2Xtg26ZJmZZlCM2SI8MTBd4uGrfe0v19S6lh8VR2MFC0fxa34Mcza5wk4tMa8l9KfLlbgk9u+WFgVmN2t3h3VIGOTKa7m+nqDtB1nkSnDfqGn3V5aaZuSrelXyARxerB+QRDT2AvfhhtYpaSvIciF1TC9jnUkHKbs0JfRF+NdAyh/J/Ez2FiMY6XdfExpFQmZrwSPNI3n0jwd7+3fgyw0Rlg4+/ZGLv/PSSzeEM2jevp65/GP4g8YuDiONZsY4q6yYA+YFsMYoW0pupucy4dcMTPCKOJ1oLHbHPiv34ffdX1V0OS2uB/DSkPNV4eZwMz4caESZguxsQawl5bL7TMxrLhBIgOHAArrMHKhvBD2Fve1ZOTw7NpuxYwp9xVf72alaHs//u6jge4DX2pWN7Dfc0xdYRtkjKHaRQWVAVzYNSYmo8NN0Tma5ela/qM5O+F1wGjFmtqHR99fG+GalIvBoaxvYiaL17sW8nv2RCzbGeOhfJh/DLvu92CelbD80Zu2vfYNT4aHPENP2/lm8kUPFiaN67oWzHeNknv3hfdOXYdk9ojoqZVhaVpLjubl5aW7DwbtL1Q2Dlkk9tpzhumxw9XLno7Dd+TM4fIDAIvAp1uTwxdVXsCnNPmqvZUBU+bXujQDX3T4OV3P31QFipuwMmD1j2EXT2PsIni9ZM3XUe/ObpDOaF5v5K3cGzFUrXQnSDVKXnts9FsYNj7cdH+E6drxnYfk9kkELamX7GUUJy8BepDQQRgxKojGftfxJ6msXDP391+Dy2gs0krs+yHsvAvb4nkUN1/9U5/fCfg57n4uA7uuevGYLpAT1jjDA08e6/g59PFPYsGnx0sdpx5FxeqvCzGDJv1RvafzafURNch4GCtEDZJCEzfZOWBwnDYYyszRi8iUzO6MULNMSEaImA9XOsRUNpQd0A4znQYb+/dhHzjFPwRLm5B5B27Ba78aToj3lj/2UfxBIzN+Nh1X2S5sE4Sbw7mUZjg/89Nu0WDGfT55/X7pcNMkAQm+LNvyetdfvJaXlsk3nVAAVlSp/M2vosTdfBiX2GVKnZOQrzcI6z5sMsUrE6cY6bW93ALV3FvP69/xUbIh8/7ygX1z7C3yf0eJV07PZCT0ShAivWsABsNg/2NmoQfjSO3wAcMWJo1Ta4YA5i+Q6gI+KYEP2fUdwBdu6xfKvZUyz2JHkPNjT5vSmtYbPeiP+ajq+/k100PMc8NN7bntsbBn+nDg72DV5FGxAXa+jm9ymiubzRy1kATzKShTzJKkbeB8k5HDc3+zRQqr1KnouAI9ZNpzdE9kwsxGxZyGJfnqTW6uA+a8oIfzerdZUSHm+x4pmCIg/53T9fUPYUCOPXUQrPAgJGFQBCesbuc+Alf4+cnsdyJMz91UqZrZNP9A8FttnnN90sLpe5+e9M7k2Xvf8IMiUS/dXCLfkK6FvCe/ifTH/u+iqt0duU5mX3FBmyq7eyH8o7GS7bFPfB+uc1PEvPacYXusH1z7zAJLyDBmCDuET34VdcXNFSkGXlGHcCyf4UmVo5nVJWjxWZRJEIzWrL/9ZASscXTzn9mcUmXHL3blp7CubyIfiTCuzdGEXVn3SoDtgR0xzaxSluBT4TiW978I65IKxYKaV5x9JH9XVH3fN+6LEYIkftqcInugMEPkGD+jebxbPmjXPe8luM/FcR1vz+spu0d1b7+j1KHlSeX2oCmtz3bzb9wdOexczRcDA/EElnJZM3wt1d9GeLggQB66X+S6ll7cyPFGaZ647WQaODSdYgDfxggZo03rGiUs/HvtV35WZu/zpYDlEqgCtguJPIdVL0yfdou80PIW5fX7xSV2hVMudNhZWYStJc7GEx3CnV8zS5MQhpEpzjw+3+BwMsVVxZn877W97G/QnxadCUunPRL6qtS7BuA1N2nmQq+HLUxKDl3jHCC4Sit4xcBGtR7mkRWZvpnoGyvHf+ncmeYROAbep0cDp+e2X3hRq2YUsxL5/Q+hzEokgcl4FKHj2Z3jo4nCVUISTAIGASWBBewePrug+mt4drYNLISf3TveY4O1R6sdhcqnIozPZHdfvbT81yeziwdbAlyZ8XbhvhbxlBiDUM4Y8T1ssx6pHvThUZnRowJh0yastnEG9pWBIff3oJcntz4WZ7j6suZP303w2F7GEZF8K2Fm3YAwtK7TjnHvOjRNC4YMyniq9m6n+IeQMK92fInikH8uiriVOPhewsHPYpOyu6dOa54Ta0ifX7uwWPEay9l5rmqG67Gn3VgoSEgdzIfTIThUJp/iJBSQo+n3B1Sf385ot2IyI8YgGzxJBi+NmMsbn5rb4Jp00AQ2966SOXBgn/M8gCnLylLssMDQq92oprW8Ad5DW5O/aR20fuTiXJDVfWdW96QkHf1Z7LU/hb4xs+mOMBN8U8Jy+YvFSl8m+n5PQOiIpJVgaqWwH76MrnHqGZTKunBai5DGzN68CPlKKxgWtj2dffza6g3Z3aHZ3fI9kR2sw4aLVfif5lNpozSBraK8BqfbnlsgVdYbsjRginj/uJJ9NBhUSkguWlQJ4h/WUB76NrzZRuQ8VLRm8DbLftY8JBuslGmdliR5jIF/2OmIcdYCLC6ABg9jrHa4j5H0o0Vng02XjsLjkyJnX4UuKh9mVB7gYrjxmZXfs/mFslbMluhni1j6s69e56qVfSRkL+uV78EDjNcs/ZHN4hLQAALsN47vEOAYJXLMnsVsQ7IUK+u8ffDuxAgD76CG8dCZf1GrrP97gq3O+MAA0PBDWCMMjhe0XSmzg6X3c9cYTWMWEgelG2yJUJwrdcRLQZkk+NEGMIgX+T6upLf2v4RndhjdUmFqXvRR/H47YQo3PXp5g8SbDs1LMMyPcm67qpINnXCwp4oyux+6jHEQbf451GNWB1Uf/TYcXFnoiR0XO72f+oN4ausHLx788slj4Hnnd1NOPyOMp3qn6hMYwEwixJM6/hs9yAuNlNkX31wO3oBtu6K+0PKsgdYHr6yTe8NqKBNCpU0IOc2cioOBr72aetSZI9xTiAwth/nTY70U8y9KHG4EUWrWCBxOZ0w4p2HGZPCFxao/iz0Gsl9EgiSGMO+OsokEDfvyDeA44wyU1DHzkhbGftAu/KGHb5fb4iKN8REmlw1HFGJhHkOZZZ8fYRsFkIoypglI1zdGiR2T/1V/zz0nnnRq2FiS7qIkHYjkDhwj4CjAfhuekYN7nBzsqtvtf3fswfz7+w9hO78Lh3+f/x7ELGsNDnBwUHKwBaYacthuYObWWTkBTmOYrUtg9lP843Tm7WXrbym//5GCOyI9tzcqL2wbg2O2X4MPncoJVGCGiXN2g6LjqmYrhxNv+Fe4J2XcwayggSoWz2ySGAhwkEbhSWZHAGdayxI4gcCZIgyygKuNe7Yz/w0HvMy+hPl+TUXK+uHGWH9adOYseaHQIaxxyoUZsQacwMJmNd435B15KeWKOsvjs896z16CHy0CJYmlP/vqdcDysCMhS1lfLT4FGwBHI9j8a8hrF7Yl3FT12dV14KQKnrJw/sYLeyMGPPJ91AMye+/nMdcsLZfPafggt6OkU4BLHJFh5rL1mXAkjqsQp1H8QZMY1iPhseq7MPABhB/MHmITF7oX57AYG4ddfFOlmKDNoeYV4HjZIfzBx2plPxd/Cc8+MPAezekSvPh5zKRrakQzm5YVqjZUyWDxPfGuknWhZtj0CKN2tPPQFey4asMJBTNgsqc6K7EEW+5/tAA8dMKcIpwoVjz+a8hQYU6WKPeauFeIHdef1753T4RLvYDemXxeO0gg8FO7LNz8Y3mvwQbik66oXwDShUe7XNXgXSTYCFuh6iXYf8Wayt49YDwtKlVgoea4xRWr66RpqVr3JWioN3thFSiFohrpU3siq2ukF95ZGnhR63+Pq9eUyH1NVXuxxrHIW8pfjjCV1Ug6rFxJrAE80aDH7vHDi5C9x54JGoCzyukKY2wV20D9gQ+bT45yOkbHz6/t5dz5p7NVBB4Djd+H5Vl6N2tw9Lw33klMHd/5xvsJ1WrLPufUH4rPvf0kOOQfeSfx804neBTWUCN7L7f9wXTte/UudQKjCDp3ZtMFTunO1fMKTygO5qt+L1H2JOj/b/XxyU6zNgQ6R7Pp3uLn30je1w6Tec+we0tKHolfdnP5hWSf0Y+DKZS2QOcaE5wVMdS+R4aZHrqvOMjKaeORYClY9vQRJZ+C73rHnkjvBxt51omBo19634aj7CAz5rZeBtrSlRcy7pBf/BzK3s08qBJG7tEuwRi1dfrK4pBWcWy8XkK5TUecufEuwWE9L0FmX/hwwahG2EXi6N4Wv7aCsb+074n4bnzHJWJy1j0nZpk4Wi5MfKmvH8nZPGRBbUhr/IoYfUvF0x2CgFhjFJ/kaXkbnGMse6+jWFvEXvZMvl9Oh/Cjcvnjydrz7yl+z8RViB1WAxeTelhqvLeafXwe2pfcqbB/od7r64tlR+OUOpJHRewtcmVm6c+QwVev82ck9FWWBY1T0ABgWKn/KP7ebsHiKS3pcrvcQTQcV33wWcyvbkfNsNRkPxS4zE4sndWQG2PMCLTgFk5ztbTQbUUAfIxhVMIimLNx3j2udqnTIB7KW8T2nK4xtdKd7cJ5YscXn8alzqtN0/M+fjPpJIwo7Buf/gqeWUDwmmT8JeSl89v/G2m8ZGn5L2tGHzRzbCaORGVlRm4a66mTHPktdNtvwV2upVkaY0vtqyDYORHUNUiO/BLy/m8hnd6WdQkzByZtV0xrkV/cPOqH0MNOwyaIpBN7I2qc5wF80tArPBiqOAbuu7luOz/DM3pgXs7R8V/dHzxMqtdmu0V27Ix6RW1dmq0Zm6Av3xe+2UKs7zt+GA6DeixHAzh88k5iFUyDSpTrDge+ML5z0pLyyY/n/ARjDUugMUO1rDrYnJiuTYRsFk5Dvurz7bEH/JsssvXYM0ADXERznNss8Uubvrq6Fn7AglF5l4Bn5ra3C5sCbFc41ztgqWvzE9keLugQT+ar/psPCzsY1igpYv4wG/QngfWEh3XWSIvcVzd+C7n7txBnFiZwzNw9X0ZV9whOVASUd4L5AeOEmWYvKV+SowHpDVP5L19J+0htfWZxRWSs4c51x/61P+SjryL3OzfXgcDuapS0Cin4QvPNnPzlk56CBSmVda6z9jvW5PfXMvQHWFMKWkUXhJoDnWlqAmsqVH65M3qP32dmMGP97shL/l0TUifd4px89wduRvdsqV1YrPimy7vr4lB+XDFAc9emlOgllZeGm7LDzPlfR71BYy/OYU7m6A+MM/IraQHXVU+PMaQl62gd73tYSnMGGOhfWje69qq6ObCcIYbjS4jmImWx03fvDwmU3JqhtAIDlXlBH+6IyXPtMmDtdcO0iLXsmXy/0DcOb07eurhiYWaPGqcLvox+xYG/Pq/OLxzO8vjskwd2NHwW8yPBjxax9GeowFev82ck9FWWhW98BN0NGGl88IGiXB7V9kH87T+7HSs2WvPJsjJ5kfLWTanDmsJYmnpWknzxfFYqQ0TPBQRAA5jzaMFtIeZdn8SB7Qdc2Co/jlv1Q5hrOZlWWceGmxbcWZpt4qy5f9xQDWAoBP7eDTi4JEwp0m8tf3Yss3nbVKDauC3hoNOezYkx3rykYk4YY4rb+UjOm74ntaABPPP0UTCrGMCv27ltBPx2g2V2WKG44/HRHif+wlEBD248fN7/wq/5wvv1g0PbNWwMLA6e90Dhg9HGgg0ZD5cP0gyGLTsyM5zVOwVGZpMRV38tAn+Y0nomzZDPbFpzXlt4iAXUeE6havVvg0zWVLFiU7VsZVb3a48c/6lcbuBRoTEG9ZfRK447Z0J/UWDn+S9iClX7N0AAZgBfvZYyYVlZ4W/BW74P8+AY1wgOgQfA2W8HY+zZlvAujfN/DdlRKu93ZyPrJJvXjNqb2359sGVHu+cmkaF8ga3ixUdzXJqKawN9/NBMECOzhxC0vlk81JfFa3Z/IslI043RRlgN3OY8z3jkB3D4mH9z+WgfjnLWI4FP9+0AGvltQRyeGwiMCBuAfF7dtkubcD0v/8fQTXsjhu5fAq/DKfPqrpvQGSkkHQZuQ5l8147Y77p83lr2J7ybYXn+E4+rBYEAACAASURBVHhAVfx9EQDHMU6X0DiMI8Pft32enFNy28zcDtvhwB//0s/Wk60/9xm8Fh588eAFPirFfwi7anvM9JF6O6sPrlH03xuBEaEB/L0hRNwjBBACCAGEAELgb4jAqewG/Bs2D7GMEEAIIAQQAggBhIBXBJAG4BUWFIkQQAggBBACCIFzHIGzpgHA/RCrinZtObBtUoeXOthTz3HMUfMQAggBhABCACHw1yPgRTr/9UwhDhACCAGEAEIAIYAQOMsIIA3gLAOMyCMEEAIIAYQAQmBEIjDkPAACC8ltv3lG07gwM5wPQtg4LT+Frtge47phFprAS9QtmVc3LUEPO4W7SuTbP4n/pv/eehyT53TdPLNpUowBUj03OrGnslMejqsRiS1iCiGAEEAIIAQQAiMXAU8NgJ/b/spNlXAyT02+Gm4dDVBb4Vjs3pMwoRUJ+mfvK4YDVuuLlHVix4Xp2mWrConHcr7qYY41F1/UuvXaapD9xnpJgZUTnqTrveDW2Xz2VHbKw3A1cuFFnCEEEAIIAYQAQmCEIuCpAYROYC7bEearHt6UohvMM03QExbUgviv2pK88kggXFf21R2l67O6F13QvvfrSLPUsfiqOhD/LR/FrfgxzAq+fvcXrY/Xu2jALTUsqeyU4RAxFq5GKK6ILYQAQgAhgBBACIxsBDw1gJ5aGZamteRoXl5euvtg0P5CZaPzwhgIpMQxLYaR6LYU3U3Oy824YuYCKEW8Dg7ng/ttJwlIuF9kW17w0AuzadZUdsqgAbBwNbLhRdwhBBACCAGEAEJghCLgqQFod0euk9lXXNCmyu5eCP9orGR77BPfh+tgVV/sCHI6DqZNaU0b0hxcYlfAWr6B18Fc8u4Z2FPZKQMtNq48q0LPCAGEAEIAIYAQQAgMj4CnBoBbiYPvJRz8LDYpu3vqtOY5sYb0+bULixWvwa2jNsLlD/jGyvFfut3q66qEthMwWefxSZFTS4Cbx+RuF2Cwp7JTBmpsXA3fRpQDIYAQQAggBBACCAFPBDx3AwqVNiHM4c2cioOBr72aetSZP1zCWPvhnu+DGuYynvkXtcr65/k4xsVpJlOHsAbD7AH2GbEGnMDCZjXeF8lcMNobWFOHoQx+Cb65GqgC/UIIIAQQAggBhABCwG8EBtsAcCzylvKXI0xlNZIOK1cSa4DLv3l63p4mMRCEW033fh5zzdJy+ZyGD3I7SjoFuMQRGWYuW5+5tkbK6RB+VC5/PFl7/j3F75m4CrHDauBiUkZ1gMCeyk4ZY+XK75aijAgBhABCACGAEEAIDCAw2AZAY4ZqWbUdT0zX5uZ0ZYscDfmqDU9nHTD3Kgr2Q4HLNqX+WCexBloyUrUZQRZjtbTQuSKAU/jhzclbixWwUqDG6eIvo+/6X0R/PeypkI2FMjYcV+h9IgQQAggBhABCACFwqgig24FPFTGUHyGAEEAIIAQQAucCAp5+AOdCm1AbEAIIAYQAQgAhgBAYDgGkAQyHEEpHCCAEEAIIAYTAuYgA0gDOxbeK2oQQQAggBBACCIHhEEAawHAIoXSEAEIAIYAQQAiciwggDeBcfKuoTQgBhABCACGAEBgOgVPQACguNevJY7u2HHgi0ePOoOEqGZoO9watKgJS2yZ1eOGAPXUwtT+Sq6F8ohiEAEIAIYAQQAicowh4kb/naEtRsxACCAGEAEIAIYAQGEDgdDQA5yHAIy6MTK5GHEyIIYQAQgAhgBBACDgRGHIzUIzhtnl1Y6KMoc67ALTVsj3bYz+ulJFueJmVtuvuKZ6XrBMZuQd3Rj/3S6ihT/zSQnLi7MYFE9tT5HYoYW0Rb9mY8a2WOTQQDveV53TdPLNpUoxBhGFw1+CgwJ4KVw2xUHYS8sUV7keLPHhBjwgBhABCACGAEDjnEfC0ARAxhssSddZm8cEjgXlNYnm8/rr/OzHLKc77w8Rbyq9N1pmNXFLiGHd99arUHtc9QZSQnHVv8SMzmkD8O/S8bhtHEGYK5/XKevFFrVtvOzk1xkDVSwoqAroGQ8ueyk7ZRckXV/606Jx/zaiBCAGEAEIAIYAQ8EDA0wZAHw5auD9ETzIyneJRc9fk/0dtvSTCuEur6C/JN/C2PJv5eZsw5faTG0ZrJl3SrCxTaGhMMrltWZSRsBE7Nma8W82YDYQhFpWOMQCQUsfiq+pg6t/yUdyKH8Os4Ot3f9H6eL2LJnsq5GGhPCxX/rQIdQuEAEIAIYAQQAj80xDw1AAoM0cvIlMyuzNCzTIhGSFizP/Svnm8C52ytxO/aAVpjpX+HuwYraHCzeFcqovEMyd0QKT9+7APnOIfgqVN2Oz8QYebJglIjoWzLS/Y6oxxD8OkEjQL5X46XrnS2Al/WuTJEHpGCCAEEAIIAYTAuY6ApwbAG6V54raTaRw2vzqjuTcZhCvcBCjiUyIcozl0hIxZLNA1SmxDUMMldrAh8Ay8DrtrxWBQDvZUdsr9hLxyBan+tGgIvygCIYAQQAggBBAC5zgCg/wASCF5/aJKEP+du6L+s2LinP/kPlovZQFAoLbKwJnQyNVSOE7jWisHMstjDPwhZWg7AWoBySdFzgppnJbzB5wL2VPZKQ+pCnPn6lRbNJQaikEIIAQQAggBhMA5icAgDQD87eOcWwCKjquarRxOvOFf4SZfzaZE5KzLmiDVVKSsd+C4Ay88KYdHzrSWJcku739MGGSJEDglfYewBhYIAuwzYg04gYXNarwv0o0ya+owlAfz58HVKbXIV0tRPEIAIYAQQAggBM49BAatAhBG7tEuwRi1dfrK4pBWcWy8XkLhQ9cDRi2peFIjlEUZYkUkT8vbsDfC4gSmfU/Ed+M7LhGTs+45McvE0XJhok99/UjO5jYRp0P4Ubn88WTt+fcUv2fiKsQOq4GLSRltAwJ7KjtlFwX43ytXfraonwj6gRBACCAEEAIIgX8IAoNsAISd2LUp5X/NYlJMZoeZq76OuvObyH4gcBKvyAsqaBWZA61ZydoEAqvJC3p83ah9Tm9/CByN4KV1o7ceCWy1cTAxqcSw1iJlsZFRMnAKP7w5eWuxAvwG1Dhd/GX0Xf+LGKDMmjoMZVau2FvUzwD6gRBACCAEEAIIgX8aAvju3bvtdrvNZnv++ef/aY1H7UUIIAQQAggBhMA/FgHPE4H+sUCghiMEEAIIAYQAQuAfhQDSAP5Rrxs1FiGAEEAIIAQQAr0IIA0AdQWEAEIAIYAQQAj8ExFAGsA/8a2jNiMEEAIIAYQAQgBpAKgPIAQQAggBhABC4J+IwB+mAcAxfzkPF+7acuCtUZpTBZLiUrOePAZln0jU/Zllz4TnU+UT5UcIIAQQAggBhMCIQuAP0wBGVKsQMwgBhABCACGAEEAIsCMwsjSAoecPsnPvnnomZf2vBeVECCAEEAIIAYTAuYGA592AeIzhtnl1Y6KMoc4LArTVsj3bYz+ulNl51DVPHrtRbtv+4Nh3OwX9jRfPbvhkbkPPm0k3HAp0R4QKMT/8aEEuj+r5JnLZV9F6GvNFeeCCIAwzK23X3VM8L1knMnIP7ox+7pdQg0uwE1hIbvvNM5rGhZnhAELCxmn5KXTF9hg4YbA/+CrrT70uIu4837YnctYTbO298WAQ5gMr9xadG70EtQIhgBBACCAEzj0EPG0ARIzhskSdtVl88EhgXpNYHq+/7v9OzJLb4XqeSi1z519MwKC7fyVBzJ0A9RqB+xQcrueZt7wMxD92OPDeXVEg/iH4ouyO6cRbyq9N1pmNXFLiGHd99arUHtddwvzc9lduqswNMzfmq/cdCsxrEHNlduYiQrfgq6w/9QIZD54N9uHb6yflwWyiJ4QAQgAhgBBACIwIBDxtAPThoIX7Q/QkI3kpHjV3Tf5/1NZLIoy7tIrmdiEWbYiR2ymR49LLmqPbhR8cCJaprZCzqmfgQmCaoDNvqFwSYhbWSP/7XmIr5RLiGAvlfiT4Bt6WZzM/bxOm3H5yw2jNpEualWUKDY2FTugQYpgwX/XwphRfvoK+yvpT71Cegelh2+sP5RHxkhETCAGEAEIAIYAQGIKApwZAmTl6EZmS2Z0RapYJyQgRY9KWwmwew3SNYmwcFhBihjWAW2c2Sk3ckgIVV+ogHEStofdyIMgmmdayLlnH7+E//WpasXXAxsBCuZ+rsrcTv2gVwWPp78GO0Roq3BzOpTR2oqdWhqVpLTmal5eX7j4YtL9Q2Wj1MAFgvsr6U69Xnodtrz+UhwCOIhACCAGEAEIAITAiEPDUAHijNE/cdjKN48WvztgiBnVAGmZOjNfDjNwhdvwrQXdcauf18NocvRN9aJMs2gj6AtEprDENEtIslPuRMJp7KwbhCmv8Ij4lchLW7o5cJ7OvuKBNld29EP7RWMn22Ce+D9cxmklv8FXWn3q98jxse/2hPMAf+oUQQAggBBACCIGRhMAgPwBSSF6/qBLEf+euqP+smDjnP7mP1kv7uaU0/HYME0QZr0jVCroFPRiWPaUtTerga/ntjgE6zdtjvjFxLYm6p+Y2yPoUA3bKQwERqK0yDOMauVrnIgJuJQ6+l7Dwrol3v5m8q1aK4Vj6/NqFIaahBSHGvayf9Xrlmb29flL2yiGKRAggBBACCAGEwF+OwCANgBaScc4tAEXHVc1WDife8K9wNymr5bdimDHSeJ6QbNgdubObT2Z2jyFoc6vI6GYy4Gj5W95M6sAw8WVNq0ZpXHaAYSgPhgGc8mZd1gRxpiJlvdO6IFTahPDXzKk4GPjaq6lHnfnDnax6BI+yftbrlWeMtb1+UvbkDz0jBBACCAGEAEJgZCAwaBWAMHKPdgnGqK3TVxaHtIpj4/USCu8X7riZU2vi5DBLAdi3hYofwo2LpoJKgOmaxIO2B4AL4QnlIz+Hvj6ldfTS8gWrR3/UIWSn3A/FqCUVT2qEsihDrIjkaXkb9kYwOw1wLPKW8pcjTGU1kg4rVxJryMYwnp63p0nsjqHXsn7WC3SG8szeXv8pj4wXjbhACCAEEAIIAYTAIAQG2QAIO7FrU8r/msWkmMwOM1d9HXXnN5H92cHjz7UhUFInOaDldxwKgok+hM5WkedknMIaPo95q0NI8amly8qyBSQ7ZZzEK/KCClpF5kBrVrI2gcBq8oIeXzdqn87pYEhjhmpZtR1PTNfm5nRlixwN+aoNT2cdMDPqC3tZ9noHITGUZ9b2ngLlQdWgB4QAQgAhgBBACIwIBPDdu3fb7Xabzfb888+PCI4QEwgBhABCACGAEEAInH0EPE8EOvs1ohoQAggBhABCACGAEPjrEUAawF//DhAHCAGEAEIAIYAQ+PMRQBrAn485qhEhgBBACCAEEAJ/PQJIA/jr3wHiACGAEEAIIAQQAn8+AkgD+PMxRzUiBBACCAGEAELgr0fgT9UAaBE5dkbz3UsqMp0XDZyVgGOpq4p2bTmwbVLHn9q2P7rePwOrs/ICEFGEAEIAIYAQ+Hsg4HkvgGOUZvcdZZIW8dI1o2qcNwT+gYEMMt96dW2UiXOAiB9KlhY7zpvVOG9CZ4qCOWEIN3DzP41bkxdkH5r1j4ihcTpjRdkzmd38Y+rrtqR0OXUSUm199Iljkwj6x3WjNtZL/oh6fNJgby87Vj6JDpdwVt/vcJWjdIQAQgAhgBAYQQh4agB/FWuUzH7jA0XXBDJnAMJhO3AFsFTqyAoznb15PE7jRTujazK748Z0XRVk3trG3EkYdlkTiH9BofL9xrMr/v/89v5VbxbVixBACCAEEAIjE4FT1gB4ibol8+qmJehBYHaVyLd/Ev9Ni6j/5GBfqbIr6z6cyRz1DwEOHHzo5YOu3+UbM1aWyeHc35gFtSD+OWbOJy+nfVgZAPN+bpAlR0T2njZIYEETO5Ze1jgxjLk9UFMh/3p7zI5aae9aAo7Jc7puntk0KcYAXA1dYPDFFadR8kqh8rns7qtmNX3yTmK32nrbhW3A2Dc7Yzr6qPgqy/DPXi8Lz6ztHQYrJ3BsXA2X6kIe/Y8QQAggBBAC/3AECNrYUFatsXu5DdgbMgn6Z+8rnp2gbzga8GuVTJ2uXbaqcI7TaM+EvtSOIqVHqqNJcqBQlVcJF/4xobpYeahQdei44rd6i4XCSJn9uvGdEN/wYfz7TvEPwdEhPFwvYS4hwDDF9JotiyvOA/Fv4uoxTJWsvXFV4aKw3luLxBe1br3t5NQYA1UvKagI6HIWGQi+uQJloXRnTBXUNbF9jtoaMqNpPEHz81UfNPfdOMBSFq4+YqmXJgNmNA3leWkEwzN7e31gpcp3nZEM5Vm5GibVAxz0iBBACCAEEAL/VAS4dTvXPXZk1sbV04dFgCboCQtqEzHsp3uxBb+oskeH5ywvXZ/VveiC9r1fR1r7Uqu2JK88EkgS2Fd3DKSaDwU+dSjQEW148+FC8AP4aHNynpWwdZ48XqNNHB0SoGxLIxgd5NUvGo+1u0wFuCA4KSVcDKsADrn1litawFhRuS3hgV9DTAJyxt0Fd8VaZs+s3/5WarfUsfiqOpj6t3wUt+LHMFNPScyjwk2ZzGoCBMrWlHV5M/DslSvQXDjN4lfyVc/naK66rDhiAqPKvPW86efWroRotYDb296q10JnbDYGjsua/H8l67N6Lo4+8uhuzK7A3n0Bg3oPPIld/3Nieqwo7Z6CDUnmro7WkoI6ndj+6VwMeC7dGrbiO4VZSM17vO7ueMu8yxs+3pKiCba42vtTuRxsDZSx7niJNWFMspy5SJE25qmePBRI9mH14etJeVbXDYsY2X3iaJNi2QMaaFHlZsBZTRL4V36/BY8LnIZ94ygDQgAhgBBACJzDCHBf/rjBQm5e9u/NrkYGCJi/JpPp999/rw9IH5uq6BU+MHOVOKbFwAwcw84TPZlVR0uNIWLGSK+I10EhU1+qLUV3U6wB4rluqUNlj0PXUFqplyeOUvIwUspnjAM0JgyMjhX3VkgIBIwTAG01CGvGgyzVEOs+MZ3EdOGhAf/bwV2+EhMnGSM5jq4w4yQBybFwtuUFWxnm3AJtbe9qnJPO2BGaVJWXnFclCQpWe3BFYSe/iq7I0SRNtl4ItR0O/I4fpqR7rKSKK+9trzXVfP/dFklwTYDzXsTsKYopx1N7ktrOF9fA/YG/toxJj+YRlNFmMUOqA+MrI6KizqMmcMsIDbbyXV2FgwHt7c3Wu57BsHhDNI/SCMyu9nZaPP0caFt7cX57+JgshasdNHXo0KHf3a5oxlXaS2KYtAZF+YzzQYWRRogZh83TewuuStD/CAGEAEIAIfAPRIDbOWPtO4tT+Q77Sy+9BO0nU7ox7KRYLJ44MSuY4gwSUCJTkPP5oivNFzF/XVcD9oEmdrhS06a0pg0HJGVsKD7RyonKTFDQdgojHAKYs/NxLCFEquh26iD9gbZaKS1Mtbk6jsasa9XxgoO5PRUGEKocjvXEkUMVAgyEJcfA6zB2Fh+q0tFYtHPloMlg1zWUNXApF1eTr6YmM9EtLsKGnp4DBw441RnwPMRWn4dtu4T5uWZ159e1zHoE1toTPyvBVTb9Ym06E9VbFpb/CQgyEuol9LwukkOACGZMGMyfkCBVWKCCUnYAz5xunIrOyJYyzhZWYYEeMwr4pAQwtBOu9gYKScx5w6HPgBPjx6R1tOFytQQ0I7K7pBCXBRGMmWTqNdhUphijbA2EU3kLPitFCQgBhABCACHwD0CAO1e3cdECkPq9IQAEl9MGUNJhFwf2z/9hbmtoKznJTHIx7I2V47/Uc62dlUXlGn54UnK0SghSzUa4pTpv9R0S+p0NOEJVRHKwSsXtLjtey0/NDhY0YFgGSLVk3ScHgzxc+WxGvh0z81TYqKiAYycoU2uVKUcux7RCqzBl3GhbcLENM3D5pEioTh2r0DcVqhgvfnuoyNFjEIZnKMwYIy/vnir4NmR0XICrRTTpINMmDPDXUdLjuKScX0OUBo6dEOzaA4nTmMPVoq0r4tb90hGakxXEw/G+DZK0jQDDhlBAipxaEewtVAoHCJJmLngzEEpaxaVdegZPTctBJzBye2CPZRefpb0uKgOOGVZNQ2VHDy8nUcGlcZyy9uK8+lJ8kz01J1E5SIPw4y0MeS0oAiGAEEAIIAT+iQgQIVpT+PynN732VHywIjAmPT4RlpgxHoHRxICws2sbS/MLGzUhv3cxE/SZ6ceaeihBYOKo9DCivawov7i6pceu4x3UMKnzJjcLHXDhsDM47LTD1vdgJy0UyFTYCxCvEASpRfa2iiqdLCZSbDiQ/2EJg37Yvysm0gfy8w4cyDtQq8vPjtGDeLNVEZBoD7DflGsWYHY9Sd1+mw0EsaVYWQ/uBm1EDegnAfYZsSYeH4uab388kXElJDii6PSUMG5EXjsjtJfeJEvrFf8wV8cFPA7XLXAIRjPAcdpKE33RHLAruFq0YJo2AMAA6Q+UcIwLugGEDj7US8mhXgNOYGGXtz2UxMQ7HA64atlexweeKRW2/LxOAY5RIsecq6xQ2lSsrHPgnG7+9jKGRvi1ldOlRfV1nRayx0oUx/OKKytaTE4NCHcwkh6wSgoLSQwl2qubXfFUD5HnxPnqedKxcX3iv48roo/n+Re1yvqUlQGeGcIoIAQQAggBhABCgEEAXxrD//XKrWvPF21Ye19Feafi3+GH7ykH2dHZJaCdIoSmHAUvYXccSo6NVEondb69tBzmstZ2YaVGgEsckWHmA3cJFx2UJY9KCJzY8PatDZBqbsTymzCeHEuKx7bfhN1f1Ie1GHvhf5wblCTXxC2sxR0Ce8mbKds61ThNUdGmJx4qGu30B+wP5J6Ia3YoTxTUTHhG/O7FzKKDQ0eYAyhYROdoOU+vyflFz3doT6TdZ904lnH96zERCjFl7MElCrru9bgl39EtLc3EZHz/01aGqyaipEskVGJRYeZj/+Ut+HlgA4RsMq/8FauoDpt633iBfMCAwZvQ195GvKiTR0ixxFhH2frMtTVSGtNl3FryzDhGXPeYuAqxw9yDiRTYkQewmbswiiOZ84LgnakaSKWNXIPEwSz8d3M2PpHzo44Pkt2iaF7/dKNHe3XbFZe/K27posJS42US8sYnj/1bZucYOcdruYQMa3sz7JFD7SfbZaNv5O24qxFaRLbzi9t5nAAsOtzs4goq6eeZ7hSWgPrhfEf9qa4TgeDFarsFtj6we3ZF3rc/pHfj5QD86BdCACGAEEAInMsIcPK1ZOex73bv+rKxtdtGOWiV5s7LGNEvFpMSkfOfmA7tjNrfFQIzYKpJvK+BL5P1xMQ4wgOtwQJKUys9WpaiDwiChQCqWb6vUaIKNkdF2+MisUgpp7tOVlGXaVLHRblCaFRZlSIg2hgVZAkNopQ0dnh/+EmY2MPsWsf/6XCgVW4PVlllYO12EJ3Vsu/2h+R34F2NTfnfmo45sOR4LFxJixxE41H5Q3da39eEBENWU/t3e1SyHCIj2KKwY3u2EvcUKq+fYG77TfjOIT2piArD439ulqqCjVFR9ugQu4vnvKIEjTQiSKRvNwelZSYEpQsX5moEOvz17Uq+HCbtvYFqIL4qsSuCzLHxdHQoGSbCuuqkvx0KOmni4pTt4PZucpQ0O9SqcOBF34Tc/Yt5/kRaUp90BE+NjAw1lYh+bOyIS+SGBDiA54Y87n9WhhXyVFyAUV93slR4vDrGwbTXBo3AbHhrdcAvhyPLrSFSrKO2gx8cICotxfjB+vhwKjyYVJLU3m092yvsGGlsPWbcXcMPj6bhLUQG24P4VHcfV8A3846cbyEs3Nz/jlw8M6mh5usndEIDha6X6/xfWh2wozJg6DkK53LHR21DCCAEEAL/eATwNH5QwoNrL1d3rH/iZVIdEchIckNtUTWekBkj5XB4fK6HuzptaSko0ESPy1C5eQmcIo603dBjwSw1pdroMW67DRgqtLWlIL8zfGxWsGsqTukq82ulmVmhAhz4Kqjkpo6KFOGYvbP0WJ0oIydW0FV0rCU4JyuE7+guL6jhhPK7uoNHZwTyCII21BwvarH0mxUIScyo7Ago3BdIzYkj9apRo8KEzjiHBmhKM0dHOZ3rncHeebKkBZfxde226H6WXEmUvupYOZGaEyd1AkQZa4+X2BPHJPWvNVCm+uMnLH2b/NzrIntKj9bIskYzDXEWHbQb0NxUUKiLGZemdMeXtndXF1WaRITBJFESejI0Iy2M2SqJAkIAIYAQQAggBE4PAcJAhKYlhKoVItqqqTtZp8P5Aj6HwjhCkUAgGCL+T6+SIaVwnlQp5Q2I4iEZho3gqeLTkkEGwhoFMMsDb3y7vk0viugViwTjng8LGLQwcvSk85gwKSuEB89shLmyIImts8tMgRrSXlXdaaUxXmDKqKzkKOWAWYCNQG8aZTN0d2rM7JX5Qac/C2VqqygsNwSmJIcICU5ATGoMt6n4RF1Pvxn/VIihvAgBhABCACGAEGAQ4Gq4ElN9RSVul4bHhmscHKtRTxqsJCayGI0csURw+hP9Pw5gcN132ME2QZI0c8qOMxCCAGZpnbJbSY6AsVMQyqRsOUHoPI8E9MUG5bCaLA7K1t1ca7KbjDZRbHq8IlxRXdViCI+lujUGeaSvoj7iaVLfWF5k1uptXJk6NErm2tZI6WuKyrpInLTSslDOqWo9tE3bXFPZoBNFZWRGSDHGrwDHhcHJWZzq0rJj3eqYuOgQufPgBBQQAggBhABCACFwKghwlaKqT194lqZpvV6P0WRrKwm/Yapsq67QBydnRLts3KdC8nTz0naj3kITdgvs5x8kKEljXcHhOhdZUXQveQr2GDhIh6mz28YPd07RcQ6Pg7lOEe5ngSbN2u5uK0hIymShaPDBYwKlqzpW3MacUkTwRITVTkhV4aFyMKpz5ZGhnKKKSkygJWQRYKSgHRazA6ftoHq4sUTZLTaSstgobGADIMFXBCltpFQZEZsWIILFfqgR7jeCKqQxGVkhVjuJrHLnagAAIABJREFU8yWSfidDmrKZDAbX5Ys0UIKKjAbX8QtW0L9cwd5TVVTSjqlj0keHBTAmk/7W4QJ1QrZEUV9VfeJYZ8KYzJBTMlL0kkd/RhQCkimtD0zsNOyJeLZIeUo+GRSPmrm0YprQ8du7iV8594mcahBO6FwRYzh2KOinut5zuP2ngMcZlo7W1BQpf6uSDay4+V8e5UQIIAT+OgS4W959F3brwQa2559/Hpa9Txwt19IccUhSerwKjuj5MwMsddeXNersNE8ewxx/0xs4QnlIanyCioeB94BGh7sWD2hbR3lhjc7BnImXqvYt/+y69mY7M/OmHSYHFuCiSUgi07LDuUKB03jgHnBJZHKUvqTeHBCfxBzdQ1laywqbYZ+BMFw0wJKjp6qgQkviwpA05iQEV+ApolN6D/LzoEnwhGKe22EBoBXwBVRXdZmbuQLH6k+WusrRsIXSRYgXEJU8Khr0Bq8vghCqYzOU4WY713fzB3OCnkYIArCJdMni8jR+76IU0cPf8lZiR5h5VKJOrwykZfabllak83rVAMJG7Nickmf2aY2D47ojUnrSxGSdwEMB9uiImFRplQ7eboOBy62WlzS1ZXKC/nwS/82HBgDHXYQl6EP7GGbo2vGaSlkPho2aVzs3WSeKMM1/NbX3LG5WlLk8CnfgdtdGI9acKBEhgBA42wgMPpCOF5gxKXCYKnFh2OiJYcNk8iMZF4Rmjw91y0iIIzPHD7G8g7ROSXDlAu8Btbq3AHCROcELFxxl+gRlbx5CljAut7fsYIY4AonUB4uEJCJjfERfIiGNHXNeNEXC8QJuugI/KGNikI/yA9GEOHrMeK+5OAEJo8d7ZcwjO8GXDrqkmKPKmKgalIfgi05n0ueVLRT5ZyFA86jUdNdBk0yVIOMvurCtM9IIv8Upuhkyx0VpPe7fYQh45mA+NQA/uSb55IJHj1/pPNm6Pwg7hXdsTJ8Tx5wsefyEAheQ7qoqaeO4tsxSfGrW8lL3shwr54l7x+2PM9yVzJi6zNma9zYfcJHl9/BXPTQmH9bthgQyxLJ+7bHwdxJvOBB8SnaOIZRQBEIAIfAHIDBIA6C41Ow1x28PtBQ+m/lQZe+E+Q+o5I8gAROduItbbpnRnK2wwcH6+3dFvXYg2EBjfwLPhPO8IBQkc+s/nt3Yj8O2+8Z90tO7rtIfSUWYHl5ZfF63YO2GjIPsBx7/1YCeYc9hR4M91dV0noH30ofx0289mcSn5l4L50sxgTO+c7nzB2En3n4jOfO2srGDLUCcnK51lzc5j+7sDTBBj3DK9cm3nUyyD+6rpfIHd8S4rpXAadzQLTBgNo7YAcVxCtfDddw9fF6OJtdpGBi78sRnbmTh544Hx77T6VPDpCWO6xZVDFWFgbLres/BxJgnOsAWDCd2dwnODfF/Jr0d3lrcJS1Lp7aMUjP3mVgrZY88n1HqTW0aCiNLDC0ix13YNiXS+O37CcWnSO1MyrKwhJJGMgKsh9KPGMZB/GcsrnxmYgfRIvr+RIg8s/vCmyrDHfg9B4OG3jk0Yrj2yQgloBY/feRqiePQU9lwuBBMsC5/qHBZmIlfpFz8amozhXvIDyDENXIfXzXuIOPRgLGkOlK1n919ot++4ejhl+Wrtn8ddVTPeCD01+viDIyxbRUBe7+I2VEr9WdEdjRKfs5X8Xn06Mxudwnk3k5RmjZX6qCljukhloO1vgwtPpH5GyWwo8Ge6mqmXWqfdlFLlFPY/293ZHd294I4PVWgeq9NeMWMZrUdr6uRRoCrCBwX4RYIpS0zevBlEH2p4jCzh2VJqgPfmN4AloZPV4/+FE6ivKNs8yiNZWf0jXsjrDxqzurjXmEnHMRQQQ4xQiunmkvF8qhJN1dMVTLfn6hRfO/6rKMBtgcfKTifTzV+G35ysOyhhOTE2Y3XTGpPcV79HXhn6dtl8qc2pZQ7vNgJvDIzMiPPpLeLpra+cHUtvJ2eemmdFQ4Qx/+QeQYZZL716lq4f/UAEX+qoJ1J2VOtC+UfIQj8PTQA4fntayZ2YEcCb38rsd5BkFL7f9bmL7iqPu2YuoB1g98IQZmdDfVlTSD+uQbuc+8mgvj3mhnmVV7jXZFDU9taRA4xGaGwZU5tzRnTtXHdqG+1A/N1ONIRKgoKNQenaRclFNseHvPlkNn80Oqsx9QbjqlJuX3t+sNjhyY7Y+Aa6LeTdOO7+e83in1kOUei2dFgT+2HINlpQoebLQ98F14ps4MGYCxS7ChWjgENwAdOjmPqB1v7LtCEqXxKz+qZTf2dg1ciX/1tpOs+C4aAlud2r6QXitxR3TcGMsv3R57OWl3N7K4h07Sf/vdEYLtw+eM5Jx0+ex0o5aOdV4DW6XkxkaYn7y06ILdP4FOCcvmaX0LdVQeaQ+cuL304WQe9tM1GBPOpNi1PHW1gzrv4m59Dedq9HdDLvqAdANB/GrdkX9hQTcvLq0JRCIGzgIB3DcCotC28t/jKJJ3YyN3/Sdz6vKDei3cJLGhix9LLGieGmTk0pqmQf729dwbpsqkuU1lffjkt/oq6mTFGnkdZOLA2UbdkXt20BD3MILtK5Ns/if+mRQQuQVG3lL82rlNcJr/2hYx252yUVNoee+rIRAL7cc3o9Z2Cq6+olxp4G0vkyzYezoQj8Mycrk6hNcZwcbCloK134XJE8bzRb/lHRRkfnN0ATc7bmrxPN+hGJevnMdfujfA1OrCkCtuFz64dBRMsToxh5T0nLpTb75rTsH9bQu9diFDX5pQNDRJSab1/Xf4UPjUj0uSuAfDGdD13c0V0nWTNy+nHfDugefRGD8tE7t6I+j6tgr1vgCv7FWvzb1FZjz2d9RgIIQLLvL/wqThD1+spi46psWTda/cUw0S5dFPqqnwVKELB82vfnN4srpcseybLY67p5QMhsJDc9ptnNI0LMwO4hI3T8lPoiu0xAzISw3z2HF891ks1pxPFMXG27Yo+/5oaj4k7Oy26h1/UD6yIvHphpbuUdqTqkj4UvNc+yPHUF0GYml81v9alqaXGGLnVMpDIkhgDmG6INlGrN/EPGJICEjbkgB/A1meyCA79s5G7anX++ZEmuGkLTvvesCW5dnBBMsR8rVPR2fnY6B8XVr+utD7zeE45TnP9MADIrqz7cGbTxztiJl1Rn6Tnvf5WUsjCqtlBloqP4h/4KZQZlHyPSJDo6pP6L6JfD7Yszu0IJOiuI4HPvptQYu2db3sfkXzh5RZ/2r3dRQM0AOZeULjju17i+YGztoiFNRdWrgxwn8hDLx90/S7fmLGyTM7+HTXPbgCcfZZlqRUl/c0R8G6Fm3hL+TVJOouF45A4Ji6qmOdcqYKguLRpy+KK80D8m7ggTlTJ2htXFS6NGJhmQM9eflfJ3EBrQZXMoyyWoH/2vuLZCfqOIuWvVTJ1unbZqsI5Chvcq1uzL6wVbs1J0V6s6K1IlNMF4l/SIPm8RYQn6GfL7Nq8wPQFtdkYdsLCUUgc1QUqGK0ygga8j0cUz372CpJHXrakIhVuOfoufGOZwh9TvJ+UXdnIOumLu0B6YpxRmuQ+3/J+CnDZket3h2nAAAnLkxkzm+J4FCdRf00U45vmZyCbJfsLVQdL4TJG74Gtb3gv4YytCFi9Lxz+Zt1QOVVqp2IND01vhsdP3k4aXvzDldO57a/cVJkbZm7MV+87FJjXIObCVQuDq/PVc3z2WBZu/UuinZdJcy3c/AIVXHdhl9lvv/vEIxOYmy+UM5ueuasE+vnwgcBi5tUuDmQ+Gdd7ajdyAeQbFlXGcf3oSjimvLTpJmXvFxeS06WAwYDAErOZQyfaihUs797Vb2gDtzXKcPeK0vP7upZD7Lj7gcL/m96cInWTaxzapdjGJetgzZvXLehgNtgSA9dyDNfUf8+rs1TJ7ArbzXefmG7g1eNY+tyGbKcvwbAjEuSRXVl/7/nt+mIFdBj1uM7VlzT3WsN8jUjD8QPpp93byWjDyuVlj95+craaGbsS5tU9sryM+Tej2aW1+dMirww6miQHClV5lYwhB0J1sfJQoerQcVW+a17B+h0NU9ZrfSjynEDAuwbAN3Hff2z09feOf6tbAIPCVKckcMhtt8ypB6NB3QcJ8/874d93TXyxTgKpV1/e4O40KGoTrX1kzMPPZT7fKuovCwPT+AW1iRhWtSX5zpfTnl2fdW+RkhSRiy5oh6+RUy/9GDLj2L/GdsFgQXPp3CltTCfeF95A4kE5XTAp+blbMElI6ndFvemcXrd1CGBaIQsYGM1HFM9+9g3lpc0rIkziJvHqL6P1Q5YzBFfVfb7lwBfPH3r19rJZYWYPgyx7aj8DxioZI2Pk9gi3rWJjrq9+/J7iN586OoVHWQ8Fbq0bWLAHf7GTB4JApxNoBHubfS33e2mf5Yj66VdSV7+VBJci+gpe+4avzL3xNNbyVdTWNqFD6rjruuqFSypgeVP7RfS7TX6tMoRO6ICBVZivenhTyotvJK99JmvR24keq+heew57jx2G52GTOTR8R1aVdemiCrgUG0JwvD5ZytjEHWprepgvJWoQXVFu27OTmc+kc1fUz04d7uincVWgTSbqnryiXu79y3ajQGP6o+rdncLuw4G1sHyTqJ8gsZNy27/iGXh+KVX4stDjJN7ptATc/+yRDTdWTQ0zYRRW9GX0U3siQY+3q63TFtQ+t/7IlaDcOwPRKvq6hXlZ2TdULQ602PhkaqBlWO7cGMWI30Ie+yCh0ukN8+IrqR80icGFIoRH+TkiAam8l9L/+0raqk/i4HdgdreaufuUbURyr93r79Pu7bTSNiVbMzGrO8r5PQvi9BOyNfDvoiRGUPvfoqFcwZLEU/ABfhwHCjKYlz7anLz2ldS1r6Vua3Z+Kazf0TBlh1aGYs4VBLx/ieXvJH4GH62NKO1m1GWRkDm6Bo80jefSPB3v7d+D4OgPwsLZtzeSsWTFG6Ld5pfHP4o/YODCMNFsYpYYXGVJiWNaDGOEtqXobrq6dslVtZPFzAijiNeBqzG4pP36fThIwKDJbXFcGm6vuTrMBGbGjwuVMFuIjTVAhy6X22FjXHWDRAbWMwrrMHKhPAF7i/vexMjh2bXdCozbsx8q/OiFQ/3/Xhjb6QF3alY3sN9zTF1hG5RCtYsKKgNOVMrKm8VgSonO0Sx/sPBfTq8rCOypfXj0/bUxtwxDELs5lMni9WOTdaEE3bMnYvGbyU2uk4n6Sph/DLvuzolzHxjzo2HQqoQn5VN/9to3hiUDPW3nm8kV0E/GdV0bYpY0StbtC++dug5XuKeWmRJZcjQvLy+9ZnxnpLcd8157DnuPHa7aYdJx+I6cWcAPgJn50dinW5J/c/YBTb7qw89iew2yvsnwc7qev6kKFDdhZcDqH8NcaOD1kjVfMyYf6Yzm9Zc2DVwP7YMO1Sh57bHRt7yT+EmTGFZqrh3fGXJR6yQCbreS7GUUJy8BpvbgIWgkcfhmXbdUc83cw/vCj9NYpJXY90NYtdMHkJuv/qnP7wT8HHc/l/HaMbWrH1rjDA88eeyN66uj/TFUOFmoPqLWkzh876IGSaGJa3N+9ByM9nNEkpbJN51QwFdpK5W/CdrkzyHMvdusI5KXlp96lNfezi1Qzb31vMuXTdrUySBcsiFzzq3nwb9pr6bC+Ohni06dF6bEmXxHp1cjKjXyEfDuB2AwDPY/dh7Sx5HaYUoIW5g0fQLDoedBrxXwSebwHJfcg5mNzWOy6rQ1ix1BThmXNqU1zRsq5qOq7+fXTA8xzw03tee2x8KoeDjwd7Bq8qjYADtfxzc5zZXNZo5aSIL5FAwAzJKkbeB8k5HDc2/7cLgs2Cp1KjquQAs9bbNH90QmzGxUzGlYkq/e5OY6YM4Lejivd5sVFWK+75GCKQLy3zldX/8QBuTYUz3RFZIgJ8AJy3kyYm/4+cnsdyJMz91UqZrZNP9A8FttnnN90sLpe5+e9M7k2Xvf8IMiUS/dXCLfkK6FvCe/ifTH/u+iqt0duU5mX3FBmyq7eyH8o7GS7bFPfB+uc3sVXnvOsD3WD659ZqGFJJjNhB3CJ7+KuuLmihQDr6hDOJbP8KTK0czqErT4LMokCEZr1t9+MgLWOLr5z2xOqbLjF7vyU1jXN5GPRBjX5mjCrqx7JcD2wI6YZtbldoJPheNY3v8irEsqFAtqXnH2kfxdUfWDlcKh7BAk8dPmFNkDhRkix/gZzePdckC77nkvodvNpoXreHteT9k9qnv7HaUOLU8qtwdNaX22m3/j7kh/9vIwZ5S6gmv5pO9pmBGpnyXY1OCkQHQIdzo1JCYMNyL1lz7tH157+xBL3yDy/rbodHk67e/odCtE5UY6At41AK9ck2YuzADA/qbk0DXOAYKrtMIt9WCa62EeWft230z0jZXjv3TuTPMIHAPv06OB03Pb/7+984CPqtga+L13e8tmN5teNo0USiAUIaggoggIiA+UT+UhIPgURZ8FxS6IDaxPBUGxwkOkSFGIiqDSElogCSEkpPdssskm23fv7nfu3SRsttwsphCeMz9+mr1zZ+bM/97dOXNm5pwbb6pVD6VWIn87GEKtPRCYhGMjWjgW+vdRb8PlfBJMAlqeDUwCqmYu80B1dWSm+waHr7YtG+VywNql19Zs2ZvhurdTmmYvKjj8RkpuZ0uA42a8nn+gRjheqeVLqSUPF9usS65L/fBRNqgZfAjx6/jFZtblc2Ukrjoe+NG42lditLMnV3//dZyLYZwlILkmwsB4AMG9rb98xfnVAZ/UPNhl2jnhSZon6eEfUtys0lF5/id826KIm4jMb+Iyt0UPSGmaMLF6erR24F2lc3P919J2aabU1RvLVLarPEJspb44Kt6JfOl4+ma/VHXHfsCA6+sp7VZIDlJqJZ1sQzDttStvr3xzRtu6m53AZjyeNx0c9tH+AMYvyU+0wAJDm3Yjn1jzOeyj/Czhp1qBK1BQI4Y0PTakacyAFvu26Ht+D/l8StUjoXr4TvELpB/menVLTAlG7wSEF5E0EVSrNuzg7qgSWs+wyU1zJ9bw7Ri40nZnwJWZYNq76a2Us/cUv5PSFJLSJN0foXKXzL2klytdfbu9FHNc7s3ny9gwU6aPPbJzbclD1YpaQUaFyOUHoQOnhwcAMwHG7xFzWSa5Ud41S6DzDwxzN6qFsMRr8bPMG6UCP7Q2gXXaVOoYkjFXVubpC+9cGaHlZNIey++6qfaycRKOOuOXfwAqDoZWwsB5Q92dEgtYenc6fqPtmJHE4UAR2BKhOFtsjRWDSk9wo7SwPpHj3V1JW+tXRWZmjE65MDXP2RJ71ELow/Qv314h8vSt5cRp74qkj10VSdwnTMy5gsFNL0ymLMrVf4S4zOqg6dO/hMFmJPto1c3STvuRhRNqN3+YufuNM7Dzzueu/PUbYedBK636KPwsAEA4RvVEVKddaKTEsuCBAtgNWLc38gcNx6QwPX9nmdQTK3ch+DIzFfrZwCrMVKz9JOk0fUeY68+meznMlzfWQzHfLgnDdDCUGtQ8K20gAz8Nk8bBGjpWvC36DAyxAhJGYkizHskfTdjB6q4l276nNrF1yq01lP2gnn+wmWuRmmMidLHheocNRxBspD6GUOb2Q3CMAqqK1CXzIKgFlWxC67g7yp9++vwbtIaNDWiBtWcYklU4hNki6Z3pVDLpWLiL5+C2nMv/c2YPRxmPHwzd9WsY/Nt5PJBa1uqcwHFQQpARphpSOG5gYJeZWH60MczcyDN0Y/inGunlb7drT/rgsw89Ai1w8MP5axYXPPvSuUciXA974lZq1Q/Ux1jqYEen1OX3iKFsH3QdNXFVCFyBDYCl5q0/HLz2xrq4+4u2zS7TiqywxMpp5XyQHt6lP3AYs9N3KucsKpBOr9icpspr4OEia0SoIX/NYHCJ4+g5q1IIe3yepU8WFP0aCnsA4Q/qDLGeDWoH66QQG4ndfP8liAhsCDEsha2zKv5BL6uVHSivisxX9CBZjbwPdyrHzCkRTKlaki1/p0gCxyPjH89bFWKAQ4/wqx3lWP4/K3/nvD/1g8mcS7dtDDI++/I5UmwNpYdwItf/1cPB7oM5mSdL17NnCq33ja1P3x/uUC/g9yVhbD2MQLBPbXKY4VBBm8EGrg+YWX43jC4c+0C6FXgWcWbCnC3/z9EgE2Mu8+sBK8o5F/yxEEPMgsIVZeLkJI3zEjS0mzK3CJRCQYkY9poVl4hvfOyC4qbaJ84GrMyTui6r0IJdTjgWsbjgo3B9folIZWKLorWwxx7e2P0+7CJkfmO7QwM4y+mT9LpaoRnUH/i95pJD6e3psXeVOovfUCuAHQOVv4VmGNuOL7BaOZ9/FZ80quHzb+OKA4wH6Kk/FJ/x8EXYkH/qq/id9OoyzMsrSiTfpNU/P1DzTblDncBshD1tStUN9OjObuVkn/fPzJIfz5M1x7X+e8XZcZK2F8Seql63LPf9zxMO1MNk3jXt25CYQeKTHyi4kWw3+rEwf5lZQa8xga8Id/seGap/4ZncQBOrjkOCpWDJW6dkXBt8r3fsj/Ds2Mi1Ta+fe/vb7a1h5qfP/LZ7q9Nx3ZcewUbpge3Hr1ICDVjng8d4I+9kKydOYpn74rmhlXDyxdq0Kfa1Qj9fvkfeyjLLjHKvaQJXoAHAz0r5lthlTbwF42sGSi1SK1FxVr55m/Kwk6sZBhaWE4olFmLR1Io0pW6QwogbWdXF4mynFQHYPAi/Slg45Rvn67MBjjkJDA8FNUJLauPwUvGuev4sofWH72OSZpUmt3K+2zjgIvyiMO8nuhoyM0DwmKX7M/g/19c/EaG7dVHBnyuHZRpYZj1LJDdRv9x2rLlMdOpIyKYjQRBhmCpux5hy2xsIoieCLRWiU38Gf3skuMHTsi5hYMGkbebEGunN1UMPhpykD0nDkHQ+PbyE9gewtaJt8KBqxalN1GlOJz/DBjXDvJzVwv3kaFAXue1Sefu/alfkxwGmRSnqEXGtBQfC1huJNe3uh8EZ1Cupauj11q/ii8DUlCdbdVLxwaiGMQsLxr2a+ruW8QW2Y9piSXGQIX6gJh7aNrIqsuQ7t0cf881dMdMb2w0asEU0lT5cg99WtWd2KfwBC0YFjTyOgV1fz6/yM8+k1ztgqWv96ykZ7SfXO9CRWfInsujgEJWiHPoqmOXHgPWEgzWUiHOcVzeOBD95JLijIMvA3r87sriZd77Qr6ABzA8YK1Q/bWHBwlQ1jN4wld/9cfKWANPbCwojorWPrTpzx9HgLXsijsJpIFoRb6wU1fJt8A3NMrCyHh3zJqwDyE0z6NYfWZnV0Yr7H2BNOVcruCHEoKDzYB9+VbZs966o/T77zHCvs+1KL3+7vbbL/PS9FvMhw4ceUbrpvohb/68kuEy84SKsJnVK1Abqj5P97i2+RalNTmixt3B+g+U/MBr58D3yVtYHudEt1yoBfN++fZdjA17dXkTonn8uJ41jq9sc+/AfTm7Fhqm3LsmX5sgeXJdU3tVyQ1/3wJvMfS0Hau+aIQAawPSXzz0UbNi7NQZsP7Dh89J3McsPtu3nt8tNI8L0dz92IUXPWvnsSHcNwL2fMAYvfvsUhO1Jf2XYJ13ub2gvD5PCgQ8WrB5BBajUn5O/tykuU0NN4FlK3QMLC6fDGT/w4fNS6ka3XaIdAoAG8PZbp8Gsom3iGuhYf7BvN0higRWKR14d5uLxF1wFPP/eybE/h835QenjOQ73nqIriAAi0LMEGKdQPduU99qkU6pWjq0LCzaCBZOVLV9xpJPJ2pbrv65Y8tSQprUvnf29QKrl2EKU2oDdUUvP0jOhq5SYZb5KQqFmrwECMIfbszbxuiX52UeCNvwW6iIxruadgB0Avd8PytizKe5rO849HLzjgrRjVCbLROtXDk1Pq78vyLij3vWQiLtcYKv48OVUh6ZijdJufDE71v0muCKxBBP21mqh+14Wj7eji4gAItAHBPqFDUA6q2zTbVV4KyfrUMi69HD380uw63D8rLJ7r2uI4JNWLbsiX7p3R/SvjV6jlvUBuC5l7gMZUBPXLgF+oJHVyNd1sZHh2u2fq+Q2qXlKmsp8UnHoqn5tXcVCnxGBvzeBfqEB/L0fAeo9IoAIIAKIACJwFQhcyWnAqyAeahIRQAQQAUQAEUAEeoUA0gB6BSuqFBFABBABRAAR6OcEOu0EdERxfVhhzF49+IVL4HfkypJLxMxNz4zc6hR1njn3ylrqq7uvQGYcS3o2Z01sq+aLAfMyAjuWd9nj6364rwiOe7399Kg/209195X41BE+j1K1CcCc23dSopYQAUQAEUAErgKBnrQBWCtFf4CPkVyZx9BmzLlXoes+NNl9mS10FDRw62ahj0uhhAggAogAIoAI9BMCPXka0HQm4J0zAeAX7LU1J0e49Y851+32fnGh+zLbzJSPe/BrZHL3r9YvuoiEQAQQAUQAEfibEvCsAehk5rnLcu8c0CLUsY9ujVmTEdhxXJgT37JwVtnEuFY4KdyYJ92+NfanGg9xR64YJ4EFjlYtmlw5OtQAY6a6UPrjduWOUjHzaSlwrjLnjTPzpObtz4/42ilGgHBaxdYZFc0bB8zLDIToKQw1O+z8rT9EfRpkXJCmUhD2xlOK1V/H5bn5YvPQIxyTpjY+MKVqjFILNDyLaiHgADTfSpivSAMgsOC0+gcmVY0MNYCXFsLMqvk9ZOl2ZYdxhekpMEvFnAtOcxmeb1dSeUCELiECiAAigAj0VwKeVwFGLy6YM6DFaGRBcPrR8wtnBbQrAHGtq5/JnRbXqsqRHS6SBAzULFmePd2/B5x8+N9WtWFB4VgY/vVsiDgsT9DMW569yMkHrUeAMLe+RPskVvp1kkEUSDnnLlfzYNj1pWbJneXLrq9vzfWHsLMBIxtW3FpNu2nvIglvqv3soYsTlFpbuehcoR/lXM0t2a04SIZbcPOVrAJw0+o/vv9SWqihMivgwAk4KiF8AAAgAElEQVRFRgX496YCA7YlxqfALBVzLsZYcxdSufUdXUAEEAFEABHozwQ82wC4evaXbw/+Xs2/c2XWQplpQqTuv408O2G/7u5S8K9etCHhqVMKCFe255ELa4Y0zb+hPv1Hn+J8ewNhlZoXTy8HUco2xz39Z7CeR056KvdxpW727RXfbUhs8VaMdmJfXc/HorRKqQW8Bt02uTqqnr/5WJCEVlmKmrm+15zxn4Fv5frj4+p+mFsEDvAD9kXWeJ7Ut0kDcXcW/KMMpv41W2KWHgo1te+qcxXWSoAosA/gimwAIddRIY/4WfIX17l2n/kpGBilYpaZuWbQYxikcu01+owIIAKIACLQ7wl41gAKvorfBg7GcexCExeTmQR8KrAM2AMmKmF+jpkTW+6ng5uxhVQASv/YFnDO1x07AB6hH8W2c1o4Xx4PNNoxwsg6kB7x6L8uYrHaKI4tl44L7C21QHyRkZhfsAFkeHBKpVjPzjsnhyDCMOiWajl4bKsvNYvzpevO+0MsItsF6cY9kULwc+6tvfbr9jD9GB4J8VQ2ZQQx+TmH2T9oACRhZtQnXFprLpVgyRpjqvqjRy/syww8mi2rbF+VIBmfAkQZZpCKWWbmmqEXDFJ1RQvlIwKIACKACPQ7Ap41AK2W7bJsTW1kF1oD6bE4eXxtco92hCW2wGSao+Wo20PYWVs5oGvwuKSIafSnhNDVUBFSxaGG+NhWmDdDAJI74lrOii2cZk6dFfe1ZmqvPlUboeLv+jHSl87hIos/LbOKCmrvNUHIbdAPqFUAOhK8j0mzL2KVxLL0hjp5StNc+GfH8rZHv/5bWAuoEYxPgVkq5lzmmkFyJql87Bi6DRFABBABRKDfEPCsAXgWz0w4ZsafPzVqt1NUX883X8lV0sCG4OQWsUXGspfQSgBbZoKwl2wdu9lTWFvnum1qbj2GxUfqZiqMvCZencyUMr7OJLZyS8T1VqI7NTP3wE5v8eNwSQGto0CkNSnXEdC4czk963yBn7VUbLiSnYC4icj8Ji5zW/SAlKYJE6unR2sH3lU6N9d/LRhmGJ8Cs1TMucw1Q6+YpGKGhXIRAUQAEUAE+h+BrqbYThJDnO9MNRWM566baiUdE1ocY+NXMrh5RFAtzAMNwM8yb5SKh2Owoj9tahW0YMyVlXUZDljDrQVLQIRuLJ+s2Bexq4lLDm4aTtgNtQIdyNWdmj2K2nFRxS+hZZ4UrcUJLHRq5TMRVEBVlwQ7FRrUvOpGHvsKSGN8mZkP/TewCjMVaz9JOk1XGiai1ly6eArMUjHmdlEz7EvwLpVrt9FnRAARQAQQgX5P4ApsABDVNH2ncs6iAun0is1pqrwGHi6yRoQa8tcMfq1EDJPgATPL7w4xYBz7QLrbN99/Kc5MmLPl/zkaZGLMNat56w8Hr72xLu7+om2zy7QiqwSm162cD9LDqT39jAk3sEr1rFRqKQD7Jdv/YJhu/gRQCbCWKioOKasbNTP3yK7ibymQvpqguf7p3G/0bH+h1aRlY2JqkHZOsok188eosDGqS6cVu1qo+OtdJxyLWFzwUbg+v0SkMrFF0VoIwQ409lcJoSzzU2AxSsWcy1wzLGIwSNV1p9AdiAAigAggAv2MwJXMTGHKe0KxZF3SoTKRSWEclKQZFGjUFYuzHSsCOAZb6NNS1WmDmxxBxcMGNcPHm6O11DE25lwbVr4ldtmeqDwNB7QKqZWoOqV4fVVKOn3SjznBjj/HgUBRmeiYhqs6EaiiCzTUCqjRuBs1M8uM2/CT6xM+y/WHlZEA3J67O+rxn8PdRdVky86bCWuuLFvvs7Jlx7TFkmILHj9Qk5bamCKwVmTJ33lryDFDWw0MT4FZKuZcEJ6hZqwrqdz7jq4gAogAIoAI9GcCKDpwf346SDZEABFABBABRKC3CFyZDaC3pED1IgKIACKACCACiEDfEkAaQN/yRq0hAogAIoAIIAL9gwDSAPrHc0BSIAKIACKACCACfUsAaQB9yxu1hgggAogAIoAI9A8CSAPoH88BSYEIIAKIACKACPQtAZ+PqNFu74a/kLMySqv6JGnhOblHOcMeyV8/VG3VcC7l+f/6S/iBKuGVuMP3WCW6iAggAogAIoAIIAI9T6CHbQB2h09fqSUpTbX0lbOvjWq4AhWj53uHakQEEAFEABFABBABzwR6eICu+TRxGmGXRetunVM8L0abOrfo+lz/P9pd2XgWAV1FBBABRAARQAQQgT4n4KYBEFjgaNWiyZWjQw0sO6YulP64XbmjVOxuzLcFG158+Vwax9b8U8SSPVGt7cEBwPFcc7H4u2/jx798VikgU2RmpAH0+WNFDSICiAAigAggAl0QcF0F8L+tasOCwrEw/OvZEJ9XnqCZtzx7UbhrzBubgJz1aD4M/9hJxbK9kR3Dv6M1O9sWPUwNPnJBGyjT+uYMvws5UTYigAggAogAIoAI9CSBTjYAq9S8eHo5XCrbHPf0n8F6HjnpqdzHlbrZt1d8tyFR096unbAP/uelhcEGfon4iW/ia20dgQIxG9d275un75NAsF8q1e2JPNCjcYR7suuoLkQAEUAEEAFE4G9MoJMNAI/Qj2LbOS2cL48HGu0YYWQdSI+ggu7FaqNgut+eRBNrVo1s5DZz3/okOdfU2Ypgx3Rm6krV8cANawYv2Reh73bo4L/x00FdRwQQAUQAEUAEeotAJxsAS2yBsH4cLUdNb+mHZG3lwFoAj0uKnAZ6SZQO1AGigV+ip8L+OSfcjmst1K2/7lTu9SGyn0tx9BERQAQQAUQAEUAE+oZApxk8aWCD+d4itshgEyCd2DKTFP6rYze36wRwsXq78ic92xjf8uaMCsnlFQDqfpzEz3wVv+KDQX+g5f++eYCoFUQAEUAEEAFE4C8R6GzDrxbmgQbgZ5k3SsXDMZvAOm1qFQzxxlxZmfXyUM/ScDdsHKDCMOHkquVD1c52ADvLHju6Yc7N1UPbtwL8JalQIUQAEUAEEAFEABHoXQKdNACWmrf+cDA0GHd/0bb3Tnz34Yl/heo5rZxP0sONncWwnZe99EcIXBu2qODuwMuZZLju4Qk1SSlNj95Uy+tdyVHtiAAigAggAogAIvDXCXS2Adiw8i2xy/ZE5Wk4uMgqtRJVpxSvr0pJd1/Rt2EVO5VfqPiw+X/RkvwUHrVfEBJRL/ipTMQysH/Okpv/ulSoJCKACCACiAAigAj0LgF83759FovFbDa///77vdsUqh0RQAQQAUQAEUAE+g2BzjaAfiMWEgQRQAQQAUQAEUAEepUA0gB6FS+qHBFABBABRAAR6KcEkAbQTx8MEgsRQAQQAUQAEehVAkgD6FW8qHJEABFABBABRKCfEkAaQD99MEgsRAARQAQQAUSgVwn0mAZgx+2pL2bv3XDsi6HqK5XYxrZNfeMMlH09vqUvy3ZH5iuVs2fvtwvIEZOqn1xYONgpXkNHE8y5PSuJ77UxS8Wc63sr6E5EABFABBABHwl0igvgYxl021UnQAYaHpxdGqlnHSNi3YVhznW/v2+uMEvFnNs3EqJWEAFEABH4WxHoMRtAj1DrThzB7pTtEeFRJYgAIoAIIAKIwDVEwNUGgCu1D80qGx6pCxFZoRuaYsn+7dHfXZJYOLY5b5yZJzVvf37E1w2XHf4Kp1VsnVHRvHHAP08onLttCza8+PK5NI6t+aeIJXuiWu2Yt5rbvAnShQ0y871P585KaBHo2Jm7ot79M0TrGNgJLDit/oFJVSNDDRzwPGhm1fwesnS70uDUpLeyvrTrqMZZ5of2R0x9nam/8zIDMS+snHvk8VWAVY9pK88ukZs++ig5dmbZFKWOo2NnOPWXQWbJnWX/nVLlqJYUki98lOn4u+C9QU/lS5lz4U6GmpmlYs5lrplZKubc7rTbAZ8zvPHdBwqjykQrPxp4xuAa0NLjM0IXEQFEABH4nyfgagMglNrJ8S2mamHmKUVGlVAa23rvv89PlVpwK36J9g2s9Ovk7VdEBwUoV/Ocp+A2ATnr0XwY/rGTimV7I2H4h+StZmfEoxcX3JPQYtCxSZF15H3Fy5OaHfGIuGn1H99/KS3UUJkVcOCEIqNCyJZYXH7IvZX1pV2QwUVmraXr/vpYs7d3yE7YH308b0aA6exFqbZzfxlqtlaJjmXLMy5JHNUW58pOZMtPnJVntYBqhDHn+vIUGKSC4gy5vSfzX27XgQh2ewyaUhXDsbHiW+dE6rw9DnQdEUAEEIG/GwFXG4D9ZODco8GtdCxgG8c2Y2XWvwJMt4br9mr8q+v5WJRWKbVAzMDbJldH1fM3HwuSBJjgzqJmSjlwJBgkBv/z0sJgA79E/MQ38bW2tqCCDDV3lOVqORtWD95Zx098+OI7w9Rjbq2W5fur7VjIdSo+hvGz5C+uS/S2V9BbWV/adZcZhO6yv77UzPw+CWoEL6wekqlnh8wt+uzGuo7+MtRsOKF484TCGqXd+GI27APYsj4hw3RZF2LOBWEYau4Q1aNUDe3ZHnPhGTHUzCwVcy6zVMztOsridvzisUC9UitT89KrBcxPBOUiAogAIvD3IeCqAdgMrFYBmTi4aVCIQcInwwWUSVtMbzhvqRRiIzG/YAOsATw4pVKsZ+edk7PFVsJKlGqpCagjiSbWrEpo4TZz3/okOdd02cbAUHNH2fwv43+opX6jLxwPsg5T28IMYWyb2kI0l0qwZI0xVf3Roxf2ZQYezZZVOg17juLeyvrSrkeZu+yvLzV3dM3jH2e2xGbqqEdQdVZuvrGO197f7tfssTm46EvNHqVqaDfyeMyFZ+RLzd6k8uV6d9o1HAq993gQx0QY7ZeDXPvSKLoHEUAEEIH/YQKuGgBnqPr1hy4mszzsq9PVCEEdEIca4mNbYUZuFVrviGs5K7Zwmjl11ss/rJIoHegLRAO/RN/JTs9QcwdfnaGtYRhOYI1fwLUJ6Io1+yJWSSxLb6iTpzTNhX92LG979Ou/hbVQmklb8lbWl3Y9ytxlf32pmfnVsbRzs1sIWFyBQIuO/na/Zm/t+lKzZ6na3wjPuRjmS83epPLlejfbJY2sLvdn+CIGugcRQAQQgf8ZAp32AZB88r75l2D4b9gb+a+lo6f/K+3lcnFHV21qbj2G8SJ1M5M0vCZeM4aljK9LFlu5Gm699XI91duVP+nZxviWN2dUSNoVA+aa3WnyAkyw0M3WsTX0IgJuIjK/iZv7+OgnNybsLRVjODbwrtK5wXr3gnDFuayP7XqUmbm/PtZs59qSRjXcEEnP9L0nfrARQDv660vNHQqaxymtt1xfanaW0Vkqd9n7Rubut+uogSUgBYQHvda9fnQFEUAEEIG/CYFOGoCdT8bQRwByzsqrTSxWrPaOMKdRVsOtxTBdhG4sn6zYF7GriUsObhpO2A21Ap3TTytLw92wcYAKw4STq5YPVTvsAF3U3Bk2bMqbOpna7q7PkZXTs2S+zMyH/xtYhZmKtZ8knabvD6NFdUkuZX1s16PMGGN/fakZ9qANfjh/zeKCZ18690iEZ30F5AdnONNuvdxfX2rGrQTYSOAsQKzEAwRvub7U3MHTRSoXzn0mc/fbhRqEE2o3f5i5+40zE8QW1zcGfUYEEAFE4O9KoNPUlNCxTzfyhgeYbnkqN7hWGB3bKrLhlyeUBlapnpVKLQVgv2T7HwzTzZ8AKgHWUiXsdDwArNnnZS/9EfLp+NphiwruXjFsi4rPXHMH/KELC99Q8yWR2mgBydFw3kkPp04a4FjE4oKPwvX5JSKViS2K1qaAzbmVs79K6PzUPJb1sV2ox11mnLG/vtRsZ9sHhrcN/CmBBgw2UnROwxYXvqXi+UXrIrmX++tLzXgj72QrJ05imfviuaGVcDLC2rQp9rVCP0f13nJ9qRlq8ChVh+Aec32p2ZtUzDJ3v13QwxLG1oswzCQ3TQ4zHCq4vGfF5XGgj4gAIoAI/K0IdLIBEBZi77rEn6uFMLlMCTUU/Rj52E8RHThgx5/jQKCoTHRMw1WdCISJPqSGWoHrPNSGVexUfqHiw8L2oiX5KTySuWacxAszAs/VCgwK05AETRyBlWQEvrpq6AH6hBtmx7TFkmILHj9Qk5bamCKwVmTJ33lryDEDpb4wl2Vut9OTdpeZsb++1Az3pO+LqLHhthLJhovSTs3RH2xS06CElmh7p/76UjPLxPru4+R9ZWK90Jqc0BIvsrSYL++68JbrS83epOoQvo9l7n67cBbgfHp4iZUgiyRbK0ATQAkRQAQQAUSAIoDv27fPYrGYzeb3338fIekbAg4vNw8rjNmrB79wqW3i3jdNM7TCLBVzLkO13cy6Wu12U2xUHBFABBCB/k/A1SNQ/5cYSYgIIAKIACKACCAC3SeANIDuM0Q1IAKIACKACCAC1x4BtApw7T0zJDEigAggAogAItB9AsgG0H2GqAZEABFABBABRODaI4A0gGvvmSGJEQFEABFABBCB7hPoUw0A3MiMmFT95MLCwXSggV5JOJa0PGfvhmObxqj6tG893W5fsPLyANjj6wDgTx9njON7cKTLnOulSnQZEUAEEAFEoN8RcHVWax2q3vdIvqhGuGjl0BI6QmAPJjLQ8ODsUohod4yIda/WLrSOnVo567qGRH/KwxCuZWd9H7MyI7CXvLhRQWOX5r89uIl7JuDeDYmNtE5CBphefv3MGMJ+aNXQ98p79+w4c3+ZWbnT8/GKL8/XYqR0J3D/YPEUR4c510cx0G2IACKACCACV52AqwZwtQSySSzznsuZo6B8AILjGggBLBZbh4Tqe28eD45icnZFlQxuihne+I9Aw2d1VEzC0MlVMPzzsmXfVvbu8N/3/fX9ydrMVHwm3IqbPPnRZ871vRV0JyKACCACiMDVJXDFGgAnvmXhrLKJca0wYDbmSbdvjf2pRtAxUnjLldxZ9t8plOt7SOBw8IWPMh1/F7w36Kl8Kfj9Vd5dCsM/y8Da+lHyfy/5wbyfHWhMFZBt3gYJLHC0atHkytGhVPRAdaH0x+3KHaXitrUEHJOmNj4wpWqMUgtSuS8weJOKVSn6OFv2bkrTP6ZWbf0qvinA9NCNdSDYT7uUqvZavJWl5Gdul0Fmxv52wYoGxyRVV7kO8kz/pQMV8q2E2ZMGgDHnMtWL8hABRAARQAT6EYErnGPHta5+JndaXKsqR3a4SBIwULNkefZ02mhPJe+51irRsWx5xiUI+Eel4lzZiWz5ibPyLNrvLymx3DuqAf6o+G/st/TwD8mq4p8sFzkWov1vq9qwoHAsDP96diuGyRM085ZnL2p3uS+8qfazhy5OUGpt5aJzhX6NdPHLybtUoCxc2KUsgrZG108PMAVPqhpF2LlZ8s3V7Q78GcpCvBnGdhlkZu4vMyuqX4xSdZHrAsfTR7sVhyeKW3Czp1UA5lxP9aFriAAigAggAv2RABvHcYJOXUpnJ+zX3V0aj2FFGxKeOqUgCWzPIxfWDGmaf0N9+o8RJsZcwwnFmycU1ijtxhezYR/AlvUJGabLfuztQcZkOnLr7wVS9xm8VWpePL0cjBVlm+Oe/jNYzyMnPZX7uFI3+/aK7zYkNomtC/5RBlP/mi0xSw+FmmBH3rM5a2JBT6ASs8wwzrGqhR9nyd9PVc+aUR45nFIedu2KaqCFYC5rYGyXWWY1Y3+7YMXImfkpuARwciDy8F8rYaL3AXi2ATDneqgOXUIEEAFEABHojwQoDcBHuUiRdaKSGlnNiS33R2vhD7aQMtL7x7bwIJIvY24XYw/fShkH7FgDvQfNJeER+lFsO6eF8+XxQKMdI4ysA+kRj/7rIharjeLY1GH6MTySZWRtygiCccslMctMSWXDLu6JKkxVDxijuh7s56cUW+vaDADMZfWM7XYhM2N/XfvQ+XMXUnXnKXQ0BLN/0ABIwuyujsE9zLnM0qNcRAARQAQQgX5D4Er2AQitgfQAnTy+Ntm9A8y57vc7X7EQsAOQi2MKOH5GR/xzTiyxBab4HC1H3X42wdrKAU2ExyVFBIaLLP50rsriSZXxQSpWjfDjMwEf0gaAHbsj1R3DHmNZ5naZZYaldIb+MqPCGKXqIreLqtuycXqWT60CwE4Ht8Sc63Y7uoAIIAKIACLQTwm4DrdMYpoJA539+VOjdre6BVlnzqULdmwscx1YGnkVGDYIwyYktGzNDHSZeZIGNuwMsIgtMpbdcUCRLTNBqF22jt1M4nZ6YxqHSwpo7QTO+Em5TqfYfZAKzACFx4KswxsltYLfG/m0pHRiLMvcLrPMGGN/HY17ZcUoFbPMHT3r4g8963yBn7VUbPC4E5A5t4uqUTYigAggAohAfyHgweruTTRCy8lUg70fu+umWknHGI5jbJwaKJhzHXXC9BF0CDgLECtp2+PvuM5q4u0uo07fRdxXvCC5GcZyGMj9orUT4lspDaVamAcagJ9l3igVD8dsAuu0qVXQvjFXVmbFMRW/hM6dFK3FCSx0auUzEfqOLvgiFXVz+1DnPOR1UZaxXWaZu+gvLb03VsxSMed2YGH+A85JNqh51Y08tqe3gzmXuWaUiwggAogAItB/CODp6ekWi8VsNr/77rsglsNjDIyvmiZex0aw5r0RzxwNhkGbc13Dl4sKYP5tb+DnNfBwkTUi1JC/ZvBrJWIoy5wLN5A8ct4bZ/5PYmHr2TmVQrbE2rQp9rVCP8iyR+lWPZ89jN4P2JHI/eFzflCaCCzyvqK19Dk9u46tFVGbBjitnA9WDk3XcGG/3sgn815N0EBus57tL7SatGye2Kr5YsC8DMqc0KVUlGBDmvYsvQA2gIdWDrsEWkV7YijbRbuMMlMdYegv3ToDKwapoCBzLvPzdfRbOqts023U0c2NT4/aRR/WcE7MuS43o4+IACKACCAC/ZYAa+7cuTabjSTJ48ePg5S2EMN91zXAGMgXkKL2f+Jivx2X/GA0tVUJD1SK5EGG0DBDmMIUxLOpS8VHTgRe1FNzdeZcuAE2l+UVSv2idJGBxpAAk9yO5R8PztRwIQvXcH8/qTBJLUFys4Rth43oqmLJr0eDsxr4djumyZNlkUREiD5IYhVYicozAZ98mniwmTJIwJS0KkemD9cPDDL6W/GcfZErC/2mDdSYsgJ+qBSBQtGlVFCJPdh4z+gGnpbz4x8hattlDYChbBftMsrcRX/pl4WBFYNUULCLXMbnS7eMmazE0FEN8gv+3x4LanKi4Uuu4x70X0QAEUAEEIH+T8DVBtD/JUYSIgKIACKACCACiED3CXha6e1+ragGRAARQAQQAUQAEejfBJAG0L+fD5IOEUAEEAFEABHoHQJIA+gdrqhWRAARQAQQAUSgfxNAGkD/fj5IOkQAEUAEEAFEoHcIIA2gd7iiWhEBRAARQAQQgf5NoE0D8CU6gI1tm/rGmb0bjr0e39LdTkH8nuU5UNWmMSoPOghzbue2e1Kqvqq5u/SuzfJhj+TDE/9hzck1Cwonhes9PPdrs19IakQAEUAErlEC1O+wL8P/Ndo9JHb/IWCnwzqwpZakNNXSV86+NqrhSlxS959+IEkQAUQAEfgfIXAFsQE7euzRW/xV59E/pbrqWPqPADWfJk4j7LJo3a1ziufFaFPnFl2f6/+HWyCo/iMwkgQRQAQQgf9tAq7TMFypfWhW2fBIXYiIct2vKZbs3x793SWJU7AdzCAz3/t07qyEFoGOnbkr6t0/Q7QdfvX55OhplXePrk+UQjQfzFQj3PDeoF80tGdZHJOmNj4wpWqMUgux/lwDzzLngts+hprpR+RNKl96xPyMdTLz3GW5dw5oEerYR7fGrMkIbAtDTGCBo1WLJleODjWw7Ji6UPrjduWOUrGVY5vzxpl5UvP250d83UA5LnQk4bSKrTMqmjcOmJcZyKyvMMssmlH+3bTK1h+iPg0yLkhTKQh74ynF6q/j8kwsR0Oc+JaFs8omxrUC58Y86fatsT/VCJhbhKcTubhg7cgGYb70ng8G1dOPh5SZX3nz1GgCO7Ry2HuVQsxLfylnkRzbzNeyFstNZ94a8kqxBO4c/Gz2mzHaxk8T558J6CCA2/DmYvF338aPf/msUkCmyMxIA+iAg/5ABBABRKCPCbiuxhJK7eT4FlO1MPOUIqNKKI1tvfff56fSw3lHGr244J6EFoOODbHqR95XvDyp2eFH18Ynpy7LfWlSFQz/EMC3ycziherDOG1jvfCm2s8eujhBqbWVi84V+lGxeJ0Scy5zzY5qvEnlS486y+L6CWqeM6DFaGRZRdbR8wtnBbQpAP63VW1YUDgWhn89G6IVyxM085ZnLwrX41b8Eu3qWOkHYQsvJ1EgxATGytW8LgZjcAnsw1OQ3Fm+7Pr61lz/ixYiYGTDilurqSYhxbWufiZ3WlyrKkd2uEgSMFCzZHn2dP9OkjhL1fa3HSs5EFqLYfpEzc3+bR0UpDbC8C+qEO2sAV0C89ZfD7V5v2Rn26KHqcNBIbThZVrXoAPey6EcRAARQAQQgR4m4GoDsJ8MnHs0uJVesoWJ3YyVWf8KMN0artur8e9omavlbFg9eGcdP/Hhi+8MU4+5tVqW76+2Y6JxdUsidYSZ2PHeoK+LKbMBP9gop0PLkGLrgn+UwTBSsyVm6aFQE+z1ezZnTSyMm1RizoUbGGruUipfetRRicc/uHr2l28P/l7Nv3Nl1kKZaUKk7r+NPKvUvHh6OeAr2xz39J/Beh456ancx5W62bdXfLchsbqej0VplVILRDK8bXJ1VD1/87EgCa06FDW3jdQe23Jc9FHmjP8MfCvXHx9X98PcIkVKU8C+yGrMft3dpfHQyoaEp04pSALb88iFNUOa5t9Qn/5jBLMWwCoXf1cr+HeI4Y4RjTt+DTOz7WnjqWhMxQfCKkicub/NDJ1pz7Jxbfe+efo+SZs2Wbcn8oB7jGkf6kG3IAKIACKACPQIAVcNwGZgtQrIxMFNg0IMEj4ZLqDM/+L2eZkM63YAAB/YSURBVLyjyfwv43+opSaFF44HWYepbRAliG1rJPHB16ngouW30M308A/JWMevpv+wh+nH8EiWkbUpI6htgklfd6Qucgk7Q80dlXiUSm0hfOmRkywe/iz4Kn5bjRDs5BeauJjMJOBT+hEeoR/FtnNaOF8eDzTaMcLIOpAe8ei/LmKx2iiOrQhs5iMxv2ADrAE8OKVSrGfnnZOzxVaIeFTqw8TXF5nF+dJ15/2Bs+2CdOOeSGETl4q8LLJOVFJ6lTmx5f5oLfzBFlKrOf6xLSAJswYApovDv4U9fl9R4Li6mEOhF0IMs0P1LBPru2wZtMLcX180AAjBrDNTNqeq44E/HQn+pdDP/U3wQB9dQgQQAUQAEegdAm0aQMdxAM5Q9esPXUyGZW3vSUetelMJBioYdQRcmwDH7Cx7OD29a6kUuY80uMgCNgSOlqOyXI6819ECcy5zzR2VeJQKcn3pkfe+UjlaLdsFB/SBJbaAEgQ9UtP2Ekiw8AFjL49LighMVyOEUVMcaoiPbeVDltB6R1zLWbGF08ypc4o+7K1dn2S2EhZaLELF3/VjZFtVQmsgvbCTPL422Vvt3q8bTst/u6vklmDDjDB9fVp9NKhuJxXHddRLwtxft20dHtqAaIpaCyXcrzuVe+lVEpQQAUQAEUAEriIB6se9Y/gn+eT8+Zdg+G/YG/nCL2HVZiL1hZyVUdRU0mPiBZgkMMvUsTU2HIZBDb0TTarUciHOb+cCdgsBagGHSwro8cmO26Xcy5sLmXNh5GCo2V0wZ6l87JFdYhmXVi++KP25TOy6RdG9AfoKaWCDvmMRW2Qse4njnJvMJKVpNJO4Tc2tx7D4SN1MhZHXxKuTmVLG15nEVm6JuN7quvfCpQUfZfYsl5kAnQzS50+N2n3lNnaWlvP9acUtafU33lSrHqqGen47GKKjK2TuLwRpdlaS7HY7z02JxEn8zFfxK/g2X6wgnnuHriICiAAigAj0HAHC2RkA7LePoY8A5JyVV5tYrFjtHWF6b23ZBOTUyVWQq8+RlVtxsCFnX4QREGNNrFmY4Nj9j/EDjeE8eqRX8UtgvPSzTIrW4gQWOrXymQinmhlzu6i5s3wuUvnUIwJLWlT4zOyyR5/NnSlzt194AVAtzKN7NG+UiodjsN4/bWoVqEHGXFkZzPI1XNhVp4vQjeWTFfsidjVxycFNwwm7oVagYzKvUG35JLMXoQgtJ1NNnT6466ZaSYe1BcfYeFettldYcTC0EuwKN9TdKbGIKmEPoLAth7G/oKW10hZ+hR9l5BGOUT0R5dAcLgsKtpzY0Q1zbq4e2r4VwEsn0GVEABFABBCBviDQaR8AoWOfbuQNDzDd8lRucK0wOrZVZPMwdAxdWPiGmi+J1EYLSI6G8056OLXHHcPq94f/Okp1q5Cc+vT5qXqWhg0TfduPL6WurxOwVPwtBdJXEzTXP537jZ7tL7SatGxMTGkbkJhzmWt21AD/9SiVTz2yYxbaMk+5F4zW7mySd9TJ8AdLzVt/OHjtjXVx9xdtm12mFVnBHMJp5XxA08ANrFI9K5VaCsB+yfY/GKabPwFUAqylStiliuGTzF4kIyxE+k7lnEUF0ukVm9NUeQ08XGSNCDXkrxn8WonYS6FOl1mVws1VwmfDKf2s6NdQ2APoyO6iv1Y854I/FmKIWVC4okycnKSBtQ+XRIbrHp5QEwqmkZtqj+yKQpsAXAGhz4gAIoAI9C2BThZpGD/2rkv8uVpICsmUUEPRj5GP/RTRIQ9YcQszAs/VCgwK05AETRyBlWQEvrpq6AF6tz8kGCT+s2rYZ6cUtWYWJiRlGFabI8ulV5Hh6NfJ9Qmf5fqDjToAt+fujnr8ZzgR1paYc7uomVEq5h61NW/HCrfEZNJDnd3HNQC41YaVb4ldticqT8OBUVZqJapOKV5flZJOr3DDjj/HgUBRmeiYhqs6EUhtksSwhlpBm9bT1raH//kks4dybZcsJxRL1iUdKhOZFMZBSZpBgUZdsTjb5xUBeMrZ56lzH2wt++uzAZeXahj7C/erdkV+nC3XCcgRca2VB8KW/Xj5zXFIRtQLfioTsQzsn7PkXapB3vuHchABRAARQAR6hgD+yy+/WOi0evXqnqnyGqzFxrP936rT//SzfPfCiM1OPnyuwa50W+QI3fPP5aRxbHWbYx/+I6STI4hu140qQAQQAUQAEeg/BDrtBOw/YvWZJDax5cYxqkHD1dOlFs2+iN2Nl1349ZkM/aQh6ZSqlWPrwoKNYMBnZctXHAlGw38/eTRIDEQAEUAEeoPAX4kL0BtyXK06bUHGf84uk1QI920c8O3JwA73xldLnqvZrtAaG2zEWzlZh0LWpYdXt+8AuJoiobYRAUQAEUAEeo0A/uuvv8ISgNls/juvAvQaXlQxIuArAdH42udGN2j3h6/Okfm+HQVqB9+dUxYVTuRbj3wdv4c+CXKliX9dw1Kl9syJwN/LRJd3fvhWCx6jXTRMXZIjO1IkAddYKCECiMA1RMDVI9A1JDoSFRG4RgnYpJaFCwqSuW0DJtHM3fBFvCrUMDS+pVWmAO8U9y8qHNjuiJNys70+McPQFvbJvct2wh6e2JwsJMscJ2/d73BcwTGxzCQmOo/SVqJBwxkwoWZcXOv1JH7EiwYADjxC41pD2gWm6rPgJZck4Aty6KzSGRAkLFx/1ydJjjNB3tp3XGdzbHC+12LvOKvKfDvKRQQQgV4k8HffB9CLaFHViIAXAnaOLWmgZmB7LozxN91Y1xBBeVAQJrZMklhvSm5WOJUNZoFRwKsG4KUR18skl7z75bN30idUOxK/gf/IewOnx1Bev86e98d5pPMxTtLMcvidhJgOUx+94FwW3EW/vmzk0Rjt4wktUNaQov5m/TFHtdxm7vIXhmfR/h9dEhlsXPPambCv4v95LMgXO8feDcemPzjWtRb0GRFABHqIQNs+AIdfIDgQP23l2YcVxuzVg1+45NdDTfRMNTDRibm5ZvGk6hR/s03NO7o3cu2xIFi2788y90zP+00tjqjEHeJsembkVrcoR7Zw/YtP5Y5t4r32zqBMQydvE/2mH22CdPPNYabBnOuQAFxK/+e/sbc8eHEA1zbjHvCYRSXWqIZH6T/gUOiXnycMfih/ROfZMiu1cdXtVVRYjvYEE/Rwelwf99DFAZbOisIF6fM7lA7fW5RX5iaeFjOzhFYoDkdwW40sQzOXk6pOow0DI546v82pWvhzx/MjvvJ+NMYust47vzCwcxH4BDV720Nq9zMHQWCIRp4vw79bxegCIoAI9DCBa8MGAMP/oAWX3h6tImoEv50Plg5uuvH+S2FW/OnMwGvxZDkcPlzw1qnZIuuJN1PAUQ9MsG5/IXtJqJ6bI1vwSVK1DXcZP+CZg7PhV5ePzDRR8yqGXGuSZtuT5ztc/1ibuflZ8u0/Rp6m/QF0tOt4icAYW1fol/6DckepT76QrZWiP7LkXI592OAm5xHI+ZUUJGvSxFa72HpLsDGz1CcfRD38RvdVdcw0mHMdMoJL6Yk31UBEBxjsf94X0ZTSdHdMq+2c/Js6/sxJ1QEWvKxEHA77MTtHpSBk5sFeHHULQw1xnbsvbuF0aARgafh+xbDvMSzskfz1Q9XGXVHz0sNNHNv0FWc9MgOfFu4DOVzhm1jFEOKZYxvzQOEE2oemoFK4bM2Q037m5186dz3XVvlLGESsdq4TonuPnlY5Z0x9oh9VpeKxC1/mS99cl1jQlYdsj4Khi4gAItBTBK6NswD86+tXjlZhpxQPfxFfbiVIseVfr2Xd/Y/y5DMB5679zUcBk6tg+AcPPO9+HQ/Dv8dHC/Mqj9cdF91z62oEViEZ7m8ePKE2dXjje6uG/uIUjMdUz4eGAkMMQcma+XG55heH73abzbs3ZzoT8M6ZAFJqeW3NyRHu2fQVwwnFlwNaRjVxv4XoiP/TiZkGc24HmATahA4xM4/9GnZJYgENQJfjvyNXNhw0AC/0rGcCnq8VdozreGLziimUO2pH4uRJV/wS4YgNQV3RcLy69aYLsIc2zVNQy/en3hqyohjcWmJksub7J84r6vmPvpp60XsUK1DKh9HBJ8taOcoI/RvLco5JLddxbbwC6co/O7mRAG/QaY9eeDGhBd7SOjMRxLXVaTgBUVoZ9KFL91i0kCghAohALxHwvBNQJzPPXZZ754AWoY59dGvMmozANh+uBBY4WrVocuXoUCo+oLpQ+uP2thmkw6a6RG766KPk2JllU5Q6jktZcJob37JwVtnEuFaYQTbmSbdvjf2pRgBbgiIXF6wd2SDMl97zwaB62j5IysyvvHlqNIEdWjlsTQNv9sxysZbzXp50yXsnB3NtTQZWYwPfpNTeHGQ8V9e2cNmvZH7P5/HPFql7floFdDnjs4QO74qOh23aqbwnPdx9HtZlLr+ev/q1oTDBYim1Tz19/kap5fHpFUc3xVFhg+mUsT7xnQoRKTM9uyprPNc2KULvrAFwhje++0BhVJlo5UcDz3jfgNZeWdv/XSwTaenh5e1aBfO7AVvZZ76WtVhuOvPWkFdgECKwwc9mvxmjbfw0cf6ZACyhZe3TuTBRvrAuaXmWHBShoLtKN95SLSwXLXl7iMtc00Uk6iOBBafVPzCpamSoAcwghJlV83vI0u3Ky2MkhG/w9rZ7e2M9NPNXLrH0rE17o66fU+IycWeuy97MzekAKyBnz73krBtak1oG/Jf3Tb27U2YPtcLU/B93lTo0tSSljl0sgRFZpNSC6YaoE9R6Gv6BIckjo0BrMbE+e3sIwbL/oWMvX5F1fYT+OtAn9Ox3NiSUdi5IBhvuoRWdXa8MOzS3+FOZ6e1XUwtwOxsZADw8E3QJEehTApSxDjYBOMcHgiujFxfMGdBiNLKsIuvo+YWzAtoUAP/bqjYsKBwLw7+eDcOJPEEzb3n2ItqHvCPBzODRx/NmKEzniiQuZbG41tXP5E6La1XlyA4XSQIGapYsz57ub4aw8SUHQsFpvj5Rc7N/W0OC1EYY/kUVEJlGgMe1TpNYNBmKgXeXpmDYeSPLX2QtPieHXytwedvRdL+S2cdnSHLIyQsLkyCe0K9h7+X79/jiKFkm/nAvjJ4Ya6g6oX1veYdsONY2dqj0lxePYVF50JSqGI6NFd86J9I1ug9Dv8hq0dFseeYFyvGzx8T0bngs4LhY6LfiQBj8OeSflyaILbZo7Qu3VMPHrV8O6Hr4xzBuWv3H919KCzVUZgUcOKHIqBCyJS5L5V7fdq9vLIO0vmXZ4aWH8dLIzjonB3fRFonl4SfPv3Qd5TlaNqXq7cfz4D3vOhGYclbpAjoMp+M51evYAPmf8y/FsH14lXBMdlvV/bK2b1xwaqM//BgQWHwKFROyLtef4dk73hu7ll0bqX1y6YXr218tiIL95HPZ/76lOlHspLiy7A634TEJLUMDTJwmnsqKQzhQxx7DrruJ7kAEEIFeI0DFBnQZ/qEtrp797SvD7ls26osmHvwoTKBHAqvUvHh6ORgNyjbH3fXEdf/3+OgPy0SQO/v2CudNg4I6wWsvDX/x3cHv1wo6ysIP06i7S+Mh2MyGhMc+Sl69ZsiyHBkpIOffUA9u9Fnl4u/gZhy7Y0Qj/FjY2fa08XXQYvGBMIhME5jaCJOSP5p4Y/hk697IjfT0uk7Fg2mFxO/yr3m/ktnH5yW7rXppuF5YJVyxO6rVbTmD94+ynRuO/fD+iU8ezp8aanBZBmDO7RBAVyShxhippS1II50x/L7iV5/O3fjm6fEcm+mE4rOyywv2sF/s4rFA0Ol4al56tbflfg/9M54KeOvjpBVfDICQid6Sx3fD281t1+1YzZ7Iz+r4VrH18XuL5y4sjAXb9g9RX1f5tMoQcp0KpsP8LPmL6xI//DzhtbeHzP8y3iXctcc3h/mN7ULmLrNZdvgemeSmRfMLB9E3B8W2JtCBsqwBpoGh3pSoTvUK0upWj6O+JhDL+w9ahzv9fUwRaJPxLW/MLJd62InfWSw71no6YF8Dv+mkohSWb+JbrxNZSKn5jlgKz58X/L1Z6CFyRANtCXh29al35hVNCNVDjIyc3VFv7o8APd4SYJp4d+m7a07dCco9nYhawY90hMmUfxYtUBjNXDJJYexSus6yok+IACLQKwTaogO7KAEFX8Vvgy+tmbjQRMW5EfAp/3B4hH4U285p4Xx5PBBcfxBG1oH0CGoLcqw2yml+eXZL7DEtG34mqvXUEoOjLCmyTlRSRmhzYsv9s0sX/qN0nJD6hfGPbQEPJrAl7fBvYTACBo6ri2HbbSGG2aF6MDN+ly2D2UJ0tBbspQVSiwh0ggqRhE/CL45Kx4byBJwtbsfSf2R2HLcC4/a0F7K3fHCi498HIxpcfviShjSB+M1nAgrp0LodyVYvOHfJ7/wlSUG1EEwpUanqR5/PvqM9cjFzrnM91N9mwjGeCJ02lEliW0cktIQQ9ub94Qs2JlR1dv9nOBR672OjZzw3/JC2LeaTa51/9bPHd6PLyuBN27UxoRDek5GN9wQbIGbxqgNhPoYWbC6l1raNqeqPHr0wZ1RDhKcT8x7fHOY3tkuZmW/A4XtE3wH7ACh7vR37fkPCEfodUGfJ/7stuoq5POjoqY3v318Eihv/kt+KQ6EOGni5aOWPlMlHPKl6zW1Vl8NDe6nNVila+8qwxV/Fb60SwkrNPaMagm+qHUPYReWidEpx8pBgag87BHUkFQ08g/Y+xDawTx4IO2vHIkzEgYOhxfQeQHZWwO/t+05gn+O+dwetPRPgeA9NMdrn3jjz+X3FUb4YKjyIgC4hAohAjxHwfBZAq+28/xh+fGGmLrbAlBCOMKnbBwxrKwdGdR6XFMG33jHuwczG7DJZpW3NQmsgPcYlj69N9iS84bT8t7tKbgk2zAjT16fVR8Ov4knFcbBqcmzRfhZuC1dPmyurDawAPgnmUzAAUEuS5sv+TfqPzG39wzGBv0lMKzqOZOe72mZP74+Im1LpP71iYVbAOqetA4aMwBcz2o5Z2YINz7x0bjyP/L/Uxh8PhkJ1zLmudPkkjBOwCauJPkfgSH+8kfJVuP7d+y/Jp1TddSzoizrXuT5pZLU/T9f6uvPZ87vhQ41EuXh9nvSdgRq49+JPEb7Y/x21QqyHVRLL0hvq5ClNc+GfHcvbHv36b2EtTo/C45vT5Rvrg9Reb7HzSTCb8VX8N/ZEznygMFHLyVHxR3ApmeSp6qmNvBqvRakM3jD1mocvhoMe0MR9e31ikQW/2XG/DWv8KeKlcN1rqerQO8s+9jM/t0NZzbjcTnBtYTiW8XO4aWGh/90lH9PvSNbeyPKufEITJPH7+kTJc9mDBNZRk6pHOQkM/Xr6m7gmJ5sW3sLZ/2nivqFN2x+5YNVwxFJL4Pja1U3cefsirsWzPIwPB2UiAtcSgU7+AJgFJw1smAHAESYZy15C/0CwZSYpfVCtmfroZsV2rq59Jvr5U6N2e4pUy9Jyvj+tuCWt/sabatVDqZXI3w6GUGsPBCbh2IgWjoX+fdTbcDmfBJOAlmcDk4Cqmcs8UF0dmemOw+GrbctGuRywdkYCf1uzZW+G695OaZq9qODwGym5nS0Bjpvxev6BGuF4pZYvpZY8XGyzLrku9cNH2aBmOQw2dfxiCNncodeRuOp44Efjal+J0c6eXP3913EuhnGWgOSaCAPjAQT3tv7yFedXx26382CXaeeEJ2mepId/SHGzSkfl+Z/wbYsibiIyv4nL3BY9IKVpwsTq6dHagXeVzs31X0vbpZlSV28sU9mu8gixlfriqHgn8qXj6Zv9UtUd+wEDrq+ntFshOUiplXSyDWGwS0N5e+WbM9rW3ewENuPxvOngsI/2BzB+SX6iBRYY2rQb+cSaz2Ef5WcJP9UKXIGCGjGk6bEhTWMGtNi3Rd/ze8jnU6oeCdXDd4pfIP0w16tb4o6dgPAikiaCatWGHdwdVULrGTa5ae7EGr4dM3jaRciVmcCwsOmtlLP3FL+T0hSS0iTdH6Fyl6wreigfEUAEeooA9b31uBXAQwPVQljitfhZ5o1S8XDMJrBOm0odQzLmyso8feGdayC0nEzaZnjXTbWXjZNw1Bm//ANQcTC0EgbOG+rulFjA0rvT8Rttx4wkDgeKwJYIxdlia6wYzikT3CgtrE/keHdX0tb6VZHZAzvPl2BqnrMl9qiF0IfpX769QuRqPaFKceK0d0XSx66KJO4TJuZcweCmFyZTFuXqP0JcZnXQ9OlfwmAjpX206mZppwMHwgm1mz/M3P3GGdh551nuHr0KOw9aadVH4WcBAMIxqieiOu1CIyWWBQ8UwG7Aur2RP2g4JoXp+TvLpJ5YucvFl5n5cKeBVZipWPtJ0mn6jjCRtzXuyxX48sa6N+fjFWGYDoZSg5pnpQ1k4Kdh0jhYQ8eKt0WfgbFfQMJIDGnWI/mjCTtY3bVkmyJgE1un3FpD2Q/q+QebuRapOSZCFxuud9hwBMFG6mMIZW4/BMcooKpIXTKPdHzHbELruDvKn376/Bu0ho0NaLlpALUGocIxAlwBdtjwdCzcxXMwLYxzcmYPRxmPHwzd9WsY/Nt5PJBa1uqcwHFQQpARjI1SOG5gYJeZWH60MczcyDOg4d+VFvqMCPQpAcoG4KMGwFLz1h8OXntjXdz9Rdtml2lFVlhi5bRyPkgP79IfOIzZ6TuVcxYVSKdXbE5T5TXwcJE1ItSQv2YwuMRx9JhVKdxcJXyWPllQ9Gso7AGEP6gzxHo2qB2sk0JsJHbz/ZeEhN0QYlg6qRqMjQe9rFZ2ILwqMl/RA2Q18j7cqRwzp0QwpWpJtvydIgkcj4x/PG9ViAEOPcKvdpRj+f+s/J3z/tQPJnMu3bYxyPjsy+dIsTWUHsKJXP9XD3sI9UvmydL17JlC631j69P3hzvUC5hlJoythxEI9qlNDjMcKmjbCgDXB8wsvxtGF47d4c4WnkWcmTBny/9zNMjEmMv8esCKcs4FfyzEELOgcEWZODlJ47wEDe2mzC0CpVBQIoa9ZsUl4hsfu6C4qfaJswEr86Suyyou6HEsYnHBR+H6/BKRysQWRWthjz28sft92EXI/MZ2hwZwltMn6XW1QjOoPzBOc8mh1H4bLPauUuceNNQKYMdA5W+hGca2wxqsVs7nX8UnjWr4/Nu44gDjAXrqD8VnPHwRNuSf+ip+ZwMNz4ZVlEi+Sat/fqDmm3KHOoHZCHvalKob6NGd3crJPu+fmSU/nidrjmv994qz4yRt2p49Vb1uWe77nyccqIfJvGvatyExg8QnP1BwI9lu9GNh/jKzgl5jAl8Rba+LUzkyVP/CM7mBJlYdhwRLwZK3Tsm4Nvhe79gf4WJ5cm0MfUYEEIFeJtCmAfjUig0r3xK7rIm3YHzNQKlFaiUqzso3b1MednI1w1CP5YRiiYVYNLUiTakbpDDiRlZ1sTjbaUUANg/CrxIWTvnG+fpsgGNOAsNDQY3Qkto4vFS8q54/S2j94fuYpFmlya2c7zYOuAi/KMz7ia6GzAwQPGbp/gz+z/X1T0Tobl1U8OfKYZkGllnPEslN1C+3HWsuE506ErLpSFCjY2nWjjHltjcQRE8EWypEp/4M/vZIcIOnZV3CwIJJ28yJNdKbq4ceDDlpooYZGJLOp4eX0P4Atla0DR5UrTimSGlKczr5GTaoGeblrBbuJ0eDusj12G2ni6pdkR8HmBalqEfEtRYcCFtvJNZMA3sQlcAZ1CupauCw9av4IjA15clWnVR8MKphzMKCca+m/q6lNrJ4TXZMWywpDjLED9TAORTMyKrIku/cHn3MN3fFTG9sN2jAFtFU+nANflvVntml8AcsGBU08jgGdn09v8rPPJNe74ClrvWvp2TQD8U5kVnyJ7JgYQfDKkU5dAZsyx8D1hMO1lAiznFe3TgS/OSR4I6yLAN7/+7I4mbe+UK/ggYwP2CsUP20hQULU9UwesNUfvfHyVsCTG8vKIyI1j626swdR4O37Ik4CqeBaEW8sVJUy7fBNzTLwMp6dMybsCAlN82gW39kZZazhC5/gzXlXK3ghhCDgs4IILCqbNnuXVH7ffaZwVA5ykIEEIHuEMAPHz4M0YEhrVixojsV9UDZCN3zz+WkcWx1m2Mf/sPJrdgw9dYl+dIc2YPrksq7Wm7oATGuqApvMl9RJejmvxMB0ACmv3zuoWDD3q0xYPuBDZ+XvotZfrBtP79dbhoRpr/7sQspetbKZ0e6awDuqGAMXvz2KQjbk/7KsE+63N/QXh7MGAMfLFg9ohEu6M/J39sUl6mhJvAspe6BhYXT4Ywf+PB5KXWj2y7RDgFAA3j7rdNgVtE2cQ10rD/YtxskscAKxSOvDnPx+AuuAp5/7+TYn8Pm/KD08RwHVIgiA7k/bnQFEehBAlewCtCDrbpUJZ1StXJsXViwESyYrGz5iiOdTNa2XP91xZKnhjStfens7wVSLccWotQG7I5aepaeCV2lxCzzVRIKNXsNEID1hT1rE69bkp99JGjDb6EuEuNq3gnYAdD7/aCMPZvivrbj3MPBOy5IO0Zlsky0fuXQ9LT6+4KMO+pdD4m4ywW2ig9fTnVoKtYo7cYXs2Pdb4IrEkswYW+tFrrvZfF4O7qICCACfUAAP3LkiJVOL7/8ch+057EJ6ayyTbdV4a2crEMh69LD3c8vwa7D8bPK7r2uIYJPWrXsinzp3h3RvzZS9smrlbqU+WoJhtq9JgjwA42sRr6ui40M10RXfBLSJjVPSVOZTyoOXcnXFtkAfIKLbkIE/ioB/NixYzD8wyrASy+99FcrQeUQAUQAEeh5AkgD6HmmqEZEwIlAm1dgd8fAiBIigAggAogAIoAI/A8TQBrA//DDRV1DBK5tAtMfHHttdwBJjwj0bwL/Dxg+124ZP/suAAAAAElFTkSuQmCC" alt="" />
三、其他命令(持续更新...)
1、用awk实现head
$ awk 'NR <= 10' filename
说明:打印行号小于等于10的行
2、用awk实现tail
$ awk '{ buffer[NR % 10] = $0; } END { for (i=1;i<11;i++) { print buffer[i%10] } }' filename
说明:用数组保存文件的最后10行,然后打印
3、用awk实现tac
$ awk '{ buffer[NR] = $0; } END { for (i=NR; i>0; i--) { print buffer[i] } }'
说明:顺序保存,然后逆序打印
总结:刚开始学写脚本,感觉一切好神奇,实现一点简单的功能都好牛X,呵呵~~以后一定多多加油
bash shell学习-实践 (自己实现一些小工具)的更多相关文章
- bash shell学习-shell基础 (笔记)
When you hoist the sails to cross the sea, you willride the wind and cleave the waves. "长风破浪会有时 ...
- 【Linux】bash shell学习
Bash Shell Linux系统的合法shell都写入/etc/shells这个文件,默认使用的shell版本称为“Bourne Again Shell(简称bash)” 用户登录时系统会分配一个 ...
- bash shell学习笔记(一)—— 常用命令
一.基本的bash shell命令 1.默认bash shell 提示符是美元符号($); 2.bash手册 使用man命令来访问存储在Linux系统上的手册页面,如: bogon:~ Mac$ ma ...
- Linux下Bash shell学习笔记
原文地址: http://www.cnblogs.com/NickQ/p/8870423.html 1.shell下没有变量类型和定义的概念. 变量直接使用不用定义 所有值都视为字符串. 在对变量取值 ...
- 配置和启动脚本(bash shell学习01)
bash是 Bourne Again Shell简称 ,从unix系统的sh发展而来 查看当前shellecho $SHELL查看系统支持的shellcat /etc/shells cd /binls ...
- bash shell学习-shell script基础 (笔记)
A chain no stronger than its weakest link. "一着不慎,满盘皆输" 参考资料:鸟哥的Linux私房菜 基础学习篇(第三版) Linux ...
- Linux Bash Shell学习笔记
参数扩展: 1.被名称引用的参数称作变量2.被数字引用的参数称作位置参数3.被特定符号引用的参数具有特殊的含义和用途,被称作Bash的特殊内部变量引用. 基本参数扩展:字符$会引导参数扩展.大括号是可 ...
- bash shell学习-正则表达式基础 (笔记)
A gentleman is open-minded and optimistic; a small person is narrow-minded and pessimistic. "君子 ...
- 在 Alpine Linux 中安装 bash shell
如何在我的 Alpine Linux LXD(Linux容器)虚拟机(VM)中安装 bash shell? Alpine Linux 自带 BusyBox 工具.它被评为“嵌入式 Linux 的瑞士军 ...
随机推荐
- HDU 5396 Expression(DP+组合数)(详解)
题目大意: 给你一个n然后是n个数. 然后是n-1个操作符,操作符是插入在两个数字之间的. 由于你不同的运算顺序,会产生不同的结果. 比如: 1 + 1 * 2 有两种 (1+1)*2 或者 ...
- 【模拟赛】BYVoid魔兽世界模拟赛 解题报告
题目名称(点击进入相关题解) 血色先锋军 灵魂分流药剂 地铁重组 埃雷萨拉斯寻宝 源文件名(.c/.cpp/.pas) scarlet soultap subway eldrethalas 输入文件名 ...
- 简单的FIRST集演示程序
/* * 该程序用于计算某个非终结符的 FIRST 集合 * RexfieldVon * 2013年6月29日19:53:45 * 2013年7月3日22:01:57 修改 GetFIRST 例程以简 ...
- Selenium firefox 版本问题
问题:Unable to connect to host 127.0.0.1 on port 7055 after 45000 ms 原因: selenium-server-standalone-x. ...
- Java 单元测试Junit
@Test @Before @After 测试方法运行前执行Before动作(比如创建资源),运行后执行After动作(比如销毁资源) @BeforeClass @AfterClass 测试类运行前执 ...
- [IE9] GPU硬件加速
IE9 的一个重大改进就是使用了GPU硬件加速来渲染网页. 那么GPU硬件加速到底能够带来多大的性能提升? 你可以在IE的测试案例网站(http://ie.microsoft.com/testdr ...
- 【bzoj2333】 SCOI2011—棘手的操作
http://www.lydsy.com/JudgeOnline/problem.php?id=2333 (题目链接) 题意 N个节点维护一些操作.. Solution 我们用可并大根堆进行维护. 对 ...
- php动态分页类
<?php /** * 页面名称:cls_page.php */ class Page { private $each_disNums; //每页显示的条目数 private $nums; // ...
- slidingmenu+fragment实现经常使用的側滑效果(包含Fragment状态的保存)
一.需求 关于fragment的问题,一直想写一篇博客了.应该当初自己也是对这玩意一点都不熟悉到如今也大概知道个日常的使用的地步. 一个側滑的导航栏,内有4个条目.每个选项点击进入相应的界面,每个界面 ...
- Node.js【2】开发环境搭建(Windows、Linux&Mac)
安装方式有非常多种,以下仅仅是我喜欢的一种方式,安装的路径不一定要跟我一样. 眼下最新的版本号是v0.10.28 Windows 1.下载(放到E:\node\nodejs): http://node ...