From 0f319b3cd7ba987b33f09a1b7b89b1666a71e488 Mon Sep 17 00:00:00 2001 From: CoprDistGit Date: Wed, 31 May 2023 05:56:30 +0000 Subject: automatic import of python-sometools --- .gitignore | 1 + python-sometools.spec | 730 ++++++++++++++++++++++++++++++++++++++++++++++++++ sources | 1 + 3 files changed, 732 insertions(+) create mode 100644 python-sometools.spec create mode 100644 sources diff --git a/.gitignore b/.gitignore index e69de29..708348f 100644 --- a/.gitignore +++ b/.gitignore @@ -0,0 +1 @@ +/SomeTools-0.1.39.tar.gz diff --git a/python-sometools.spec b/python-sometools.spec new file mode 100644 index 0000000..12179ac --- /dev/null +++ b/python-sometools.spec @@ -0,0 +1,730 @@ +%global _empty_manifest_terminate_build 0 +Name: python-SomeTools +Version: 0.1.39 +Release: 1 +Summary: Some python tools +License: MIT License +URL: https://pypi.org/project/SomeTools/ +Source0: https://mirrors.nju.edu.cn/pypi/web/packages/13/6a/df248d0dfa5c6f3ef80f59543b2cc49dcf7401ee9aa01cad5c1a39bf2ec9/SomeTools-0.1.39.tar.gz +BuildArch: noarch + +Requires: python3-DateTime +Requires: python3-loguru +Requires: python3-opencc-python-reimplemented +Requires: python3-redis +Requires: python3-aioredis +Requires: python3-pillow +Requires: python3-chardet +Requires: python3-psutil +Requires: python3-aiomysql +Requires: python3-pymysql + +%description +一些方便日常使用的工具(Some handy tools for everyday use) +* 将输入的任何类型的日期字符串类型转化为datetime.datetime类型的日期对象 (* Convert any type of input date string type to a date object of type datetime.datetime) +* 移除一个字符串中的回车换行空格制表符等内容 (* Remove carriage returns, newlines, spaces, tabs, etc. from a string) +* 将中文字符转为其拼音的首字母 (* Convert Chinese characters to the first letter of their Pinyin) +* 更加方便的日志记录工具 (* More convenient logging tools) +* 繁体简体中文汉字转换工具 (* Traditional and Simplified Chinese character conversion tool) +* redis创建连接同步、异步工具 (* redis creates connection synchronous and asynchronous tools) +* 异步布隆过滤工具 (* Asynchronous Bloom Filter Tool) +* 正则表达式提取字符串中的中文内容工具 (* Regular expression extraction tool for Chinese content in strings) +* 异步 mysql orm (* async mysql orm) +* 检测 bytes 编码 (* Detect bytes encoding) +* 图片处理 (* Image processing) +* 查看操作系统信息 (* View operating system information) +* 获取本机ip地址 (* Get the local ip address) +## Installation (安装) +``` bash +$ pip install SomeTools -i https://pypi.python.org/simple +``` +## Getting Started (开始使用) +### 1.同步工具使用 (Sync tool usage) +``` pycon +from sometools import Common_tools +class Demo(Common_tools): + def __init__(self, *args, **kwargs): + # kwargs['log_file_rec'] = True + # kwargs['log_file_name'] = 'ConsumptionService' + super(Demo, self).__init__(*args, **kwargs) +if __name__ == '__main__': + demo_ins = Demo() + # 获取本机ip地址(get the local ip address) + local_ip_str = Demo.get_host_ip() + demo_ins.logger().info(f"local ip address: {local_ip_str}") + # 将输入的任何类型的日期字符串类型转化为datetime.datetime类型的日期对象(北京时间UTC+8)(Converts any type of date string type entered to a date object of type datetime.datetime)(beijing time UTC+8) + demo_ins.logger(uuid1='uuid1', uuid2='uuid2').info( + f"{demo_ins.str_to_obj('2012-12-12 12:12:12')}{type(demo_ins.str_to_obj('2012-12-12 12:12:12'))}") + demo_ins.logger().info( + f"{demo_ins.str_to_obj('11-May-2021 07:03 EDT')}{type(demo_ins.str_to_obj('11-May-2021 07:03 EDT'))}") + # 移除一个字符串中的回车换行空格制表符等内容(Remove carriage return, newline space tabs, etc., from a string) + temp_str = 'abc abc \n abc \r' + demo_ins.logger().info(f"before clean string{temp_str}") + temp_str = Demo.clean_string('abc abc \n abc \r') + demo_ins.logger().info(f"after clean string{temp_str}") + # 将中文字符转为其拼音的首字母(Convert Chinese characters to the first letter of their pinyin) + demo_ins.logger().info(f"{Demo.get_pinyin('中国外汇交易中心')}") + # 更加方便的日志记录工具(More convenient logging tool) + demo_ins.logger().info(f"{Demo.get_pinyin('中国外汇交易中心')}") + demo_ins.logger().debug(f"{Demo.get_pinyin('中国外汇交易中心')}") + demo_ins.logger().warning(f"{Demo.get_pinyin('中国外汇交易中心')}") + demo_ins.logger().error(f"{Demo.get_pinyin('中国外汇交易中心')}") + # 中文繁体简体互转(Convert between Traditional Chinese and Simplified Chinese) + demo_ins.logger().info(f"繁体转简体 眾議長與李克強會談->{Demo.traditional_chinese_to_simplified('眾議長與李克強會談')}") + demo_ins.logger().info(f"简体转繁体 众议长与李克强会谈->{Demo.simplified_chinese_to_traditional_chinese('众议长与李克强会谈')}") + # url编码解码(url encoding and decoding) + demo_ins.logger().info(f"url编码->{Demo.url_encode('https://www.baidu.com/s?wd=中国')}") + demo_ins.logger().info(f"url解码->{Demo.url_decode('https://www.baidu.com/s?wd=%E4%B8%AD%E5%9B%BD')}") + # 正则提取中文(Regularly extract Chinese) + temp_str = demo_ins.extract_one_chinese("""downloadPdf1('http://www.sse.com.cn/disclosure/bond/announcement/company/c/2021-03-22/4135530025747110334559080.pdf','厦门建发股份有限公司2021年面向专业投资者公开发行可续期公司债券(第一期)发行公告','2021-03-22','1015','pdf');""") + demo_ins.logger().info(f"正则提取单个中文 {temp_str}") + temp_str = demo_ins.extract_multi_chinese("""downloadPdf1('http://www.sse.com.cn/disclosure/bond/announcement/company/c/2021-03-22/4135530025747110334559080.pdf','厦门建发股份有限公司2021年面向专业投资者公开发行可续期公司债券(第一期)发行公告','2021-03-22','1015','pdf');""") + demo_ins.logger().info(f"正则提取多个中文 {temp_str}") + # 检测和转换编码方式(Detect and convert encoding methods) + _temp_content = b'\n\n\n\n \n \n \n \n \n \n \n \n \n \xe4\xb8\xad\xe5\x9b\xbd\xe9\x93\xb6\xe8\x81\x94\xe9\x93\xb6\xe8\xa1\x8c\xe5\x90\x88\xe4\xbd\x9c\xe9\x83\xa8\xe6\x80\xbb\xe7\xbb\x8f\xe7\x90\x86\xe5\x8d\x95\xe9\x95\xbf\xe8\x83\x9c\xef\xbc\x9a\xe8\xb7\xb5\xe8\xa1\x8c\xe2\x80\x9c\xe6\x94\xaf\xe4\xbb\x98\xe4\xb8\xba\xe6\xb0\x91\xe2\x80\x9d\xe7\x90\x86\xe5\xbf\xb5 \xe4\xb8\xad\xe5\x9b\xbd\xe9\x93\xb6\xe8\x81\x94\xe5\xb0\x86\xe6\x8e\xa2\xe7\xb4\xa2\xe6\x9b\xb4\xe5\xa4\x9a\xe7\xbb\xbf\xe8\x89\xb2\xe4\xbd\x8e\xe7\xa2\xb3\xe4\xba\xa7\xe5\x93\x81\xe5\x92\x8c\xe6\x9c\x8d\xe5\x8a\xa1-\xe6\x96\xb0\xe5\x8d\x8e\xe7\xbd\x91\n \n \n \n \n \n \n \n\t\n\t\n\n\n
\n\t
\n \t\n\t
\n
\n \n
\n\t
\n\t\t
\n\t\t
\n\t
\n
\xe6\x96\xb0\xe5\x8d\x8e\xe7\xbd\x91 > > \xe6\xad\xa3\xe6\x96\x87
2021 09/08 17:35:14
\xe6\x9d\xa5\xe6\xba\x90\xef\xbc\x9a\xe6\x96\xb0\xe5\x8d\x8e\xe7\xbd\x91\n \t

\xe4\xb8\xad\xe5\x9b\xbd\xe9\x93\xb6\xe8\x81\x94\xe9\x93\xb6\xe8\xa1\x8c\xe5\x90\x88\xe4\xbd\x9c\xe9\x83\xa8\xe6\x80\xbb\xe7\xbb\x8f\xe7\x90\x86\xe5\x8d\x95\xe9\x95\xbf\xe8\x83\x9c\xef\xbc\x9a\xe8\xb7\xb5\xe8\xa1\x8c\xe2\x80\x9c\xe6\x94\xaf\xe4\xbb\x98\xe4\xb8\xba\xe6\xb0\x91\xe2\x80\x9d\xe7\x90\x86\xe5\xbf\xb5 \xe4\xb8\xad\xe5\x9b\xbd\xe9\x93\xb6\xe8\x81\x94\xe5\xb0\x86\xe6\x8e\xa2\xe7\xb4\xa2\xe6\x9b\xb4\xe5\xa4\x9a\xe7\xbb\xbf\xe8\x89\xb2\xe4\xbd\x8e\xe7\xa2\xb3\xe4\xba\xa7\xe5\x93\x81\xe5\x92\x8c\xe6\x9c\x8d\xe5\x8a\xa1

\xe5\xad\x97\xe4\xbd\x93\xef\xbc\x9a\n \xe5\xb0\x8f \xe4\xb8\xad \xe5\xa4\xa7
\n
\n \n
\n
\n \n
\n
\n

\xe6\x96\xb0\xe5\x8d\x8e\xe7\xbd\x91\xe5\x8c\x97\xe4\xba\xac9\xe6\x9c\x888\xe6\x97\xa5\xe7\x94\xb5\xef\xbc\x88\xe7\x8e\x8b\xe9\x9b\xa8\xe9\xa6\xa8\xef\xbc\x89\xe4\xb8\xad\xe5\x9b\xbd\xe9\x93\xb6\xe8\x81\x94\xe9\x93\xb6\xe8\xa1\x8c\xe5\x90\x88\xe4\xbd\x9c\xe9\x83\xa8\xe6\x80\xbb\xe7\xbb\x8f\xe7\x90\x86\xe5\x8d\x95\xe9\x95\xbf\xe8\x83\x9c\xe6\x97\xa5\xe5\x89\x8d\xe6\x8e\xa5\xe5\x8f\x97\xe6\x96\xb0\xe5\x8d\x8e\xe7\xbd\x91\xe8\xae\xb0\xe8\x80\x85\xe4\xb8\x93\xe8\xae\xbf\xe6\x97\xb6\xe8\xa1\xa8\xe7\xa4\xba\xef\xbc\x8c\xe4\xb8\xad\xe5\x9b\xbd\xe9\x93\xb6\xe8\x81\x94\xe4\xb8\x80\xe7\x9b\xb4\xe4\xbb\xa5\xe6\x9d\xa5\xe9\x87\x8d\xe8\xa7\x86\xe6\x95\xb0\xe5\xad\x97\xe5\x8c\x96\xe5\x92\x8c\xe4\xbd\x8e\xe7\xa2\xb3\xe5\x8c\x96\xe5\x8f\x91\xe5\xb1\x95\xef\xbc\x8c\xe6\x9c\xaa\xe6\x9d\xa5\xe5\xb0\x86\xe5\x85\x85\xe5\x88\x86\xe5\x8f\x91\xe6\x8c\xa5\xe6\x94\xaf\xe4\xbb\x98\xe4\xba\xa7\xe5\x93\x81\xe5\xb9\xb3\xe5\x8f\xb0\xe5\x92\x8c\xe6\x9e\xa2\xe7\xba\xbd\xe4\xbd\x9c\xe7\x94\xa8\xef\xbc\x8c\xe6\x8c\x81\xe7\xbb\xad\xe8\x81\x94\xe5\x90\x88\xe5\x95\x86\xe4\xb8\x9a\xe9\x93\xb6\xe8\xa1\x8c\xe7\xad\x89\xe4\xba\xa7\xe4\xb8\x9a\xe5\x90\x84\xe6\x96\xb9\xe9\x99\x86\xe7\xbb\xad\xe6\x8e\xa8\xe5\x87\xba\xe5\x90\x84\xe9\x93\xb6\xe8\xa1\x8c\xe7\x9a\x84\xe7\xbb\xbf\xe8\x89\xb2\xe4\xbd\x8e\xe7\xa2\xb3\xe4\xb8\xbb\xe9\xa2\x98\xe5\x8d\xa1\xe4\xba\xa7\xe5\x93\x81\xef\xbc\x8c\xe7\xa0\x94\xe5\x8f\x91\xe6\x9b\xb4\xe5\xa4\x9a\xe6\x99\xae\xe6\x83\xa0\xe4\xbe\xbf\xe6\xb0\x91\xe7\x9a\x84\xe7\xbb\xbf\xe8\x89\xb2\xe9\x87\x91\xe8\x9e\x8d\xe6\x96\xb0\xe4\xba\xa7\xe5\x93\x81\xe3\x80\x81\xe6\x96\xb0\xe4\xb8\x9a\xe6\x80\x81\xe3\x80\x81\xe6\x96\xb0\xe6\xa8\xa1\xe5\xbc\x8f\xef\xbc\x8c\xe5\x8a\xa9\xe5\x8a\x9b\xe2\x80\x9c3060\xe2\x80\x9d\xe5\x8f\x8c\xe7\xa2\xb3\xe7\x9b\xae\xe6\xa0\x87\xe5\xa6\x82\xe6\x9c\x9f\xe5\xae\x9e\xe7\x8e\xb0\xe3\x80\x82

\n

\xe6\x8d\xae\xe6\x82\x89\xef\xbc\x8c\xe8\xbf\x91\xe6\x97\xa5\xe4\xb8\xad\xe5\x9b\xbd\xe9\x93\xb6\xe8\x81\x94\xe8\x81\x94\xe5\x90\x88\xe4\xb8\x8a\xe6\xb5\xb7\xe7\x8e\xaf\xe5\xa2\x83\xe8\x83\xbd\xe6\xba\x90\xe4\xba\xa4\xe6\x98\x93\xe6\x89\x80\xe3\x80\x81\xe5\x95\x86\xe4\xb8\x9a\xe9\x93\xb6\xe8\xa1\x8c\xef\xbc\x8c\xe5\x85\xb1\xe5\x90\x8c\xe5\x8f\x91\xe5\xb8\x83\xe9\x93\xb6\xe8\x81\x94\xe7\xbb\xbf\xe8\x89\xb2\xe4\xbd\x8e\xe7\xa2\xb3\xe4\xb8\xbb\xe9\xa2\x98\xe5\x8d\xa1\xe4\xba\xa7\xe5\x93\x81\xe3\x80\x82\xe7\xbb\xbf\xe8\x89\xb2\xe4\xbd\x8e\xe7\xa2\xb3\xe4\xb8\xbb\xe9\xa2\x98\xe9\x93\xb6\xe8\xa1\x8c\xe5\x8d\xa1\xe5\x8c\x85\xe5\x90\xab\xe4\xbc\x81\xe4\xb8\x9a\xe7\x89\x88\xe5\x8f\x8a\xe4\xb8\xaa\xe4\xba\xba\xe7\x89\x88\xe4\xb8\xa4\xe5\xa5\x97\xe5\x8d\xa1\xe4\xba\xa7\xe5\x93\x81\xe4\xbd\x93\xe7\xb3\xbb\xef\xbc\x8c\xe4\xbb\xa5\xe9\x93\xb6\xe8\x81\x94\xe4\xba\xa4\xe6\x98\x93\xe7\xb3\xbb\xe7\xbb\x9f\xe4\xb8\xad\xe4\xbc\x81\xe4\xb8\x9a\xe5\x92\x8c\xe4\xb8\xaa\xe4\xba\xba\xe4\xba\xa4\xe6\x98\x93\xe8\xa1\x8c\xe4\xb8\xba\xe6\x95\xb0\xe6\x8d\xae\xe4\xb8\xba\xe8\xae\xa1\xe7\xae\x97\xe5\x9f\xba\xe7\xa1\x80\xef\xbc\x8c\xe6\x9e\x84\xe5\xbb\xba\xe9\x93\xb6\xe8\x81\x94\xe7\xbb\xbf\xe8\x89\xb2\xe4\xbd\x8e\xe7\xa2\xb3\xe7\xa7\xaf\xe5\x88\x86\xe4\xbd\x93\xe7\xb3\xbb\xef\xbc\x8c\xe4\xb8\x80\xe6\x96\xb9\xe9\x9d\xa2\xe5\x8a\xa9\xe5\x8a\x9b\xe4\xbc\x81\xe4\xb8\x9a\xe7\xa2\xb3\xe4\xb8\xad\xe5\x92\x8c\xe8\xbd\xac\xe5\x9e\x8b\xef\xbc\x9b\xe5\x8f\xa6\xe4\xb8\x80\xe6\x96\xb9\xe9\x9d\xa2\xe6\xa0\xb9\xe6\x8d\xae\xe7\x94\xa8\xe6\x88\xb7\xe7\xbb\xbf\xe8\x89\xb2\xe6\xb6\x88\xe8\xb4\xb9\xe8\xa1\x8c\xe4\xb8\xba\xe8\xb4\xa1\xe7\x8c\xae\xe6\x9e\x84\xe5\xbb\xba\xe9\x93\xb6\xe8\x81\x94\xe7\xbb\xbf\xe8\x89\xb2\xe4\xbd\x8e\xe7\xa2\xb3\xe5\x8d\xa1\xe5\x8a\xa8\xe6\x80\x81\xe6\x9d\x83\xe7\x9b\x8a\xe4\xbd\x93\xe7\xb3\xbb\xef\xbc\x8c\xe5\x90\x91\xe4\xbc\x81\xe4\xb8\x9a\xe5\x92\x8c\xe7\xa4\xbe\xe4\xbc\x9a\xe5\xa4\xa7\xe4\xbc\x97\xe4\xbc\xa0\xe6\x92\xad\xe7\xa2\xb3\xe4\xb8\xad\xe5\x92\x8c\xe6\xa6\x82\xe5\xbf\xb5\xe3\x80\x82

\n

\xe8\xb7\xb5\xe8\xa1\x8c\xe2\x80\x9c\xe6\x94\xaf\xe4\xbb\x98\xe4\xb8\xba\xe6\xb0\x91\xe2\x80\x9d \xe6\x8e\xa8\xe7\xbb\xbf\xe8\x89\xb2\xe4\xbd\x8e\xe7\xa2\xb3\xe4\xb8\xbb\xe9\xa2\x98\xe9\x93\xb6\xe8\xa1\x8c\xe5\x8d\xa1

\n

\xe6\x96\xb0\xe5\x8d\x8e\xe7\xbd\x91\xef\xbc\x9a\xe4\xb8\xad\xe5\x9b\xbd\xe9\x93\xb6\xe8\x81\x94\xe4\xba\x8e\xe8\xbf\x91\xe6\x97\xa5\xe5\x8f\x91\xe5\xb8\x83\xe7\xbb\xbf\xe8\x89\xb2\xe4\xbd\x8e\xe7\xa2\xb3\xe4\xb8\xbb\xe9\xa2\x98\xe9\x93\xb6\xe8\xa1\x8c\xe5\x8d\xa1\xe7\x9a\x84\xe5\x88\x9d\xe5\xbf\x83\xe6\x98\xaf\xe4\xbb\x80\xe4\xb9\x88\xef\xbc\x9f\xe6\x83\xb3\xe5\x80\x9f\xe6\xad\xa4\xe4\xbc\xa0\xe6\x92\xad\xe4\xbb\x80\xe4\xb9\x88\xe6\xa0\xb7\xe7\x9a\x84\xe7\x90\x86\xe5\xbf\xb5\xef\xbc\x9f

\n

\xe5\x8d\x95\xe9\x95\xbf\xe8\x83\x9c\xef\xbc\x9a\xe4\xb8\xad\xe5\x9b\xbd\xe9\x93\xb6\xe8\x81\x94\xe4\xb8\x80\xe7\x9b\xb4\xe4\xbb\xa5\xe6\x9d\xa5\xe9\x87\x8d\xe8\xa7\x86\xe6\x95\xb0\xe5\xad\x97\xe5\x8c\x96\xe5\x92\x8c\xe4\xbd\x8e\xe7\xa2\xb3\xe5\x8c\x96\xe5\x8f\x91\xe5\xb1\x95\xef\xbc\x8c\xe8\x87\xaa\xe5\xae\x9e\xe7\x8e\xb0\xe7\xa2\xb3\xe8\xbe\xbe\xe5\xb3\xb0\xe7\xa2\xb3\xe4\xb8\xad\xe5\x92\x8c\xe7\x9b\xae\xe6\xa0\x87\xe6\x8f\x90\xe5\x87\xba\xe4\xbb\xa5\xe6\x9d\xa5\xef\xbc\x8c\xe9\x93\xb6\xe8\x81\x94\xe4\xb8\x80\xe7\x9b\xb4\xe5\x9c\xa8\xe6\x80\x9d\xe8\x80\x83\xe5\xa6\x82\xe4\xbd\x95\xe7\xbb\x93\xe5\x90\x88\xe8\x87\xaa\xe8\xba\xab\xe4\xb8\x9a\xe5\x8a\xa1\xe5\x8f\x91\xe5\xb1\x95\xef\xbc\x8c\xe7\xa7\xaf\xe6\x9e\x81\xe5\x93\x8d\xe5\xba\x94\xe7\xa2\xb3\xe8\xbe\xbe\xe5\xb3\xb0\xe7\xa2\xb3\xe4\xb8\xad\xe5\x92\x8c\xe7\x9b\xae\xe6\xa0\x87\xe4\xbb\xa5\xe5\x8f\x8a\xe7\xbb\xbf\xe8\x89\xb2\xe9\x87\x91\xe8\x9e\x8d\xe5\x8f\x91\xe5\xb1\x95\xe8\xa6\x81\xe6\xb1\x82\xe3\x80\x82\xe4\xb8\xad\xe5\x9b\xbd\xe9\x93\xb6\xe8\x81\x94\xe4\xbd\x9c\xe4\xb8\xba\xe9\x93\xb6\xe8\xa1\x8c\xe5\x8d\xa1\xe8\xbd\xac\xe6\x8e\xa5\xe6\xb8\x85\xe7\xae\x97\xe6\x9c\xba\xe6\x9e\x84\xef\xbc\x8c\xe4\xb8\x8e\xe5\x95\x86\xe4\xb8\x9a\xe9\x93\xb6\xe8\xa1\x8c\xe3\x80\x81\xe5\x95\x86\xe6\x88\xb7\xe3\x80\x81\xe7\x94\xa8\xe6\x88\xb7\xe6\x9c\x89\xe7\x9d\x80\xe5\xa4\xa9\xe7\x84\xb6\xe7\x9a\x84\xe7\xb4\xa7\xe5\xaf\x86\xe8\x81\x94\xe7\xb3\xbb\xef\xbc\x8c\xe6\x89\x80\xe4\xbb\xa5\xe5\x9c\xa8\xe5\xae\x9e\xe7\x8e\xb0\xe2\x80\x9c\xe5\x8f\x8c\xe7\xa2\xb3\xe2\x80\x9d\xe7\x9b\xae\xe6\xa0\x87\xe4\xbd\x9c\xe4\xb8\xba\xe9\x87\x8d\xe8\xa6\x81\xe6\x88\x98\xe7\x95\xa5\xe5\x86\xb3\xe7\xad\x96\xe8\xa2\xab\xe6\x8f\x90\xe5\x87\xba\xe6\x97\xb6\xef\xbc\x8c\xe4\xb8\xad\xe5\x9b\xbd\xe9\x93\xb6\xe8\x81\x94\xe5\xb0\xb1\xe2\x80\x9c\xe6\x94\xaf\xe4\xbb\x98\xe4\xb8\xba\xe6\xb0\x91\xe2\x80\x9d\xe7\x9a\x84\xe7\x90\x86\xe5\xbf\xb5\xef\xbc\x8c\xe5\xb8\x8c\xe6\x9c\x9b\xe6\x8e\xa8\xe5\x87\xba\xe7\xbb\xbf\xe8\x89\xb2\xe4\xbd\x8e\xe7\xa2\xb3\xe7\x9b\xb8\xe5\x85\xb3\xe9\x93\xb6\xe8\xa1\x8c\xe5\x8d\xa1\xe4\xba\xa7\xe5\x93\x81\xef\xbc\x8c\xe4\xbb\xa5\xe9\x93\xb6\xe8\xa1\x8c\xe5\x8d\xa1\xe4\xb8\xba\xe7\xba\xbd\xe5\xb8\xa6\xef\xbc\x8c\xe5\x90\x91\xe4\xbc\x81\xe4\xb8\x9a\xe5\x92\x8c\xe4\xb8\xaa\xe4\xba\xba\xe6\x8e\xa8\xe5\xb9\xbf\xe6\x99\xae\xe5\x8f\x8a\xe7\xbb\xbf\xe8\x89\xb2\xe4\xbd\x8e\xe7\xa2\xb3\xe7\x90\x86\xe5\xbf\xb5\xef\xbc\x8c\xe5\xbc\x95\xe5\xaf\xbc\xe4\xbc\x81\xe4\xb8\x9a\xe5\x92\x8c\xe4\xb8\xaa\xe4\xba\xba\xe8\x8a\x82\xe8\x83\xbd\xe5\x87\x8f\xe6\x8e\x92\xef\xbc\x8c\xe5\x8a\xa9\xe5\x8a\x9b\xe7\xa2\xb3\xe8\xbe\xbe\xe5\xb3\xb0\xe7\xa2\xb3\xe4\xb8\xad\xe5\x92\x8c\xe7\x9b\xae\xe6\xa0\x87\xe5\xa6\x82\xe6\x9c\x9f\xe5\xae\x9e\xe7\x8e\xb0\xe3\x80\x82

