华为云用户手册
-
名词解释 基本概念、云服务简介、专有名词解释 华为云Flexus云服务器X实例:Flexus云服务器X实例是新一代面向中小企业和开发者打造的柔性算力云服务器。Flexus云服务器X实例功能接近E CS , 同时还具备独有特点,例如Flexus云服务器X实例具有更灵活的vCPU内存配比、支持热变配不中断业务变更规格、支持性能模式等。 云服务器组:通过云服务器组功能,云服务器在创建时,将尽量分散地创建在不同的主机上,提高业务的可靠性。支持反亲和性策略,即同一云服务器组中的云服务器分散地创建在不同的主机上,提高业务的可靠性。 弹性公网EIP:提供独立的公网IP资源,包括公网IP地址与公网出口带宽服务。可以与弹性云服务器、裸金属服务器、虚拟VIP、弹性负载均衡、NAT网关等资源灵活地绑定及解绑。 MHA:MHA(Master High Availability)目前在 MySQL 高可用方面是一个比较成熟的解决方案,它是由日本 DeNA 公司 Yoshinori Matsunobu发的,是一套优秀的动作集 MySQL Failover 和高可用环境下的主从提升的高可用软件。在 MySQL 故障转移期间,MHA 可以在 0~30 秒内自动完成数据库故障转移操作,也在故障转移过程中,MHA 最大程度地保证数据的一致性,实现真正的高可用。MHA 中有两个字符之一是 MHA Node(数据节点),另一个是 MHA Manager(管理节点)。MHA Manager 可以单独部署在单机上管理多个主从集群,也可以部署在一个从节点上。MHA Node 运行在每个 MySQL Server 上,MHA Manager 会检测到 master 节点,当 master 失败的时候,它会自动更新 slave 的数据升级到一个新的 master,然后把所有其他 slave 点放回新的 master。整个故障转移过程对于应用程序来说是完全透明的。
-
集成服务端REST API 下载服务端集成开发工具以及二次开发文档。 在集成开发服务端API的过程中,除本开发指南外,开发者还需要参考《服务端API参考》。 准备开发环境。 订购华为云会议服务,基于业务账号调用服务端API,接入地址是“https://api.meeting.huaweicloud.com”。 集成登录鉴权。 第三方系统在直接调用云会议功能前,需要先调用鉴权接口,完成第三方应用账号向会议服务端的鉴权。详细开发方法参见《服务端API参考》中的“登录鉴权”章节。 图17 服务端鉴权集成 调用REST接口集成开发。 在完成鉴权调用后,开发者可以在第三方应用系统上集成华为云会议的服务端功能接口。 详细开发方法参见《服务端API参考》。 功能调试。 开发完成后,可以接入华为云会议调试环境(https://api.meeting.huaweicloud.com)进行功能调试。 华为云会议提供的每个服务端REST API都可以在华为云的 API Explorer 上调试。
-
集成客户端UI SDK 下载客户端SDK开发包以及二次开发文档。 在集成开发客户端SDK的过程中,除本开发指南外,开发者还需要查看本《客户端SDK参考》。 请参考《客户端SDK参考》中的“资源下载”获取SDK开发包,Demo源代码在SDK包中。 试用Demo。 华为云会议为每个平台SDK提供了Demo安装包,开发者可以下载Demo,快速体验功能的运行和调试。 请参考《客户端SDK参考》中每个平台SDK下的“Demo安装包下载”试用Demo。 准备开发环境。 开发环境准备 不同平台的开发工具及环境要求。详见《客户端SDK参考》中对应平台下的“快速入门”。 调测环境准备 订购华为云会议服务后或者申请免费试用账号后,调用客户端SDK。 调用SDK集成开发。 开发者可以在自己对应要开发的平台上集成华为云会议对应平台的SDK接口。 详细开发方法参见《客户端SDK参考》。 功能调试。 开发完成后,可以接入华为云会议调试环境进行功能调试。
-
App ID的申请 使用华为云账号,登录华为云会议控制台。前提是该华为云账号已经购买了华为云会议服务或者已经绑定了华为云会议企业管理员账号,请参考“开发流程”章节中的“开发前准备”。 单击“应用管理”,再单击“申请应用”。在弹出的创建应用的输入框中输入第三方应用的名称及描述。 图3 申请应用 请填写真实的联系人姓名和手机号码。 申请提交后,华为云会议工作人员会在1~3个工作日内完成审核和审批。 生成App Key 审批通过后,单击“生成AppKey”再单击“确认”生成App Key。 图4 生成App Key App Key是生成鉴权签名材料Signature的密钥,需要在第三方服务端妥善保存,不要泄露出去,否则会出现被盗用会议资源的风险。 App Key只能保存在第三方服务端,不能保存在第三方终端中,否则很容易被反编译获取。 App Key需要妥善保存,遗失后只能重置,不能找回。重新生成App Key原来的App Key将会在一个月后失效。
-
集成UI SDK的第三方客户端App ID鉴权 第三方客户端初始化SDK时,需要传入事先申请好的App ID。 Android SDK的初始化接口,请参考《客户端SDK参考》中“Android SDK”的“初始化”章节。 iOS SDK的初始化接口,请参考《客户端SDK参考》中“iOS SDK”的“初始化”章节。 Windows SDK的初始化接口,请参考《客户端SDK参考》中“Windows SDK”的“初始化”章节。 Mac SDK的初始化接口,请参考《客户端SDK参考》中“Mac SDK”的“初始化”章节。 第三方客户端登录时,从第三方服务端获取Signature、ExpireTime和Nonce后,调用终端SDK的Login接口完成鉴权。 Android SDK的Login接口,请参考《客户端SDK参考》中“Android SDK”的“登录”章节。 iOS SDK的Login接口,请参考《客户端SDK参考》中“iOS SDK”的“登录”章节。 Windows SDK的Login接口,请参考《客户端SDK参考》中“Windows SDK”的“登录”章节。 Mac SDK的Login接口,请参考《客户端SDK参考》中“Mac SDK”的“登录”章节。
-
App ID鉴权原理 第三方客户端App ID鉴权原理 图1 第三方客户端App ID鉴权流程 鉴权前提: 开发者在华为云会议控制台上为自己的应用申请App ID,并获取App ID和App Key。 开发者在自己的服务端集成Signature生成算法,请参考“第三方服务集成Signature生成算法”。 SDK初始化时传入App ID,请参考《客户端SDK参考》中的“初始化”部分。 鉴权过程: 第三方客户端将User ID(第三方User ID)发送给第三方服务器。 第三方服务器根据App ID、User ID、App Key等,生成鉴权用的签名材料Signature。 第三方服务端返回Signature,以及ExpireTime和Nonce值。 第三方客户端调用客户端SDK的Login接口,参数为User ID、Signature、ExpireTime和Nonce。 客户端SDK向华为云会议服务端发起鉴权。 鉴权通过后SDK获取接入Token。该Token对第三方客户端不可见,由SDK负责维护和刷新。 第三方服务App ID鉴权原理 图2 第三方服务端App ID鉴权流程 鉴权前提: 开发者在华为云会议控制台上为自己的应用申请App ID,并获取App ID和App Key。 开发者在自己的服务端集成Signature生成算法,请参考“第三方服务集成Signature生成算法”。 鉴权过程: 第三方服务端根据调用的业务接口所需的User ID(第三方User ID),加上App ID、App Key、ExpireTime和Nonce,生成鉴权用的签名材料Signature。 第三方服务端调用华为云会议服务端的App ID鉴权接口(REST接口)。 华为云会议服务端鉴权通过后,返回接入Token。 第三方服务端使用接入Token调用其他业务接口。
-
创建rf_admin_trust委托(可选) 进入华为云官网,打开控制台管理界面,鼠标移动至个人账号处,打开“ 统一身份认证 ”菜单。 图1 控制台管理界面 图2 统一身份认证菜单 进入“委托”菜单,搜索“rf_admin_trust”委托。 图3 委托列表 如果委托存在,则不用执行接下来的创建委托的步骤 如果委托不存在时执行接下来的步骤创建委托 单击步骤2界面中的“创建委托”按钮,在委托名称中输入“rf_admin_trust”,委托类型选择“云服务”,选择“ RFS ”,单击“下一步”。 图4 创建委托 在搜索框中输入“Tenant Administrator”权限,并勾选搜索结果。 图5 选择策略 选择“所有资源”,并单击下一步完成配置。 图6 设置授权范围 “委托”列表中出现“rf_admin_trust”委托则创建成功。 图7 委托列表
-
方案架构 该解决方案支持一键式部署华为云Flexus云服务器X实例、弹性负载均衡ELB、弹性公网IP 以及云数据库RDS服务,帮助客户快速构建一个高可用网站架构,并具备跨可用区故障容灾的能力。解决方案架构如下: 图1 方案架构图 该解决方案将会部署如下资源: 创建2台华为云Flexus云服务器X实例,部署在不同可用区,用于对外提供服务; 部署1个弹性公网IP EIP,并关联弹性负载均衡ELB,用于接收网络流量; 部署1个弹性负载均衡 ELB,用于业务流量跨可用区进行分发; 部署1个云数据库 RDS实例,主备分区部署,具备跨可用区故障容灾的能力。 此外,您可以通过使用 云监控服务 CES 来监测云服务器运行状态;通过购买云备份 CBR服务,对云服务器进行数据备份;也可以通过购买 对象存储服务 OBS,用于存储网站、论坛、APP、游戏应用的图片、视频、软件包等静态资源文件。
-
查看部署资源 登录华为云控制台,选择该方案一键部署选择的区域,以北京四为例。 图1 华为云控制台 在弹性负载均衡ELB控制台,可查看该方案一键部署生成的ELB实例及绑定的弹性公网IP。 图2 华为云控制台 图3 ELB实例 添加业务端口。单击负载均衡器名称,单击“后端服务组”,添加后端监听端口。 图4 添加修改业务端口 勾选需要添加的后端服务器,单击“下一步”。 图5 勾选服务器 添加端口,单击“完成”。 图6 添加端口 在华为云弹性云服务器控制台,可查看该方案一键部署生成的云服务器。 图7 云服务器 在云数据库RDS控制台,可查看该方案一键部署生成的数据库实例。 图8 RDS实例
-
安全组规则修改(可选) 该解决方案部署的弹性负载均衡ELB默认监听80端口,后端业务部署后,请参考修改安全组规则,选择实际端口,配置IP地址白名单,以便能正常访问服务。 该解决方案使用22端口用来远程登录云服务器,默认对该方案创建的VPC子网网段放开,请参考修改安全组规则,配置IP地址白名单,以便能正常访问服务。 安全组实际是网络流量访问策略,包括网络流量入方向规则和出方向规则,通过这些规则为安全组内具有相同保护需求并且相互信任的云服务器、云容器、云数据库等实例提供安全保护。 如果您的实例关联的安全组策略无法满足使用需求,比如需要添加、修改、删除某个TCP端口,请参考以下内容进行修改。 添加安全组规则:根据业务使用需求需要开放某个TCP端口,请参考添加安全组规则添加入方向规则,打开指定的TCP端口。 修改安全组规则:安全组规则设置不当会造成严重的安全隐患。您可以参考修改安全组规则,来修改安全组中不合理的规则,保证云服务器等实例的网络安全。 删除安全组规则:当安全组规则入方向、出方向源地址/目的地址有变化时,或者不需要开放某个端口时,您可以参考删除安全组规则进行安全组规则删除。
-
名词解释 华为云Flexus云服务器X实例:Flexus云服务器X实例是新一代面向中小企业和开发者打造的柔性算力云服务器。Flexus云服务器X实例功能接近ECS, 同时还具备独有特点,例如Flexus云服务器X实例具有更灵活的vCPU内存配比、支持热变配不中断业务变更规格、支持性能模式等。 弹性云服务器 ECS:是一种可随时自助获取、可弹性伸缩的云服务器,可帮助您打造可靠、安全、灵活、高效的应用环境,确保服务持久稳定运行,提升运维效率。 虚拟私有云 VPC:是用户在华为云上申请的隔离的、私密的虚拟网络环境。用户可以基于VPC构建独立的云上网络空间,配合弹性公网IP、云连接、云专线等服务实现与Internet、云内私网、跨云私网互通,帮您打造可靠、稳定、高效的专属云上网络。 弹性公网 IP:提供独立的公网IP资源,包括公网IP地址与公网出口带宽服务。可以与弹性云服务器、裸金属服务器、虚拟IP、弹性负载均衡、NAT网关等资源灵活地绑定及解绑,提供访问公网和被公网访问能力。 弹性负载均衡 ELB:将访问流量自动分发到多台云服务器,扩展应用系统对外的服务能力,实现更高水平的应用容错。 云数据库 RDS:基于 云计算平台 的稳定可靠、弹性伸缩、便捷管理的在线云数据库服务。具有完善的性能监控体系和多重安全防护措施,并提供了专业的数据库管理平台。
-
资源和成本规划 该解决方案主要部署如下资源,不同产品的花费仅供参考,具体请参考华为云官网价格详情,实际收费以账单为准。 表1 资源和成本规划(按需计费) 华为云服务 配置示例 每月预估花费 华为云Flexus云服务器X实例 按需计费:0.27元/小时 区域:华北-北京四 规格:Flexus云服务器X实例 | 性能模式(关闭)| x1.2u.4g | 2核 | 4 GB 镜像:CentOS 7.9 64bit 系统盘:高IO | 100GB 购买量:2 394.56元 弹性公网 IP EIP 按需计费:0.34元/小时 区域:华北-北京四 线路:动态BGP 公网带宽:按带宽计费 带宽大小:5Mbit/s 购买量:1 241.20元 弹性负载均衡 ELB 共享型负载均衡(性能保障模式) 按需计费:0.32元/小时 区域:华北-北京四 购买量:1 230.40元 云数据库 RDS 按需计费:1.24元/小时 区域:华北-北京四 规格:rds.mysql.n1.large.2.ha | 2vCPU | 4 GB (通用型) 类型:Mysql主备 购买量:1 892.80元 合计 - 1758.96元 表2 资源和成本规划(包年包月) 华为云服务 配置示例 每月预估花费 华为云Flexus云服务器X实例 区域:华北-北京四 规格:Flexus云服务器X实例 | 性能模式(关闭)| x1.2u.4g | 2核 | 4 GB 镜像:CentOS 7.9 64bit 系统盘:高IO | 100GB 购买量:2 286元 弹性公网 IP EIP 区域:华北-北京四 线路:动态BGP 公网带宽:按带宽计费 带宽大小:5Mbit/s 购买量:1 115元 弹性负载均衡 ELB 共享型负载均衡(性能保障模式) 按需计费:0.32元/小时 区域:华北-北京四 计费模式:按需计费 购买量:1 230.40元 云数据库 RDS 区域:华北-北京四 规格:rds.mysql.n1.large.2.ha | 2vCPU | 4 GB (通用型) 类型:Mysql主备 购买量:1 566.00元 合计 - 1197.40元
-
快速部署 本章节主要帮助用户快速部署“高可用网站架构云化”解决方案。 表1 参数说明 参数名称 类型 是否可选 参数解释 默认值 vpc_name string 必填 虚拟私有云名称,该模板使用新建VPC,不允许重名。取值范围:1-54个字符,支持中文、英文字母、数字、_(下划线)、-(中划线)、.(点)。 high-availabe-web-demo security_group_name string 必填 安全组名称,该模板使用新建安全组。取值范围:1-64个字符,支持数字、字母、中文、_(下划线)、-(中划线)、.(点)。 high-availabe-web-demo ecs_name string 必填 云服务器名称,不支持重名。取值范围:1-54个字符组成,支持中文、英文字母、数字、_(下划线)、-(中划线)、.(点)。 high-availabe-web-demo ecs_flavor_id string 必填 云服务器实例规格,支持弹性云服务器 ECS及华为云Flexus 云服务器X实例。Flexus 云服务器X实例规格ID命名规则为x1.?u.?g,例如2vCPUs4GiB规格ID为x1.2u.4g,具体华为云Flexus 云服务器X实例规格请参考控制台。弹性云服务器 ECS规格请参考官网弹性云服务器规格清单。 x1.2u.4g ecs_password string 必填 云服务器初始密码。取值范围:长度为8-26位,至少必须包含大写字母、小写字母、数字和特殊字符(!@$%^-_=+[{}]:,./?)中的三种,密码不能包含用户名或用户名的逆序。管理员账户为root。 空 ecs_volume_size number 必填 云服务器系统盘大小,单位GB。取值范围:40-1,024。 100 ecs_volume_type string 必填 云服务器系统盘类型,默认SAS(高IO),其他规格请参考官网磁盘类型及性能介绍。 SAS eip_size number 必填 弹性公网IP大小,该模板带宽的按需计费模式为按带宽计费。默认5Mbit/s。取值范围:1-2,000 Mbit/s。 5 rds_name string 必填 云数据库RDS名称,取值范围:实例名称长度最小为4字符,最大为64个字符且不超过64字节(注意:一个中文字符占用3个字节),必须以字母或中文开头,区分大小写,可以包含字母、数字、中划线、下划线或中文,不能包含其他特殊字符。 high-available-web-demo rds_flavor_id string 必填 云数据库RDS规格。默认rds.mysql.n1.large.2.ha(2U4G),其他规格请参考官网云数据库 RDS for MySQ L实例 类型。 rds.mysql.n1.large.2.ha rds_volume_size number 必填 云数据库RDS实例磁盘大小,取值范围:40~4000,必须为10的整数倍。 100 rds_volume_type string 必填 云数据库RDS实例磁盘类型。 ULTRAHIGH:表示SSD。 LOCALSSD:表示本地SSD。 CLOUDSSD:表示SSD云盘,仅支持通用型和独享型规格实例。 ESSD:表示极速型SSD,仅支持独享型规格实例。 CLOUDSSD rds_password string 必填 云数据库RDS初始化登录密码,取值范围:密码应为8~32个字符,建议使用长度大于等于9个字符密码,密码中需要包含大写字母、小写字母、数字或特殊字符(~!@#$%^*-_=+?,()&)中的三种。管理员账户名root。 空 elb_name string 必填 弹性负载均衡服务器名称,取值范围:1-64个字符组成,支持中文、英文字母、数字、_(下划线)、-(中划线)、.(点)。 high-available-web-demo elb_listen_port string 必填 弹性负载均衡监听后端服务端口。 80 charging_mode string 必填 计费模式,默认自动扣费,取值为prePaid(包年包月)或postPaid(按需计费)。 postPaid charge_period_unit string 必填 计费模式周期单位,当计费模式设置为prePaid,此参数是必填项;当计费模式设置为postPaid,此参数失效。可选值为:month(包月)、year(包年)。 month charge_period number 选填 计费周期,当计费模式设置为prePaid,此参数是必填项;当计费模式设置为postPaid,此参数失效。可选值为:1-3(month)、1-9(year)。 1 登录华为云解决方案实施库,选择“高可用网站架构云化”模板。数据中心下拉菜单可以选择需要部署的区域,单击“一键部署”,跳转至解决方案创建资源栈界面。 图1 解决方案实施库 在选择模板界面中,单击“下一步”。 图2 选择模板 在配置参数界面中,自定义填写资源栈名称,根据表1填写配置参数信息,单击“下一步”。 图3 配置参数 在资源设置界面中,在“权限委托”下拉框中选择“rf_admin_trust”委托,单击“下一步”。 图4 资源栈设置 在配置确认页面中,单击“创建执行计划”。 图5 配置确认 在弹出的创建执行计划框中,自定义填写执行计划名称,单击“确定”。 图6 创建执行计划 单击“部署”,并且在弹出的执行计划确认框中单击“执行”。 图7 执行计划 图8 执行计划确认 (可选)如果计费模式选择“包年包月”,在余额不充足的情况下(所需总费用请参考表2)请及时登录费用中心,手动完成待支付订单的费用支付。 待“事件”中出现“Apply required resource success”,表示该解决方案已经部署完成。 图9 部署完成 父主题: 实施步骤
-
OBS工具汇总 对象存储服务(Object Storage Service,OBS)提供如表1所示工具,供用户使用。 表1 OBS工具一览表 工具 说明 应用场景 OBS Browser+ OBS Browser+是一款用于访问和管理对象存储服务的图形化工具,支持完善的桶管理和对象管理操作。OBS Browser+的图形化界面可以非常方便地让用户在本地对OBS进行管理。 适用于在中小型企业中上传、下载和分享个人数据等场景。推荐非IT行业,如医疗、交通、教育等行业用户使用,方便对数据执行操作。 obsutil obsutil是一款用于访问管理OBS的命令行工具,可以对OBS进行常用的配置管理操作,如创建桶、上传文件/文件夹、下载文件/文件夹、删除文件/文件夹等。对于熟悉命令行程序的用户,obsutil是执行批量处理、自动化任务的好的选择。 建议中小型企业的IT运维管理人员在备份、分享、管理数据时使用。命令行方式更高效,可以和脚本集成做简单自动化处理。 基因、教育等行业也可以使用obsutil将每日增量数据同步上云。 s3fs s3fs是一款基于用户空间文件系统(Filesystem in Userspace,简称FUSE)的文件系统工具,支持您在Linux系统中,将OBS对象桶挂载到本地文件系统,让您能够像操作本地文件一样操作对象,实现数据的共享。 适用于原本使用本地文件系统存储数据的用户,可以把数据存储在OBS上但不改变数据的访问方式。 obsfs(已下线) obsfs工具于2024年7月1日下线,下线后OBS不再对此工具提供维护和客户支持服务,请使用s3fs将OBS对象桶挂载至Linux系统。给您带来不便敬请谅解。 - obsftp(已下线) obsftp工具于2021年2月9日正式下线,下线后OBS不再对此工具提供维护和客户支持服务,给您带来不便敬请谅解。 - OBS Browser(已下线) OBS Browser已于2020年4月15日下线,相关功能已集成到新版客户端工具OBS Browser+中,请获取最新的OBS Browser+工具。给您带来不便敬请谅解。 -
-
为什么OBS桶接入CDN后,访问 域名 会列出所有文件列表? 如果用户对OBS桶有读权限,就可以读取桶内对象列表。当用户请求的是 CDN加速 域名的时候,OBS就默认返回桶内对象列表。解决办法如下: 如果您使用的是OBS公有桶,请参考以下操作步骤解决该问题: 在OBS处开启静态网站托管,操作步骤请参考配置静态网站托管。 同时在CDN域名的源站配置页面勾选“静态网站托管”。 在CDN控制台域名管理页面,单击需要配置的域名。 在“源站配置”模块,单击对应源站“操作”列的“编辑”按钮。 勾选“静态网站托管”,完成配置。 如果您使用的是OBS私有桶,请参考通过CDN加速OBS 视频点播 文档中实施步骤的第6步处理。 如果您使用的是OBS私有桶,您还可以通过给“CDNAccessPrivateOBS”委托创建一条拒绝列举桶内对象的策略,达到不会列出桶文件列表的目的,步骤如下: 前往 IAM 控制台,在左侧菜单栏选择“委托”,在“CDNAccessPrivateOBS”的“操作”列,单击“授权”。 在授权页面单击“新建策略”,配置如下参数: 表1 参数说明 参数 说明 策略名称 输入自定义的桶策略名称,例如:deny ListBucket。 策略配置方式 可视化视图。 策略内容 效力 拒绝。 云服务 对象存储服务(OBS)。 操作项 在列表一栏勾选“obs:bucket:ListBucket”。 资源 所有资源 请求条件 - 单击“下一步”,进入选择策略页面。 勾选刚创建的策略,此处示例为“deny ListBucket”,单击“下一步”,进入设置最小授权范围界面。 单击“确定”,完成授权,授权后15~20分钟生效。 授权生效后,请刷新CDN缓存后重试。
-
代码示例 使用代码示例时请根据需要调整刷新类型(type)及需要刷新的URL(urls)。 # -*- coding:utf-8 -*- import json import requests def handler (event, context): header = {"x-auth-token":context.getToken(),'content-type':'application/json;charset=utf-8'} data = { "refresh_task":{ "type":"file", "urls":["https://example.com/1.txt"] } } url = 'https://cdn.myhuaweicloud.com/v1.0/cdn/content/refresh-tasks' result = requests.post(url=url,headers=header,data=json.dumps(data)) context.getLogger().info(result.text) return { 'statusCode': 200, 'body': result.text, 'isBase64Encoded': False, 'headers': { 'Content-Type': 'application/json' } }
-
应用场景 随着云平台的功能日趋复杂,在设计测试用例时,经常会遇到一些相同的前置步骤或者测试逻辑。如果每一个测试用例中都编写这些步骤,重复工作量很大,并且难以维护。在接口自动化测试平台上,用户可以完成测试工程的创建,测试用例的编写以及测试用例脚本的自动化执行,支持将URL测试步骤设置为接口关键字,关键字库将接口关键字、组合关键字、系统关键字进行统一管理,可用于组件测试、系统测试等不同的测试场景,其优势体现在易用性、可理解性、可维护性、测试信息可复用。 本章节选择某电商平台的商品管理的功能为例作为阐述。
-
等价类划分 把系统输入数据划分为若干等价类,在每个等价类内部,选择所有输入数据进行测试与只选择其中一个输入数据进行测试是等价的。如果一个输入数据不能发现系统错误,则该等价类内部的其它所有输入数据都不能发现系统错误。等价类划分测试方法就是从每一个等价类中选取一个数据作为测试输入,提高测试场景的覆盖率,并减少无效测试工作量。 等价类划分包括有效等价类和无效等价类。有效等价类总结合理的有意义的输入数据构成的集合,即通常所说的常规路径测试输入。利用有效等价类可检验程序是否实现了规格说明中所规定的功能和性能。与之相反,无效等价类是总结不合理或无意义的输入数据构成的集合。 举例1:输入条件是一个布尔量,可获得一个有效等价类和一个无效等价类 。 输入条件:是否备份数据。 有效等价类:备份数据(TRUE)。 无效等价类:不备份数据(FALSE)。 举例2:输入条件规定了输入值的范围,可获得一个有效等价类和一个无效等价类。 输入条件:大于1、小于3的数。 有效等价类 :2。 无效等价类 : 0、4。 举例3:规定了输入数据必须遵守的规则,可获得一个符合所有规则的有效等价类和若干个从不同角度违反规则的无效等价类。 输入条件 :大于零的正整数。 有效等价类 :1。 无效等价类: 0、-10、10.1 … 等价类划分方法重点关注的是输入值的合理划分,设计测试用例时,要同时考虑这两类等价类,不仅要能接收合理的数据,更重要的是要能处理意外场景的输入。使用等价类划分法进行测试设计时,对待分析的特性列举出可能的输入,进行等价类划分和归类,分析输出的每一个等价类作为一条测试用例,可以使用表格或者思维导图等工具辅助进行等价类划分。等价类划分法也常常结合其它方法使用,如边界值分析法。 举例:规定了输入数据是月份,月份是从1至12的整数一组12个值,可获得12个有效等价类和一个无效等价类,如下表。 输入条件 有效等价类 编号 无效等价类 编号 输入月份 1,2,3,4,5,6,7,8,9,10,11,12 0001 13 1001 根据等价类划分,编写如下测试用例。 序号 测试用例 覆盖等价类编号 0001 输入正确的月份 0001 0002 输入不正确的月份 1001
-
边界值分析 经验告诉我们,大量的错误是发生在输入或输出范围的边界上,边界值分析就是在划分的等价类区域的边界及其附近选取测试数据,设计测试用例,可以遵循以下方法和原则。 当输入条件规定了值的范围时 选取刚达到这个范围边界的值,以及刚超出这个范围边界的值作为测试输入。如输入值规定是0-100整数,需要针对0和100设计用例,还要针对-1、1、99、101设计用例。 当输入条件规定了值的个数时 选取最大个数、最小个数、比最小个数少1、比最大个数多1的数作为测试输入。如上传附件的个数1~10个,则测试用例可取1和10,还应取0和11。 当输入、输出是有序集合时 选取集合的第一个元素和最后一个元素作为测试输入。如输入为有序数组,数组值为1至7,分别代表星期一至星期日,那么选择1和7作为测试输入。 在规定了输入数据的一组值(假定n个),并且程序要对每一个输入值分别处理的情况下,可确立n个有效等价类和一个无效等价类。 分析规格说明,找出其它可能的边界条件。 经过以上步骤进行分析之后可能会产生大量的测试项,这些测试项中可能会存在重复的情况,此时可以对这些重复的测试项进行合并。边界值分析法经常和等价类法配合使用,在等价类中取值时一般选取边界值。
-
开发、测试的协作问题 产品测试过程中,测试人员会记录缺陷问题单,转给开发人员处理,跟踪问题处理和闭环关闭。缺陷单是开发和测试人员进行信息沟通的一个重要信息载体,开发、测试人员或多或少会遇到过以下问题: 开发抱怨测试提交的缺陷描写不细致,比如没有复现步骤、问题所在的软件版本号,导致沟通成本增加。 开发在本地开发环境中没有复现缺陷单中提到的问题,直接将缺陷转回给测试。 缺陷修复后开发工程师没有通知测试工程师,导致缺陷复查不及时。 测试发现问题后,没有扩展对周边相关功能的功能做测试,忽视了潜在的类似问题,开发人员也没有做类似的探索。 开发人员对测试人员标记的缺陷的严重级别存在异议。
-
缺陷处理流程 开发和测试均是软件产品质量的责任人,在产品质量保障方面有着共同的目标和意愿,区别只在于从事的工作活动内容,缺陷处理流程的制定和落地应该本着作二者之间协作的粘合剂和润滑剂的目标,帮助实现互信、高效的协作,而避免作为不作为的借口和矛盾的引火线。以下讲述了一个完整的缺陷处理流程,在实际操作中可以借鉴。 发现缺陷 在软件开发和测试中,随着代码和模块的叠加和层层调用,一个底层问题可能会表现出多个表象问题。最初发现的问题,仅仅是一个问题表象,此时不能草率给出问题内容和问题原因的结论,而需要做一番有逻辑的系统性分析。 首先,需要发散分析,除了发现的第一个问题表现外,是否还有别的问题表现,这些表现是同时存在的还是有一定的依赖关系、时间先后关系,需要叠加一些更多的测试操作步骤。 例如:在一次测试中,发现使用手机号+验证码无法成功登录某IT系统之后,需要分析使用手机号+密码等其它登录方式、使用手机号+验证码登录“其它”系统,使用APP和浏览器或者其它设备登录、使用其它运营商的手机号是否也会出现问题。 其次,猜测问题的原因并验证是否是导致问题的原因。这里要避免把“测试步骤”作为原因,而应该分析测试步骤背后引起的数据变化作为原因,由此分析是否有其它场景会出现类似的问题,层层抽丝剥茧,尽量还原出问题的本质。如果是偶现问题,也需要尽量分析问题原因,请开发人员帮助定位定界问题。 最后,整理问题发生条件、操作步骤、问题表现。 重现缺陷 缺陷如果无法重现,开发还是难以定位问题。一般而言,保证缺陷可复现的责任在测试人员,如果问题实在是偶现,难以找到确定性的复现步骤,说明问题根源很深,需要及时寻求开发人员的帮助共同做问题分析。测试人员重现缺陷需要做到: 首先,发现缺陷的测试人员,换一些输入数据或者组合、换一个测试环境,可以按照问题发生条件和操作步骤,重新还原出问题。 其次,其他人员(如开发)根据缺陷文字和截图描述,可以还原出问题。 确认缺陷 测试人员在提交问题单之前,尽量和开发人员做一轮确认,包括:是否是缺陷而不是优化或者新需求,是否是重复问题,缺陷是否可以重现,是否需要补充问题日志等信息,缺陷严重程度定级是否准确,是否阻塞测试工作需要确定解决日期。 开发、测试确认缺陷时间不做限定,可以在发现问题到开发启动问题修复之前的任何时间,鼓励尽早进行信息确认,也不限定是否直接找具体的开发人员做确认工作,也可以把缺陷单提交至模块的负责人做统一确认和反馈。 提交问题单 提交的问题单需要清晰、全面、可管理、可追溯。问题单需要有专门的缺陷管理系统,缺陷管理系统最好和需求、开发任务管理系统同源使用同一系统,以便于做统一的管理和规划。缺陷单一般包含问题单级别、类型、问题描述、根因分析、处理意见、测试建议、关联的测试用例、环境信息描述、开发定位所需日志、截图等。 修复问题单 开发人员接到问题单后,初步分析工作量安排时间计划。除了修复问题单中描述的问题外,还需要举一反三,进一步测试可能关联的场景,做深入测试,发现可能的深层次问题,并解决。修复问题单后,需要在问题单中介绍问题的根因、发生问题的条件、解决问题的方法。有的缺陷管理系统还可以把问题单和代码提交记录关联,帮助做跟踪统计和追溯。 自验证 问题修复后除了在本地开发环境验证没有问题外,还需要创建个人构建、部署至测试环境。测试环境尽量和测试人员使用的环境或者发现问题的环境保持一致,以尽量排除环境差异。在测试环境中进一步测试没有问题之后才算自验证通过。在DevOps工具中,可以通过个人级流水线实现个人构建打包、环境部署的全流程自动化,提高个人构建自验证的效率。 提交版本 代码修复完成后,经过必要的代码评审,发布至目标修复版本的代码分支。 验证修复 测试人员在测试环境部署包含缺陷修复的代码分支,验证是否完整修复问题。如果问题没有修复,或者修复引入了新的问题,需要把问题记录在缺陷单中,转回给开发人员做进一步分析和修复。 关闭问题单 在回归测试最终验证问题已经解决,并且没有产生新问题的情况下才能正常关闭。关闭问题单一般只能有三类情况:问题解决正常关闭、非问题关闭、重复问题关闭。可以在问题单中添加一些说明和图片,记录在哪个版本中已经修复解决。
-
问题描述 假设在本地Docker客户端上制作了一个nginx镜像,版本号为v5,使用docker images命令查询SIZE为22.8MB: $ docker images REPOSITORY TAG IMAGE ID CREATED SIZE nginx v5 22f2bf2e2b4f 9 days ago 22.8MB 通过客户端(即执行docker push命令)上传该镜像至SWR镜像仓库,查询大小为9.5MB。 在本地Docker客户端将镜像打包为tar格式,将nginx.tar下载至本地后,通过页面方式上传至SWR镜像仓库,查询大小为23.2MB。 可以发现,通过客户端和页面上传的镜像大小不一样。
-
请求消息体(可选) 该部分可选。请求消息体通常以结构化格式(如JSON或XML)发出,与请求消息头中Content-Type对应,传递除请求消息头之外的内容。若请求消息体中的参数支持中文,则中文字符必须为UTF-8编码。 每个接口的请求消息体内容不同,也并不是每个接口都需要有请求消息体(或者说消息体为空),GET、DELETE操作类型的接口就不需要消息体,消息体具体内容需要根据具体接口而定。 对于获取访问凭据接口,您可以从接口的请求部分看到所需的请求参数及参数说明。将消息体加入后的请求如下所示,加粗的斜体字段需要根据实际值填写,其中UserName为注册应用后分配的接口认证凭证ID,Password为注册应用后分配的接口认证凭证密钥。 POST https://{domain_name}/api/v2/tenant/token?grant_type=client_credentials Content-Type: application/x-www-form-urlencoded Authorization: Basic eFFp******************************************************************************************************bzZaNg== 到这里为止这个请求需要的内容就具备齐全了,您可以使用curl、Postman或直接编写代码等方式发送请求调用API。对于获取访问凭据接口,返回的响应消息体中“access_token”就是需要获取的Access Token。有了Token之后,您就可以使用Token认证调用其他API。 PostMan调用示例:
-
请求消息头 附加请求头字段,如指定的URI和HTTP方法所要求的字段。例如定义消息体类型的请求头“Content-Type”,请求鉴权信息等。 详细的公共请求消息头字段请参见表3。 表3 公共请求消息头 名称 描述 是否必选 示例 Content-Type 消息体的类型(格式)。默认取值为“application/json”,有其他取值时会在具体接口中专门说明。 是 application/json Accept 接受响应类型。推荐用户使用默认值application/json,有其他取值时会在具体接口中专门说明。 否 application/json Content-Length 请求body长度,单位为Byte。 否 3495 Authorization 认证凭据。如获取用户信息接口,值为Bearer {access_token}。 否 Bearer {access_token} 对于获取访问凭据接口,由于不需要认证,所以只添加“Content-Type”即可,添加消息头后的请求如下所示。 POST https://{domain_name}/api/v2/tenant/token Content-Type: application/x-www-form-urlencoded
-
请求URI OneAccess 请求URI由如下部分组成。 {URI-scheme} :// {domain_name} / {resource-path} ? {query-string} 尽管请求URI包含在请求消息头中,但大多数语言或框架都要求您从请求消息中单独传递它,所以在此单独强调。 表1 URI中的参数说明 参数 描述 URI-scheme 表示用于传输请求的协议,当前所有API均采用HTTPS协议。 domain_name 使用OneAccess服务API需要使用用户访问域名,获取方法请参见获取用户访问域名。 resource-path 资源路径,也即API访问路径。从具体API的URI模块获取,例如“获取访问凭证”API的resource-path为“/api/v2/tenant/token”。 query-string 查询参数,是可选部分,并不是每个API都有查询参数。查询参数前面需要带一个“?”,形式为“参数名=参数取值”,例如“limit=10”,表示查询不超过10条数据。 例如您需要获取用户访问域名为“abcdefg.huaweioneaccess.com”的实例Access Token,则需使用用户访问域名“abcdefg.huaweioneaccess.com”,并在获取访问凭据的URI部分找到resource-path(/api/v2/tenant/token),拼接起来如下所示。 https://abcdefg.huaweioneaccess.com/api/v2/tenant/token 图1 URI示意图 为查看方便,在每个具体API的URI部分,只给出resource-path部分,并将请求方法写在一起。这是因为URI-scheme都是HTTPS,而domain_name在同一个实例也相同,所以简洁起见将这两部分省略。
-
请求方法 HTTP请求方法(也称为操作或动词),它告诉服务您正在请求什么类型的操作。 表2 HTTP方法 方法 说明 GET 请求服务器返回指定资源。 PUT 请求服务器更新指定资源。 POST 请求服务器新增资源或执行特殊操作。 DELETE 请求服务器删除指定资源,如删除对象等。 HEAD 请求服务器资源头部。 PATCH 请求服务器更新资源的部分内容。 当资源不存在的时候,PATCH可能会去创建一个新的资源。 在获取访问凭据的URI部分,您可以看到其请求方法为“POST”,则其请求为: POST https://abcdefg.huaweioneaccess.com/api/v2/tenant/token
-
操作步骤 登录DAC管理控制台,在页面左上方选择区域。 在左侧导航栏专享版下方,单击“链管理”,进入“链管理”页面。 单击卡片上的链名称,进入“概览”页面。 在“存证管理”页面,单击“新增存证”。 在新增存证页面,选择普通存证的类型,添加文件,自定义存证名称。 目前仅支持普通存证。 单击“确定”。添加成功后,存证管理页面会显示一条存证记录,可以查看证据指纹和证据ID等信息。 在存证管理页面可以查看添加成功后存证名称,存证类型,证据指纹,存证ID,存证时间。
-
操作步骤 登录DAC管理控制台,在页面左上方选择区域。 在左侧导航栏专享版下方,单击“总览”,进入“总览”页面。 在“总览”页面,您可以查看以下信息: 快速入门:可按照快速入门提示内容完成操作,详细操作请参见入门指引。 我的资源和交易概览:详细信息请参见表1。 表1 参数说明 数据项 说明 我的资源 展示数字资产流转次数、数字资产发行个数、链个数、存证个数。 交易概览 展示数字资产链的数字资产交易信息,默认展示所有链的交易信息。 支持选择近3个月或近6个月的交易信息查看。 按照全量或所选链查看交易信息。 鼠标悬停在曲线的某时间节点,可查看该时间节点对应链的交易量。 单击图表右上角,刷新图表数据。 存证概览 展示不同时间段的存证个数情况,支持选择近1个小时、近24个小时、近7天或近1个月的交易信息查看。
-
购买溯源码套餐包 在总览页面,单击“购买溯源码套餐包”。 根据业务需要选择版本信息。 版本 溯源码个数 有效周期 标准版 (通用模板,最大商品个数50个) 2000个 1个月 20万个 1年 200万个 1年 1000万个 1年 企业版 (提供定制化溯源模板和素材,最大商品个数500个) 200个 1个月 2万个 1年 20万个 1年 100万个 1年 开启激活后,您的溯源码套餐包费用将会被一次性收取。 填写购买数量。 溯源码套餐包购买后版本不能变更,请仔细核对溯源码套餐包类型。 溯源码套餐包购买后不支持退款。 单击下一步。 确认购买套餐包信息无误,勾选协议许可,单击去支付。 确认订单无误后,单击确认付款,订单支付成功后,返回计费管理页面。 在计费管理页面,即可看到购买成功的溯源码套餐包显示已激活。
-
操作步骤 登录DAC管理控制台,在页面左上方选择区域。 在左侧导航栏专享版下方,单击“链管理”,进入“链管理”页面。 单击卡片上的链名称,进入“概览”页面。 在概览页面查看链基本信息、节点资源、网络分布信息。详细内容请参见表1。 表1 链概览 数据项 说明 状态 显示当前链的状态。 创建时间 创建链的具体时间,精确到秒。 计费模式 默认为“包年/包月”,并提示用户到期时间。 节点资源 节点个数。 网络分布 以拓扑图的形式展示链的网络分布情况。 配置文件 用户在数字资产链上进行管理操作,需要使用组织管理证书即配置文件。如果需要重新获取证书可以单击左侧下载配置文件。
共100000条
- 1
- ...
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
- 88
- 89
- 90
- 91
- 92
- 93
- 94
- 95
- 96
- 97
- 98
- 99
- 100
- 101
- 102
- 103
- 104
- 105
- 106
- 107
- 108
- 109
- 110
- 111
- 112
- 113
- 114
- 115
- 116
- 117
- 118
- 119
- 120
- 121
- 122
- 123
- 124
- 125
- 126
- 127
- 128
- 129
- 130
- 131
- 132
- 133
- 134
- 135
- 136
- 137
- 138
- 139
- 140
- 141
- 142
- 143
- 144
- 145
- 146
- 147
- 148
- 149
- 150
- 151
- 152
- 153
- 154
- 155
- 156
- 157
- 158
- 159
- 160
- 161
- 162
- 163
- 164
- 165
- 166
- 167
- 168
- 169
- 170
- 171
- 172
- 173
- 174
- 175
- 176
- 177
- 178
- 179
- 180
- 181
- 182
- 183
- 184
- 185
- 186
- 187
- 188
- 189
- 190
- 191
- 192
- 193
- 194
- 195
- 196
- 197
- 198
- 199
- 200
- 201
- 202
- 203
- 204
- 205
- 206
- 207
- 208
- 209
- 210
- 211
- 212
- 213
- 214
- 215
- 216
- 217
- 218
- 219
- 220
- 221
- 222
- 223
- 224
- 225
- 226
- 227
- 228
- 229
- 230
- 231
- 232
- 233
- 234
- 235
- 236
- 237
- 238
- 239
- 240
- 241
- 242
- 243
- 244
- 245
- 246
- 247
- 248
- 249
- 250
- 251
- 252
- 253
- 254
- 255
- 256
- 257
- 258
- 259
- 260
- 261
- 262
- 263
- 264
- 265
- 266
- 267
- 268
- 269
- 270
- 271
- 272
- 273
- 274
- 275
- 276
- 277
- 278
- 279
- 280
- 281
- 282
- 283
- 284
- 285
- 286
- 287
- 288
- 289
- 290
- 291
- 292
- 293
- 294
- 295
- 296
- 297
- 298
- 299
- 300
- 301
- 302
- 303
- 304
- 305
- 306
- 307
- 308
- 309
- 310
- 311
- 312
- 313
- 314
- 315
- 316
- 317
- 318
- 319
- 320
- 321
- 322
- 323
- 324
- 325
- 326
- 327
- 328
- 329
- 330
- 331
- 332
- 333
- 334
- 335
- 336
- 337
- 338
- 339
- 340
- 341
- 342
- 343
- 344
- 345
- 346
- 347
- 348
- 349
- 350
- 351
- 352
- 353
- 354
- 355
- 356
- 357
- 358
- 359
- 360
- 361
- 362
- 363
- 364
- 365
- 366
- 367
- 368
- 369
- 370
- 371
- 372
- 373
- 374
- 375
- 376
- 377
- 378
- 379
- 380
- 381
- 382
- 383
- 384
- 385
- 386
- 387
- 388
- 389
- 390
- 391
- 392
- 393
- 394
- 395
- 396
- 397
- 398
- 399
- 400
- 401
- 402
- 403
- 404
- 405
- 406
- 407
- 408
- 409
- 410
- 411
- 412
- 413
- 414
- 415
- 416
- 417
- 418
- 419
- 420
- 421
- 422
- 423
- 424
- 425
- 426
- 427
- 428
- 429
- 430
- 431
- 432
- 433
- 434
- 435
- 436
- 437
- 438
- 439
- 440
- 441
- 442
- 443
- 444
- 445
- 446
- 447
- 448
- 449
- 450
- 451
- 452
- 453
- 454
- 455
- 456
- 457
- 458
- 459
- 460
- 461
- 462
- 463
- 464
- 465
- 466
- 467
- 468
- 469
- 470
- 471
- 472
- 473
- 474
- 475
- 476
- 477
- 478
- 479
- 480
- 481
- 482
- 483
- 484
- 485
- 486
- 487
- 488
- 489
- 490
- 491
- 492
- 493
- 494
- 495
- 496
- 497
- 498
- 499
- 500
- 501
- 502
- 503
- 504
- 505
- 506
- 507
- 508
- 509
- 510
- 511
- 512
- 513
- 514
- 515
- 516
- 517
- 518
- 519
- 520
- 521
- 522
- 523
- 524
- 525
- 526
- 527
- 528
- 529
- 530
- 531
- 532
- 533
- 534
- 535
- 536
- 537
- 538
- 539
- 540
- 541
- 542
- 543
- 544
- 545
- 546
- 547
- 548
- 549
- 550
- 551
- 552
- 553
- 554
- 555
- 556
- 557
- 558
- 559
- 560
- 561
- 562
- 563
- 564
- 565
- 566
- 567
- 568
- 569
- 570
- 571
- 572
- 573
- 574
- 575
- 576
- 577
- 578
- 579
- 580
- 581
- 582
- 583
- 584
- 585
- 586
- 587
- 588
- 589
- 590
- 591
- 592
- 593
- 594
- 595
- 596
- 597
- 598
- 599
- 600
- 601
- 602
- 603
- 604
- 605
- 606
- 607
- 608
- 609
- 610
- 611
- 612
- 613
- 614
- 615
- 616
- 617
- 618
- 619
- 620
- 621
- 622
- 623
- 624
- 625
- 626
- 627
- 628
- 629
- 630
- 631
- 632
- 633
- 634
- 635
- 636
- 637
- 638
- 639
- 640
- 641
- 642
- 643
- 644
- 645
- 646
- 647
- 648
- 649
- 650
- 651
- 652
- 653
- 654
- 655
- 656
- 657
- 658
- 659
- 660
- 661
- 662
- 663
- 664
- 665
- 666
- 667
- 668
- 669
- 670
- 671
- 672
- 673
- 674
- 675
- 676
- 677
- 678
- 679
- 680
- 681
- 682
- 683
- 684
- 685
- 686
- 687
- 688
- 689
- 690
- 691
- 692
- 693
- 694
- 695
- 696
- 697
- 698
- 699
- 700
- 701
- 702
- 703
- 704
- 705
- 706
- 707
- 708
- 709
- 710
- 711
- 712
- 713
- 714
- 715
- 716
- 717
- 718
- 719
- 720
- 721
- 722
- 723
- 724
- 725
- 726
- 727
- 728
- 729
- 730
- 731
- 732
- 733
- 734
- 735
- 736
- 737
- 738
- 739
- 740
- 741
- 742
- 743
- 744
- 745
- 746
- 747
- 748
- 749
- 750
- 751
- 752
- 753
- 754
- 755
- 756
- 757
- 758
- 759
- 760
- 761
- 762
- 763
- 764
- 765
- 766
- 767
- 768
- 769
- 770
- 771
- 772
- 773
- 774
- 775
- 776
- 777
- 778
- 779
- 780
- 781
- 782
- 783
- 784
- 785
- 786
- 787
- 788
- 789
- 790
- 791
- 792
- 793
- 794
- 795
- 796
- 797
- 798
- 799
- 800
- 801
- 802
- 803
- 804
- 805
- 806
- 807
- 808
- 809
- 810
- 811
- 812
- 813
- 814
- 815
- 816
- 817
- 818
- 819
- 820
- 821
- 822
- 823
- 824
- 825
- 826
- 827
- 828
- 829
- 830
- 831
- 832
- 833
- 834
- 835
- 836
- 837
- 838
- 839
- 840
- 841
- 842
- 843
- 844
- 845
- 846
- 847
- 848
- 849
- 850
- 851
- 852
- 853
- 854
- 855
- 856
- 857
- 858
- 859
- 860
- 861
- 862
- 863
- 864
- 865
- 866
- 867
- 868
- 869
- 870
- 871
- 872
- 873
- 874
- 875
- 876
- 877
- 878
- 879
- 880
- 881
- 882
- 883
- 884
- 885
- 886
- 887
- 888
- 889
- 890
- 891
- 892
- 893
- 894
- 895
- 896
- 897
- 898
- 899
- 900
- 901
- 902
- 903
- 904
- 905
- 906
- 907
- 908
- 909
- 910
- 911
- 912
- 913
- 914
- 915
- 916
- 917
- 918
- 919
- 920
- 921
- 922
- 923
- 924
- 925
- 926
- 927
- 928
- 929
- 930
- 931
- 932
- 933
- 934
- 935
- 936
- 937
- 938
- 939
- 940
- 941
- 942
- 943
- 944
- 945
- 946
- 947
- 948
- 949
- 950
- 951
- 952
- 953
- 954
- 955
- 956
- 957
- 958
- 959
- 960
- 961
- 962
- 963
- 964
- 965
- 966
- 967
- 968
- 969
- 970
- 971
- 972
- 973
- 974
- 975
- 976
- 977
- 978
- 979
- 980
- 981
- 982
- 983
- 984
- 985
- 986
- 987
- 988
- 989
- 990
- 991
- 992
- 993
- 994
- 995
- 996
- 997
- 998
- 999
- 1000
- 1001
- 1002
- 1003
- 1004
- 1005
- 1006
- 1007
- 1008
- 1009
- 1010
- 1011
- 1012
- 1013
- 1014
- 1015
- 1016
- 1017
- 1018
- 1019
- 1020
- 1021
- 1022
- 1023
- 1024
- 1025
- 1026
- 1027
- 1028
- 1029
- 1030
- 1031
- 1032
- 1033
- 1034
- 1035
- 1036
- 1037
- 1038
- 1039
- 1040
- 1041
- 1042
- 1043
- 1044
- 1045
- 1046
- 1047
- 1048
- 1049
- 1050
- 1051
- 1052
- 1053
- 1054
- 1055
- 1056
- 1057
- 1058
- 1059
- 1060
- 1061
- 1062
- 1063
- 1064
- 1065
- 1066
- 1067
- 1068
- 1069
- 1070
- 1071
- 1072
- 1073
- 1074
- 1075
- 1076
- 1077
- 1078
- 1079
- 1080
- 1081
- 1082
- 1083
- 1084
- 1085
- 1086
- 1087
- 1088
- 1089
- 1090
- 1091
- 1092
- 1093
- 1094
- 1095
- 1096
- 1097
- 1098
- 1099
- 1100
- 1101
- 1102
- 1103
- 1104
- 1105
- 1106
- 1107
- 1108
- 1109
- 1110
- 1111
- 1112
- 1113
- 1114
- 1115
- 1116
- 1117
- 1118
- 1119
- 1120
- 1121
- 1122
- 1123
- 1124
- 1125
- 1126
- 1127
- 1128
- 1129
- 1130
- 1131
- 1132
- 1133
- 1134
- 1135
- 1136
- 1137
- 1138
- 1139
- 1140
- 1141
- 1142
- 1143
- 1144
- 1145
- 1146
- 1147
- 1148
- 1149
- 1150
- 1151
- 1152
- 1153
- 1154
- 1155
- 1156
- 1157
- 1158
- 1159
- 1160
- 1161
- 1162
- 1163
- 1164
- 1165
- 1166
- 1167
- 1168
- 1169
- 1170
- 1171
- 1172
- 1173
- 1174
- 1175
- 1176
- 1177
- 1178
- 1179
- 1180
- 1181
- 1182
- 1183
- 1184
- 1185
- 1186
- 1187
- 1188
- 1189
- 1190
- 1191
- 1192
- 1193
- 1194
- 1195
- 1196
- 1197
- 1198
- 1199
- 1200
- 1201
- 1202
- 1203
- 1204
- 1205
- 1206
- 1207
- 1208
- 1209
- 1210
- 1211
- 1212
- 1213
- 1214
- 1215
- 1216
- 1217
- 1218
- 1219
- 1220
- 1221
- 1222
- 1223
- 1224
- 1225
- 1226
- 1227
- 1228
- 1229
- 1230
- 1231
- 1232
- 1233
- 1234
- 1235
- 1236
- 1237
- 1238
- 1239
- 1240
- 1241
- 1242
- 1243
- 1244
- 1245
- 1246
- 1247
- 1248
- 1249
- 1250
- 1251
- 1252
- 1253
- 1254
- 1255
- 1256
- 1257
- 1258
- 1259
- 1260
- 1261
- 1262
- 1263
- 1264
- 1265
- 1266
- 1267
- 1268
- 1269
- 1270
- 1271
- 1272
- 1273
- 1274
- 1275
- 1276
- 1277
- 1278
- 1279
- 1280
- 1281
- 1282
- 1283
- 1284
- 1285
- 1286
- 1287
- 1288
- 1289
- 1290
- 1291
- 1292
- 1293
- 1294
- 1295
- 1296
- 1297
- 1298
- 1299
- 1300
- 1301
- 1302
- 1303
- 1304
- 1305
- 1306
- 1307
- 1308
- 1309
- 1310
- 1311
- 1312
- 1313
- 1314
- 1315
- 1316
- 1317
- 1318
- 1319
- 1320
- 1321
- 1322
- 1323
- 1324
- 1325
- 1326
- 1327
- 1328
- 1329
- 1330
- 1331
- 1332
- 1333
- 1334
- 1335
- 1336
- 1337
- 1338
- 1339
- 1340
- 1341
- 1342
- 1343
- 1344
- 1345
- 1346
- 1347
- 1348
- 1349
- 1350
- 1351
- 1352
- 1353
- 1354
- 1355
- 1356
- 1357
- 1358
- 1359
- 1360
- 1361
- 1362
- 1363
- 1364
- 1365
- 1366
- 1367
- 1368
- 1369
- 1370
- 1371
- 1372
- 1373
- 1374
- 1375
- 1376
- 1377
- 1378
- 1379
- 1380
- 1381
- 1382
- 1383
- 1384
- 1385
- 1386
- 1387
- 1388
- 1389
- 1390
- 1391
- 1392
- 1393
- 1394
- 1395
- 1396
- 1397
- 1398
- 1399
- 1400
- 1401
- 1402
- 1403
- 1404
- 1405
- 1406
- 1407
- 1408
- 1409
- 1410
- 1411
- 1412
- 1413
- 1414
- 1415
- 1416
- 1417
- 1418
- 1419
- 1420
- 1421
- 1422
- 1423
- 1424
- 1425
- 1426
- 1427
- 1428
- 1429
- 1430
- 1431
- 1432
- 1433
- 1434
- 1435
- 1436
- 1437
- 1438
- 1439
- 1440
- 1441
- 1442
- 1443
- 1444
- 1445
- 1446
- 1447
- 1448
- 1449
- 1450
- 1451
- 1452
- 1453
- 1454
- 1455
- 1456
- 1457
- 1458
- 1459
- 1460
- 1461
- 1462
- 1463
- 1464
- 1465
- 1466
- 1467
- 1468
- 1469
- 1470
- 1471
- 1472
- 1473
- 1474
- 1475
- 1476
- 1477
- 1478
- 1479
- 1480
- 1481
- 1482
- 1483
- 1484
- 1485
- 1486
- 1487
- 1488
- 1489
- 1490
- 1491
- 1492
- 1493
- 1494
- 1495
- 1496
- 1497
- 1498
- 1499
- 1500
- 1501
- 1502
- 1503
- 1504
- 1505
- 1506
- 1507
- 1508
- 1509
- 1510
- 1511
- 1512
- 1513
- 1514
- 1515
- 1516
- 1517
- 1518
- 1519
- 1520
- 1521
- 1522
- 1523
- 1524
- 1525
- 1526
- 1527
- 1528
- 1529
- 1530
- 1531
- 1532
- 1533
- 1534
- 1535
- 1536
- 1537
- 1538
- 1539
- 1540
- 1541
- 1542
- 1543
- 1544
- 1545
- 1546
- 1547
- 1548
- 1549
- 1550
- 1551
- 1552
- 1553
- 1554
- 1555
- 1556
- 1557
- 1558
- 1559
- 1560
- 1561
- 1562
- 1563
- 1564
- 1565
- 1566
- 1567
- 1568
- 1569
- 1570
- 1571
- 1572
- 1573
- 1574
- 1575
- 1576
- 1577
- 1578
- 1579
- 1580
- 1581
- 1582
- 1583
- 1584
- 1585
- 1586
- 1587
- 1588
- 1589
- 1590
- 1591
- 1592
- 1593
- 1594
- 1595
- 1596
- 1597
- 1598
- 1599
- 1600
- 1601
- 1602
- 1603
- 1604
- 1605
- 1606
- 1607
- 1608
- 1609
- 1610
- 1611
- 1612
- 1613
- 1614
- 1615
- 1616
- 1617
- 1618
- 1619
- 1620
- 1621
- 1622
- 1623
- 1624
- 1625
- 1626
- 1627
- 1628
- 1629
- 1630
- 1631
- 1632
- 1633
- 1634
- 1635
- 1636
- 1637
- 1638
- 1639
- 1640
- 1641
- 1642
- 1643
- 1644
- 1645
- 1646
- 1647
- 1648
- 1649
- 1650
- 1651
- 1652
- 1653
- 1654
- 1655
- 1656
- 1657
- 1658
- 1659
- 1660
- 1661
- 1662
- 1663
- 1664
- 1665
- 1666
- 1667
- 1668
- 1669
- 1670
- 1671
- 1672
- 1673
- 1674
- 1675
- 1676
- 1677
- 1678
- 1679
- 1680
- 1681
- 1682
- 1683
- 1684
- 1685
- 1686
- 1687
- 1688
- 1689
- 1690
- 1691
- 1692
- 1693
- 1694
- 1695
- 1696
- 1697
- 1698
- 1699
- 1700
- 1701
- 1702
- 1703
- 1704
- 1705
- 1706
- 1707
- 1708
- 1709
- 1710
- 1711
- 1712
- 1713
- 1714
- 1715
- 1716
- 1717
- 1718
- 1719
- 1720
- 1721
- 1722
- 1723
- 1724
- 1725
- 1726
- 1727
- 1728
- 1729
- 1730
- 1731
- 1732
- 1733
- 1734
- 1735
- 1736
- 1737
- 1738
- 1739
- 1740
- 1741
- 1742
- 1743
- 1744
- 1745
- 1746
- 1747
- 1748
- 1749
- 1750
- 1751
- 1752
- 1753
- 1754
- 1755
- 1756
- 1757
- 1758
- 1759
- 1760
- 1761
- 1762
- 1763
- 1764
- 1765
- 1766
- 1767
- 1768
- 1769
- 1770
- 1771
- 1772
- 1773
- 1774
- 1775
- 1776
- 1777
- 1778
- 1779
- 1780
- 1781
- 1782
- 1783
- 1784
- 1785
- 1786
- 1787
- 1788
- 1789
- 1790
- 1791
- 1792
- 1793
- 1794
- 1795
- 1796
- 1797
- 1798
- 1799
- 1800
- 1801
- 1802
- 1803
- 1804
- 1805
- 1806
- 1807
- 1808
- 1809
- 1810
- 1811
- 1812
- 1813
- 1814
- 1815
- 1816
- 1817
- 1818
- 1819
- 1820
- 1821
- 1822
- 1823
- 1824
- 1825
- 1826
- 1827
- 1828
- 1829
- 1830
- 1831
- 1832
- 1833
- 1834
- 1835
- 1836
- 1837
- 1838
- 1839
- 1840
- 1841
- 1842
- 1843
- 1844
- 1845
- 1846
- 1847
- 1848
- 1849
- 1850
- 1851
- 1852
- 1853
- 1854
- 1855
- 1856
- 1857
- 1858
- 1859
- 1860
- 1861
- 1862
- 1863
- 1864
- 1865
- 1866
- 1867
- 1868
- 1869
- 1870
- 1871
- 1872
- 1873
- 1874
- 1875
- 1876
- 1877
- 1878
- 1879
- 1880
- 1881
- 1882
- 1883
- 1884
- 1885
- 1886
- 1887
- 1888
- 1889
- 1890
- 1891
- 1892
- 1893
- 1894
- 1895
- 1896
- 1897
- 1898
- 1899
- 1900
- 1901
- 1902
- 1903
- 1904
- 1905
- 1906
- 1907
- 1908
- 1909
- 1910
- 1911
- 1912
- 1913
- 1914
- 1915
- 1916
- 1917
- 1918
- 1919
- 1920
- 1921
- 1922
- 1923
- 1924
- 1925
- 1926
- 1927
- 1928
- 1929
- 1930
- 1931
- 1932
- 1933
- 1934
- 1935
- 1936
- 1937
- 1938
- 1939
- 1940
- 1941
- 1942
- 1943
- 1944
- 1945
- 1946
- 1947
- 1948
- 1949
- 1950
- 1951
- 1952
- 1953
- 1954
- 1955
- 1956
- 1957
- 1958
- 1959
- 1960
- 1961
- 1962
- 1963
- 1964
- 1965
- 1966
- 1967
- 1968
- 1969
- 1970
- 1971
- 1972
- 1973
- 1974
- 1975
- 1976
- 1977
- 1978
- 1979
- 1980
- 1981
- 1982
- 1983
- 1984
- 1985
- 1986
- 1987
- 1988
- 1989
- 1990
- 1991
- 1992
- 1993
- 1994
- 1995
- 1996
- 1997
- 1998
- 1999
- 2000
- 2001
- 2002
- 2003
- 2004
- 2005
- 2006
- 2007
- 2008
- 2009
- 2010
- 2011
- 2012
- 2013
- 2014
- 2015
- 2016
- 2017
- 2018
- 2019
- 2020
- 2021
- 2022
- 2023
- 2024
- 2025
- 2026
- 2027
- 2028
- 2029
- 2030
- 2031
- 2032
- 2033
- 2034
- 2035
- 2036
- 2037
- 2038
- 2039
- 2040
- 2041
- 2042
- 2043
- 2044
- 2045
- 2046
- 2047
- 2048
- 2049
- 2050
- 2051
- 2052
- 2053
- 2054
- 2055
- 2056
- 2057
- 2058
- 2059
- 2060
- 2061
- 2062
- 2063
- 2064
- 2065
- 2066
- 2067
- 2068
- 2069
- 2070
- 2071
- 2072
- 2073
- 2074
- 2075
- 2076
- 2077
- 2078
- 2079
- 2080
- 2081
- 2082
- 2083
- 2084
- 2085
- 2086
- 2087
- 2088
- 2089
- 2090
- 2091
- 2092
- 2093
- 2094
- 2095
- 2096
- 2097
- 2098
- 2099
- 2100
- 2101
- 2102
- 2103
- 2104
- 2105
- 2106
- 2107
- 2108
- 2109
- 2110
- 2111
- 2112
- 2113
- 2114
- 2115
- 2116
- 2117
- 2118
- 2119
- 2120
- 2121
- 2122
- 2123
- 2124
- 2125
- 2126
- 2127
- 2128
- 2129
- 2130
- 2131
- 2132
- 2133
- 2134
- 2135
- 2136
- 2137
- 2138
- 2139
- 2140
- 2141
- 2142
- 2143
- 2144
- 2145
- 2146
- 2147
- 2148
- 2149
- 2150
- 2151
- 2152
- 2153
- 2154
- 2155
- 2156
- 2157
- 2158
- 2159
- 2160
- 2161
- 2162
- 2163
- 2164
- 2165
- 2166
- 2167
- 2168
- 2169
- 2170
- 2171
- 2172
- 2173
- 2174
- 2175
- 2176
- 2177
- 2178
- 2179
- 2180
- 2181
- 2182
- 2183
- 2184
- 2185
- 2186
- 2187
- 2188
- 2189
- 2190
- 2191
- 2192
- 2193
- 2194
- 2195
- 2196
- 2197
- 2198
- 2199
- 2200
- 2201
- 2202
- 2203
- 2204
- 2205
- 2206
- 2207
- 2208
- 2209
- 2210
- 2211
- 2212
- 2213
- 2214
- 2215
- 2216
- 2217
- 2218
- 2219
- 2220
- 2221
- 2222
- 2223
- 2224
- 2225
- 2226
- 2227
- 2228
- 2229
- 2230
- 2231
- 2232
- 2233
- 2234
- 2235
- 2236
- 2237
- 2238
- 2239
- 2240
- 2241
- 2242
- 2243
- 2244
- 2245
- 2246
- 2247
- 2248
- 2249
- 2250
- 2251
- 2252
- 2253
- 2254
- 2255
- 2256
- 2257
- 2258
- 2259
- 2260
- 2261
- 2262
- 2263
- 2264
- 2265
- 2266
- 2267
- 2268
- 2269
- 2270
- 2271
- 2272
- 2273
- 2274
- 2275
- 2276
- 2277
- 2278
- 2279
- 2280
- 2281
- 2282
- 2283
- 2284
- 2285
- 2286
- 2287
- 2288
- 2289
- 2290
- 2291
- 2292
- 2293
- 2294
- 2295
- 2296
- 2297
- 2298
- 2299
- 2300
- 2301
- 2302
- 2303
- 2304
- 2305
- 2306
- 2307
- 2308
- 2309
- 2310
- 2311
- 2312
- 2313
- 2314
- 2315
- 2316
- 2317
- 2318
- 2319
- 2320
- 2321
- 2322
- 2323
- 2324
- 2325
- 2326
- 2327
- 2328
- 2329
- 2330
- 2331
- 2332
- 2333
- 2334
- 2335
- 2336
- 2337
- 2338
- 2339
- 2340
- 2341
- 2342
- 2343
- 2344
- 2345
- 2346
- 2347
- 2348
- 2349
- 2350
- 2351
- 2352
- 2353
- 2354
- 2355
- 2356
- 2357
- 2358
- 2359
- 2360
- 2361
- 2362
- 2363
- 2364
- 2365
- 2366
- 2367
- 2368
- 2369
- 2370
- 2371
- 2372
- 2373
- 2374
- 2375
- 2376
- 2377
- 2378
- 2379
- 2380
- 2381
- 2382
- 2383
- ...
- 2384
- 2385
- 2386
- 2387
- 2388
- 2389
- 2390
- 2391
- 2392
- 2393
- 2394
- 2395
- 2396
- 2397
- 2398
- 2399
- 2400
- 2401
- 2402
- 2403
- 2404
- 2405
- 2406
- 2407
- 2408
- 2409
- 2410
- 2411
- 2412
- 2413
- 2414
- 2415
- 2416
- 2417
- 2418
- 2419
- 2420
- 2421
- 2422
- 2423
- 2424
- 2425
- 2426
- 2427
- 2428
- 2429
- 2430
- 2431
- 2432
- 2433
- 2434
- 2435
- 2436
- 2437
- 2438
- 2439
- 2440
- 2441
- 2442
- 2443
- 2444
- 2445
- 2446
- 2447
- 2448
- 2449
- 2450
- 2451
- 2452
- 2453
- 2454
- 2455
- 2456
- 2457
- 2458
- 2459
- 2460
- 2461
- 2462
- 2463
- 2464
- 2465
- 2466
- 2467
- 2468
- 2469
- 2470
- 2471
- 2472
- 2473
- 2474
- 2475
- 2476
- 2477
- 2478
- 2479
- 2480
- 2481
- 2482
- 2483
- 2484
- 2485
- 2486
- 2487
- 2488
- 2489
- 2490
- 2491
- 2492
- 2493
- 2494
- 2495
- 2496
- 2497
- 2498
- 2499
- 2500
- 2501
- 2502
- 2503
- 2504
- 2505
- 2506
- 2507
- 2508
- 2509
- 2510
- 2511
- 2512
- 2513
- 2514
- 2515
- 2516
- 2517
- 2518
- 2519
- 2520
- 2521
- 2522
- 2523
- 2524
- 2525
- 2526
- 2527
- 2528
- 2529
- 2530
- 2531
- 2532
- 2533
- 2534
- 2535
- 2536
- 2537
- 2538
- 2539
- 2540
- 2541
- 2542
- 2543
- 2544
- 2545
- 2546
- 2547
- 2548
- 2549
- 2550
- 2551
- 2552
- 2553
- 2554
- 2555
- 2556
- 2557
- 2558
- 2559
- 2560
- 2561
- 2562
- 2563
- 2564
- 2565
- 2566
- 2567
- 2568
- 2569
- 2570
- 2571
- 2572
- 2573
- 2574
- 2575
- 2576
- 2577
- 2578
- 2579
- 2580
- 2581
- 2582
- 2583
- 2584
- 2585
- 2586
- 2587
- 2588
- 2589
- 2590
- 2591
- 2592
- 2593
- 2594
- 2595
- 2596
- 2597
- 2598
- 2599
- 2600
- 2601
- 2602
- 2603
- 2604
- 2605
- 2606
- 2607
- 2608
- 2609
- 2610
- 2611
- 2612
- 2613
- 2614
- 2615
- 2616
- 2617
- 2618
- 2619
- 2620
- 2621
- 2622
- 2623
- 2624
- 2625
- 2626
- 2627
- 2628
- 2629
- 2630
- 2631
- 2632
- 2633
- 2634
- 2635
- 2636
- 2637
- 2638
- 2639
- 2640
- 2641
- 2642
- 2643
- 2644
- 2645
- 2646
- 2647
- 2648
- 2649
- 2650
- 2651
- 2652
- 2653
- 2654
- 2655
- 2656
- 2657
- 2658
- 2659
- 2660
- 2661
- 2662
- 2663
- 2664
- 2665
- 2666
- 2667
- 2668
- 2669
- 2670
- 2671
- 2672
- 2673
- 2674
- 2675
- 2676
- 2677
- 2678
- 2679
- 2680
- 2681
- 2682
- 2683
- 2684
- 2685
- 2686
- 2687
- 2688
- 2689
- 2690
- 2691
- 2692
- 2693
- 2694
- 2695
- 2696
- 2697
- 2698
- 2699
- 2700
- 2701
- 2702
- 2703
- 2704
- 2705
- 2706
- 2707
- 2708
- 2709
- 2710
- 2711
- 2712
- 2713
- 2714
- 2715
- 2716
- 2717
- 2718
- 2719
- 2720
- 2721
- 2722
- 2723
- 2724
- 2725
- 2726
- 2727
- 2728
- 2729
- 2730
- 2731
- 2732
- 2733
- 2734
- 2735
- 2736
- 2737
- 2738
- 2739
- 2740
- 2741
- 2742
- 2743
- 2744
- 2745
- 2746
- 2747
- 2748
- 2749
- 2750
- 2751
- 2752
- 2753
- 2754
- 2755
- 2756
- 2757
- 2758
- 2759
- 2760
- 2761
- 2762
- 2763
- 2764
- 2765
- 2766
- 2767
- 2768
- 2769
- 2770
- 2771
- 2772
- 2773
- 2774
- 2775
- 2776
- 2777
- 2778
- 2779
- 2780
- 2781
- 2782
- 2783
- 2784
- 2785
- 2786
- 2787
- 2788
- 2789
- 2790
- 2791
- 2792
- 2793
- 2794
- 2795
- 2796
- 2797
- 2798
- 2799
- 2800
- 2801
- 2802
- 2803
- 2804
- 2805
- 2806
- 2807
- 2808
- 2809
- 2810
- 2811
- 2812
- 2813
- 2814
- 2815
- 2816
- 2817
- 2818
- 2819
- 2820
- 2821
- 2822
- 2823
- 2824
- 2825
- 2826
- 2827
- 2828
- 2829
- 2830
- 2831
- 2832
- 2833
- 2834
- 2835
- 2836
- 2837
- 2838
- 2839
- 2840
- 2841
- 2842
- 2843
- 2844
- 2845
- 2846
- 2847
- 2848
- 2849
- 2850
- 2851
- 2852
- 2853
- 2854
- 2855
- 2856
- 2857
- 2858
- 2859
- 2860
- 2861
- 2862
- 2863
- 2864
- 2865
- 2866
- 2867
- 2868
- 2869
- 2870
- 2871
- 2872
- 2873
- 2874
- 2875
- 2876
- 2877
- 2878
- 2879
- 2880
- 2881
- 2882
- 2883
- 2884
- 2885
- 2886
- 2887
- 2888
- 2889
- 2890
- 2891
- 2892
- 2893
- 2894
- 2895
- 2896
- 2897
- 2898
- 2899
- 2900
- 2901
- 2902
- 2903
- 2904
- 2905
- 2906
- 2907
- 2908
- 2909
- 2910
- 2911
- 2912
- 2913
- 2914
- 2915
- 2916
- 2917
- 2918
- 2919
- 2920
- 2921
- 2922
- 2923
- 2924
- 2925
- 2926
- 2927
- 2928
- 2929
- 2930
- 2931
- 2932
- 2933
- 2934
- 2935
- 2936
- 2937
- 2938
- 2939
- 2940
- 2941
- 2942
- 2943
- 2944
- 2945
- 2946
- 2947
- 2948
- 2949
- 2950
- 2951
- 2952
- 2953
- 2954
- 2955
- 2956
- 2957
- 2958
- 2959
- 2960
- 2961
- 2962
- 2963
- 2964
- 2965
- 2966
- 2967
- 2968
- 2969
- 2970
- 2971
- 2972
- 2973
- 2974
- 2975
- 2976
- 2977
- 2978
- 2979
- 2980
- 2981
- 2982
- 2983
- 2984
- 2985
- 2986
- 2987
- 2988
- 2989
- 2990
- 2991
- 2992
- 2993
- 2994
- 2995
- 2996
- 2997
- 2998
- 2999
- 3000
- 3001
- 3002
- 3003
- 3004
- 3005
- 3006
- 3007
- 3008
- 3009
- 3010
- 3011
- 3012
- 3013
- 3014
- 3015
- 3016
- 3017
- 3018
- 3019
- 3020
- 3021
- 3022
- 3023
- 3024
- 3025
- 3026
- 3027
- 3028
- 3029
- 3030
- 3031
- 3032
- 3033
- 3034
- 3035
- 3036
- 3037
- 3038
- 3039
- 3040
- 3041
- 3042
- 3043
- 3044
- 3045
- 3046
- 3047
- 3048
- 3049
- 3050
- 3051
- 3052
- 3053
- 3054
- 3055
- 3056
- 3057
- 3058
- 3059
- 3060
- 3061
- 3062
- 3063
- 3064
- 3065
- 3066
- 3067
- 3068
- 3069
- 3070
- 3071
- 3072
- 3073
- 3074
- 3075
- 3076
- 3077
- 3078
- 3079
- 3080
- 3081
- 3082
- 3083
- 3084
- 3085
- 3086
- 3087
- 3088
- 3089
- 3090
- 3091
- 3092
- 3093
- 3094
- 3095
- 3096
- 3097
- 3098
- 3099
- 3100
- 3101
- 3102
- 3103
- 3104
- 3105
- 3106
- 3107
- 3108
- 3109
- 3110
- 3111
- 3112
- 3113
- 3114
- 3115
- 3116
- 3117
- 3118
- 3119
- 3120
- 3121
- 3122
- 3123
- 3124
- 3125
- 3126
- 3127
- 3128
- 3129
- 3130
- 3131
- 3132
- 3133
- 3134
- 3135
- 3136
- 3137
- 3138
- 3139
- 3140
- 3141
- 3142
- 3143
- 3144
- 3145
- 3146
- 3147
- 3148
- 3149
- 3150
- 3151
- 3152
- 3153
- 3154
- 3155
- 3156
- 3157
- 3158
- 3159
- 3160
- 3161
- 3162
- 3163
- 3164
- 3165
- 3166
- 3167
- 3168
- 3169
- 3170
- 3171
- 3172
- 3173
- 3174
- 3175
- 3176
- 3177
- 3178
- 3179
- 3180
- 3181
- 3182
- 3183
- 3184
- 3185
- 3186
- 3187
- 3188
- 3189
- 3190
- 3191
- 3192
- 3193
- 3194
- 3195
- 3196
- 3197
- 3198
- 3199
- 3200
- 3201
- 3202
- 3203
- 3204
- 3205
- 3206
- 3207
- 3208
- 3209
- 3210
- 3211
- 3212
- 3213
- 3214
- 3215
- 3216
- 3217
- 3218
- 3219
- 3220
- 3221
- 3222
- 3223
- 3224
- 3225
- 3226
- 3227
- 3228
- 3229
- 3230
- 3231
- 3232
- 3233
- 3234
- 3235
- 3236
- 3237
- 3238
- 3239
- 3240
- 3241
- 3242
- 3243
- 3244
- 3245
- 3246
- 3247
- 3248
- 3249
- 3250
- 3251
- 3252
- 3253
- 3254
- 3255
- 3256
- 3257
- 3258
- 3259
- 3260
- 3261
- 3262
- 3263
- 3264
- 3265
- 3266
- 3267
- 3268
- 3269
- 3270
- 3271
- 3272
- 3273
- 3274
- 3275
- 3276
- 3277
- 3278
- 3279
- 3280
- 3281
- 3282
- 3283
- 3284
- 3285
- 3286
- 3287
- 3288
- 3289
- 3290
- 3291
- 3292
- 3293
- 3294
- 3295
- 3296
- 3297
- 3298
- 3299
- 3300
- 3301
- 3302
- 3303
- 3304
- 3305
- 3306
- 3307
- 3308
- 3309
- 3310
- 3311
- 3312
- 3313
- 3314
- 3315
- 3316
- 3317
- 3318
- 3319
- 3320
- 3321
- 3322
- 3323
- 3324
- 3325
- 3326
- 3327
- 3328
- 3329
- 3330
- 3331
- 3332
- 3333
- 3333
推荐文章