\n

\xe6\x96\xb0\xe5\x8d\x8e\xe7\xbd\x91\xef\xbc\x9a\xe9\x93\xb6\xe8\x81\x94\xe6\xad\xa4\xe6\xac\xa1\xe5\x8f\x91\xe8\xa1\x8c\xe7\xbb\xbf\xe8\x89\xb2\xe4\xbd\x8e\xe7\xa2\xb3\xe4\xb8\xbb\xe9\xa2\x98\xe9\x93\xb6\xe8\xa1\x8c\xe5\x8d\xa1\xe7\x9a\x84\xe5\x8f\x97\xe4\xbc\x97\xe6\x9c\x89\xe5\x93\xaa\xe4\xba\x9b\xef\xbc\x9f\xe6\x94\xaf\xe6\x8c\x81\xe5\x93\xaa\xe4\xba\x9b\xe7\xbb\xbf\xe8\x89\xb2\xe6\xb6\x88\xe8\xb4\xb9\xe8\xa1\x8c\xe4\xb8\xba\xef\xbc\x9f

\n

\xe5\x8d\x95\xe9\x95\xbf\xe8\x83\x9c\xef\xbc\x9a\xe2\x80\x9c\xe5\x8f\x8c\xe7\xa2\xb3\xe2\x80\x9d\xe7\x9b\xae\xe6\xa0\x87\xe7\x9a\x84\xe5\xae\x9e\xe7\x8e\xb0\xef\xbc\x8c\xe9\x9c\x80\xe8\xa6\x81\xe4\xbc\x81\xe4\xb8\x9a\xe5\x92\x8c\xe4\xb8\xaa\xe4\xba\xba\xe7\x9a\x84\xe5\x85\xb1\xe5\x90\x8c\xe5\x8a\xaa\xe5\x8a\x9b\xe3\x80\x82\xe5\x9c\xa8\xe5\x89\x8d\xe6\x9c\x9f\xe7\x9a\x84\xe5\xb8\x82\xe5\x9c\xba\xe8\xb0\x83\xe7\xa0\x94\xe8\xbf\x87\xe7\xa8\x8b\xe4\xb8\xad\xef\xbc\x8c\xe6\x88\x91\xe4\xbb\xac\xe4\xba\x86\xe8\xa7\xa3\xe5\x88\xb0\xe4\xbc\x81\xe4\xb8\x9a\xe5\x92\x8c\xe4\xb8\xaa\xe4\xba\xba\xe9\x83\xbd\xe5\xad\x98\xe5\x9c\xa8\xe7\x9b\xb8\xe5\xba\x94\xe7\x9a\x84\xe7\xbb\xbf\xe8\x89\xb2\xe4\xbd\x8e\xe7\xa2\xb3\xe7\x94\x9f\xe4\xba\xa7\xe5\x92\x8c\xe7\x94\x9f\xe6\xb4\xbb\xe9\x9c\x80\xe6\xb1\x82\xef\xbc\x8c\xe6\x89\x80\xe4\xbb\xa5\xe9\x93\xb6\xe8\x81\x94\xe7\xbb\xbf\xe8\x89\xb2\xe4\xbd\x8e\xe7\xa2\xb3\xe4\xb8\xbb\xe9\xa2\x98\xe5\x8d\xa1\xe5\x9c\xa8\xe4\xba\xa7\xe5\x93\x81\xe7\xa0\x94\xe5\x8f\x91\xe9\x98\xb6\xe6\xae\xb5\xe5\xb0\xb1\xe8\xae\xbe\xe8\xae\xa1\xe4\xba\x86\xe7\xbb\xbf\xe8\x89\xb2\xe4\xbd\x8e\xe7\xa2\xb3\xe5\xaf\xb9\xe5\x85\xac\xe4\xba\xa7\xe5\x93\x81\xe5\x92\x8c\xe7\xbb\xbf\xe8\x89\xb2\xe4\xbd\x8e\xe7\xa2\xb3\xe4\xb8\xaa\xe4\xba\xba\xe4\xba\xa7\xe5\x93\x81\xef\xbc\x8c\xe5\xb8\x8c\xe6\x9c\x9b\xe6\x8e\xa8\xe5\x8a\xa8\xe6\x9b\xb4\xe5\xa4\x9a\xe7\x9a\x84\xe4\xbc\x81\xe4\xb8\x9a\xe5\x92\x8c\xe4\xb8\xaa\xe4\xba\xba\xe8\x83\xbd\xe5\xa4\x9f\xe5\x8f\x82\xe4\xb8\x8e\xe5\x88\xb0\xe6\x88\x91\xe4\xbb\xac\xe7\x9a\x84\xe7\xbb\xbf\xe8\x89\xb2\xe4\xbd\x8e\xe7\xa2\xb3\xe8\xa1\x8c\xe5\x8a\xa8\xe4\xb8\xad\xe3\x80\x82\xe5\x85\xb6\xe4\xb8\xad\xe5\xaf\xb9\xe5\x85\xac\xe4\xba\xa7\xe5\x93\x81\xe9\x9d\xa2\xe5\x90\x91\xe5\xa4\xa7\xe4\xb8\xad\xe5\x9e\x8b\xe4\xbc\x81\xe4\xb8\x9a\xe3\x80\x81\xe5\xb0\x8f\xe5\xbe\xae\xe4\xbc\x81\xe4\xb8\x9a\xe3\x80\x81\xe4\xb9\xa1\xe9\x95\x87\xe4\xbc\x81\xe4\xb8\x9a\xe7\xad\x89\xe5\x90\x84\xe7\xb1\xbb\xe5\x9e\x8b\xe5\x85\xb7\xe6\x9c\x89\xe7\xbb\xbf\xe8\x89\xb2\xe5\x8f\x91\xe5\xb1\x95\xe9\x9c\x80\xe6\xb1\x82\xe7\x9a\x84\xe4\xbc\x81\xe4\xb8\x9a\xef\xbc\x8c\xe4\xb8\xaa\xe4\xba\xba\xe4\xba\xa7\xe5\x93\x81\xe9\x9d\xa2\xe5\x90\x91\xe4\xbb\xa5\xe5\xb9\xb4\xe8\xbd\xbb\xe5\xae\xa2\xe7\xbe\xa4\xe3\x80\x81\xe6\x96\xb0\xe8\x83\xbd\xe6\xba\x90\xe6\xb1\xbd\xe8\xbd\xa6\xe8\xbd\xa6\xe4\xb8\xbb\xe7\xad\x89\xe4\xb8\xba\xe4\xbb\xa3\xe8\xa1\xa8\xe7\x9a\x84\xe5\xaf\xb9\xe7\x8e\xaf\xe4\xbf\x9d\xe7\x90\x86\xe5\xbf\xb5\xe8\xae\xa4\xe7\x9f\xa5\xe5\xba\xa6\xe8\xbe\x83\xe9\xab\x98\xe7\x9a\x84\xe5\xa4\xa7\xe4\xbc\x97\xe5\xae\xa2\xe7\xbe\xa4\xe3\x80\x82

\n

\xe7\x8e\xb0\xe9\x98\xb6\xe6\xae\xb5\xef\xbc\x8c\xe6\x88\x91\xe4\xbb\xac\xe8\x81\x94\xe5\x90\x88\xe5\x95\x86\xe4\xb8\x9a\xe9\x93\xb6\xe8\xa1\x8c\xef\xbc\x8c\xe4\xb8\x80\xe6\x96\xb9\xe9\x9d\xa2\xef\xbc\x8c\xe9\x80\x9a\xe8\xbf\x87\xe5\x8f\x91\xe8\xa1\x8c\xe8\x99\x9a\xe6\x8b\x9f\xe5\x8d\xa1\xe6\x88\x96\xe7\x8e\xaf\xe4\xbf\x9d\xe6\x9d\x90\xe8\xb4\xa8\xe7\x9a\x84\xe5\x8d\xa1\xe7\x89\x87\xe3\x80\x81\xe5\x90\x91\xe6\x8c\x81\xe5\x8d\xa1\xe4\xba\xba\xe6\x8f\x90\xe4\xbe\x9b\xe7\x94\xb5\xe5\xad\x90\xe8\xb4\xa6\xe5\x8d\x95\xe7\xad\x89\xe6\x96\xb9\xe5\xbc\x8f\xef\xbc\x8c\xe4\xbb\x8e\xe4\xba\xa7\xe5\x93\x81\xe6\x9c\xac\xe8\xba\xab\xe5\xb0\xbd\xe5\x8f\xaf\xe8\x83\xbd\xe5\x87\x8f\xe5\xb0\x91\xe7\xa2\xb3\xe6\x8e\x92\xe6\x94\xbe\xe3\x80\x82\xe5\x8f\xa6\xe4\xb8\x80\xe6\x96\xb9\xe9\x9d\xa2\xef\xbc\x8c\xe4\xbe\x9d\xe6\x89\x98\xe9\x93\xb6\xe8\x81\x94\xe4\xba\xa4\xe6\x98\x93\xe7\xb3\xbb\xe7\xbb\x9f\xe6\x95\xb0\xe6\x8d\xae\xef\xbc\x8c\xe6\x88\x91\xe4\xbb\xac\xe6\x9e\x84\xe5\xbb\xba\xe4\xba\x86\xe7\xbb\xbf\xe8\x89\xb2\xe4\xbd\x8e\xe7\xa2\xb3\xe7\xa7\xaf\xe5\x88\x86\xe4\xbd\x93\xe7\xb3\xbb\xef\xbc\x8c\xe6\x94\xaf\xe6\x8c\x81\xe4\xb8\xaa\xe4\xba\xba\xe5\x9c\xa8\xe5\x85\xac\xe4\xba\xa4\xe5\x87\xba\xe8\xa1\x8c\xe3\x80\x81\xe5\x9c\xb0\xe9\x93\x81\xe5\x87\xba\xe8\xa1\x8c\xe3\x80\x81\xe5\x85\xb1\xe4\xba\xab\xe5\x8d\x95\xe8\xbd\xa6\xe9\xaa\x91\xe8\xa1\x8c\xe3\x80\x81\xe4\xba\x91\xe9\x97\xaa\xe4\xbb\x98\xe5\x85\xac\xe7\xbc\xb4\xe3\x80\x81\xe6\x96\xb0\xe8\x83\xbd\xe6\xba\x90\xe8\xbd\xa6\xe5\x85\x85\xe7\x94\xb5\xe3\x80\x81\xe9\xab\x98\xe9\x93\x81\xe5\x8a\xa8\xe8\xbd\xa6\xe5\x87\xba\xe8\xa1\x8c\xe7\xad\x89\xe5\x85\xad\xe5\xa4\xa7\xe4\xbd\x8e\xe7\xa2\xb3\xe5\x9c\xba\xe6\x99\xaf\xe9\x80\x9a\xe8\xbf\x87\xe7\xbb\xbf\xe8\x89\xb2\xe4\xbd\x8e\xe7\xa2\xb3\xe4\xb8\xbb\xe9\xa2\x98\xe5\x8d\xa1\xe6\xb6\x88\xe8\xb4\xb9\xe7\xb4\xaf\xe8\xae\xa1\xe7\xbb\xbf\xe8\x89\xb2\xe4\xbd\x8e\xe7\xa2\xb3\xe7\xa7\xaf\xe5\x88\x86\xe3\x80\x82\xe5\x90\x8e\xe7\xbb\xad\xef\xbc\x8c\xe6\x88\x91\xe4\xbb\xac\xe5\xb0\x86\xe8\x81\x94\xe5\x90\x88\xe5\x95\x86\xe4\xb8\x9a\xe9\x93\xb6\xe8\xa1\x8c\xef\xbc\x8c\xe7\xba\xb3\xe5\x85\xa5\xe6\x9b\xb4\xe5\xa4\x9a\xe7\xbb\xbf\xe8\x89\xb2\xe6\xb6\x88\xe8\xb4\xb9\xe5\x9c\xba\xe6\x99\xaf\xef\xbc\x8c\xe4\xbb\x8e\xe6\x8c\x81\xe5\x8d\xa1\xe4\xba\xba\xe7\x9a\x84\xe8\xa1\xa3\xe9\xa3\x9f\xe4\xbd\x8f\xe8\xa1\x8c\xe7\x94\xa8\xe5\x90\x84\xe6\x96\xb9\xe9\x9d\xa2\xe5\x80\xa1\xe5\xaf\xbc\xe5\x92\x8c\xe9\xbc\x93\xe5\x8a\xb1\xe7\xbb\xbf\xe8\x89\xb2\xe6\xb6\x88\xe8\xb4\xb9\xe8\xa1\x8c\xe4\xb8\xba\xe3\x80\x82

\n

\xe2\x80\x9c\xe8\x87\xaa\xe8\xba\xab+\xe7\x94\x9f\xe6\x80\x81\xe5\x9c\x88\xe2\x80\x9d\xe5\x8f\x8c\xe5\x8a\xa0\xe7\xa0\x81\xef\xbc\x8c\xe5\x85\xb1\xe4\xbf\x83\xe7\xa2\xb3\xe5\x87\x8f\xe6\x8e\x92 \xe5\x8a\xa9\xe5\x8a\x9b\xe2\x80\x9c\xe5\x8f\x8c\xe7\xa2\xb3\xe2\x80\x9d\xe7\x9b\xae\xe6\xa0\x87\xe5\xae\x9e\xe7\x8e\xb0

\n

\xe6\x96\xb0\xe5\x8d\x8e\xe7\xbd\x91\xef\xbc\x9a\xe5\x9c\xa8\xe5\xbd\x93\xe5\x89\x8d\xe7\xa2\xb3\xe8\xbe\xbe\xe5\xb3\xb0\xe7\xa2\xb3\xe4\xb8\xad\xe5\x92\x8c\xe5\x8f\x91\xe5\xb1\x95\xe7\x9b\xae\xe6\xa0\x87\xe7\x9a\x84\xe5\xbc\x95\xe9\xa2\x86\xe4\xb8\x8b\xef\xbc\x8c\xe9\x93\xb6\xe8\x81\x94\xe5\xa6\x82\xe4\xbd\x95\xe5\x8a\xa9\xe5\x8a\x9b\xe2\x80\x9c3060\xe2\x80\x9d\xe5\x8f\x8c\xe7\xa2\xb3\xe7\x9b\xae\xe6\xa0\x87\xe7\x9a\x84\xe5\xae\x9e\xe7\x8e\xb0\xef\xbc\x9f

\n

\xe5\x8d\x95\xe9\x95\xbf\xe8\x83\x9c\xef\xbc\x9a\xe4\xbd\x9c\xe4\xb8\xba\xe4\xb8\x80\xe5\xae\xb6\xe8\xb4\x9f\xe8\xb4\xa3\xe4\xbb\xbb\xe7\x9a\x84\xe5\x9b\xbd\xe6\x9c\x89\xe4\xbc\x81\xe4\xb8\x9a\xef\xbc\x8c\xe4\xb8\xad\xe5\x9b\xbd\xe9\x93\xb6\xe8\x81\x94\xe5\xb0\x86\xe4\xbb\x8e\xe6\x8e\xa8\xe8\xbf\x9b\xe8\x87\xaa\xe8\xba\xab\xe7\xa2\xb3\xe5\x87\x8f\xe6\x8e\x92\xe5\x92\x8c\xe5\xb8\xa6\xe5\x8a\xa8\xe9\x93\xb6\xe8\x81\x94\xe7\x94\x9f\xe6\x80\x81\xe5\x9c\x88\xe5\x85\xb1\xe5\x90\x8c\xe7\xa2\xb3\xe5\x87\x8f\xe6\x8e\x92\xef\xbc\x8c\xe5\x8a\xa9\xe5\x8a\x9b\xe2\x80\x9c\xe5\x8f\x8c\xe7\xa2\xb3\xe2\x80\x9d\xe7\x9b\xae\xe6\xa0\x87\xe5\xae\x9e\xe7\x8e\xb0\xe3\x80\x82\xe4\xb8\x80\xe6\x96\xb9\xe9\x9d\xa2\xef\xbc\x8c\xe6\x88\x91\xe4\xbb\xac\xe5\xb0\x86\xe4\xbb\x8e\xe8\x87\xaa\xe8\xba\xab\xe7\x9a\x84\xe7\xbb\x8f\xe8\x90\xa5\xe6\xb4\xbb\xe5\x8a\xa8\xe3\x80\x81\xe5\x9b\xad\xe5\x8c\xba\xe5\xbb\xba\xe8\xae\xbe\xe3\x80\x81\xe5\x91\x98\xe5\xb7\xa5\xe8\xa1\x8c\xe4\xb8\xba\xe5\xbc\x95\xe5\xaf\xbc\xe7\xad\x89\xe6\x96\xb9\xe9\x9d\xa2\xe5\x85\xa8\xe9\x9d\xa2\xe5\x87\x8f\xe5\xb0\x91\xe7\xa2\xb3\xe6\x8e\x92\xe6\x94\xbe\xef\xbc\x8c\xe5\x8a\x9b\xe4\xba\x89\xe6\x97\xa9\xe6\x97\xa5\xe5\xae\x9e\xe7\x8e\xb0\xe7\xa2\xb3\xe4\xb8\xad\xe5\x92\x8c\xe3\x80\x82\xe5\x8f\xa6\xe4\xb8\x80\xe6\x96\xb9\xe9\x9d\xa2\xef\xbc\x8c\xe6\x88\x91\xe4\xbb\xac\xe5\xb0\x86\xe5\xb8\xa6\xe5\x8a\xa8\xe5\x90\x84\xe6\x88\x90\xe5\x91\x98\xe6\x9c\xba\xe6\x9e\x84\xef\xbc\x8c\xe7\xa7\xaf\xe6\x9e\x81\xe8\xb7\xb5\xe8\xa1\x8c\xe7\xa2\xb3\xe4\xb8\xad\xe5\x92\x8c\xe8\xa6\x81\xe6\xb1\x82\xef\xbc\x8c\xe6\x8e\xa8\xe5\x87\xba\xe6\x9b\xb4\xe5\xa4\x9a\xe7\xbb\xbf\xe8\x89\xb2\xe9\x87\x91\xe8\x9e\x8d\xe4\xba\xa7\xe5\x93\x81\xe5\x92\x8c\xe6\x9c\x8d\xe5\x8a\xa1\xef\xbc\x8c\xe6\x94\xaf\xe6\x8c\x81\xe4\xbc\x81\xe4\xb8\x9a\xe5\x92\x8c\xe4\xb8\xaa\xe4\xba\xba\xe7\xbb\xbf\xe8\x89\xb2\xe4\xbd\x8e\xe7\xa2\xb3\xe5\x8f\x91\xe5\xb1\x95\xe8\xaf\x89\xe6\xb1\x82\xef\xbc\x8c\xe5\xb9\xb6\xe8\x81\x94\xe5\x90\x88\xe5\x90\x84\xe6\x88\x90\xe5\x91\x98\xe6\x9c\xba\xe6\x9e\x84\xef\xbc\x8c\xe5\x80\x9f\xe5\x8a\xa9\xe9\x93\xb6\xe8\x81\x94\xe5\x8d\xa1\xe7\x9a\x84\xe5\x8f\x91\xe8\xa1\x8c\xef\xbc\x8c\xe4\xbc\xa0\xe6\x92\xad\xe7\xa2\xb3\xe4\xb8\xad\xe5\x92\x8c\xe7\x90\x86\xe5\xbf\xb5\xef\xbc\x8c\xe5\x8a\xa9\xe5\x8a\x9b\xe4\xbc\x81\xe4\xb8\x9a\xe7\xbb\xbf\xe8\x89\xb2\xe4\xbd\x8e\xe7\xa2\xb3\xe5\x8f\x91\xe5\xb1\x95\xef\xbc\x8c\xe5\x80\xa1\xe5\xaf\xbc\xe4\xb8\xaa\xe4\xba\xba\xe7\xbb\xbf\xe8\x89\xb2\xe4\xbd\x8e\xe7\xa2\xb3\xe7\x94\x9f\xe6\xb4\xbb\xe3\x80\x82

\n

\xe6\x9c\xaa\xe6\x9d\xa5\xe5\xb0\x86\xe6\x95\xb4\xe5\x90\x88\xe4\xbc\x98\xe5\x8a\xbf\xe8\xb5\x84\xe6\xba\x90 \xe6\x8e\xa2\xe7\xb4\xa2\xe6\x9b\xb4\xe5\xa4\x9a\xe7\xbb\xbf\xe8\x89\xb2\xe4\xbd\x8e\xe7\xa2\xb3\xe4\xba\xa7\xe5\x93\x81\xe5\x92\x8c\xe6\x9c\x8d\xe5\x8a\xa1

\n

\xe6\x96\xb0\xe5\x8d\x8e\xe7\xbd\x91\xef\xbc\x9a\xe6\x82\xa8\xe8\xae\xa4\xe4\xb8\xba\xef\xbc\x8c\xe9\x87\x91\xe8\x9e\x8d\xe8\xa1\x8c\xe4\xb8\x9a\xe5\x9c\xa8\xe5\x8f\x8c\xe7\xa2\xb3\xe7\x9a\x84\xe8\x83\x8c\xe6\x99\xaf\xe4\xb8\x8b\xe9\x9d\xa2\xe4\xb8\xb4\xe7\x9d\x80\xe5\x93\xaa\xe4\xba\x9b\xe5\x8f\x91\xe5\xb1\x95\xe6\x9c\xba\xe9\x81\x87\xe4\xbb\xa5\xe5\x8f\x8a\xe6\x8c\x91\xe6\x88\x98\xef\xbc\x9f

\n

\xe5\x8d\x95\xe9\x95\xbf\xe8\x83\x9c\xef\xbc\x9a\xe2\x80\x9c\xe5\x8f\x8c\xe7\xa2\xb3\xe2\x80\x9d\xe7\x9b\xae\xe6\xa0\x87\xe7\x9a\x84\xe6\x8f\x90\xe5\x87\xba\xe5\xb0\x86\xe6\x98\xaf\xe7\xa4\xbe\xe4\xbc\x9a\xe7\x94\x9f\xe4\xba\xa7\xe8\xa6\x81\xe7\xb4\xa0\xe8\xb5\x84\xe6\xba\x90\xe9\x85\x8d\xe7\xbd\xae\xe5\x92\x8c\xe7\x94\x9f\xe6\xb4\xbb\xe6\x96\xb9\xe5\xbc\x8f\xe8\xb0\x83\xe6\x95\xb4\xe7\x9a\x84\xe4\xb8\x80\xe6\xac\xa1\xe5\xb7\xa8\xe5\xa4\xa7\xe5\x8f\x98\xe9\x9d\xa9\xef\xbc\x8c\xe5\x90\x84\xe7\xb1\xbb\xe5\x9e\x8b\xe4\xbc\x81\xe4\xb8\x9a\xe9\x83\xbd\xe9\x9d\xa2\xe4\xb8\xb4\xe7\xbb\xbf\xe8\x89\xb2\xe4\xbd\x8e\xe7\xa2\xb3\xe5\x8f\x91\xe5\xb1\x95\xe7\x9a\x84\xe8\xa6\x81\xe6\xb1\x82\xe3\x80\x82\xe4\xbc\x81\xe4\xb8\x9a\xe7\x9a\x84\xe7\xbb\xbf\xe8\x89\xb2\xe4\xbd\x8e\xe7\xa2\xb3\xe8\xbd\xac\xe5\x9e\x8b\xe6\xb6\x89\xe5\x8f\x8a\xe8\x9e\x8d\xe8\xb5\x84\xe8\xb4\xb7\xe6\xac\xbe\xe3\x80\x81\xe6\x94\xaf\xe4\xbb\x98\xe7\xbb\x93\xe7\xae\x97\xe3\x80\x81\xe4\xbf\x9d\xe9\x99\xa9\xe7\xad\x89\xe5\x90\x84\xe7\xb1\xbb\xe9\x87\x91\xe8\x9e\x8d\xe9\x9c\x80\xe6\xb1\x82\xef\xbc\x8c\xe9\x87\x91\xe8\x9e\x8d\xe8\xa1\x8c\xe4\xb8\x9a\xe5\xb0\x86\xe5\x9c\xa8\xe5\x85\xb6\xe4\xb8\xad\xe5\x8f\x91\xe6\x8c\xa5\xe4\xb8\xbe\xe8\xb6\xb3\xe8\xbd\xbb\xe9\x87\x8d\xe7\x9a\x84\xe4\xbd\x9c\xe7\x94\xa8\xef\xbc\x8c\xe6\x8b\xa5\xe6\x9c\x89\xe5\xb9\xbf\xe9\x98\x94\xe7\x9a\x84\xe5\x8f\x91\xe5\xb1\x95\xe7\xa9\xba\xe9\x97\xb4\xe5\x92\x8c\xe6\x9c\xba\xe4\xbc\x9a\xe3\x80\x82

\n

\xe6\x88\x91\xe4\xbb\xac\xe7\x9b\xb8\xe4\xbf\xa1\xef\xbc\x8c\xe6\x9c\x89\xe9\x87\x91\xe8\x9e\x8d\xe8\xa1\x8c\xe4\xb8\x9a\xe7\x9a\x84\xe7\xa7\xaf\xe6\x9e\x81\xe5\x8f\x82\xe4\xb8\x8e\xef\xbc\x8c\xe7\xa2\xb3\xe9\x87\x91\xe8\x9e\x8d\xe4\xba\xa7\xe5\x93\x81\xe5\xb8\x82\xe5\x9c\xba\xe5\xb0\x86\xe5\xbf\xab\xe9\x80\x9f\xe5\x8f\x91\xe5\xb1\x95\xe6\x88\x90\xe7\x86\x9f\xef\xbc\x8c\xe9\x87\x91\xe8\x9e\x8d\xe8\xa1\x8c\xe4\xb8\x9a\xe5\xb0\x86\xe5\x8b\x87\xe7\xab\x8b\xe6\xbd\xae\xe5\xa4\xb4\xef\xbc\x8c\xe5\x88\x87\xe5\xae\x9e\xe6\x8e\xa8\xe8\xbf\x9b\xe2\x80\x9c\xe5\x8f\x8c\xe7\xa2\xb3\xe2\x80\x9d\xe7\x9b\xae\xe6\xa0\x87\xe7\x9a\x84\xe5\xa6\x82\xe6\x9c\x9f\xe5\xae\x9e\xe7\x8e\xb0\xe3\x80\x82

\n

\xe6\x96\xb0\xe5\x8d\x8e\xe7\xbd\x91\xef\xbc\x9a\xe6\x82\xa8\xe8\xae\xa4\xe4\xb8\xba\xef\xbc\x8c\xe9\x93\xb6\xe8\x81\x94\xe5\x9c\xa8\xe6\x9e\x84\xe5\xbb\xba\xe7\xbb\xbf\xe8\x89\xb2\xe4\xbd\x8e\xe7\xa2\xb3\xe7\xa7\xaf\xe5\x88\x86\xe4\xbd\x93\xe7\xb3\xbb\xe4\xb8\xad\xe6\x89\xae\xe6\xbc\x94\xe4\xbb\x80\xe4\xb9\x88\xe6\xa0\xb7\xe7\x9a\x84\xe8\xa7\x92\xe8\x89\xb2\xef\xbc\x9f\xe6\x9c\xaa\xe6\x9d\xa5\xe5\x9c\xa8\xe7\xbb\xbf\xe8\x89\xb2\xe9\x87\x91\xe8\x9e\x8d\xe6\x96\xb9\xe9\x9d\xa2\xe8\xbf\x98\xe4\xbc\x9a\xe4\xbd\x9c\xe5\x93\xaa\xe4\xba\x9b\xe5\xb0\x9d\xe8\xaf\x95\xef\xbc\x9f

\n

\xe5\x8d\x95\xe9\x95\xbf\xe8\x83\x9c\xef\xbc\x9a\xe4\xb8\xad\xe5\x9b\xbd\xe9\x93\xb6\xe8\x81\x94\xe5\x9c\xa8\xe6\x9e\x84\xe5\xbb\xba\xe7\xbb\xbf\xe8\x89\xb2\xe4\xbd\x8e\xe7\xa2\xb3\xe7\xa7\xaf\xe5\x88\x86\xe4\xbd\x93\xe7\xb3\xbb\xe4\xb8\xad\xe5\x90\x8c\xe6\x97\xb6\xe6\x89\xae\xe6\xbc\x94\xe7\x9d\x80\xe8\xa7\x84\xe5\x88\x99\xe5\x88\xb6\xe5\xae\x9a\xe8\x80\x85\xe5\x92\x8c\xe6\xb4\xbb\xe5\x8a\xa8\xe5\x8f\x91\xe8\xb5\xb7\xe8\x80\x85\xe7\x9a\x84\xe8\xa7\x92\xe8\x89\xb2\xe3\x80\x82\xe4\xb8\x80\xe6\x96\xb9\xe9\x9d\xa2\xef\xbc\x8c\xe9\x93\xb6\xe8\x81\x94\xe6\x9e\x84\xe5\xbb\xba\xe4\xba\x86\xe7\xbb\xbf\xe8\x89\xb2\xe4\xbd\x8e\xe7\xa2\xb3\xe7\xa7\xaf\xe5\x88\x86\xe4\xbd\x93\xe7\xb3\xbb\xe5\x8f\x8a\xe7\x9b\xb8\xe5\xba\x94\xe7\x9a\x84\xe6\xb4\xbb\xe5\x8a\xa8\xe7\x8e\xa9\xe6\xb3\x95\xef\xbc\x8c\xe9\x92\x88\xe5\xaf\xb9\xe6\x80\xa7\xe5\x9c\xb0\xe5\xaf\xb9\xe6\x8c\x81\xe5\x8d\xa1\xe4\xba\xba\xe7\x9a\x84\xe7\xbb\xbf\xe8\x89\xb2\xe6\xb6\x88\xe8\xb4\xb9\xe8\xa1\x8c\xe4\xb8\xba\xe8\xbf\x9b\xe8\xa1\x8c\xe5\xa5\x96\xe5\x8a\xb1\xef\xbc\x8c\xe7\x94\xa8\xe6\xb4\xbb\xe5\x8a\xa8\xe8\xa7\x84\xe5\x88\x99\xe5\x8e\xbb\xe5\xbc\x95\xe5\xaf\xbc\xe5\x92\x8c\xe9\xbc\x93\xe5\x8a\xb1\xe5\xa4\xa7\xe4\xbc\x97\xe8\xb7\xb5\xe8\xa1\x8c\xe7\xbb\xbf\xe8\x89\xb2\xe4\xbd\x8e\xe7\xa2\xb3\xe7\x94\x9f\xe6\xb4\xbb\xe3\x80\x82\xe5\x8f\xa6\xe4\xb8\x80\xe6\x96\xb9\xe9\x9d\xa2\xef\xbc\x8c\xe4\xb8\xad\xe5\x9b\xbd\xe9\x93\xb6\xe8\x81\x94\xe5\x9f\xba\xe4\xba\x8e\xe7\xbb\xbf\xe8\x89\xb2\xe4\xbd\x8e\xe7\xa2\xb3\xe7\xa7\xaf\xe5\x88\x86\xe4\xbd\x93\xe7\xb3\xbb\xef\xbc\x8c\xe8\x81\x94\xe5\x90\x88\xe5\x90\x84\xe5\xae\xb6\xe5\x95\x86\xe4\xb8\x9a\xe9\x93\xb6\xe8\xa1\x8c\xe5\x8f\x91\xe8\xa1\x8c\xe7\xbb\xbf\xe8\x89\xb2\xe4\xbd\x8e\xe7\xa2\xb3\xe4\xb8\xbb\xe9\xa2\x98\xe5\x8d\xa1\xef\xbc\x8c\xe5\xb8\xa6\xe9\xa2\x86\xe5\x92\x8c\xe5\x8f\xb7\xe5\x8f\xac\xe9\x93\xb6\xe8\xa1\x8c\xe4\xb8\x9a\xe5\x85\xb1\xe5\x90\x8c\xe5\x8f\x82\xe4\xb8\x8e\xe5\x88\xb0\xe7\xbb\xbf\xe8\x89\xb2\xe9\x87\x91\xe8\x9e\x8d\xe6\x9c\x8d\xe5\x8a\xa1\xe4\xb8\xad\xef\xbc\x8c\xe4\xb9\x9f\xe8\xae\xa9\xe6\x9b\xb4\xe5\xa4\x9a\xe6\x8c\x81\xe5\x8d\xa1\xe4\xba\xba\xe5\x8f\x82\xe4\xb8\x8e\xe5\x88\xb0\xe7\xbb\xbf\xe8\x89\xb2\xe4\xbd\x8e\xe7\xa2\xb3\xe8\xa1\x8c\xe5\x8a\xa8\xe4\xb8\xad\xe3\x80\x82

\n

\xe6\x9c\xaa\xe6\x9d\xa5\xef\xbc\x8c\xe4\xb8\xad\xe5\x9b\xbd\xe9\x93\xb6\xe8\x81\x94\xe5\xb0\x86\xe8\x81\x94\xe5\x90\x88\xe5\x95\x86\xe4\xb8\x9a\xe9\x93\xb6\xe8\xa1\x8c\xe3\x80\x81\xe8\xa1\x8c\xe4\xb8\x9a\xe5\x90\x88\xe4\xbd\x9c\xe4\xbc\x99\xe4\xbc\xb4\xef\xbc\x8c\xe6\x95\xb4\xe5\x90\x88\xe4\xbc\x98\xe5\x8a\xbf\xe8\xb5\x84\xe6\xba\x90\xef\xbc\x8c\xe6\x8e\xa2\xe7\xb4\xa2\xe6\x9b\xb4\xe5\xa4\x9a\xe7\xbb\xbf\xe8\x89\xb2\xe4\xbd\x8e\xe7\xa2\xb3\xe4\xba\xa7\xe5\x93\x81\xe5\x92\x8c\xe6\x9c\x8d\xe5\x8a\xa1\xe3\x80\x82

\xe3\x80\x90\xe7\xba\xa0\xe9\x94\x99\xe3\x80\x91 \xe3\x80\x90\xe8\xb4\xa3\xe4\xbb\xbb\xe7\xbc\x96\xe8\xbe\x91:\xe4\xb8\x87\xe5\x98\x89\xe3\x80\x91
\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t \n \n\t\t\t\n\t\t\t
\n\t\t\t\n\t\t\t
\n\t\t\t
\n\t\t\t\n
\n
    \n
\n
\t\t\n\t\t\t
\n\n
\n \n
\n
\n \n
\n
\n
\n \n
\n\t
\n
\n\t\n \t\n \n \n \n \n \n \n \n \n\n' + print(f'检测bytes内容编码结果:{demo_ins.char_detect(_temp_content)}') + # print(f'解码bytes内容转为str结果:{demo_ins.char_to_str(_temp_content)}') + # 图片模糊(blurry picture) + # temp_aa = demo_ins.img_blurred(r'E:\Users\Administrator\Documents\SomeTools\win11_sunrise.jpg') + # print(f"图片模糊后路径{temp_aa}") + # 生成验证码(Generate verification code) + # temp_aa, img_path = demo_ins.img_generate_verification_code(r'E:\Users\Administrator\Documents\SomeTools\Arial.ttf', r'E:\Users\Administrator\Documents\SomeTools\\') + # print(f"根据字符串{temp_aa}生成验证码{img_path}") + # 查看硬件信息(View hardware information) + print(f'内存信息:{demo_ins.os_memory_info()} 可用内存剩余:{demo_ins.os_memory_info().free}') + print(f'CPU信息:{demo_ins.os_cpu_info()}') + print(f'硬盘信息:{demo_ins.os_disk_info()}') + print(f'网络信息:{demo_ins.os_net_info()}') + # 获取本月的中国法定节假日和工作日(Get this month's Chinese statutory holidays and working days) + calendar_hashmap = Demo.get_calendar_hashmap() + demo_ins.logger().info(f"this month's holiday: {calendar_hashmap.get(92)}") + demo_ins.logger().info(f"this month's holiday: {calendar_hashmap.get(94)}") + demo_ins.logger().info(f"this month's holiday: {calendar_hashmap.get(91)}") + demo_ins.logger().info(f"this month's weekend: {calendar_hashmap.get(6)}") + demo_ins.logger().info(f"this month's weekend: {calendar_hashmap.get(7)}") + demo_ins.logger().info(f"this month's working day: {calendar_hashmap.get(0)}") + demo_ins.logger().info(f"this month's extra working day: {calendar_hashmap.get(90)}") + # redis使用(use redis) + # redis_conn = demo_ins.get_sync_redis_conn(redis_host='10.1.xx.xx', + # redis_port='6379', + # redis_db=1, + # redis_pwd='xx' + # ) + # msg = redis_conn.set('temp_key1', 'test string1') + # demo_ins.logger().info(f"redis set {msg}") + # msg = redis_conn.get('temp_key1') + # demo_ins.logger().info(f"redis get {msg}") +``` +### 2.异步工具使用 (Asynchronous tool usage) +``` pycon +import asyncio +import datetime +import platform +if not (platform.system() == 'Windows'): + import uvloop + asyncio.set_event_loop_policy(uvloop.EventLoopPolicy()) # 使用 uvloop 来替换 asyncio 内部的事件循环。 +from sometools.async_tools import CommonAsyncTools +class Demo(CommonAsyncTools): + def __init__(self, *args, **kwargs): + super(Demo, self).__init__(*args, **kwargs) + # 事件循环 + task_number = kwargs.get('TASK_NUMBER') + loop = asyncio.get_event_loop() + tasks = [asyncio.ensure_future(self.ready(**kwargs)) for _ in range(task_number)] + if platform.system() == 'Windows': + loop.set_debug(True) + loop.run_until_complete(asyncio.wait(tasks)) + async def ready(self, **kwargs): + # 1. redis示例 + self.aio_redis_conn = await self.get_async_redis_conn(redis_host='xx.xx.xx.xx', + redis_port='6379', + redis_db=1, + redis_pwd='xxx') + msg = await self.aio_redis_conn.set('temp_key', 'test string') + print(f'redis set {msg}') + msg = await self.aio_redis_conn.get('temp_key') + print(f'redis get {msg}') + # await asyncio.sleep(5) + # 2. 布隆过滤示例 + to_filter_url = 'https://zhuanlan.zhihu.com/p/376305519' + _is_filted = await self.aio_is_bloom_filter_contains(to_filter_url) + print(f'布隆过滤 是否存在:{_is_filted}') + res = await self.aio_bloom_filter_insert(to_filter_url) + print(f'布隆过滤 插入:{res}') + _is_filted = await self.aio_is_bloom_filter_contains(to_filter_url) + print(f'布隆过滤 是否存在:{_is_filted}') + # 3. mysql orm 示例 + from sometools.async_tools.database_tools.mysql_tools.async_mysql_orm import Model, StringField, TextField, \ + IntegerField, DateTimeField + # 创建连接池 + db_conn_pool = await self.create_db_conn_pool( + DATABASE_HOST='localhost', + DATABASE_PORT=3306, + DATABASE_USER='root', + DATABASE_PWD='root', + DATABASE_DB='db_name_xxxx', + DATABASE_CHARSET='utf8mb4', + DATABASE_AUTOCOMMIT=True, + DATABASE_MAX=10, + DATABASE_MIN=1, + ) + # 创建模型 + class BondPrices(Model): + __db_conn_pool__ = db_conn_pool + __table__ = "bond_prices" + id = IntegerField(primary_key=True) + trade_time = DateTimeField() + trade_data = TextField() + page_name = StringField(ddl='varchar(45)') + is_valid = IntegerField() + data_source = StringField(ddl='varchar(100)') + verify_md5 = StringField(ddl='varchar(40)') + clean_status = IntegerField() + create_at = DateTimeField() + update_at = DateTimeField() + print('检查表是否存在') + data_array = await BondPrices.table_exists('erqqwrwfdsa') + if data_array == 1: + print('表存在') + else: + print('表不存在') + print('直接执行sql语句') + data_array = await BondPrices.execute_sql('select * from bond_prices') + if data_array: + for data_hashmap in data_array: + print(data_hashmap) + print('增加') + bond_price_data = BondPrices(trade_time=datetime.datetime.now(), + trade_data='dadad', + page_name='保存pagename', + data_source='单顺荣', + is_valid=1, + verify_md5='123456789', + clean_status=2, + create_at=datetime.datetime.now(), + update_at=datetime.datetime.now(), + ) + insert_res = await bond_price_data.save_db_date() + if insert_res: + print(f'插入数据成功,主键是{insert_res}') + print('修改') + bond_price_data = BondPrices(id=4, + trade_time=datetime.datetime.now(), + trade_data='dadad', + page_name='愤忿忿忿忿忿忿忿忿忿忿', + data_source='单顺荣', + is_valid=1, + verify_md5='123456789', + clean_status=2, + create_at=datetime.datetime.now(), + update_at=datetime.datetime.now(), + ) + insert_res = await bond_price_data.update_db_date() + if insert_res: + print(f'修改数据成功,影响行数是{insert_res}') + print('删除') + data_array = await BondPrices.select_by_where(id=3) + if data_array: + remove_res = await data_array[0].remove_db_date() + print(f'删除数据成功,影响行数是{remove_res}') + print('查询') + data_array = await BondPrices.select_by_where(id=3, page_name='报价行情', limit=1) + if data_array: + data_hashmap = dict(data_array[0]) + print(data_hashmap.get('verify_md5')) +if __name__ == '__main__': + # 异步工具使用方法示例 + demo_ins = Demo(TASK_NUMBER=1) + print('end') +``` + +%package -n python3-SomeTools +Summary: Some python tools +Provides: python-SomeTools +BuildRequires: python3-devel +BuildRequires: python3-setuptools +BuildRequires: python3-pip +%description -n python3-SomeTools +一些方便日常使用的工具(Some handy tools for everyday use) +* 将输入的任何类型的日期字符串类型转化为datetime.datetime类型的日期对象 (* Convert any type of input date string type to a date object of type datetime.datetime) +* 移除一个字符串中的回车换行空格制表符等内容 (* Remove carriage returns, newlines, spaces, tabs, etc. from a string) +* 将中文字符转为其拼音的首字母 (* Convert Chinese characters to the first letter of their Pinyin) +* 更加方便的日志记录工具 (* More convenient logging tools) +* 繁体简体中文汉字转换工具 (* Traditional and Simplified Chinese character conversion tool) +* redis创建连接同步、异步工具 (* redis creates connection synchronous and asynchronous tools) +* 异步布隆过滤工具 (* Asynchronous Bloom Filter Tool) +* 正则表达式提取字符串中的中文内容工具 (* Regular expression extraction tool for Chinese content in strings) +* 异步 mysql orm (* async mysql orm) +* 检测 bytes 编码 (* Detect bytes encoding) +* 图片处理 (* Image processing) +* 查看操作系统信息 (* View operating system information) +* 获取本机ip地址 (* Get the local ip address) +## Installation (安装) +``` bash +$ pip install SomeTools -i https://pypi.python.org/simple +``` +## Getting Started (开始使用) +### 1.同步工具使用 (Sync tool usage) +``` pycon +from sometools import Common_tools +class Demo(Common_tools): + def __init__(self, *args, **kwargs): + # kwargs['log_file_rec'] = True + # kwargs['log_file_name'] = 'ConsumptionService' + super(Demo, self).__init__(*args, **kwargs) +if __name__ == '__main__': + demo_ins = Demo() + # 获取本机ip地址(get the local ip address) + local_ip_str = Demo.get_host_ip() + demo_ins.logger().info(f"local ip address: {local_ip_str}") + # 将输入的任何类型的日期字符串类型转化为datetime.datetime类型的日期对象(北京时间UTC+8)(Converts any type of date string type entered to a date object of type datetime.datetime)(beijing time UTC+8) + demo_ins.logger(uuid1='uuid1', uuid2='uuid2').info( + f"{demo_ins.str_to_obj('2012-12-12 12:12:12')}{type(demo_ins.str_to_obj('2012-12-12 12:12:12'))}") + demo_ins.logger().info( + f"{demo_ins.str_to_obj('11-May-2021 07:03 EDT')}{type(demo_ins.str_to_obj('11-May-2021 07:03 EDT'))}") + # 移除一个字符串中的回车换行空格制表符等内容(Remove carriage return, newline space tabs, etc., from a string) + temp_str = 'abc abc \n abc \r' + demo_ins.logger().info(f"before clean string{temp_str}") + temp_str = Demo.clean_string('abc abc \n abc \r') + demo_ins.logger().info(f"after clean string{temp_str}") + # 将中文字符转为其拼音的首字母(Convert Chinese characters to the first letter of their pinyin) + demo_ins.logger().info(f"{Demo.get_pinyin('中国外汇交易中心')}") + # 更加方便的日志记录工具(More convenient logging tool) + demo_ins.logger().info(f"{Demo.get_pinyin('中国外汇交易中心')}") + demo_ins.logger().debug(f"{Demo.get_pinyin('中国外汇交易中心')}") + demo_ins.logger().warning(f"{Demo.get_pinyin('中国外汇交易中心')}") + demo_ins.logger().error(f"{Demo.get_pinyin('中国外汇交易中心')}") + # 中文繁体简体互转(Convert between Traditional Chinese and Simplified Chinese) + demo_ins.logger().info(f"繁体转简体 眾議長與李克強會談->{Demo.traditional_chinese_to_simplified('眾議長與李克強會談')}") + demo_ins.logger().info(f"简体转繁体 众议长与李克强会谈->{Demo.simplified_chinese_to_traditional_chinese('众议长与李克强会谈')}") + # url编码解码(url encoding and decoding) + demo_ins.logger().info(f"url编码->{Demo.url_encode('https://www.baidu.com/s?wd=中国')}") + demo_ins.logger().info(f"url解码->{Demo.url_decode('https://www.baidu.com/s?wd=%E4%B8%AD%E5%9B%BD')}") + # 正则提取中文(Regularly extract Chinese) + temp_str = demo_ins.extract_one_chinese("""downloadPdf1('http://www.sse.com.cn/disclosure/bond/announcement/company/c/2021-03-22/4135530025747110334559080.pdf','厦门建发股份有限公司2021年面向专业投资者公开发行可续期公司债券(第一期)发行公告','2021-03-22','1015','pdf');""") + demo_ins.logger().info(f"正则提取单个中文 {temp_str}") + temp_str = demo_ins.extract_multi_chinese("""downloadPdf1('http://www.sse.com.cn/disclosure/bond/announcement/company/c/2021-03-22/4135530025747110334559080.pdf','厦门建发股份有限公司2021年面向专业投资者公开发行可续期公司债券(第一期)发行公告','2021-03-22','1015','pdf');""") + demo_ins.logger().info(f"正则提取多个中文 {temp_str}") + # 检测和转换编码方式(Detect and convert encoding methods) + _temp_content = b'\n\n\n\n \n \n \n \n \n \n \n \n \n \xe4\xb8\xad\xe5\x9b\xbd\xe9\x93\xb6\xe8\x81\x94\xe9\x93\xb6\xe8\xa1\x8c\xe5\x90\x88\xe4\xbd\x9c\xe9\x83\xa8\xe6\x80\xbb\xe7\xbb\x8f\xe7\x90\x86\xe5\x8d\x95\xe9\x95\xbf\xe8\x83\x9c\xef\xbc\x9a\xe8\xb7\xb5\xe8\xa1\x8c\xe2\x80\x9c\xe6\x94\xaf\xe4\xbb\x98\xe4\xb8\xba\xe6\xb0\x91\xe2\x80\x9d\xe7\x90\x86\xe5\xbf\xb5 \xe4\xb8\xad\xe5\x9b\xbd\xe9\x93\xb6\xe8\x81\x94\xe5\xb0\x86\xe6\x8e\xa2\xe7\xb4\xa2\xe6\x9b\xb4\xe5\xa4\x9a\xe7\xbb\xbf\xe8\x89\xb2\xe4\xbd\x8e\xe7\xa2\xb3\xe4\xba\xa7\xe5\x93\x81\xe5\x92\x8c\xe6\x9c\x8d\xe5\x8a\xa1-\xe6\x96\xb0\xe5\x8d\x8e\xe7\xbd\x91\n \n \n \n \n \n \n \n\t\n\t\n\n\n
\n\t
\n \t\n\t
\n
\n \n
\n\t
\n\t\t
\n\t\t
\n\t
\n
\xe6\x96\xb0\xe5\x8d\x8e\xe7\xbd\x91 > > \xe6\xad\xa3\xe6\x96\x87
2021 09/08 17:35:14
\xe6\x9d\xa5\xe6\xba\x90\xef\xbc\x9a\xe6\x96\xb0\xe5\x8d\x8e\xe7\xbd\x91\n \t

\xe4\xb8\xad\xe5\x9b\xbd\xe9\x93\xb6\xe8\x81\x94\xe9\x93\xb6\xe8\xa1\x8c\xe5\x90\x88\xe4\xbd\x9c\xe9\x83\xa8\xe6\x80\xbb\xe7\xbb\x8f\xe7\x90\x86\xe5\x8d\x95\xe9\x95\xbf\xe8\x83\x9c\xef\xbc\x9a\xe8\xb7\xb5\xe8\xa1\x8c\xe2\x80\x9c\xe6\x94\xaf\xe4\xbb\x98\xe4\xb8\xba\xe6\xb0\x91\xe2\x80\x9d\xe7\x90\x86\xe5\xbf\xb5 \xe4\xb8\xad\xe5\x9b\xbd\xe9\x93\xb6\xe8\x81\x94\xe5\xb0\x86\xe6\x8e\xa2\xe7\xb4\xa2\xe6\x9b\xb4\xe5\xa4\x9a\xe7\xbb\xbf\xe8\x89\xb2\xe4\xbd\x8e\xe7\xa2\xb3\xe4\xba\xa7\xe5\x93\x81\xe5\x92\x8c\xe6\x9c\x8d\xe5\x8a\xa1

\xe5\xad\x97\xe4\xbd\x93\xef\xbc\x9a\n \xe5\xb0\x8f \xe4\xb8\xad \xe5\xa4\xa7
\n
\n \n
\n
\n \n
\n
\n

\xe6\x96\xb0\xe5\x8d\x8e\xe7\xbd\x91\xe5\x8c\x97\xe4\xba\xac9\xe6\x9c\x888\xe6\x97\xa5\xe7\x94\xb5\xef\xbc\x88\xe7\x8e\x8b\xe9\x9b\xa8\xe9\xa6\xa8\xef\xbc\x89\xe4\xb8\xad\xe5\x9b\xbd\xe9\x93\xb6\xe8\x81\x94\xe9\x93\xb6\xe8\xa1\x8c\xe5\x90\x88\xe4\xbd\x9c\xe9\x83\xa8\xe6\x80\xbb\xe7\xbb\x8f\xe7\x90\x86\xe5\x8d\x95\xe9\x95\xbf\xe8\x83\x9c\xe6\x97\xa5\xe5\x89\x8d\xe6\x8e\xa5\xe5\x8f\x97\xe6\x96\xb0\xe5\x8d\x8e\xe7\xbd\x91\xe8\xae\xb0\xe8\x80\x85\xe4\xb8\x93\xe8\xae\xbf\xe6\x97\xb6\xe8\xa1\xa8\xe7\xa4\xba\xef\xbc\x8c\xe4\xb8\xad\xe5\x9b\xbd\xe9\x93\xb6\xe8\x81\x94\xe4\xb8\x80\xe7\x9b\xb4\xe4\xbb\xa5\xe6\x9d\xa5\xe9\x87\x8d\xe8\xa7\x86\xe6\x95\xb0\xe5\xad\x97\xe5\x8c\x96\xe5\x92\x8c\xe4\xbd\x8e\xe7\xa2\xb3\xe5\x8c\x96\xe5\x8f\x91\xe5\xb1\x95\xef\xbc\x8c\xe6\x9c\xaa\xe6\x9d\xa5\xe5\xb0\x86\xe5\x85\x85\xe5\x88\x86\xe5\x8f\x91\xe6\x8c\xa5\xe6\x94\xaf\xe4\xbb\x98\xe4\xba\xa7\xe5\x93\x81\xe5\xb9\xb3\xe5\x8f\xb0\xe5\x92\x8c\xe6\x9e\xa2\xe7\xba\xbd\xe4\xbd\x9c\xe7\x94\xa8\xef\xbc\x8c\xe6\x8c\x81\xe7\xbb\xad\xe8\x81\x94\xe5\x90\x88\xe5\x95\x86\xe4\xb8\x9a\xe9\x93\xb6\xe8\xa1\x8c\xe7\xad\x89\xe4\xba\xa7\xe4\xb8\x9a\xe5\x90\x84\xe6\x96\xb9\xe9\x99\x86\xe7\xbb\xad\xe6\x8e\xa8\xe5\x87\xba\xe5\x90\x84\xe9\x93\xb6\xe8\xa1\x8c\xe7\x9a\x84\xe7\xbb\xbf\xe8\x89\xb2\xe4\xbd\x8e\xe7\xa2\xb3\xe4\xb8\xbb\xe9\xa2\x98\xe5\x8d\xa1\xe4\xba\xa7\xe5\x93\x81\xef\xbc\x8c\xe7\xa0\x94\xe5\x8f\x91\xe6\x9b\xb4\xe5\xa4\x9a\xe6\x99\xae\xe6\x83\xa0\xe4\xbe\xbf\xe6\xb0\x91\xe7\x9a\x84\xe7\xbb\xbf\xe8\x89\xb2\xe9\x87\x91\xe8\x9e\x8d\xe6\x96\xb0\xe4\xba\xa7\xe5\x93\x81\xe3\x80\x81\xe6\x96\xb0\xe4\xb8\x9a\xe6\x80\x81\xe3\x80\x81\xe6\x96\xb0\xe6\xa8\xa1\xe5\xbc\x8f\xef\xbc\x8c\xe5\x8a\xa9\xe5\x8a\x9b\xe2\x80\x9c3060\xe2\x80\x9d\xe5\x8f\x8c\xe7\xa2\xb3\xe7\x9b\xae\xe6\xa0\x87\xe5\xa6\x82\xe6\x9c\x9f\xe5\xae\x9e\xe7\x8e\xb0\xe3\x80\x82

\n

\xe6\x8d\xae\xe6\x82\x89\xef\xbc\x8c\xe8\xbf\x91\xe6\x97\xa5\xe4\xb8\xad\xe5\x9b\xbd\xe9\x93\xb6\xe8\x81\x94\xe8\x81\x94\xe5\x90\x88\xe4\xb8\x8a\xe6\xb5\xb7\xe7\x8e\xaf\xe5\xa2\x83\xe8\x83\xbd\xe6\xba\x90\xe4\xba\xa4\xe6\x98\x93\xe6\x89\x80\xe3\x80\x81\xe5\x95\x86\xe4\xb8\x9a\xe9\x93\xb6\xe8\xa1\x8c\xef\xbc\x8c\xe5\x85\xb1\xe5\x90\x8c\xe5\x8f\x91\xe5\xb8\x83\xe9\x93\xb6\xe8\x81\x94\xe7\xbb\xbf\xe8\x89\xb2\xe4\xbd\x8e\xe7\xa2\xb3\xe4\xb8\xbb\xe9\xa2\x98\xe5\x8d\xa1\xe4\xba\xa7\xe5\x93\x81\xe3\x80\x82\xe7\xbb\xbf\xe8\x89\xb2\xe4\xbd\x8e\xe7\xa2\xb3\xe4\xb8\xbb\xe9\xa2\x98\xe9\x93\xb6\xe8\xa1\x8c\xe5\x8d\xa1\xe5\x8c\x85\xe5\x90\xab\xe4\xbc\x81\xe4\xb8\x9a\xe7\x89\x88\xe5\x8f\x8a\xe4\xb8\xaa\xe4\xba\xba\xe7\x89\x88\xe4\xb8\xa4\xe5\xa5\x97\xe5\x8d\xa1\xe4\xba\xa7\xe5\x93\x81\xe4\xbd\x93\xe7\xb3\xbb\xef\xbc\x8c\xe4\xbb\xa5\xe9\x93\xb6\xe8\x81\x94\xe4\xba\xa4\xe6\x98\x93\xe7\xb3\xbb\xe7\xbb\x9f\xe4\xb8\xad\xe4\xbc\x81\xe4\xb8\x9a\xe5\x92\x8c\xe4\xb8\xaa\xe4\xba\xba\xe4\xba\xa4\xe6\x98\x93\xe8\xa1\x8c\xe4\xb8\xba\xe6\x95\xb0\xe6\x8d\xae\xe4\xb8\xba\xe8\xae\xa1\xe7\xae\x97\xe5\x9f\xba\xe7\xa1\x80\xef\xbc\x8c\xe6\x9e\x84\xe5\xbb\xba\xe9\x93\xb6\xe8\x81\x94\xe7\xbb\xbf\xe8\x89\xb2\xe4\xbd\x8e\xe7\xa2\xb3\xe7\xa7\xaf\xe5\x88\x86\xe4\xbd\x93\xe7\xb3\xbb\xef\xbc\x8c\xe4\xb8\x80\xe6\x96\xb9\xe9\x9d\xa2\xe5\x8a\xa9\xe5\x8a\x9b\xe4\xbc\x81\xe4\xb8\x9a\xe7\xa2\xb3\xe4\xb8\xad\xe5\x92\x8c\xe8\xbd\xac\xe5\x9e\x8b\xef\xbc\x9b\xe5\x8f\xa6\xe4\xb8\x80\xe6\x96\xb9\xe9\x9d\xa2\xe6\xa0\xb9\xe6\x8d\xae\xe7\x94\xa8\xe6\x88\xb7\xe7\xbb\xbf\xe8\x89\xb2\xe6\xb6\x88\xe8\xb4\xb9\xe8\xa1\x8c\xe4\xb8\xba\xe8\xb4\xa1\xe7\x8c\xae\xe6\x9e\x84\xe5\xbb\xba\xe9\x93\xb6\xe8\x81\x94\xe7\xbb\xbf\xe8\x89\xb2\xe4\xbd\x8e\xe7\xa2\xb3\xe5\x8d\xa1\xe5\x8a\xa8\xe6\x80\x81\xe6\x9d\x83\xe7\x9b\x8a\xe4\xbd\x93\xe7\xb3\xbb\xef\xbc\x8c\xe5\x90\x91\xe4\xbc\x81\xe4\xb8\x9a\xe5\x92\x8c\xe7\xa4\xbe\xe4\xbc\x9a\xe5\xa4\xa7\xe4\xbc\x97\xe4\xbc\xa0\xe6\x92\xad\xe7\xa2\xb3\xe4\xb8\xad\xe5\x92\x8c\xe6\xa6\x82\xe5\xbf\xb5\xe3\x80\x82

\n

\xe8\xb7\xb5\xe8\xa1\x8c\xe2\x80\x9c\xe6\x94\xaf\xe4\xbb\x98\xe4\xb8\xba\xe6\xb0\x91\xe2\x80\x9d \xe6\x8e\xa8\xe7\xbb\xbf\xe8\x89\xb2\xe4\xbd\x8e\xe7\xa2\xb3\xe4\xb8\xbb\xe9\xa2\x98\xe9\x93\xb6\xe8\xa1\x8c\xe5\x8d\xa1

\n

\xe6\x96\xb0\xe5\x8d\x8e\xe7\xbd\x91\xef\xbc\x9a\xe4\xb8\xad\xe5\x9b\xbd\xe9\x93\xb6\xe8\x81\x94\xe4\xba\x8e\xe8\xbf\x91\xe6\x97\xa5\xe5\x8f\x91\xe5\xb8\x83\xe7\xbb\xbf\xe8\x89\xb2\xe4\xbd\x8e\xe7\xa2\xb3\xe4\xb8\xbb\xe9\xa2\x98\xe9\x93\xb6\xe8\xa1\x8c\xe5\x8d\xa1\xe7\x9a\x84\xe5\x88\x9d\xe5\xbf\x83\xe6\x98\xaf\xe4\xbb\x80\xe4\xb9\x88\xef\xbc\x9f\xe6\x83\xb3\xe5\x80\x9f\xe6\xad\xa4\xe4\xbc\xa0\xe6\x92\xad\xe4\xbb\x80\xe4\xb9\x88\xe6\xa0\xb7\xe7\x9a\x84\xe7\x90\x86\xe5\xbf\xb5\xef\xbc\x9f

\n

\xe5\x8d\x95\xe9\x95\xbf\xe8\x83\x9c\xef\xbc\x9a\xe4\xb8\xad\xe5\x9b\xbd\xe9\x93\xb6\xe8\x81\x94\xe4\xb8\x80\xe7\x9b\xb4\xe4\xbb\xa5\xe6\x9d\xa5\xe9\x87\x8d\xe8\xa7\x86\xe6\x95\xb0\xe5\xad\x97\xe5\x8c\x96\xe5\x92\x8c\xe4\xbd\x8e\xe7\xa2\xb3\xe5\x8c\x96\xe5\x8f\x91\xe5\xb1\x95\xef\xbc\x8c\xe8\x87\xaa\xe5\xae\x9e\xe7\x8e\xb0\xe7\xa2\xb3\xe8\xbe\xbe\xe5\xb3\xb0\xe7\xa2\xb3\xe4\xb8\xad\xe5\x92\x8c\xe7\x9b\xae\xe6\xa0\x87\xe6\x8f\x90\xe5\x87\xba\xe4\xbb\xa5\xe6\x9d\xa5\xef\xbc\x8c\xe9\x93\xb6\xe8\x81\x94\xe4\xb8\x80\xe7\x9b\xb4\xe5\x9c\xa8\xe6\x80\x9d\xe8\x80\x83\xe5\xa6\x82\xe4\xbd\x95\xe7\xbb\x93\xe5\x90\x88\xe8\x87\xaa\xe8\xba\xab\xe4\xb8\x9a\xe5\x8a\xa1\xe5\x8f\x91\xe5\xb1\x95\xef\xbc\x8c\xe7\xa7\xaf\xe6\x9e\x81\xe5\x93\x8d\xe5\xba\x94\xe7\xa2\xb3\xe8\xbe\xbe\xe5\xb3\xb0\xe7\xa2\xb3\xe4\xb8\xad\xe5\x92\x8c\xe7\x9b\xae\xe6\xa0\x87\xe4\xbb\xa5\xe5\x8f\x8a\xe7\xbb\xbf\xe8\x89\xb2\xe9\x87\x91\xe8\x9e\x8d\xe5\x8f\x91\xe5\xb1\x95\xe8\xa6\x81\xe6\xb1\x82\xe3\x80\x82\xe4\xb8\xad\xe5\x9b\xbd\xe9\x93\xb6\xe8\x81\x94\xe4\xbd\x9c\xe4\xb8\xba\xe9\x93\xb6\xe8\xa1\x8c\xe5\x8d\xa1\xe8\xbd\xac\xe6\x8e\xa5\xe6\xb8\x85\xe7\xae\x97\xe6\x9c\xba\xe6\x9e\x84\xef\xbc\x8c\xe4\xb8\x8e\xe5\x95\x86\xe4\xb8\x9a\xe9\x93\xb6\xe8\xa1\x8c\xe3\x80\x81\xe5\x95\x86\xe6\x88\xb7\xe3\x80\x81\xe7\x94\xa8\xe6\x88\xb7\xe6\x9c\x89\xe7\x9d\x80\xe5\xa4\xa9\xe7\x84\xb6\xe7\x9a\x84\xe7\xb4\xa7\xe5\xaf\x86\xe8\x81\x94\xe7\xb3\xbb\xef\xbc\x8c\xe6\x89\x80\xe4\xbb\xa5\xe5\x9c\xa8\xe5\xae\x9e\xe7\x8e\xb0\xe2\x80\x9c\xe5\x8f\x8c\xe7\xa2\xb3\xe2\x80\x9d\xe7\x9b\xae\xe6\xa0\x87\xe4\xbd\x9c\xe4\xb8\xba\xe9\x87\x8d\xe8\xa6\x81\xe6\x88\x98\xe7\x95\xa5\xe5\x86\xb3\xe7\xad\x96\xe8\xa2\xab\xe6\x8f\x90\xe5\x87\xba\xe6\x97\xb6\xef\xbc\x8c\xe4\xb8\xad\xe5\x9b\xbd\xe9\x93\xb6\xe8\x81\x94\xe5\xb0\xb1\xe2\x80\x9c\xe6\x94\xaf\xe4\xbb\x98\xe4\xb8\xba\xe6\xb0\x91\xe2\x80\x9d\xe7\x9a\x84\xe7\x90\x86\xe5\xbf\xb5\xef\xbc\x8c\xe5\xb8\x8c\xe6\x9c\x9b\xe6\x8e\xa8\xe5\x87\xba\xe7\xbb\xbf\xe8\x89\xb2\xe4\xbd\x8e\xe7\xa2\xb3\xe7\x9b\xb8\xe5\x85\xb3\xe9\x93\xb6\xe8\xa1\x8c\xe5\x8d\xa1\xe4\xba\xa7\xe5\x93\x81\xef\xbc\x8c\xe4\xbb\xa5\xe9\x93\xb6\xe8\xa1\x8c\xe5\x8d\xa1\xe4\xb8\xba\xe7\xba\xbd\xe5\xb8\xa6\xef\xbc\x8c\xe5\x90\x91\xe4\xbc\x81\xe4\xb8\x9a\xe5\x92\x8c\xe4\xb8\xaa\xe4\xba\xba\xe6\x8e\xa8\xe5\xb9\xbf\xe6\x99\xae\xe5\x8f\x8a\xe7\xbb\xbf\xe8\x89\xb2\xe4\xbd\x8e\xe7\xa2\xb3\xe7\x90\x86\xe5\xbf\xb5\xef\xbc\x8c\xe5\xbc\x95\xe5\xaf\xbc\xe4\xbc\x81\xe4\xb8\x9a\xe5\x92\x8c\xe4\xb8\xaa\xe4\xba\xba\xe8\x8a\x82\xe8\x83\xbd\xe5\x87\x8f\xe6\x8e\x92\xef\xbc\x8c\xe5\x8a\xa9\xe5\x8a\x9b\xe7\xa2\xb3\xe8\xbe\xbe\xe5\xb3\xb0\xe7\xa2\xb3\xe4\xb8\xad\xe5\x92\x8c\xe7\x9b\xae\xe6\xa0\x87\xe5\xa6\x82\xe6\x9c\x9f\xe5\xae\x9e\xe7\x8e\xb0\xe3\x80\x82

\n

\xe6\x96\xb0\xe5\x8d\x8e\xe7\xbd\x91\xef\xbc\x9a\xe9\x93\xb6\xe8\x81\x94\xe6\xad\xa4\xe6\xac\xa1\xe5\x8f\x91\xe8\xa1\x8c\xe7\xbb\xbf\xe8\x89\xb2\xe4\xbd\x8e\xe7\xa2\xb3\xe4\xb8\xbb\xe9\xa2\x98\xe9\x93\xb6\xe8\xa1\x8c\xe5\x8d\xa1\xe7\x9a\x84\xe5\x8f\x97\xe4\xbc\x97\xe6\x9c\x89\xe5\x93\xaa\xe4\xba\x9b\xef\xbc\x9f\xe6\x94\xaf\xe6\x8c\x81\xe5\x93\xaa\xe4\xba\x9b\xe7\xbb\xbf\xe8\x89\xb2\xe6\xb6\x88\xe8\xb4\xb9\xe8\xa1\x8c\xe4\xb8\xba\xef\xbc\x9f

\n

\xe5\x8d\x95\xe9\x95\xbf\xe8\x83\x9c\xef\xbc\x9a\xe2\x80\x9c\xe5\x8f\x8c\xe7\xa2\xb3\xe2\x80\x9d\xe7\x9b\xae\xe6\xa0\x87\xe7\x9a\x84\xe5\xae\x9e\xe7\x8e\xb0\xef\xbc\x8c\xe9\x9c\x80\xe8\xa6\x81\xe4\xbc\x81\xe4\xb8\x9a\xe5\x92\x8c\xe4\xb8\xaa\xe4\xba\xba\xe7\x9a\x84\xe5\x85\xb1\xe5\x90\x8c\xe5\x8a\xaa\xe5\x8a\x9b\xe3\x80\x82\xe5\x9c\xa8\xe5\x89\x8d\xe6\x9c\x9f\xe7\x9a\x84\xe5\xb8\x82\xe5\x9c\xba\xe8\xb0\x83\xe7\xa0\x94\xe8\xbf\x87\xe7\xa8\x8b\xe4\xb8\xad\xef\xbc\x8c\xe6\x88\x91\xe4\xbb\xac\xe4\xba\x86\xe8\xa7\xa3\xe5\x88\xb0\xe4\xbc\x81\xe4\xb8\x9a\xe5\x92\x8c\xe4\xb8\xaa\xe4\xba\xba\xe9\x83\xbd\xe5\xad\x98\xe5\x9c\xa8\xe7\x9b\xb8\xe5\xba\x94\xe7\x9a\x84\xe7\xbb\xbf\xe8\x89\xb2\xe4\xbd\x8e\xe7\xa2\xb3\xe7\x94\x9f\xe4\xba\xa7\xe5\x92\x8c\xe7\x94\x9f\xe6\xb4\xbb\xe9\x9c\x80\xe6\xb1\x82\xef\xbc\x8c\xe6\x89\x80\xe4\xbb\xa5\xe9\x93\xb6\xe8\x81\x94\xe7\xbb\xbf\xe8\x89\xb2\xe4\xbd\x8e\xe7\xa2\xb3\xe4\xb8\xbb\xe9\xa2\x98\xe5\x8d\xa1\xe5\x9c\xa8\xe4\xba\xa7\xe5\x93\x81\xe7\xa0\x94\xe5\x8f\x91\xe9\x98\xb6\xe6\xae\xb5\xe5\xb0\xb1\xe8\xae\xbe\xe8\xae\xa1\xe4\xba\x86\xe7\xbb\xbf\xe8\x89\xb2\xe4\xbd\x8e\xe7\xa2\xb3\xe5\xaf\xb9\xe5\x85\xac\xe4\xba\xa7\xe5\x93\x81\xe5\x92\x8c\xe7\xbb\xbf\xe8\x89\xb2\xe4\xbd\x8e\xe7\xa2\xb3\xe4\xb8\xaa\xe4\xba\xba\xe4\xba\xa7\xe5\x93\x81\xef\xbc\x8c\xe5\xb8\x8c\xe6\x9c\x9b\xe6\x8e\xa8\xe5\x8a\xa8\xe6\x9b\xb4\xe5\xa4\x9a\xe7\x9a\x84\xe4\xbc\x81\xe4\xb8\x9a\xe5\x92\x8c\xe4\xb8\xaa\xe4\xba\xba\xe8\x83\xbd\xe5\xa4\x9f\xe5\x8f\x82\xe4\xb8\x8e\xe5\x88\xb0\xe6\x88\x91\xe4\xbb\xac\xe7\x9a\x84\xe7\xbb\xbf\xe8\x89\xb2\xe4\xbd\x8e\xe7\xa2\xb3\xe8\xa1\x8c\xe5\x8a\xa8\xe4\xb8\xad\xe3\x80\x82\xe5\x85\xb6\xe4\xb8\xad\xe5\xaf\xb9\xe5\x85\xac\xe4\xba\xa7\xe5\x93\x81\xe9\x9d\xa2\xe5\x90\x91\xe5\xa4\xa7\xe4\xb8\xad\xe5\x9e\x8b\xe4\xbc\x81\xe4\xb8\x9a\xe3\x80\x81\xe5\xb0\x8f\xe5\xbe\xae\xe4\xbc\x81\xe4\xb8\x9a\xe3\x80\x81\xe4\xb9\xa1\xe9\x95\x87\xe4\xbc\x81\xe4\xb8\x9a\xe7\xad\x89\xe5\x90\x84\xe7\xb1\xbb\xe5\x9e\x8b\xe5\x85\xb7\xe6\x9c\x89\xe7\xbb\xbf\xe8\x89\xb2\xe5\x8f\x91\xe5\xb1\x95\xe9\x9c\x80\xe6\xb1\x82\xe7\x9a\x84\xe4\xbc\x81\xe4\xb8\x9a\xef\xbc\x8c\xe4\xb8\xaa\xe4\xba\xba\xe4\xba\xa7\xe5\x93\x81\xe9\x9d\xa2\xe5\x90\x91\xe4\xbb\xa5\xe5\xb9\xb4\xe8\xbd\xbb\xe5\xae\xa2\xe7\xbe\xa4\xe3\x80\x81\xe6\x96\xb0\xe8\x83\xbd\xe6\xba\x90\xe6\xb1\xbd\xe8\xbd\xa6\xe8\xbd\xa6\xe4\xb8\xbb\xe7\xad\x89\xe4\xb8\xba\xe4\xbb\xa3\xe8\xa1\xa8\xe7\x9a\x84\xe5\xaf\xb9\xe7\x8e\xaf\xe4\xbf\x9d\xe7\x90\x86\xe5\xbf\xb5\xe8\xae\xa4\xe7\x9f\xa5\xe5\xba\xa6\xe8\xbe\x83\xe9\xab\x98\xe7\x9a\x84\xe5\xa4\xa7\xe4\xbc\x97\xe5\xae\xa2\xe7\xbe\xa4\xe3\x80\x82

\n

\xe7\x8e\xb0\xe9\x98\xb6\xe6\xae\xb5\xef\xbc\x8c\xe6\x88\x91\xe4\xbb\xac\xe8\x81\x94\xe5\x90\x88\xe5\x95\x86\xe4\xb8\x9a\xe9\x93\xb6\xe8\xa1\x8c\xef\xbc\x8c\xe4\xb8\x80\xe6\x96\xb9\xe9\x9d\xa2\xef\xbc\x8c\xe9\x80\x9a\xe8\xbf\x87\xe5\x8f\x91\xe8\xa1\x8c\xe8\x99\x9a\xe6\x8b\x9f\xe5\x8d\xa1\xe6\x88\x96\xe7\x8e\xaf\xe4\xbf\x9d\xe6\x9d\x90\xe8\xb4\xa8\xe7\x9a\x84\xe5\x8d\xa1\xe7\x89\x87\xe3\x80\x81\xe5\x90\x91\xe6\x8c\x81\xe5\x8d\xa1\xe4\xba\xba\xe6\x8f\x90\xe4\xbe\x9b\xe7\x94\xb5\xe5\xad\x90\xe8\xb4\xa6\xe5\x8d\x95\xe7\xad\x89\xe6\x96\xb9\xe5\xbc\x8f\xef\xbc\x8c\xe4\xbb\x8e\xe4\xba\xa7\xe5\x93\x81\xe6\x9c\xac\xe8\xba\xab\xe5\xb0\xbd\xe5\x8f\xaf\xe8\x83\xbd\xe5\x87\x8f\xe5\xb0\x91\xe7\xa2\xb3\xe6\x8e\x92\xe6\x94\xbe\xe3\x80\x82\xe5\x8f\xa6\xe4\xb8\x80\xe6\x96\xb9\xe9\x9d\xa2\xef\xbc\x8c\xe4\xbe\x9d\xe6\x89\x98\xe9\x93\xb6\xe8\x81\x94\xe4\xba\xa4\xe6\x98\x93\xe7\xb3\xbb\xe7\xbb\x9f\xe6\x95\xb0\xe6\x8d\xae\xef\xbc\x8c\xe6\x88\x91\xe4\xbb\xac\xe6\x9e\x84\xe5\xbb\xba\xe4\xba\x86\xe7\xbb\xbf\xe8\x89\xb2\xe4\xbd\x8e\xe7\xa2\xb3\xe7\xa7\xaf\xe5\x88\x86\xe4\xbd\x93\xe7\xb3\xbb\xef\xbc\x8c\xe6\x94\xaf\xe6\x8c\x81\xe4\xb8\xaa\xe4\xba\xba\xe5\x9c\xa8\xe5\x85\xac\xe4\xba\xa4\xe5\x87\xba\xe8\xa1\x8c\xe3\x80\x81\xe5\x9c\xb0\xe9\x93\x81\xe5\x87\xba\xe8\xa1\x8c\xe3\x80\x81\xe5\x85\xb1\xe4\xba\xab\xe5\x8d\x95\xe8\xbd\xa6\xe9\xaa\x91\xe8\xa1\x8c\xe3\x80\x81\xe4\xba\x91\xe9\x97\xaa\xe4\xbb\x98\xe5\x85\xac\xe7\xbc\xb4\xe3\x80\x81\xe6\x96\xb0\xe8\x83\xbd\xe6\xba\x90\xe8\xbd\xa6\xe5\x85\x85\xe7\x94\xb5\xe3\x80\x81\xe9\xab\x98\xe9\x93\x81\xe5\x8a\xa8\xe8\xbd\xa6\xe5\x87\xba\xe8\xa1\x8c\xe7\xad\x89\xe5\x85\xad\xe5\xa4\xa7\xe4\xbd\x8e\xe7\xa2\xb3\xe5\x9c\xba\xe6\x99\xaf\xe9\x80\x9a\xe8\xbf\x87\xe7\xbb\xbf\xe8\x89\xb2\xe4\xbd\x8e\xe7\xa2\xb3\xe4\xb8\xbb\xe9\xa2\x98\xe5\x8d\xa1\xe6\xb6\x88\xe8\xb4\xb9\xe7\xb4\xaf\xe8\xae\xa1\xe7\xbb\xbf\xe8\x89\xb2\xe4\xbd\x8e\xe7\xa2\xb3\xe7\xa7\xaf\xe5\x88\x86\xe3\x80\x82\xe5\x90\x8e\xe7\xbb\xad\xef\xbc\x8c\xe6\x88\x91\xe4\xbb\xac\xe5\xb0\x86\xe8\x81\x94\xe5\x90\x88\xe5\x95\x86\xe4\xb8\x9a\xe9\x93\xb6\xe8\xa1\x8c\xef\xbc\x8c\xe7\xba\xb3\xe5\x85\xa5\xe6\x9b\xb4\xe5\xa4\x9a\xe7\xbb\xbf\xe8\x89\xb2\xe6\xb6\x88\xe8\xb4\xb9\xe5\x9c\xba\xe6\x99\xaf\xef\xbc\x8c\xe4\xbb\x8e\xe6\x8c\x81\xe5\x8d\xa1\xe4\xba\xba\xe7\x9a\x84\xe8\xa1\xa3\xe9\xa3\x9f\xe4\xbd\x8f\xe8\xa1\x8c\xe7\x94\xa8\xe5\x90\x84\xe6\x96\xb9\xe9\x9d\xa2\xe5\x80\xa1\xe5\xaf\xbc\xe5\x92\x8c\xe9\xbc\x93\xe5\x8a\xb1\xe7\xbb\xbf\xe8\x89\xb2\xe6\xb6\x88\xe8\xb4\xb9\xe8\xa1\x8c\xe4\xb8\xba\xe3\x80\x82

\n

\xe2\x80\x9c\xe8\x87\xaa\xe8\xba\xab+\xe7\x94\x9f\xe6\x80\x81\xe5\x9c\x88\xe2\x80\x9d\xe5\x8f\x8c\xe5\x8a\xa0\xe7\xa0\x81\xef\xbc\x8c\xe5\x85\xb1\xe4\xbf\x83\xe7\xa2\xb3\xe5\x87\x8f\xe6\x8e\x92 \xe5\x8a\xa9\xe5\x8a\x9b\xe2\x80\x9c\xe5\x8f\x8c\xe7\xa2\xb3\xe2\x80\x9d\xe7\x9b\xae\xe6\xa0\x87\xe5\xae\x9e\xe7\x8e\xb0

\n

\xe6\x96\xb0\xe5\x8d\x8e\xe7\xbd\x91\xef\xbc\x9a\xe5\x9c\xa8\xe5\xbd\x93\xe5\x89\x8d\xe7\xa2\xb3\xe8\xbe\xbe\xe5\xb3\xb0\xe7\xa2\xb3\xe4\xb8\xad\xe5\x92\x8c\xe5\x8f\x91\xe5\xb1\x95\xe7\x9b\xae\xe6\xa0\x87\xe7\x9a\x84\xe5\xbc\x95\xe9\xa2\x86\xe4\xb8\x8b\xef\xbc\x8c\xe9\x93\xb6\xe8\x81\x94\xe5\xa6\x82\xe4\xbd\x95\xe5\x8a\xa9\xe5\x8a\x9b\xe2\x80\x9c3060\xe2\x80\x9d\xe5\x8f\x8c\xe7\xa2\xb3\xe7\x9b\xae\xe6\xa0\x87\xe7\x9a\x84\xe5\xae\x9e\xe7\x8e\xb0\xef\xbc\x9f

\n

\xe5\x8d\x95\xe9\x95\xbf\xe8\x83\x9c\xef\xbc\x9a\xe4\xbd\x9c\xe4\xb8\xba\xe4\xb8\x80\xe5\xae\xb6\xe8\xb4\x9f\xe8\xb4\xa3\xe4\xbb\xbb\xe7\x9a\x84\xe5\x9b\xbd\xe6\x9c\x89\xe4\xbc\x81\xe4\xb8\x9a\xef\xbc\x8c\xe4\xb8\xad\xe5\x9b\xbd\xe9\x93\xb6\xe8\x81\x94\xe5\xb0\x86\xe4\xbb\x8e\xe6\x8e\xa8\xe8\xbf\x9b\xe8\x87\xaa\xe8\xba\xab\xe7\xa2\xb3\xe5\x87\x8f\xe6\x8e\x92\xe5\x92\x8c\xe5\xb8\xa6\xe5\x8a\xa8\xe9\x93\xb6\xe8\x81\x94\xe7\x94\x9f\xe6\x80\x81\xe5\x9c\x88\xe5\x85\xb1\xe5\x90\x8c\xe7\xa2\xb3\xe5\x87\x8f\xe6\x8e\x92\xef\xbc\x8c\xe5\x8a\xa9\xe5\x8a\x9b\xe2\x80\x9c\xe5\x8f\x8c\xe7\xa2\xb3\xe2\x80\x9d\xe7\x9b\xae\xe6\xa0\x87\xe5\xae\x9e\xe7\x8e\xb0\xe3\x80\x82\xe4\xb8\x80\xe6\x96\xb9\xe9\x9d\xa2\xef\xbc\x8c\xe6\x88\x91\xe4\xbb\xac\xe5\xb0\x86\xe4\xbb\x8e\xe8\x87\xaa\xe8\xba\xab\xe7\x9a\x84\xe7\xbb\x8f\xe8\x90\xa5\xe6\xb4\xbb\xe5\x8a\xa8\xe3\x80\x81\xe5\x9b\xad\xe5\x8c\xba\xe5\xbb\xba\xe8\xae\xbe\xe3\x80\x81\xe5\x91\x98\xe5\xb7\xa5\xe8\xa1\x8c\xe4\xb8\xba\xe5\xbc\x95\xe5\xaf\xbc\xe7\xad\x89\xe6\x96\xb9\xe9\x9d\xa2\xe5\x85\xa8\xe9\x9d\xa2\xe5\x87\x8f\xe5\xb0\x91\xe7\xa2\xb3\xe6\x8e\x92\xe6\x94\xbe\xef\xbc\x8c\xe5\x8a\x9b\xe4\xba\x89\xe6\x97\xa9\xe6\x97\xa5\xe5\xae\x9e\xe7\x8e\xb0\xe7\xa2\xb3\xe4\xb8\xad\xe5\x92\x8c\xe3\x80\x82\xe5\x8f\xa6\xe4\xb8\x80\xe6\x96\xb9\xe9\x9d\xa2\xef\xbc\x8c\xe6\x88\x91\xe4\xbb\xac\xe5\xb0\x86\xe5\xb8\xa6\xe5\x8a\xa8\xe5\x90\x84\xe6\x88\x90\xe5\x91\x98\xe6\x9c\xba\xe6\x9e\x84\xef\xbc\x8c\xe7\xa7\xaf\xe6\x9e\x81\xe8\xb7\xb5\xe8\xa1\x8c\xe7\xa2\xb3\xe4\xb8\xad\xe5\x92\x8c\xe8\xa6\x81\xe6\xb1\x82\xef\xbc\x8c\xe6\x8e\xa8\xe5\x87\xba\xe6\x9b\xb4\xe5\xa4\x9a\xe7\xbb\xbf\xe8\x89\xb2\xe9\x87\x91\xe8\x9e\x8d\xe4\xba\xa7\xe5\x93\x81\xe5\x92\x8c\xe6\x9c\x8d\xe5\x8a\xa1\xef\xbc\x8c\xe6\x94\xaf\xe6\x8c\x81\xe4\xbc\x81\xe4\xb8\x9a\xe5\x92\x8c\xe4\xb8\xaa\xe4\xba\xba\xe7\xbb\xbf\xe8\x89\xb2\xe4\xbd\x8e\xe7\xa2\xb3\xe5\x8f\x91\xe5\xb1\x95\xe8\xaf\x89\xe6\xb1\x82\xef\xbc\x8c\xe5\xb9\xb6\xe8\x81\x94\xe5\x90\x88\xe5\x90\x84\xe6\x88\x90\xe5\x91\x98\xe6\x9c\xba\xe6\x9e\x84\xef\xbc\x8c\xe5\x80\x9f\xe5\x8a\xa9\xe9\x93\xb6\xe8\x81\x94\xe5\x8d\xa1\xe7\x9a\x84\xe5\x8f\x91\xe8\xa1\x8c\xef\xbc\x8c\xe4\xbc\xa0\xe6\x92\xad\xe7\xa2\xb3\xe4\xb8\xad\xe5\x92\x8c\xe7\x90\x86\xe5\xbf\xb5\xef\xbc\x8c\xe5\x8a\xa9\xe5\x8a\x9b\xe4\xbc\x81\xe4\xb8\x9a\xe7\xbb\xbf\xe8\x89\xb2\xe4\xbd\x8e\xe7\xa2\xb3\xe5\x8f\x91\xe5\xb1\x95\xef\xbc\x8c\xe5\x80\xa1\xe5\xaf\xbc\xe4\xb8\xaa\xe4\xba\xba\xe7\xbb\xbf\xe8\x89\xb2\xe4\xbd\x8e\xe7\xa2\xb3\xe7\x94\x9f\xe6\xb4\xbb\xe3\x80\x82

\n

\xe6\x9c\xaa\xe6\x9d\xa5\xe5\xb0\x86\xe6\x95\xb4\xe5\x90\x88\xe4\xbc\x98\xe5\x8a\xbf\xe8\xb5\x84\xe6\xba\x90 \xe6\x8e\xa2\xe7\xb4\xa2\xe6\x9b\xb4\xe5\xa4\x9a\xe7\xbb\xbf\xe8\x89\xb2\xe4\xbd\x8e\xe7\xa2\xb3\xe4\xba\xa7\xe5\x93\x81\xe5\x92\x8c\xe6\x9c\x8d\xe5\x8a\xa1

\n

\xe6\x96\xb0\xe5\x8d\x8e\xe7\xbd\x91\xef\xbc\x9a\xe6\x82\xa8\xe8\xae\xa4\xe4\xb8\xba\xef\xbc\x8c\xe9\x87\x91\xe8\x9e\x8d\xe8\xa1\x8c\xe4\xb8\x9a\xe5\x9c\xa8\xe5\x8f\x8c\xe7\xa2\xb3\xe7\x9a\x84\xe8\x83\x8c\xe6\x99\xaf\xe4\xb8\x8b\xe9\x9d\xa2\xe4\xb8\xb4\xe7\x9d\x80\xe5\x93\xaa\xe4\xba\x9b\xe5\x8f\x91\xe5\xb1\x95\xe6\x9c\xba\xe9\x81\x87\xe4\xbb\xa5\xe5\x8f\x8a\xe6\x8c\x91\xe6\x88\x98\xef\xbc\x9f

\n

\xe5\x8d\x95\xe9\x95\xbf\xe8\x83\x9c\xef\xbc\x9a\xe2\x80\x9c\xe5\x8f\x8c\xe7\xa2\xb3\xe2\x80\x9d\xe7\x9b\xae\xe6\xa0\x87\xe7\x9a\x84\xe6\x8f\x90\xe5\x87\xba\xe5\xb0\x86\xe6\x98\xaf\xe7\xa4\xbe\xe4\xbc\x9a\xe7\x94\x9f\xe4\xba\xa7\xe8\xa6\x81\xe7\xb4\xa0\xe8\xb5\x84\xe6\xba\x90\xe9\x85\x8d\xe7\xbd\xae\xe5\x92\x8c\xe7\x94\x9f\xe6\xb4\xbb\xe6\x96\xb9\xe5\xbc\x8f\xe8\xb0\x83\xe6\x95\xb4\xe7\x9a\x84\xe4\xb8\x80\xe6\xac\xa1\xe5\xb7\xa8\xe5\xa4\xa7\xe5\x8f\x98\xe9\x9d\xa9\xef\xbc\x8c\xe5\x90\x84\xe7\xb1\xbb\xe5\x9e\x8b\xe4\xbc\x81\xe4\xb8\x9a\xe9\x83\xbd\xe9\x9d\xa2\xe4\xb8\xb4\xe7\xbb\xbf\xe8\x89\xb2\xe4\xbd\x8e\xe7\xa2\xb3\xe5\x8f\x91\xe5\xb1\x95\xe7\x9a\x84\xe8\xa6\x81\xe6\xb1\x82\xe3\x80\x82\xe4\xbc\x81\xe4\xb8\x9a\xe7\x9a\x84\xe7\xbb\xbf\xe8\x89\xb2\xe4\xbd\x8e\xe7\xa2\xb3\xe8\xbd\xac\xe5\x9e\x8b\xe6\xb6\x89\xe5\x8f\x8a\xe8\x9e\x8d\xe8\xb5\x84\xe8\xb4\xb7\xe6\xac\xbe\xe3\x80\x81\xe6\x94\xaf\xe4\xbb\x98\xe7\xbb\x93\xe7\xae\x97\xe3\x80\x81\xe4\xbf\x9d\xe9\x99\xa9\xe7\xad\x89\xe5\x90\x84\xe7\xb1\xbb\xe9\x87\x91\xe8\x9e\x8d\xe9\x9c\x80\xe6\xb1\x82\xef\xbc\x8c\xe9\x87\x91\xe8\x9e\x8d\xe8\xa1\x8c\xe4\xb8\x9a\xe5\xb0\x86\xe5\x9c\xa8\xe5\x85\xb6\xe4\xb8\xad\xe5\x8f\x91\xe6\x8c\xa5\xe4\xb8\xbe\xe8\xb6\xb3\xe8\xbd\xbb\xe9\x87\x8d\xe7\x9a\x84\xe4\xbd\x9c\xe7\x94\xa8\xef\xbc\x8c\xe6\x8b\xa5\xe6\x9c\x89\xe5\xb9\xbf\xe9\x98\x94\xe7\x9a\x84\xe5\x8f\x91\xe5\xb1\x95\xe7\xa9\xba\xe9\x97\xb4\xe5\x92\x8c\xe6\x9c\xba\xe4\xbc\x9a\xe3\x80\x82

\n

\xe6\x88\x91\xe4\xbb\xac\xe7\x9b\xb8\xe4\xbf\xa1\xef\xbc\x8c\xe6\x9c\x89\xe9\x87\x91\xe8\x9e\x8d\xe8\xa1\x8c\xe4\xb8\x9a\xe7\x9a\x84\xe7\xa7\xaf\xe6\x9e\x81\xe5\x8f\x82\xe4\xb8\x8e\xef\xbc\x8c\xe7\xa2\xb3\xe9\x87\x91\xe8\x9e\x8d\xe4\xba\xa7\xe5\x93\x81\xe5\xb8\x82\xe5\x9c\xba\xe5\xb0\x86\xe5\xbf\xab\xe9\x80\x9f\xe5\x8f\x91\xe5\xb1\x95\xe6\x88\x90\xe7\x86\x9f\xef\xbc\x8c\xe9\x87\x91\xe8\x9e\x8d\xe8\xa1\x8c\xe4\xb8\x9a\xe5\xb0\x86\xe5\x8b\x87\xe7\xab\x8b\xe6\xbd\xae\xe5\xa4\xb4\xef\xbc\x8c\xe5\x88\x87\xe5\xae\x9e\xe6\x8e\xa8\xe8\xbf\x9b\xe2\x80\x9c\xe5\x8f\x8c\xe7\xa2\xb3\xe2\x80\x9d\xe7\x9b\xae\xe6\xa0\x87\xe7\x9a\x84\xe5\xa6\x82\xe6\x9c\x9f\xe5\xae\x9e\xe7\x8e\xb0\xe3\x80\x82

\n

\xe6\x96\xb0\xe5\x8d\x8e\xe7\xbd\x91\xef\xbc\x9a\xe6\x82\xa8\xe8\xae\xa4\xe4\xb8\xba\xef\xbc\x8c\xe9\x93\xb6\xe8\x81\x94\xe5\x9c\xa8\xe6\x9e\x84\xe5\xbb\xba\xe7\xbb\xbf\xe8\x89\xb2\xe4\xbd\x8e\xe7\xa2\xb3\xe7\xa7\xaf\xe5\x88\x86\xe4\xbd\x93\xe7\xb3\xbb\xe4\xb8\xad\xe6\x89\xae\xe6\xbc\x94\xe4\xbb\x80\xe4\xb9\x88\xe6\xa0\xb7\xe7\x9a\x84\xe8\xa7\x92\xe8\x89\xb2\xef\xbc\x9f\xe6\x9c\xaa\xe6\x9d\xa5\xe5\x9c\xa8\xe7\xbb\xbf\xe8\x89\xb2\xe9\x87\x91\xe8\x9e\x8d\xe6\x96\xb9\xe9\x9d\xa2\xe8\xbf\x98\xe4\xbc\x9a\xe4\xbd\x9c\xe5\x93\xaa\xe4\xba\x9b\xe5\xb0\x9d\xe8\xaf\x95\xef\xbc\x9f

\n

\xe5\x8d\x95\xe9\x95\xbf\xe8\x83\x9c\xef\xbc\x9a\xe4\xb8\xad\xe5\x9b\xbd\xe9\x93\xb6\xe8\x81\x94\xe5\x9c\xa8\xe6\x9e\x84\xe5\xbb\xba\xe7\xbb\xbf\xe8\x89\xb2\xe4\xbd\x8e\xe7\xa2\xb3\xe7\xa7\xaf\xe5\x88\x86\xe4\xbd\x93\xe7\xb3\xbb\xe4\xb8\xad\xe5\x90\x8c\xe6\x97\xb6\xe6\x89\xae\xe6\xbc\x94\xe7\x9d\x80\xe8\xa7\x84\xe5\x88\x99\xe5\x88\xb6\xe5\xae\x9a\xe8\x80\x85\xe5\x92\x8c\xe6\xb4\xbb\xe5\x8a\xa8\xe5\x8f\x91\xe8\xb5\xb7\xe8\x80\x85\xe7\x9a\x84\xe8\xa7\x92\xe8\x89\xb2\xe3\x80\x82\xe4\xb8\x80\xe6\x96\xb9\xe9\x9d\xa2\xef\xbc\x8c\xe9\x93\xb6\xe8\x81\x94\xe6\x9e\x84\xe5\xbb\xba\xe4\xba\x86\xe7\xbb\xbf\xe8\x89\xb2\xe4\xbd\x8e\xe7\xa2\xb3\xe7\xa7\xaf\xe5\x88\x86\xe4\xbd\x93\xe7\xb3\xbb\xe5\x8f\x8a\xe7\x9b\xb8\xe5\xba\x94\xe7\x9a\x84\xe6\xb4\xbb\xe5\x8a\xa8\xe7\x8e\xa9\xe6\xb3\x95\xef\xbc\x8c\xe9\x92\x88\xe5\xaf\xb9\xe6\x80\xa7\xe5\x9c\xb0\xe5\xaf\xb9\xe6\x8c\x81\xe5\x8d\xa1\xe4\xba\xba\xe7\x9a\x84\xe7\xbb\xbf\xe8\x89\xb2\xe6\xb6\x88\xe8\xb4\xb9\xe8\xa1\x8c\xe4\xb8\xba\xe8\xbf\x9b\xe8\xa1\x8c\xe5\xa5\x96\xe5\x8a\xb1\xef\xbc\x8c\xe7\x94\xa8\xe6\xb4\xbb\xe5\x8a\xa8\xe8\xa7\x84\xe5\x88\x99\xe5\x8e\xbb\xe5\xbc\x95\xe5\xaf\xbc\xe5\x92\x8c\xe9\xbc\x93\xe5\x8a\xb1\xe5\xa4\xa7\xe4\xbc\x97\xe8\xb7\xb5\xe8\xa1\x8c\xe7\xbb\xbf\xe8\x89\xb2\xe4\xbd\x8e\xe7\xa2\xb3\xe7\x94\x9f\xe6\xb4\xbb\xe3\x80\x82\xe5\x8f\xa6\xe4\xb8\x80\xe6\x96\xb9\xe9\x9d\xa2\xef\xbc\x8c\xe4\xb8\xad\xe5\x9b\xbd\xe9\x93\xb6\xe8\x81\x94\xe5\x9f\xba\xe4\xba\x8e\xe7\xbb\xbf\xe8\x89\xb2\xe4\xbd\x8e\xe7\xa2\xb3\xe7\xa7\xaf\xe5\x88\x86\xe4\xbd\x93\xe7\xb3\xbb\xef\xbc\x8c\xe8\x81\x94\xe5\x90\x88\xe5\x90\x84\xe5\xae\xb6\xe5\x95\x86\xe4\xb8\x9a\xe9\x93\xb6\xe8\xa1\x8c\xe5\x8f\x91\xe8\xa1\x8c\xe7\xbb\xbf\xe8\x89\xb2\xe4\xbd\x8e\xe7\xa2\xb3\xe4\xb8\xbb\xe9\xa2\x98\xe5\x8d\xa1\xef\xbc\x8c\xe5\xb8\xa6\xe9\xa2\x86\xe5\x92\x8c\xe5\x8f\xb7\xe5\x8f\xac\xe9\x93\xb6\xe8\xa1\x8c\xe4\xb8\x9a\xe5\x85\xb1\xe5\x90\x8c\xe5\x8f\x82\xe4\xb8\x8e\xe5\x88\xb0\xe7\xbb\xbf\xe8\x89\xb2\xe9\x87\x91\xe8\x9e\x8d\xe6\x9c\x8d\xe5\x8a\xa1\xe4\xb8\xad\xef\xbc\x8c\xe4\xb9\x9f\xe8\xae\xa9\xe6\x9b\xb4\xe5\xa4\x9a\xe6\x8c\x81\xe5\x8d\xa1\xe4\xba\xba\xe5\x8f\x82\xe4\xb8\x8e\xe5\x88\xb0\xe7\xbb\xbf\xe8\x89\xb2\xe4\xbd\x8e\xe7\xa2\xb3\xe8\xa1\x8c\xe5\x8a\xa8\xe4\xb8\xad\xe3\x80\x82

\n

\xe6\x9c\xaa\xe6\x9d\xa5\xef\xbc\x8c\xe4\xb8\xad\xe5\x9b\xbd\xe9\x93\xb6\xe8\x81\x94\xe5\xb0\x86\xe8\x81\x94\xe5\x90\x88\xe5\x95\x86\xe4\xb8\x9a\xe9\x93\xb6\xe8\xa1\x8c\xe3\x80\x81\xe8\xa1\x8c\xe4\xb8\x9a\xe5\x90\x88\xe4\xbd\x9c\xe4\xbc\x99\xe4\xbc\xb4\xef\xbc\x8c\xe6\x95\xb4\xe5\x90\x88\xe4\xbc\x98\xe5\x8a\xbf\xe8\xb5\x84\xe6\xba\x90\xef\xbc\x8c\xe6\x8e\xa2\xe7\xb4\xa2\xe6\x9b\xb4\xe5\xa4\x9a\xe7\xbb\xbf\xe8\x89\xb2\xe4\xbd\x8e\xe7\xa2\xb3\xe4\xba\xa7\xe5\x93\x81\xe5\x92\x8c\xe6\x9c\x8d\xe5\x8a\xa1\xe3\x80\x82

\xe3\x80\x90\xe7\xba\xa0\xe9\x94\x99\xe3\x80\x91 \xe3\x80\x90\xe8\xb4\xa3\xe4\xbb\xbb\xe7\xbc\x96\xe8\xbe\x91:\xe4\xb8\x87\xe5\x98\x89\xe3\x80\x91
\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t \n \n\t\t\t\n\t\t\t
\n\t\t\t\n\t\t\t
\n\t\t\t
\n\t\t\t\n
\n
    \n
\n
\t\t\n\t\t\t
\n\n
\n \n
\n
\n \n
\n
\n
\n \n
\n\t
\n
\n\t\n \t\n \n \n \n \n \n \n \n \n\n' + print(f'检测bytes内容编码结果:{demo_ins.char_detect(_temp_content)}') + # print(f'解码bytes内容转为str结果:{demo_ins.char_to_str(_temp_content)}') + # 图片模糊(blurry picture) + # temp_aa = demo_ins.img_blurred(r'E:\Users\Administrator\Documents\SomeTools\win11_sunrise.jpg') + # print(f"图片模糊后路径{temp_aa}") + # 生成验证码(Generate verification code) + # temp_aa, img_path = demo_ins.img_generate_verification_code(r'E:\Users\Administrator\Documents\SomeTools\Arial.ttf', r'E:\Users\Administrator\Documents\SomeTools\\') + # print(f"根据字符串{temp_aa}生成验证码{img_path}") + # 查看硬件信息(View hardware information) + print(f'内存信息:{demo_ins.os_memory_info()} 可用内存剩余:{demo_ins.os_memory_info().free}') + print(f'CPU信息:{demo_ins.os_cpu_info()}') + print(f'硬盘信息:{demo_ins.os_disk_info()}') + print(f'网络信息:{demo_ins.os_net_info()}') + # 获取本月的中国法定节假日和工作日(Get this month's Chinese statutory holidays and working days) + calendar_hashmap = Demo.get_calendar_hashmap() + demo_ins.logger().info(f"this month's holiday: {calendar_hashmap.get(92)}") + demo_ins.logger().info(f"this month's holiday: {calendar_hashmap.get(94)}") + demo_ins.logger().info(f"this month's holiday: {calendar_hashmap.get(91)}") + demo_ins.logger().info(f"this month's weekend: {calendar_hashmap.get(6)}") + demo_ins.logger().info(f"this month's weekend: {calendar_hashmap.get(7)}") + demo_ins.logger().info(f"this month's working day: {calendar_hashmap.get(0)}") + demo_ins.logger().info(f"this month's extra working day: {calendar_hashmap.get(90)}") + # redis使用(use redis) + # redis_conn = demo_ins.get_sync_redis_conn(redis_host='10.1.xx.xx', + # redis_port='6379', + # redis_db=1, + # redis_pwd='xx' + # ) + # msg = redis_conn.set('temp_key1', 'test string1') + # demo_ins.logger().info(f"redis set {msg}") + # msg = redis_conn.get('temp_key1') + # demo_ins.logger().info(f"redis get {msg}") +``` +### 2.异步工具使用 (Asynchronous tool usage) +``` pycon +import asyncio +import datetime +import platform +if not (platform.system() == 'Windows'): + import uvloop + asyncio.set_event_loop_policy(uvloop.EventLoopPolicy()) # 使用 uvloop 来替换 asyncio 内部的事件循环。 +from sometools.async_tools import CommonAsyncTools +class Demo(CommonAsyncTools): + def __init__(self, *args, **kwargs): + super(Demo, self).__init__(*args, **kwargs) + # 事件循环 + task_number = kwargs.get('TASK_NUMBER') + loop = asyncio.get_event_loop() + tasks = [asyncio.ensure_future(self.ready(**kwargs)) for _ in range(task_number)] + if platform.system() == 'Windows': + loop.set_debug(True) + loop.run_until_complete(asyncio.wait(tasks)) + async def ready(self, **kwargs): + # 1. redis示例 + self.aio_redis_conn = await self.get_async_redis_conn(redis_host='xx.xx.xx.xx', + redis_port='6379', + redis_db=1, + redis_pwd='xxx') + msg = await self.aio_redis_conn.set('temp_key', 'test string') + print(f'redis set {msg}') + msg = await self.aio_redis_conn.get('temp_key') + print(f'redis get {msg}') + # await asyncio.sleep(5) + # 2. 布隆过滤示例 + to_filter_url = 'https://zhuanlan.zhihu.com/p/376305519' + _is_filted = await self.aio_is_bloom_filter_contains(to_filter_url) + print(f'布隆过滤 是否存在:{_is_filted}') + res = await self.aio_bloom_filter_insert(to_filter_url) + print(f'布隆过滤 插入:{res}') + _is_filted = await self.aio_is_bloom_filter_contains(to_filter_url) + print(f'布隆过滤 是否存在:{_is_filted}') + # 3. mysql orm 示例 + from sometools.async_tools.database_tools.mysql_tools.async_mysql_orm import Model, StringField, TextField, \ + IntegerField, DateTimeField + # 创建连接池 + db_conn_pool = await self.create_db_conn_pool( + DATABASE_HOST='localhost', + DATABASE_PORT=3306, + DATABASE_USER='root', + DATABASE_PWD='root', + DATABASE_DB='db_name_xxxx', + DATABASE_CHARSET='utf8mb4', + DATABASE_AUTOCOMMIT=True, + DATABASE_MAX=10, + DATABASE_MIN=1, + ) + # 创建模型 + class BondPrices(Model): + __db_conn_pool__ = db_conn_pool + __table__ = "bond_prices" + id = IntegerField(primary_key=True) + trade_time = DateTimeField() + trade_data = TextField() + page_name = StringField(ddl='varchar(45)') + is_valid = IntegerField() + data_source = StringField(ddl='varchar(100)') + verify_md5 = StringField(ddl='varchar(40)') + clean_status = IntegerField() + create_at = DateTimeField() + update_at = DateTimeField() + print('检查表是否存在') + data_array = await BondPrices.table_exists('erqqwrwfdsa') + if data_array == 1: + print('表存在') + else: + print('表不存在') + print('直接执行sql语句') + data_array = await BondPrices.execute_sql('select * from bond_prices') + if data_array: + for data_hashmap in data_array: + print(data_hashmap) + print('增加') + bond_price_data = BondPrices(trade_time=datetime.datetime.now(), + trade_data='dadad', + page_name='保存pagename', + data_source='单顺荣', + is_valid=1, + verify_md5='123456789', + clean_status=2, + create_at=datetime.datetime.now(), + update_at=datetime.datetime.now(), + ) + insert_res = await bond_price_data.save_db_date() + if insert_res: + print(f'插入数据成功,主键是{insert_res}') + print('修改') + bond_price_data = BondPrices(id=4, + trade_time=datetime.datetime.now(), + trade_data='dadad', + page_name='愤忿忿忿忿忿忿忿忿忿忿', + data_source='单顺荣', + is_valid=1, + verify_md5='123456789', + clean_status=2, + create_at=datetime.datetime.now(), + update_at=datetime.datetime.now(), + ) + insert_res = await bond_price_data.update_db_date() + if insert_res: + print(f'修改数据成功,影响行数是{insert_res}') + print('删除') + data_array = await BondPrices.select_by_where(id=3) + if data_array: + remove_res = await data_array[0].remove_db_date() + print(f'删除数据成功,影响行数是{remove_res}') + print('查询') + data_array = await BondPrices.select_by_where(id=3, page_name='报价行情', limit=1) + if data_array: + data_hashmap = dict(data_array[0]) + print(data_hashmap.get('verify_md5')) +if __name__ == '__main__': + # 异步工具使用方法示例 + demo_ins = Demo(TASK_NUMBER=1) + print('end') +``` + +%package help +Summary: Development documents and examples for SomeTools +Provides: python3-SomeTools-doc +%description help +一些方便日常使用的工具(Some handy tools for everyday use) +* 将输入的任何类型的日期字符串类型转化为datetime.datetime类型的日期对象 (* Convert any type of input date string type to a date object of type datetime.datetime) +* 移除一个字符串中的回车换行空格制表符等内容 (* Remove carriage returns, newlines, spaces, tabs, etc. from a string) +* 将中文字符转为其拼音的首字母 (* Convert Chinese characters to the first letter of their Pinyin) +* 更加方便的日志记录工具 (* More convenient logging tools) +* 繁体简体中文汉字转换工具 (* Traditional and Simplified Chinese character conversion tool) +* redis创建连接同步、异步工具 (* redis creates connection synchronous and asynchronous tools) +* 异步布隆过滤工具 (* Asynchronous Bloom Filter Tool) +* 正则表达式提取字符串中的中文内容工具 (* Regular expression extraction tool for Chinese content in strings) +* 异步 mysql orm (* async mysql orm) +* 检测 bytes 编码 (* Detect bytes encoding) +* 图片处理 (* Image processing) +* 查看操作系统信息 (* View operating system information) +* 获取本机ip地址 (* Get the local ip address) +## Installation (安装) +``` bash +$ pip install SomeTools -i https://pypi.python.org/simple +``` +## Getting Started (开始使用) +### 1.同步工具使用 (Sync tool usage) +``` pycon +from sometools import Common_tools +class Demo(Common_tools): + def __init__(self, *args, **kwargs): + # kwargs['log_file_rec'] = True + # kwargs['log_file_name'] = 'ConsumptionService' + super(Demo, self).__init__(*args, **kwargs) +if __name__ == '__main__': + demo_ins = Demo() + # 获取本机ip地址(get the local ip address) + local_ip_str = Demo.get_host_ip() + demo_ins.logger().info(f"local ip address: {local_ip_str}") + # 将输入的任何类型的日期字符串类型转化为datetime.datetime类型的日期对象(北京时间UTC+8)(Converts any type of date string type entered to a date object of type datetime.datetime)(beijing time UTC+8) + demo_ins.logger(uuid1='uuid1', uuid2='uuid2').info( + f"{demo_ins.str_to_obj('2012-12-12 12:12:12')}{type(demo_ins.str_to_obj('2012-12-12 12:12:12'))}") + demo_ins.logger().info( + f"{demo_ins.str_to_obj('11-May-2021 07:03 EDT')}{type(demo_ins.str_to_obj('11-May-2021 07:03 EDT'))}") + # 移除一个字符串中的回车换行空格制表符等内容(Remove carriage return, newline space tabs, etc., from a string) + temp_str = 'abc abc \n abc \r' + demo_ins.logger().info(f"before clean string{temp_str}") + temp_str = Demo.clean_string('abc abc \n abc \r') + demo_ins.logger().info(f"after clean string{temp_str}") + # 将中文字符转为其拼音的首字母(Convert Chinese characters to the first letter of their pinyin) + demo_ins.logger().info(f"{Demo.get_pinyin('中国外汇交易中心')}") + # 更加方便的日志记录工具(More convenient logging tool) + demo_ins.logger().info(f"{Demo.get_pinyin('中国外汇交易中心')}") + demo_ins.logger().debug(f"{Demo.get_pinyin('中国外汇交易中心')}") + demo_ins.logger().warning(f"{Demo.get_pinyin('中国外汇交易中心')}") + demo_ins.logger().error(f"{Demo.get_pinyin('中国外汇交易中心')}") + # 中文繁体简体互转(Convert between Traditional Chinese and Simplified Chinese) + demo_ins.logger().info(f"繁体转简体 眾議長與李克強會談->{Demo.traditional_chinese_to_simplified('眾議長與李克強會談')}") + demo_ins.logger().info(f"简体转繁体 众议长与李克强会谈->{Demo.simplified_chinese_to_traditional_chinese('众议长与李克强会谈')}") + # url编码解码(url encoding and decoding) + demo_ins.logger().info(f"url编码->{Demo.url_encode('https://www.baidu.com/s?wd=中国')}") + demo_ins.logger().info(f"url解码->{Demo.url_decode('https://www.baidu.com/s?wd=%E4%B8%AD%E5%9B%BD')}") + # 正则提取中文(Regularly extract Chinese) + temp_str = demo_ins.extract_one_chinese("""downloadPdf1('http://www.sse.com.cn/disclosure/bond/announcement/company/c/2021-03-22/4135530025747110334559080.pdf','厦门建发股份有限公司2021年面向专业投资者公开发行可续期公司债券(第一期)发行公告','2021-03-22','1015','pdf');""") + demo_ins.logger().info(f"正则提取单个中文 {temp_str}") + temp_str = demo_ins.extract_multi_chinese("""downloadPdf1('http://www.sse.com.cn/disclosure/bond/announcement/company/c/2021-03-22/4135530025747110334559080.pdf','厦门建发股份有限公司2021年面向专业投资者公开发行可续期公司债券(第一期)发行公告','2021-03-22','1015','pdf');""") + demo_ins.logger().info(f"正则提取多个中文 {temp_str}") + # 检测和转换编码方式(Detect and convert encoding methods) + _temp_content = b'\n\n\n\n \n \n \n \n \n \n \n \n \n \xe4\xb8\xad\xe5\x9b\xbd\xe9\x93\xb6\xe8\x81\x94\xe9\x93\xb6\xe8\xa1\x8c\xe5\x90\x88\xe4\xbd\x9c\xe9\x83\xa8\xe6\x80\xbb\xe7\xbb\x8f\xe7\x90\x86\xe5\x8d\x95\xe9\x95\xbf\xe8\x83\x9c\xef\xbc\x9a\xe8\xb7\xb5\xe8\xa1\x8c\xe2\x80\x9c\xe6\x94\xaf\xe4\xbb\x98\xe4\xb8\xba\xe6\xb0\x91\xe2\x80\x9d\xe7\x90\x86\xe5\xbf\xb5 \xe4\xb8\xad\xe5\x9b\xbd\xe9\x93\xb6\xe8\x81\x94\xe5\xb0\x86\xe6\x8e\xa2\xe7\xb4\xa2\xe6\x9b\xb4\xe5\xa4\x9a\xe7\xbb\xbf\xe8\x89\xb2\xe4\xbd\x8e\xe7\xa2\xb3\xe4\xba\xa7\xe5\x93\x81\xe5\x92\x8c\xe6\x9c\x8d\xe5\x8a\xa1-\xe6\x96\xb0\xe5\x8d\x8e\xe7\xbd\x91\n \n \n \n \n \n \n \n\t\n\t\n\n\n
\n\t
\n \t\n\t
\n
\n \n
\n\t
\n\t\t
\n\t\t
\n\t
\n
\xe6\x96\xb0\xe5\x8d\x8e\xe7\xbd\x91 > > \xe6\xad\xa3\xe6\x96\x87
2021 09/08 17:35:14
\xe6\x9d\xa5\xe6\xba\x90\xef\xbc\x9a\xe6\x96\xb0\xe5\x8d\x8e\xe7\xbd\x91\n \t

\xe4\xb8\xad\xe5\x9b\xbd\xe9\x93\xb6\xe8\x81\x94\xe9\x93\xb6\xe8\xa1\x8c\xe5\x90\x88\xe4\xbd\x9c\xe9\x83\xa8\xe6\x80\xbb\xe7\xbb\x8f\xe7\x90\x86\xe5\x8d\x95\xe9\x95\xbf\xe8\x83\x9c\xef\xbc\x9a\xe8\xb7\xb5\xe8\xa1\x8c\xe2\x80\x9c\xe6\x94\xaf\xe4\xbb\x98\xe4\xb8\xba\xe6\xb0\x91\xe2\x80\x9d\xe7\x90\x86\xe5\xbf\xb5 \xe4\xb8\xad\xe5\x9b\xbd\xe9\x93\xb6\xe8\x81\x94\xe5\xb0\x86\xe6\x8e\xa2\xe7\xb4\xa2\xe6\x9b\xb4\xe5\xa4\x9a\xe7\xbb\xbf\xe8\x89\xb2\xe4\xbd\x8e\xe7\xa2\xb3\xe4\xba\xa7\xe5\x93\x81\xe5\x92\x8c\xe6\x9c\x8d\xe5\x8a\xa1

\xe5\xad\x97\xe4\xbd\x93\xef\xbc\x9a\n \xe5\xb0\x8f \xe4\xb8\xad \xe5\xa4\xa7
\n
\n \n
\n
\n \n
\n
\n

\xe6\x96\xb0\xe5\x8d\x8e\xe7\xbd\x91\xe5\x8c\x97\xe4\xba\xac9\xe6\x9c\x888\xe6\x97\xa5\xe7\x94\xb5\xef\xbc\x88\xe7\x8e\x8b\xe9\x9b\xa8\xe9\xa6\xa8\xef\xbc\x89\xe4\xb8\xad\xe5\x9b\xbd\xe9\x93\xb6\xe8\x81\x94\xe9\x93\xb6\xe8\xa1\x8c\xe5\x90\x88\xe4\xbd\x9c\xe9\x83\xa8\xe6\x80\xbb\xe7\xbb\x8f\xe7\x90\x86\xe5\x8d\x95\xe9\x95\xbf\xe8\x83\x9c\xe6\x97\xa5\xe5\x89\x8d\xe6\x8e\xa5\xe5\x8f\x97\xe6\x96\xb0\xe5\x8d\x8e\xe7\xbd\x91\xe8\xae\xb0\xe8\x80\x85\xe4\xb8\x93\xe8\xae\xbf\xe6\x97\xb6\xe8\xa1\xa8\xe7\xa4\xba\xef\xbc\x8c\xe4\xb8\xad\xe5\x9b\xbd\xe9\x93\xb6\xe8\x81\x94\xe4\xb8\x80\xe7\x9b\xb4\xe4\xbb\xa5\xe6\x9d\xa5\xe9\x87\x8d\xe8\xa7\x86\xe6\x95\xb0\xe5\xad\x97\xe5\x8c\x96\xe5\x92\x8c\xe4\xbd\x8e\xe7\xa2\xb3\xe5\x8c\x96\xe5\x8f\x91\xe5\xb1\x95\xef\xbc\x8c\xe6\x9c\xaa\xe6\x9d\xa5\xe5\xb0\x86\xe5\x85\x85\xe5\x88\x86\xe5\x8f\x91\xe6\x8c\xa5\xe6\x94\xaf\xe4\xbb\x98\xe4\xba\xa7\xe5\x93\x81\xe5\xb9\xb3\xe5\x8f\xb0\xe5\x92\x8c\xe6\x9e\xa2\xe7\xba\xbd\xe4\xbd\x9c\xe7\x94\xa8\xef\xbc\x8c\xe6\x8c\x81\xe7\xbb\xad\xe8\x81\x94\xe5\x90\x88\xe5\x95\x86\xe4\xb8\x9a\xe9\x93\xb6\xe8\xa1\x8c\xe7\xad\x89\xe4\xba\xa7\xe4\xb8\x9a\xe5\x90\x84\xe6\x96\xb9\xe9\x99\x86\xe7\xbb\xad\xe6\x8e\xa8\xe5\x87\xba\xe5\x90\x84\xe9\x93\xb6\xe8\xa1\x8c\xe7\x9a\x84\xe7\xbb\xbf\xe8\x89\xb2\xe4\xbd\x8e\xe7\xa2\xb3\xe4\xb8\xbb\xe9\xa2\x98\xe5\x8d\xa1\xe4\xba\xa7\xe5\x93\x81\xef\xbc\x8c\xe7\xa0\x94\xe5\x8f\x91\xe6\x9b\xb4\xe5\xa4\x9a\xe6\x99\xae\xe6\x83\xa0\xe4\xbe\xbf\xe6\xb0\x91\xe7\x9a\x84\xe7\xbb\xbf\xe8\x89\xb2\xe9\x87\x91\xe8\x9e\x8d\xe6\x96\xb0\xe4\xba\xa7\xe5\x93\x81\xe3\x80\x81\xe6\x96\xb0\xe4\xb8\x9a\xe6\x80\x81\xe3\x80\x81\xe6\x96\xb0\xe6\xa8\xa1\xe5\xbc\x8f\xef\xbc\x8c\xe5\x8a\xa9\xe5\x8a\x9b\xe2\x80\x9c3060\xe2\x80\x9d\xe5\x8f\x8c\xe7\xa2\xb3\xe7\x9b\xae\xe6\xa0\x87\xe5\xa6\x82\xe6\x9c\x9f\xe5\xae\x9e\xe7\x8e\xb0\xe3\x80\x82

\n

\xe6\x8d\xae\xe6\x82\x89\xef\xbc\x8c\xe8\xbf\x91\xe6\x97\xa5\xe4\xb8\xad\xe5\x9b\xbd\xe9\x93\xb6\xe8\x81\x94\xe8\x81\x94\xe5\x90\x88\xe4\xb8\x8a\xe6\xb5\xb7\xe7\x8e\xaf\xe5\xa2\x83\xe8\x83\xbd\xe6\xba\x90\xe4\xba\xa4\xe6\x98\x93\xe6\x89\x80\xe3\x80\x81\xe5\x95\x86\xe4\xb8\x9a\xe9\x93\xb6\xe8\xa1\x8c\xef\xbc\x8c\xe5\x85\xb1\xe5\x90\x8c\xe5\x8f\x91\xe5\xb8\x83\xe9\x93\xb6\xe8\x81\x94\xe7\xbb\xbf\xe8\x89\xb2\xe4\xbd\x8e\xe7\xa2\xb3\xe4\xb8\xbb\xe9\xa2\x98\xe5\x8d\xa1\xe4\xba\xa7\xe5\x93\x81\xe3\x80\x82\xe7\xbb\xbf\xe8\x89\xb2\xe4\xbd\x8e\xe7\xa2\xb3\xe4\xb8\xbb\xe9\xa2\x98\xe9\x93\xb6\xe8\xa1\x8c\xe5\x8d\xa1\xe5\x8c\x85\xe5\x90\xab\xe4\xbc\x81\xe4\xb8\x9a\xe7\x89\x88\xe5\x8f\x8a\xe4\xb8\xaa\xe4\xba\xba\xe7\x89\x88\xe4\xb8\xa4\xe5\xa5\x97\xe5\x8d\xa1\xe4\xba\xa7\xe5\x93\x81\xe4\xbd\x93\xe7\xb3\xbb\xef\xbc\x8c\xe4\xbb\xa5\xe9\x93\xb6\xe8\x81\x94\xe4\xba\xa4\xe6\x98\x93\xe7\xb3\xbb\xe7\xbb\x9f\xe4\xb8\xad\xe4\xbc\x81\xe4\xb8\x9a\xe5\x92\x8c\xe4\xb8\xaa\xe4\xba\xba\xe4\xba\xa4\xe6\x98\x93\xe8\xa1\x8c\xe4\xb8\xba\xe6\x95\xb0\xe6\x8d\xae\xe4\xb8\xba\xe8\xae\xa1\xe7\xae\x97\xe5\x9f\xba\xe7\xa1\x80\xef\xbc\x8c\xe6\x9e\x84\xe5\xbb\xba\xe9\x93\xb6\xe8\x81\x94\xe7\xbb\xbf\xe8\x89\xb2\xe4\xbd\x8e\xe7\xa2\xb3\xe7\xa7\xaf\xe5\x88\x86\xe4\xbd\x93\xe7\xb3\xbb\xef\xbc\x8c\xe4\xb8\x80\xe6\x96\xb9\xe9\x9d\xa2\xe5\x8a\xa9\xe5\x8a\x9b\xe4\xbc\x81\xe4\xb8\x9a\xe7\xa2\xb3\xe4\xb8\xad\xe5\x92\x8c\xe8\xbd\xac\xe5\x9e\x8b\xef\xbc\x9b\xe5\x8f\xa6\xe4\xb8\x80\xe6\x96\xb9\xe9\x9d\xa2\xe6\xa0\xb9\xe6\x8d\xae\xe7\x94\xa8\xe6\x88\xb7\xe7\xbb\xbf\xe8\x89\xb2\xe6\xb6\x88\xe8\xb4\xb9\xe8\xa1\x8c\xe4\xb8\xba\xe8\xb4\xa1\xe7\x8c\xae\xe6\x9e\x84\xe5\xbb\xba\xe9\x93\xb6\xe8\x81\x94\xe7\xbb\xbf\xe8\x89\xb2\xe4\xbd\x8e\xe7\xa2\xb3\xe5\x8d\xa1\xe5\x8a\xa8\xe6\x80\x81\xe6\x9d\x83\xe7\x9b\x8a\xe4\xbd\x93\xe7\xb3\xbb\xef\xbc\x8c\xe5\x90\x91\xe4\xbc\x81\xe4\xb8\x9a\xe5\x92\x8c\xe7\xa4\xbe\xe4\xbc\x9a\xe5\xa4\xa7\xe4\xbc\x97\xe4\xbc\xa0\xe6\x92\xad\xe7\xa2\xb3\xe4\xb8\xad\xe5\x92\x8c\xe6\xa6\x82\xe5\xbf\xb5\xe3\x80\x82

\n

\xe8\xb7\xb5\xe8\xa1\x8c\xe2\x80\x9c\xe6\x94\xaf\xe4\xbb\x98\xe4\xb8\xba\xe6\xb0\x91\xe2\x80\x9d \xe6\x8e\xa8\xe7\xbb\xbf\xe8\x89\xb2\xe4\xbd\x8e\xe7\xa2\xb3\xe4\xb8\xbb\xe9\xa2\x98\xe9\x93\xb6\xe8\xa1\x8c\xe5\x8d\xa1

\n

\xe6\x96\xb0\xe5\x8d\x8e\xe7\xbd\x91\xef\xbc\x9a\xe4\xb8\xad\xe5\x9b\xbd\xe9\x93\xb6\xe8\x81\x94\xe4\xba\x8e\xe8\xbf\x91\xe6\x97\xa5\xe5\x8f\x91\xe5\xb8\x83\xe7\xbb\xbf\xe8\x89\xb2\xe4\xbd\x8e\xe7\xa2\xb3\xe4\xb8\xbb\xe9\xa2\x98\xe9\x93\xb6\xe8\xa1\x8c\xe5\x8d\xa1\xe7\x9a\x84\xe5\x88\x9d\xe5\xbf\x83\xe6\x98\xaf\xe4\xbb\x80\xe4\xb9\x88\xef\xbc\x9f\xe6\x83\xb3\xe5\x80\x9f\xe6\xad\xa4\xe4\xbc\xa0\xe6\x92\xad\xe4\xbb\x80\xe4\xb9\x88\xe6\xa0\xb7\xe7\x9a\x84\xe7\x90\x86\xe5\xbf\xb5\xef\xbc\x9f

\n

\xe5\x8d\x95\xe9\x95\xbf\xe8\x83\x9c\xef\xbc\x9a\xe4\xb8\xad\xe5\x9b\xbd\xe9\x93\xb6\xe8\x81\x94\xe4\xb8\x80\xe7\x9b\xb4\xe4\xbb\xa5\xe6\x9d\xa5\xe9\x87\x8d\xe8\xa7\x86\xe6\x95\xb0\xe5\xad\x97\xe5\x8c\x96\xe5\x92\x8c\xe4\xbd\x8e\xe7\xa2\xb3\xe5\x8c\x96\xe5\x8f\x91\xe5\xb1\x95\xef\xbc\x8c\xe8\x87\xaa\xe5\xae\x9e\xe7\x8e\xb0\xe7\xa2\xb3\xe8\xbe\xbe\xe5\xb3\xb0\xe7\xa2\xb3\xe4\xb8\xad\xe5\x92\x8c\xe7\x9b\xae\xe6\xa0\x87\xe6\x8f\x90\xe5\x87\xba\xe4\xbb\xa5\xe6\x9d\xa5\xef\xbc\x8c\xe9\x93\xb6\xe8\x81\x94\xe4\xb8\x80\xe7\x9b\xb4\xe5\x9c\xa8\xe6\x80\x9d\xe8\x80\x83\xe5\xa6\x82\xe4\xbd\x95\xe7\xbb\x93\xe5\x90\x88\xe8\x87\xaa\xe8\xba\xab\xe4\xb8\x9a\xe5\x8a\xa1\xe5\x8f\x91\xe5\xb1\x95\xef\xbc\x8c\xe7\xa7\xaf\xe6\x9e\x81\xe5\x93\x8d\xe5\xba\x94\xe7\xa2\xb3\xe8\xbe\xbe\xe5\xb3\xb0\xe7\xa2\xb3\xe4\xb8\xad\xe5\x92\x8c\xe7\x9b\xae\xe6\xa0\x87\xe4\xbb\xa5\xe5\x8f\x8a\xe7\xbb\xbf\xe8\x89\xb2\xe9\x87\x91\xe8\x9e\x8d\xe5\x8f\x91\xe5\xb1\x95\xe8\xa6\x81\xe6\xb1\x82\xe3\x80\x82\xe4\xb8\xad\xe5\x9b\xbd\xe9\x93\xb6\xe8\x81\x94\xe4\xbd\x9c\xe4\xb8\xba\xe9\x93\xb6\xe8\xa1\x8c\xe5\x8d\xa1\xe8\xbd\xac\xe6\x8e\xa5\xe6\xb8\x85\xe7\xae\x97\xe6\x9c\xba\xe6\x9e\x84\xef\xbc\x8c\xe4\xb8\x8e\xe5\x95\x86\xe4\xb8\x9a\xe9\x93\xb6\xe8\xa1\x8c\xe3\x80\x81\xe5\x95\x86\xe6\x88\xb7\xe3\x80\x81\xe7\x94\xa8\xe6\x88\xb7\xe6\x9c\x89\xe7\x9d\x80\xe5\xa4\xa9\xe7\x84\xb6\xe7\x9a\x84\xe7\xb4\xa7\xe5\xaf\x86\xe8\x81\x94\xe7\xb3\xbb\xef\xbc\x8c\xe6\x89\x80\xe4\xbb\xa5\xe5\x9c\xa8\xe5\xae\x9e\xe7\x8e\xb0\xe2\x80\x9c\xe5\x8f\x8c\xe7\xa2\xb3\xe2\x80\x9d\xe7\x9b\xae\xe6\xa0\x87\xe4\xbd\x9c\xe4\xb8\xba\xe9\x87\x8d\xe8\xa6\x81\xe6\x88\x98\xe7\x95\xa5\xe5\x86\xb3\xe7\xad\x96\xe8\xa2\xab\xe6\x8f\x90\xe5\x87\xba\xe6\x97\xb6\xef\xbc\x8c\xe4\xb8\xad\xe5\x9b\xbd\xe9\x93\xb6\xe8\x81\x94\xe5\xb0\xb1\xe2\x80\x9c\xe6\x94\xaf\xe4\xbb\x98\xe4\xb8\xba\xe6\xb0\x91\xe2\x80\x9d\xe7\x9a\x84\xe7\x90\x86\xe5\xbf\xb5\xef\xbc\x8c\xe5\xb8\x8c\xe6\x9c\x9b\xe6\x8e\xa8\xe5\x87\xba\xe7\xbb\xbf\xe8\x89\xb2\xe4\xbd\x8e\xe7\xa2\xb3\xe7\x9b\xb8\xe5\x85\xb3\xe9\x93\xb6\xe8\xa1\x8c\xe5\x8d\xa1\xe4\xba\xa7\xe5\x93\x81\xef\xbc\x8c\xe4\xbb\xa5\xe9\x93\xb6\xe8\xa1\x8c\xe5\x8d\xa1\xe4\xb8\xba\xe7\xba\xbd\xe5\xb8\xa6\xef\xbc\x8c\xe5\x90\x91\xe4\xbc\x81\xe4\xb8\x9a\xe5\x92\x8c\xe4\xb8\xaa\xe4\xba\xba\xe6\x8e\xa8\xe5\xb9\xbf\xe6\x99\xae\xe5\x8f\x8a\xe7\xbb\xbf\xe8\x89\xb2\xe4\xbd\x8e\xe7\xa2\xb3\xe7\x90\x86\xe5\xbf\xb5\xef\xbc\x8c\xe5\xbc\x95\xe5\xaf\xbc\xe4\xbc\x81\xe4\xb8\x9a\xe5\x92\x8c\xe4\xb8\xaa\xe4\xba\xba\xe8\x8a\x82\xe8\x83\xbd\xe5\x87\x8f\xe6\x8e\x92\xef\xbc\x8c\xe5\x8a\xa9\xe5\x8a\x9b\xe7\xa2\xb3\xe8\xbe\xbe\xe5\xb3\xb0\xe7\xa2\xb3\xe4\xb8\xad\xe5\x92\x8c\xe7\x9b\xae\xe6\xa0\x87\xe5\xa6\x82\xe6\x9c\x9f\xe5\xae\x9e\xe7\x8e\xb0\xe3\x80\x82

\n

\xe6\x96\xb0\xe5\x8d\x8e\xe7\xbd\x91\xef\xbc\x9a\xe9\x93\xb6\xe8\x81\x94\xe6\xad\xa4\xe6\xac\xa1\xe5\x8f\x91\xe8\xa1\x8c\xe7\xbb\xbf\xe8\x89\xb2\xe4\xbd\x8e\xe7\xa2\xb3\xe4\xb8\xbb\xe9\xa2\x98\xe9\x93\xb6\xe8\xa1\x8c\xe5\x8d\xa1\xe7\x9a\x84\xe5\x8f\x97\xe4\xbc\x97\xe6\x9c\x89\xe5\x93\xaa\xe4\xba\x9b\xef\xbc\x9f\xe6\x94\xaf\xe6\x8c\x81\xe5\x93\xaa\xe4\xba\x9b\xe7\xbb\xbf\xe8\x89\xb2\xe6\xb6\x88\xe8\xb4\xb9\xe8\xa1\x8c\xe4\xb8\xba\xef\xbc\x9f

\n

\xe5\x8d\x95\xe9\x95\xbf\xe8\x83\x9c\xef\xbc\x9a\xe2\x80\x9c\xe5\x8f\x8c\xe7\xa2\xb3\xe2\x80\x9d\xe7\x9b\xae\xe6\xa0\x87\xe7\x9a\x84\xe5\xae\x9e\xe7\x8e\xb0\xef\xbc\x8c\xe9\x9c\x80\xe8\xa6\x81\xe4\xbc\x81\xe4\xb8\x9a\xe5\x92\x8c\xe4\xb8\xaa\xe4\xba\xba\xe7\x9a\x84\xe5\x85\xb1\xe5\x90\x8c\xe5\x8a\xaa\xe5\x8a\x9b\xe3\x80\x82\xe5\x9c\xa8\xe5\x89\x8d\xe6\x9c\x9f\xe7\x9a\x84\xe5\xb8\x82\xe5\x9c\xba\xe8\xb0\x83\xe7\xa0\x94\xe8\xbf\x87\xe7\xa8\x8b\xe4\xb8\xad\xef\xbc\x8c\xe6\x88\x91\xe4\xbb\xac\xe4\xba\x86\xe8\xa7\xa3\xe5\x88\xb0\xe4\xbc\x81\xe4\xb8\x9a\xe5\x92\x8c\xe4\xb8\xaa\xe4\xba\xba\xe9\x83\xbd\xe5\xad\x98\xe5\x9c\xa8\xe7\x9b\xb8\xe5\xba\x94\xe7\x9a\x84\xe7\xbb\xbf\xe8\x89\xb2\xe4\xbd\x8e\xe7\xa2\xb3\xe7\x94\x9f\xe4\xba\xa7\xe5\x92\x8c\xe7\x94\x9f\xe6\xb4\xbb\xe9\x9c\x80\xe6\xb1\x82\xef\xbc\x8c\xe6\x89\x80\xe4\xbb\xa5\xe9\x93\xb6\xe8\x81\x94\xe7\xbb\xbf\xe8\x89\xb2\xe4\xbd\x8e\xe7\xa2\xb3\xe4\xb8\xbb\xe9\xa2\x98\xe5\x8d\xa1\xe5\x9c\xa8\xe4\xba\xa7\xe5\x93\x81\xe7\xa0\x94\xe5\x8f\x91\xe9\x98\xb6\xe6\xae\xb5\xe5\xb0\xb1\xe8\xae\xbe\xe8\xae\xa1\xe4\xba\x86\xe7\xbb\xbf\xe8\x89\xb2\xe4\xbd\x8e\xe7\xa2\xb3\xe5\xaf\xb9\xe5\x85\xac\xe4\xba\xa7\xe5\x93\x81\xe5\x92\x8c\xe7\xbb\xbf\xe8\x89\xb2\xe4\xbd\x8e\xe7\xa2\xb3\xe4\xb8\xaa\xe4\xba\xba\xe4\xba\xa7\xe5\x93\x81\xef\xbc\x8c\xe5\xb8\x8c\xe6\x9c\x9b\xe6\x8e\xa8\xe5\x8a\xa8\xe6\x9b\xb4\xe5\xa4\x9a\xe7\x9a\x84\xe4\xbc\x81\xe4\xb8\x9a\xe5\x92\x8c\xe4\xb8\xaa\xe4\xba\xba\xe8\x83\xbd\xe5\xa4\x9f\xe5\x8f\x82\xe4\xb8\x8e\xe5\x88\xb0\xe6\x88\x91\xe4\xbb\xac\xe7\x9a\x84\xe7\xbb\xbf\xe8\x89\xb2\xe4\xbd\x8e\xe7\xa2\xb3\xe8\xa1\x8c\xe5\x8a\xa8\xe4\xb8\xad\xe3\x80\x82\xe5\x85\xb6\xe4\xb8\xad\xe5\xaf\xb9\xe5\x85\xac\xe4\xba\xa7\xe5\x93\x81\xe9\x9d\xa2\xe5\x90\x91\xe5\xa4\xa7\xe4\xb8\xad\xe5\x9e\x8b\xe4\xbc\x81\xe4\xb8\x9a\xe3\x80\x81\xe5\xb0\x8f\xe5\xbe\xae\xe4\xbc\x81\xe4\xb8\x9a\xe3\x80\x81\xe4\xb9\xa1\xe9\x95\x87\xe4\xbc\x81\xe4\xb8\x9a\xe7\xad\x89\xe5\x90\x84\xe7\xb1\xbb\xe5\x9e\x8b\xe5\x85\xb7\xe6\x9c\x89\xe7\xbb\xbf\xe8\x89\xb2\xe5\x8f\x91\xe5\xb1\x95\xe9\x9c\x80\xe6\xb1\x82\xe7\x9a\x84\xe4\xbc\x81\xe4\xb8\x9a\xef\xbc\x8c\xe4\xb8\xaa\xe4\xba\xba\xe4\xba\xa7\xe5\x93\x81\xe9\x9d\xa2\xe5\x90\x91\xe4\xbb\xa5\xe5\xb9\xb4\xe8\xbd\xbb\xe5\xae\xa2\xe7\xbe\xa4\xe3\x80\x81\xe6\x96\xb0\xe8\x83\xbd\xe6\xba\x90\xe6\xb1\xbd\xe8\xbd\xa6\xe8\xbd\xa6\xe4\xb8\xbb\xe7\xad\x89\xe4\xb8\xba\xe4\xbb\xa3\xe8\xa1\xa8\xe7\x9a\x84\xe5\xaf\xb9\xe7\x8e\xaf\xe4\xbf\x9d\xe7\x90\x86\xe5\xbf\xb5\xe8\xae\xa4\xe7\x9f\xa5\xe5\xba\xa6\xe8\xbe\x83\xe9\xab\x98\xe7\x9a\x84\xe5\xa4\xa7\xe4\xbc\x97\xe5\xae\xa2\xe7\xbe\xa4\xe3\x80\x82

\n

\xe7\x8e\xb0\xe9\x98\xb6\xe6\xae\xb5\xef\xbc\x8c\xe6\x88\x91\xe4\xbb\xac\xe8\x81\x94\xe5\x90\x88\xe5\x95\x86\xe4\xb8\x9a\xe9\x93\xb6\xe8\xa1\x8c\xef\xbc\x8c\xe4\xb8\x80\xe6\x96\xb9\xe9\x9d\xa2\xef\xbc\x8c\xe9\x80\x9a\xe8\xbf\x87\xe5\x8f\x91\xe8\xa1\x8c\xe8\x99\x9a\xe6\x8b\x9f\xe5\x8d\xa1\xe6\x88\x96\xe7\x8e\xaf\xe4\xbf\x9d\xe6\x9d\x90\xe8\xb4\xa8\xe7\x9a\x84\xe5\x8d\xa1\xe7\x89\x87\xe3\x80\x81\xe5\x90\x91\xe6\x8c\x81\xe5\x8d\xa1\xe4\xba\xba\xe6\x8f\x90\xe4\xbe\x9b\xe7\x94\xb5\xe5\xad\x90\xe8\xb4\xa6\xe5\x8d\x95\xe7\xad\x89\xe6\x96\xb9\xe5\xbc\x8f\xef\xbc\x8c\xe4\xbb\x8e\xe4\xba\xa7\xe5\x93\x81\xe6\x9c\xac\xe8\xba\xab\xe5\xb0\xbd\xe5\x8f\xaf\xe8\x83\xbd\xe5\x87\x8f\xe5\xb0\x91\xe7\xa2\xb3\xe6\x8e\x92\xe6\x94\xbe\xe3\x80\x82\xe5\x8f\xa6\xe4\xb8\x80\xe6\x96\xb9\xe9\x9d\xa2\xef\xbc\x8c\xe4\xbe\x9d\xe6\x89\x98\xe9\x93\xb6\xe8\x81\x94\xe4\xba\xa4\xe6\x98\x93\xe7\xb3\xbb\xe7\xbb\x9f\xe6\x95\xb0\xe6\x8d\xae\xef\xbc\x8c\xe6\x88\x91\xe4\xbb\xac\xe6\x9e\x84\xe5\xbb\xba\xe4\xba\x86\xe7\xbb\xbf\xe8\x89\xb2\xe4\xbd\x8e\xe7\xa2\xb3\xe7\xa7\xaf\xe5\x88\x86\xe4\xbd\x93\xe7\xb3\xbb\xef\xbc\x8c\xe6\x94\xaf\xe6\x8c\x81\xe4\xb8\xaa\xe4\xba\xba\xe5\x9c\xa8\xe5\x85\xac\xe4\xba\xa4\xe5\x87\xba\xe8\xa1\x8c\xe3\x80\x81\xe5\x9c\xb0\xe9\x93\x81\xe5\x87\xba\xe8\xa1\x8c\xe3\x80\x81\xe5\x85\xb1\xe4\xba\xab\xe5\x8d\x95\xe8\xbd\xa6\xe9\xaa\x91\xe8\xa1\x8c\xe3\x80\x81\xe4\xba\x91\xe9\x97\xaa\xe4\xbb\x98\xe5\x85\xac\xe7\xbc\xb4\xe3\x80\x81\xe6\x96\xb0\xe8\x83\xbd\xe6\xba\x90\xe8\xbd\xa6\xe5\x85\x85\xe7\x94\xb5\xe3\x80\x81\xe9\xab\x98\xe9\x93\x81\xe5\x8a\xa8\xe8\xbd\xa6\xe5\x87\xba\xe8\xa1\x8c\xe7\xad\x89\xe5\x85\xad\xe5\xa4\xa7\xe4\xbd\x8e\xe7\xa2\xb3\xe5\x9c\xba\xe6\x99\xaf\xe9\x80\x9a\xe8\xbf\x87\xe7\xbb\xbf\xe8\x89\xb2\xe4\xbd\x8e\xe7\xa2\xb3\xe4\xb8\xbb\xe9\xa2\x98\xe5\x8d\xa1\xe6\xb6\x88\xe8\xb4\xb9\xe7\xb4\xaf\xe8\xae\xa1\xe7\xbb\xbf\xe8\x89\xb2\xe4\xbd\x8e\xe7\xa2\xb3\xe7\xa7\xaf\xe5\x88\x86\xe3\x80\x82\xe5\x90\x8e\xe7\xbb\xad\xef\xbc\x8c\xe6\x88\x91\xe4\xbb\xac\xe5\xb0\x86\xe8\x81\x94\xe5\x90\x88\xe5\x95\x86\xe4\xb8\x9a\xe9\x93\xb6\xe8\xa1\x8c\xef\xbc\x8c\xe7\xba\xb3\xe5\x85\xa5\xe6\x9b\xb4\xe5\xa4\x9a\xe7\xbb\xbf\xe8\x89\xb2\xe6\xb6\x88\xe8\xb4\xb9\xe5\x9c\xba\xe6\x99\xaf\xef\xbc\x8c\xe4\xbb\x8e\xe6\x8c\x81\xe5\x8d\xa1\xe4\xba\xba\xe7\x9a\x84\xe8\xa1\xa3\xe9\xa3\x9f\xe4\xbd\x8f\xe8\xa1\x8c\xe7\x94\xa8\xe5\x90\x84\xe6\x96\xb9\xe9\x9d\xa2\xe5\x80\xa1\xe5\xaf\xbc\xe5\x92\x8c\xe9\xbc\x93\xe5\x8a\xb1\xe7\xbb\xbf\xe8\x89\xb2\xe6\xb6\x88\xe8\xb4\xb9\xe8\xa1\x8c\xe4\xb8\xba\xe3\x80\x82

\n

\xe2\x80\x9c\xe8\x87\xaa\xe8\xba\xab+\xe7\x94\x9f\xe6\x80\x81\xe5\x9c\x88\xe2\x80\x9d\xe5\x8f\x8c\xe5\x8a\xa0\xe7\xa0\x81\xef\xbc\x8c\xe5\x85\xb1\xe4\xbf\x83\xe7\xa2\xb3\xe5\x87\x8f\xe6\x8e\x92 \xe5\x8a\xa9\xe5\x8a\x9b\xe2\x80\x9c\xe5\x8f\x8c\xe7\xa2\xb3\xe2\x80\x9d\xe7\x9b\xae\xe6\xa0\x87\xe5\xae\x9e\xe7\x8e\xb0

\n

\xe6\x96\xb0\xe5\x8d\x8e\xe7\xbd\x91\xef\xbc\x9a\xe5\x9c\xa8\xe5\xbd\x93\xe5\x89\x8d\xe7\xa2\xb3\xe8\xbe\xbe\xe5\xb3\xb0\xe7\xa2\xb3\xe4\xb8\xad\xe5\x92\x8c\xe5\x8f\x91\xe5\xb1\x95\xe7\x9b\xae\xe6\xa0\x87\xe7\x9a\x84\xe5\xbc\x95\xe9\xa2\x86\xe4\xb8\x8b\xef\xbc\x8c\xe9\x93\xb6\xe8\x81\x94\xe5\xa6\x82\xe4\xbd\x95\xe5\x8a\xa9\xe5\x8a\x9b\xe2\x80\x9c3060\xe2\x80\x9d\xe5\x8f\x8c\xe7\xa2\xb3\xe7\x9b\xae\xe6\xa0\x87\xe7\x9a\x84\xe5\xae\x9e\xe7\x8e\xb0\xef\xbc\x9f

\n

\xe5\x8d\x95\xe9\x95\xbf\xe8\x83\x9c\xef\xbc\x9a\xe4\xbd\x9c\xe4\xb8\xba\xe4\xb8\x80\xe5\xae\xb6\xe8\xb4\x9f\xe8\xb4\xa3\xe4\xbb\xbb\xe7\x9a\x84\xe5\x9b\xbd\xe6\x9c\x89\xe4\xbc\x81\xe4\xb8\x9a\xef\xbc\x8c\xe4\xb8\xad\xe5\x9b\xbd\xe9\x93\xb6\xe8\x81\x94\xe5\xb0\x86\xe4\xbb\x8e\xe6\x8e\xa8\xe8\xbf\x9b\xe8\x87\xaa\xe8\xba\xab\xe7\xa2\xb3\xe5\x87\x8f\xe6\x8e\x92\xe5\x92\x8c\xe5\xb8\xa6\xe5\x8a\xa8\xe9\x93\xb6\xe8\x81\x94\xe7\x94\x9f\xe6\x80\x81\xe5\x9c\x88\xe5\x85\xb1\xe5\x90\x8c\xe7\xa2\xb3\xe5\x87\x8f\xe6\x8e\x92\xef\xbc\x8c\xe5\x8a\xa9\xe5\x8a\x9b\xe2\x80\x9c\xe5\x8f\x8c\xe7\xa2\xb3\xe2\x80\x9d\xe7\x9b\xae\xe6\xa0\x87\xe5\xae\x9e\xe7\x8e\xb0\xe3\x80\x82\xe4\xb8\x80\xe6\x96\xb9\xe9\x9d\xa2\xef\xbc\x8c\xe6\x88\x91\xe4\xbb\xac\xe5\xb0\x86\xe4\xbb\x8e\xe8\x87\xaa\xe8\xba\xab\xe7\x9a\x84\xe7\xbb\x8f\xe8\x90\xa5\xe6\xb4\xbb\xe5\x8a\xa8\xe3\x80\x81\xe5\x9b\xad\xe5\x8c\xba\xe5\xbb\xba\xe8\xae\xbe\xe3\x80\x81\xe5\x91\x98\xe5\xb7\xa5\xe8\xa1\x8c\xe4\xb8\xba\xe5\xbc\x95\xe5\xaf\xbc\xe7\xad\x89\xe6\x96\xb9\xe9\x9d\xa2\xe5\x85\xa8\xe9\x9d\xa2\xe5\x87\x8f\xe5\xb0\x91\xe7\xa2\xb3\xe6\x8e\x92\xe6\x94\xbe\xef\xbc\x8c\xe5\x8a\x9b\xe4\xba\x89\xe6\x97\xa9\xe6\x97\xa5\xe5\xae\x9e\xe7\x8e\xb0\xe7\xa2\xb3\xe4\xb8\xad\xe5\x92\x8c\xe3\x80\x82\xe5\x8f\xa6\xe4\xb8\x80\xe6\x96\xb9\xe9\x9d\xa2\xef\xbc\x8c\xe6\x88\x91\xe4\xbb\xac\xe5\xb0\x86\xe5\xb8\xa6\xe5\x8a\xa8\xe5\x90\x84\xe6\x88\x90\xe5\x91\x98\xe6\x9c\xba\xe6\x9e\x84\xef\xbc\x8c\xe7\xa7\xaf\xe6\x9e\x81\xe8\xb7\xb5\xe8\xa1\x8c\xe7\xa2\xb3\xe4\xb8\xad\xe5\x92\x8c\xe8\xa6\x81\xe6\xb1\x82\xef\xbc\x8c\xe6\x8e\xa8\xe5\x87\xba\xe6\x9b\xb4\xe5\xa4\x9a\xe7\xbb\xbf\xe8\x89\xb2\xe9\x87\x91\xe8\x9e\x8d\xe4\xba\xa7\xe5\x93\x81\xe5\x92\x8c\xe6\x9c\x8d\xe5\x8a\xa1\xef\xbc\x8c\xe6\x94\xaf\xe6\x8c\x81\xe4\xbc\x81\xe4\xb8\x9a\xe5\x92\x8c\xe4\xb8\xaa\xe4\xba\xba\xe7\xbb\xbf\xe8\x89\xb2\xe4\xbd\x8e\xe7\xa2\xb3\xe5\x8f\x91\xe5\xb1\x95\xe8\xaf\x89\xe6\xb1\x82\xef\xbc\x8c\xe5\xb9\xb6\xe8\x81\x94\xe5\x90\x88\xe5\x90\x84\xe6\x88\x90\xe5\x91\x98\xe6\x9c\xba\xe6\x9e\x84\xef\xbc\x8c\xe5\x80\x9f\xe5\x8a\xa9\xe9\x93\xb6\xe8\x81\x94\xe5\x8d\xa1\xe7\x9a\x84\xe5\x8f\x91\xe8\xa1\x8c\xef\xbc\x8c\xe4\xbc\xa0\xe6\x92\xad\xe7\xa2\xb3\xe4\xb8\xad\xe5\x92\x8c\xe7\x90\x86\xe5\xbf\xb5\xef\xbc\x8c\xe5\x8a\xa9\xe5\x8a\x9b\xe4\xbc\x81\xe4\xb8\x9a\xe7\xbb\xbf\xe8\x89\xb2\xe4\xbd\x8e\xe7\xa2\xb3\xe5\x8f\x91\xe5\xb1\x95\xef\xbc\x8c\xe5\x80\xa1\xe5\xaf\xbc\xe4\xb8\xaa\xe4\xba\xba\xe7\xbb\xbf\xe8\x89\xb2\xe4\xbd\x8e\xe7\xa2\xb3\xe7\x94\x9f\xe6\xb4\xbb\xe3\x80\x82

\n

\xe6\x9c\xaa\xe6\x9d\xa5\xe5\xb0\x86\xe6\x95\xb4\xe5\x90\x88\xe4\xbc\x98\xe5\x8a\xbf\xe8\xb5\x84\xe6\xba\x90 \xe6\x8e\xa2\xe7\xb4\xa2\xe6\x9b\xb4\xe5\xa4\x9a\xe7\xbb\xbf\xe8\x89\xb2\xe4\xbd\x8e\xe7\xa2\xb3\xe4\xba\xa7\xe5\x93\x81\xe5\x92\x8c\xe6\x9c\x8d\xe5\x8a\xa1

\n

\xe6\x96\xb0\xe5\x8d\x8e\xe7\xbd\x91\xef\xbc\x9a\xe6\x82\xa8\xe8\xae\xa4\xe4\xb8\xba\xef\xbc\x8c\xe9\x87\x91\xe8\x9e\x8d\xe8\xa1\x8c\xe4\xb8\x9a\xe5\x9c\xa8\xe5\x8f\x8c\xe7\xa2\xb3\xe7\x9a\x84\xe8\x83\x8c\xe6\x99\xaf\xe4\xb8\x8b\xe9\x9d\xa2\xe4\xb8\xb4\xe7\x9d\x80\xe5\x93\xaa\xe4\xba\x9b\xe5\x8f\x91\xe5\xb1\x95\xe6\x9c\xba\xe9\x81\x87\xe4\xbb\xa5\xe5\x8f\x8a\xe6\x8c\x91\xe6\x88\x98\xef\xbc\x9f

\n

\xe5\x8d\x95\xe9\x95\xbf\xe8\x83\x9c\xef\xbc\x9a\xe2\x80\x9c\xe5\x8f\x8c\xe7\xa2\xb3\xe2\x80\x9d\xe7\x9b\xae\xe6\xa0\x87\xe7\x9a\x84\xe6\x8f\x90\xe5\x87\xba\xe5\xb0\x86\xe6\x98\xaf\xe7\xa4\xbe\xe4\xbc\x9a\xe7\x94\x9f\xe4\xba\xa7\xe8\xa6\x81\xe7\xb4\xa0\xe8\xb5\x84\xe6\xba\x90\xe9\x85\x8d\xe7\xbd\xae\xe5\x92\x8c\xe7\x94\x9f\xe6\xb4\xbb\xe6\x96\xb9\xe5\xbc\x8f\xe8\xb0\x83\xe6\x95\xb4\xe7\x9a\x84\xe4\xb8\x80\xe6\xac\xa1\xe5\xb7\xa8\xe5\xa4\xa7\xe5\x8f\x98\xe9\x9d\xa9\xef\xbc\x8c\xe5\x90\x84\xe7\xb1\xbb\xe5\x9e\x8b\xe4\xbc\x81\xe4\xb8\x9a\xe9\x83\xbd\xe9\x9d\xa2\xe4\xb8\xb4\xe7\xbb\xbf\xe8\x89\xb2\xe4\xbd\x8e\xe7\xa2\xb3\xe5\x8f\x91\xe5\xb1\x95\xe7\x9a\x84\xe8\xa6\x81\xe6\xb1\x82\xe3\x80\x82\xe4\xbc\x81\xe4\xb8\x9a\xe7\x9a\x84\xe7\xbb\xbf\xe8\x89\xb2\xe4\xbd\x8e\xe7\xa2\xb3\xe8\xbd\xac\xe5\x9e\x8b\xe6\xb6\x89\xe5\x8f\x8a\xe8\x9e\x8d\xe8\xb5\x84\xe8\xb4\xb7\xe6\xac\xbe\xe3\x80\x81\xe6\x94\xaf\xe4\xbb\x98\xe7\xbb\x93\xe7\xae\x97\xe3\x80\x81\xe4\xbf\x9d\xe9\x99\xa9\xe7\xad\x89\xe5\x90\x84\xe7\xb1\xbb\xe9\x87\x91\xe8\x9e\x8d\xe9\x9c\x80\xe6\xb1\x82\xef\xbc\x8c\xe9\x87\x91\xe8\x9e\x8d\xe8\xa1\x8c\xe4\xb8\x9a\xe5\xb0\x86\xe5\x9c\xa8\xe5\x85\xb6\xe4\xb8\xad\xe5\x8f\x91\xe6\x8c\xa5\xe4\xb8\xbe\xe8\xb6\xb3\xe8\xbd\xbb\xe9\x87\x8d\xe7\x9a\x84\xe4\xbd\x9c\xe7\x94\xa8\xef\xbc\x8c\xe6\x8b\xa5\xe6\x9c\x89\xe5\xb9\xbf\xe9\x98\x94\xe7\x9a\x84\xe5\x8f\x91\xe5\xb1\x95\xe7\xa9\xba\xe9\x97\xb4\xe5\x92\x8c\xe6\x9c\xba\xe4\xbc\x9a\xe3\x80\x82

\n

\xe6\x88\x91\xe4\xbb\xac\xe7\x9b\xb8\xe4\xbf\xa1\xef\xbc\x8c\xe6\x9c\x89\xe9\x87\x91\xe8\x9e\x8d\xe8\xa1\x8c\xe4\xb8\x9a\xe7\x9a\x84\xe7\xa7\xaf\xe6\x9e\x81\xe5\x8f\x82\xe4\xb8\x8e\xef\xbc\x8c\xe7\xa2\xb3\xe9\x87\x91\xe8\x9e\x8d\xe4\xba\xa7\xe5\x93\x81\xe5\xb8\x82\xe5\x9c\xba\xe5\xb0\x86\xe5\xbf\xab\xe9\x80\x9f\xe5\x8f\x91\xe5\xb1\x95\xe6\x88\x90\xe7\x86\x9f\xef\xbc\x8c\xe9\x87\x91\xe8\x9e\x8d\xe8\xa1\x8c\xe4\xb8\x9a\xe5\xb0\x86\xe5\x8b\x87\xe7\xab\x8b\xe6\xbd\xae\xe5\xa4\xb4\xef\xbc\x8c\xe5\x88\x87\xe5\xae\x9e\xe6\x8e\xa8\xe8\xbf\x9b\xe2\x80\x9c\xe5\x8f\x8c\xe7\xa2\xb3\xe2\x80\x9d\xe7\x9b\xae\xe6\xa0\x87\xe7\x9a\x84\xe5\xa6\x82\xe6\x9c\x9f\xe5\xae\x9e\xe7\x8e\xb0\xe3\x80\x82

\n

\xe6\x96\xb0\xe5\x8d\x8e\xe7\xbd\x91\xef\xbc\x9a\xe6\x82\xa8\xe8\xae\xa4\xe4\xb8\xba\xef\xbc\x8c\xe9\x93\xb6\xe8\x81\x94\xe5\x9c\xa8\xe6\x9e\x84\xe5\xbb\xba\xe7\xbb\xbf\xe8\x89\xb2\xe4\xbd\x8e\xe7\xa2\xb3\xe7\xa7\xaf\xe5\x88\x86\xe4\xbd\x93\xe7\xb3\xbb\xe4\xb8\xad\xe6\x89\xae\xe6\xbc\x94\xe4\xbb\x80\xe4\xb9\x88\xe6\xa0\xb7\xe7\x9a\x84\xe8\xa7\x92\xe8\x89\xb2\xef\xbc\x9f\xe6\x9c\xaa\xe6\x9d\xa5\xe5\x9c\xa8\xe7\xbb\xbf\xe8\x89\xb2\xe9\x87\x91\xe8\x9e\x8d\xe6\x96\xb9\xe9\x9d\xa2\xe8\xbf\x98\xe4\xbc\x9a\xe4\xbd\x9c\xe5\x93\xaa\xe4\xba\x9b\xe5\xb0\x9d\xe8\xaf\x95\xef\xbc\x9f

\n

\xe5\x8d\x95\xe9\x95\xbf\xe8\x83\x9c\xef\xbc\x9a\xe4\xb8\xad\xe5\x9b\xbd\xe9\x93\xb6\xe8\x81\x94\xe5\x9c\xa8\xe6\x9e\x84\xe5\xbb\xba\xe7\xbb\xbf\xe8\x89\xb2\xe4\xbd\x8e\xe7\xa2\xb3\xe7\xa7\xaf\xe5\x88\x86\xe4\xbd\x93\xe7\xb3\xbb\xe4\xb8\xad\xe5\x90\x8c\xe6\x97\xb6\xe6\x89\xae\xe6\xbc\x94\xe7\x9d\x80\xe8\xa7\x84\xe5\x88\x99\xe5\x88\xb6\xe5\xae\x9a\xe8\x80\x85\xe5\x92\x8c\xe6\xb4\xbb\xe5\x8a\xa8\xe5\x8f\x91\xe8\xb5\xb7\xe8\x80\x85\xe7\x9a\x84\xe8\xa7\x92\xe8\x89\xb2\xe3\x80\x82\xe4\xb8\x80\xe6\x96\xb9\xe9\x9d\xa2\xef\xbc\x8c\xe9\x93\xb6\xe8\x81\x94\xe6\x9e\x84\xe5\xbb\xba\xe4\xba\x86\xe7\xbb\xbf\xe8\x89\xb2\xe4\xbd\x8e\xe7\xa2\xb3\xe7\xa7\xaf\xe5\x88\x86\xe4\xbd\x93\xe7\xb3\xbb\xe5\x8f\x8a\xe7\x9b\xb8\xe5\xba\x94\xe7\x9a\x84\xe6\xb4\xbb\xe5\x8a\xa8\xe7\x8e\xa9\xe6\xb3\x95\xef\xbc\x8c\xe9\x92\x88\xe5\xaf\xb9\xe6\x80\xa7\xe5\x9c\xb0\xe5\xaf\xb9\xe6\x8c\x81\xe5\x8d\xa1\xe4\xba\xba\xe7\x9a\x84\xe7\xbb\xbf\xe8\x89\xb2\xe6\xb6\x88\xe8\xb4\xb9\xe8\xa1\x8c\xe4\xb8\xba\xe8\xbf\x9b\xe8\xa1\x8c\xe5\xa5\x96\xe5\x8a\xb1\xef\xbc\x8c\xe7\x94\xa8\xe6\xb4\xbb\xe5\x8a\xa8\xe8\xa7\x84\xe5\x88\x99\xe5\x8e\xbb\xe5\xbc\x95\xe5\xaf\xbc\xe5\x92\x8c\xe9\xbc\x93\xe5\x8a\xb1\xe5\xa4\xa7\xe4\xbc\x97\xe8\xb7\xb5\xe8\xa1\x8c\xe7\xbb\xbf\xe8\x89\xb2\xe4\xbd\x8e\xe7\xa2\xb3\xe7\x94\x9f\xe6\xb4\xbb\xe3\x80\x82\xe5\x8f\xa6\xe4\xb8\x80\xe6\x96\xb9\xe9\x9d\xa2\xef\xbc\x8c\xe4\xb8\xad\xe5\x9b\xbd\xe9\x93\xb6\xe8\x81\x94\xe5\x9f\xba\xe4\xba\x8e\xe7\xbb\xbf\xe8\x89\xb2\xe4\xbd\x8e\xe7\xa2\xb3\xe7\xa7\xaf\xe5\x88\x86\xe4\xbd\x93\xe7\xb3\xbb\xef\xbc\x8c\xe8\x81\x94\xe5\x90\x88\xe5\x90\x84\xe5\xae\xb6\xe5\x95\x86\xe4\xb8\x9a\xe9\x93\xb6\xe8\xa1\x8c\xe5\x8f\x91\xe8\xa1\x8c\xe7\xbb\xbf\xe8\x89\xb2\xe4\xbd\x8e\xe7\xa2\xb3\xe4\xb8\xbb\xe9\xa2\x98\xe5\x8d\xa1\xef\xbc\x8c\xe5\xb8\xa6\xe9\xa2\x86\xe5\x92\x8c\xe5\x8f\xb7\xe5\x8f\xac\xe9\x93\xb6\xe8\xa1\x8c\xe4\xb8\x9a\xe5\x85\xb1\xe5\x90\x8c\xe5\x8f\x82\xe4\xb8\x8e\xe5\x88\xb0\xe7\xbb\xbf\xe8\x89\xb2\xe9\x87\x91\xe8\x9e\x8d\xe6\x9c\x8d\xe5\x8a\xa1\xe4\xb8\xad\xef\xbc\x8c\xe4\xb9\x9f\xe8\xae\xa9\xe6\x9b\xb4\xe5\xa4\x9a\xe6\x8c\x81\xe5\x8d\xa1\xe4\xba\xba\xe5\x8f\x82\xe4\xb8\x8e\xe5\x88\xb0\xe7\xbb\xbf\xe8\x89\xb2\xe4\xbd\x8e\xe7\xa2\xb3\xe8\xa1\x8c\xe5\x8a\xa8\xe4\xb8\xad\xe3\x80\x82

\n

\xe6\x9c\xaa\xe6\x9d\xa5\xef\xbc\x8c\xe4\xb8\xad\xe5\x9b\xbd\xe9\x93\xb6\xe8\x81\x94\xe5\xb0\x86\xe8\x81\x94\xe5\x90\x88\xe5\x95\x86\xe4\xb8\x9a\xe9\x93\xb6\xe8\xa1\x8c\xe3\x80\x81\xe8\xa1\x8c\xe4\xb8\x9a\xe5\x90\x88\xe4\xbd\x9c\xe4\xbc\x99\xe4\xbc\xb4\xef\xbc\x8c\xe6\x95\xb4\xe5\x90\x88\xe4\xbc\x98\xe5\x8a\xbf\xe8\xb5\x84\xe6\xba\x90\xef\xbc\x8c\xe6\x8e\xa2\xe7\xb4\xa2\xe6\x9b\xb4\xe5\xa4\x9a\xe7\xbb\xbf\xe8\x89\xb2\xe4\xbd\x8e\xe7\xa2\xb3\xe4\xba\xa7\xe5\x93\x81\xe5\x92\x8c\xe6\x9c\x8d\xe5\x8a\xa1\xe3\x80\x82

\xe3\x80\x90\xe7\xba\xa0\xe9\x94\x99\xe3\x80\x91 \xe3\x80\x90\xe8\xb4\xa3\xe4\xbb\xbb\xe7\xbc\x96\xe8\xbe\x91:\xe4\xb8\x87\xe5\x98\x89\xe3\x80\x91
\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t \n \n\t\t\t\n\t\t\t
\n\t\t\t\n\t\t\t
\n\t\t\t
\n\t\t\t\n
\n
    \n
\n
\t\t\n\t\t\t
\n\n
\n \n
\n
\n \n
\n
\n
\n \n
\n\t
\n
\n\t\n \t\n \n \n \n \n \n \n \n \n\n' + print(f'检测bytes内容编码结果:{demo_ins.char_detect(_temp_content)}') + # print(f'解码bytes内容转为str结果:{demo_ins.char_to_str(_temp_content)}') + # 图片模糊(blurry picture) + # temp_aa = demo_ins.img_blurred(r'E:\Users\Administrator\Documents\SomeTools\win11_sunrise.jpg') + # print(f"图片模糊后路径{temp_aa}") + # 生成验证码(Generate verification code) + # temp_aa, img_path = demo_ins.img_generate_verification_code(r'E:\Users\Administrator\Documents\SomeTools\Arial.ttf', r'E:\Users\Administrator\Documents\SomeTools\\') + # print(f"根据字符串{temp_aa}生成验证码{img_path}") + # 查看硬件信息(View hardware information) + print(f'内存信息:{demo_ins.os_memory_info()} 可用内存剩余:{demo_ins.os_memory_info().free}') + print(f'CPU信息:{demo_ins.os_cpu_info()}') + print(f'硬盘信息:{demo_ins.os_disk_info()}') + print(f'网络信息:{demo_ins.os_net_info()}') + # 获取本月的中国法定节假日和工作日(Get this month's Chinese statutory holidays and working days) + calendar_hashmap = Demo.get_calendar_hashmap() + demo_ins.logger().info(f"this month's holiday: {calendar_hashmap.get(92)}") + demo_ins.logger().info(f"this month's holiday: {calendar_hashmap.get(94)}") + demo_ins.logger().info(f"this month's holiday: {calendar_hashmap.get(91)}") + demo_ins.logger().info(f"this month's weekend: {calendar_hashmap.get(6)}") + demo_ins.logger().info(f"this month's weekend: {calendar_hashmap.get(7)}") + demo_ins.logger().info(f"this month's working day: {calendar_hashmap.get(0)}") + demo_ins.logger().info(f"this month's extra working day: {calendar_hashmap.get(90)}") + # redis使用(use redis) + # redis_conn = demo_ins.get_sync_redis_conn(redis_host='10.1.xx.xx', + # redis_port='6379', + # redis_db=1, + # redis_pwd='xx' + # ) + # msg = redis_conn.set('temp_key1', 'test string1') + # demo_ins.logger().info(f"redis set {msg}") + # msg = redis_conn.get('temp_key1') + # demo_ins.logger().info(f"redis get {msg}") +``` +### 2.异步工具使用 (Asynchronous tool usage) +``` pycon +import asyncio +import datetime +import platform +if not (platform.system() == 'Windows'): + import uvloop + asyncio.set_event_loop_policy(uvloop.EventLoopPolicy()) # 使用 uvloop 来替换 asyncio 内部的事件循环。 +from sometools.async_tools import CommonAsyncTools +class Demo(CommonAsyncTools): + def __init__(self, *args, **kwargs): + super(Demo, self).__init__(*args, **kwargs) + # 事件循环 + task_number = kwargs.get('TASK_NUMBER') + loop = asyncio.get_event_loop() + tasks = [asyncio.ensure_future(self.ready(**kwargs)) for _ in range(task_number)] + if platform.system() == 'Windows': + loop.set_debug(True) + loop.run_until_complete(asyncio.wait(tasks)) + async def ready(self, **kwargs): + # 1. redis示例 + self.aio_redis_conn = await self.get_async_redis_conn(redis_host='xx.xx.xx.xx', + redis_port='6379', + redis_db=1, + redis_pwd='xxx') + msg = await self.aio_redis_conn.set('temp_key', 'test string') + print(f'redis set {msg}') + msg = await self.aio_redis_conn.get('temp_key') + print(f'redis get {msg}') + # await asyncio.sleep(5) + # 2. 布隆过滤示例 + to_filter_url = 'https://zhuanlan.zhihu.com/p/376305519' + _is_filted = await self.aio_is_bloom_filter_contains(to_filter_url) + print(f'布隆过滤 是否存在:{_is_filted}') + res = await self.aio_bloom_filter_insert(to_filter_url) + print(f'布隆过滤 插入:{res}') + _is_filted = await self.aio_is_bloom_filter_contains(to_filter_url) + print(f'布隆过滤 是否存在:{_is_filted}') + # 3. mysql orm 示例 + from sometools.async_tools.database_tools.mysql_tools.async_mysql_orm import Model, StringField, TextField, \ + IntegerField, DateTimeField + # 创建连接池 + db_conn_pool = await self.create_db_conn_pool( + DATABASE_HOST='localhost', + DATABASE_PORT=3306, + DATABASE_USER='root', + DATABASE_PWD='root', + DATABASE_DB='db_name_xxxx', + DATABASE_CHARSET='utf8mb4', + DATABASE_AUTOCOMMIT=True, + DATABASE_MAX=10, + DATABASE_MIN=1, + ) + # 创建模型 + class BondPrices(Model): + __db_conn_pool__ = db_conn_pool + __table__ = "bond_prices" + id = IntegerField(primary_key=True) + trade_time = DateTimeField() + trade_data = TextField() + page_name = StringField(ddl='varchar(45)') + is_valid = IntegerField() + data_source = StringField(ddl='varchar(100)') + verify_md5 = StringField(ddl='varchar(40)') + clean_status = IntegerField() + create_at = DateTimeField() + update_at = DateTimeField() + print('检查表是否存在') + data_array = await BondPrices.table_exists('erqqwrwfdsa') + if data_array == 1: + print('表存在') + else: + print('表不存在') + print('直接执行sql语句') + data_array = await BondPrices.execute_sql('select * from bond_prices') + if data_array: + for data_hashmap in data_array: + print(data_hashmap) + print('增加') + bond_price_data = BondPrices(trade_time=datetime.datetime.now(), + trade_data='dadad', + page_name='保存pagename', + data_source='单顺荣', + is_valid=1, + verify_md5='123456789', + clean_status=2, + create_at=datetime.datetime.now(), + update_at=datetime.datetime.now(), + ) + insert_res = await bond_price_data.save_db_date() + if insert_res: + print(f'插入数据成功,主键是{insert_res}') + print('修改') + bond_price_data = BondPrices(id=4, + trade_time=datetime.datetime.now(), + trade_data='dadad', + page_name='愤忿忿忿忿忿忿忿忿忿忿', + data_source='单顺荣', + is_valid=1, + verify_md5='123456789', + clean_status=2, + create_at=datetime.datetime.now(), + update_at=datetime.datetime.now(), + ) + insert_res = await bond_price_data.update_db_date() + if insert_res: + print(f'修改数据成功,影响行数是{insert_res}') + print('删除') + data_array = await BondPrices.select_by_where(id=3) + if data_array: + remove_res = await data_array[0].remove_db_date() + print(f'删除数据成功,影响行数是{remove_res}') + print('查询') + data_array = await BondPrices.select_by_where(id=3, page_name='报价行情', limit=1) + if data_array: + data_hashmap = dict(data_array[0]) + print(data_hashmap.get('verify_md5')) +if __name__ == '__main__': + # 异步工具使用方法示例 + demo_ins = Demo(TASK_NUMBER=1) + print('end') +``` + +%prep +%autosetup -n SomeTools-0.1.39 + +%build +%py3_build + +%install +%py3_install +install -d -m755 %{buildroot}/%{_pkgdocdir} +if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi +if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi +if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi +if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi +pushd %{buildroot} +if [ -d usr/lib ]; then + find usr/lib -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/lib64 ]; then + find usr/lib64 -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/bin ]; then + find usr/bin -type f -printf "/%h/%f\n" >> filelist.lst +fi +if [ -d usr/sbin ]; then + find usr/sbin -type f -printf "/%h/%f\n" >> filelist.lst +fi +touch doclist.lst +if [ -d usr/share/man ]; then + find usr/share/man -type f -printf "/%h/%f.gz\n" >> doclist.lst +fi +popd +mv %{buildroot}/filelist.lst . +mv %{buildroot}/doclist.lst . + +%files -n python3-SomeTools -f filelist.lst +%dir %{python3_sitelib}/* + +%files help -f doclist.lst +%{_docdir}/* + +%changelog +* Wed May 31 2023 Python_Bot - 0.1.39-1 +- Package Spec generated diff --git a/sources b/sources new file mode 100644 index 0000000..bb1e193 --- /dev/null +++ b/sources @@ -0,0 +1 @@ +f3a5ad6b66d1d5f747cdeb02994991f1 SomeTools-0.1.39.tar.gz -- cgit v1.2.3