华为云用户手册
-
导入流程 本节以外部镜像文件格式为zvhd2和raw以外的场景为例,介绍完整的导入流程。 转换镜像格式时,可以使用qemu-img-hw,也可以使用开源工具qemu-img。qemu-img-hw仅适用于Linux操作系统,因此本节提供了基于Linux和Windows操作系统环境的导入指导。 快速导入工具中包含两个子工具,分别实现两项功能:qemu-img-hw(镜像格式转换)、CreateMF.jar(生成位表文件)。 基于Linux操作系统环境 推荐使用云平台的EulerOS云服务器作为操作的环境,流程如图1所示。 图1 导入流程(基于Linux操作系统环境) 详细操作请参见快速导入镜像文件(基于Linux环境)。 基于Windows操作系统环境 推荐使用Windows系统本地PC作为操作的环境,流程如图2所示。 开源镜像转换工具qemu-img不支持将镜像文件转换为zvhd2格式,因此需要转换为raw格式,再使用CreateMF.jar生成位表文件。 图2 导入流程(基于Windows操作系统环境) 详细操作请参见快速导入镜像文件(基于Windows环境)。
-
创建过程 通过ISO文件创建Windows系统盘镜像的流程如图1所示。 图1 创建过程(Windows系统盘镜像) 步骤说明如下: 为原始ISO文件集成virtio驱动 由于Windows操作系统采用ide磁盘和virtio网卡,因此需要在注册为云平台的镜像前,先在Windows操作系统的ISO文件中集成virtio驱动。详情请参考为原始ISO文件集成virtio驱动。 将ISO文件注册为ISO镜像 在管理控制台上将已集成virtio驱动的ISO文件注册为镜像。该镜像为ISO镜像,不能直接用于发放云服务器。详情请参考将ISO文件注册为镜像(Windows)。 使用ISO镜像创建临时云服务器 使用注册成功的ISO镜像创建一个临时云服务器,该云服务器为空云服务器,即没有操作系统,也未安装任何驱动。详情请参考使用ISO镜像创建Windows云服务器。 为临时云服务器安装操作系统和驱动,并完成相关配置 包含如下操作:安装操作系统、安装virtio驱动、安装PV driver、配置网卡属性等。详情请参考安装Windows操作系统和virtio驱动和配置云服务器并创建Windows系统盘镜像中的步骤1。 将临时云服务器创建为系统盘镜像 在管理控制台上将已完成安装和配置的临时云服务器创建为系统盘镜像。镜像创建成功后,删除临时云服务器避免继续产生费用。详情请参考通过云服务器创建Windows系统盘镜像。
-
后续操作 数据盘镜像创建成功后,您可能需要创建新的数据盘并挂载到目标云服务器上,有两种方法供您参考: 在创建好的数据盘镜像所在行,单击“申请数据盘”创建新的数据盘(支持批量创建),然后挂载至目标云服务器。 在创建弹性云服务器向导页面,为云服务器添加数据盘时,单击“用数据盘镜像创建磁盘”,然后选择一个数据盘镜像。 此方式下,每个数据盘镜像只可以用来创建一个数据盘,不能重复选择。例如,为云服务器添加了一块数据盘,这个数据盘来源是数据盘镜像data_disk_image,如果想再添加一块数据盘,则不能使用数据盘镜像data_disk_image来创建。 图3 添加数据盘
-
流程说明 通过外部镜像文件创建数据盘镜像的过程如下: 图1 创建过程 准备符合格式要求的外部镜像文件。当前支持vhd、vmdk、qcow2、raw、vhdx、qcow、vdi、qed、zvhd或zvhd2格式,其他镜像文件,需要转换格式后再导入。 镜像格式转换可参考“通过qemu-img工具转换镜像格式”或“通过qemu-img-hw工具转换镜像格式”。 上传外部镜像文件到OBS个人桶中,注意OBS桶和镜像文件的存储类别必须是标准存储。具体操作可参考上传镜像文件(Linux)。 创建数据盘镜像,具体操作请参见操作步骤。 使用数据盘镜像创建新的数据盘,具体操作请参见后续操作。
-
背景知识 通过云服务器创建系统盘镜像的过程如下:从现有镜像开始,创建一个云服务器实例,自定义该实例,从该实例创建新的镜像,并最终创建新的实例,如图1所示。 图1 系统盘镜像使用流程 创建系统盘镜像常见于应用扩容场景。也可用于混合云部署场景,为了实现云上及线下资源同步,可以借助镜像导入导出功能,实现过程如下: 基于云服务器制作系统盘镜像 此处的云服务器必须为私有镜像所创建,否则基于该云服务器制作的系统盘镜像不支持导出。 将镜像导出到OBS桶,详情可参阅导出镜像。 下载OBS桶中的镜像文件 无需关闭云服务器即可创建镜像。 创建过程中,对云服务器正在运行的业务没有影响。 创建过程中,请勿改变云服务器状态,不要关闭、开启或者重启云服务器,避免创建失败。 镜像创建时间取决于云服务器系统盘的大小,也与网络状态、并发任务数有关。 云服务器及通过云服务器创建的系统盘镜像属于同一个区域。例如,云服务器所在区域为“华北-北京四”,则通过云服务器创建的系统盘镜像也位于“华北-北京四”。如需在其他区域使用该镜像,请先复制镜像到目标区域,详情可参阅跨区域复制镜像。 如果云服务器已到期或释放,使用您提前创建的系统盘镜像创建新的云服务器,可找回原云服务器中的数据。
-
前提条件 创建私有镜像前,请您务必执行以下操作: 请将云服务器中的敏感数据删除后再创建私有镜像,避免数据安全隐患。 确保云服务器处于运行中或关机状态。 检查云服务器的网络配置,确保网卡属性为DHCP方式,按需开启远程桌面连接功能。详情请参见设置网卡属性为DHCP(Windows)和开启远程桌面连接功能。 有些云服务器正常运行或者高级功能依赖某些驱动,例如:GPU加速型云服务器依赖Tesla驱动和GRID/vGPU驱动。因此,需要提前安装特殊驱动。详情请参见安装Windows特殊驱动。 检查云服务器中是否已安装一键式重置密码插件,保证镜像创建的新云服务器可以使用控制台的“重置密码”功能进行密码重置。详情请参见安装一键式重置密码插件(Windows)。 检查云服务器中是否已安装Cloudbase-Init工具,保证镜像创建的新云服务器可以使用控制台的“用户数据注入”功能注入初始化自定义信息(例如为云服务器设置登录密码)。详情请参见安装并配置Cloudbase-Init工具。 检查并安装virtio驱动,确保镜像创建的新云服务器支持KVM虚拟化,并且可以提升云服务器网络性能。 详细操作请参见优化过程(Windows)中的步骤2~步骤4。 执行Sysprep操作,确保镜像创建的新云服务器加入域后SID唯一。对于集群部署场景,SID需要保持唯一。详情请参见执行Sysprep。 用于创建系统盘镜像的系统盘,磁盘容量需≤1TB。 系统盘容量大于1TB时,不支持创建系统盘镜像,此时请选择创建整机镜像。 如果待创建私有镜像的云服务器使用的是公共镜像,那么默认已安装一键式重置密码插件和Cloudbase-Init工具,指导中均提供了验证是否安装的方法,您可以参考相应内容确认。
-
前提条件 用户已经将运行作业所需的程序包和数据文件上传至OBS系统或HDFS中。 本章节示例中使用的jar样例程序为“{集群客户端安装目录}/Spark2x/spark/examples/jars/spark-examples_*.jar”(部分版本集群中Spark2x文件夹名称为Spark,请以实际为准)。 可登录客户端节点执行如下命令,将待运行的jar包样例上传至HDFS中,请参考使用HDFS客户端。 例如上传至HDFS的“/tmp”中: hdfs dfs -put {客户端安装目录}/Spark2x/spark/examples/jars/spark-examples_*.jar /tmp
-
准备环境 执行以下命令,检查是否已安装Go。 go version 返回如下回显时,说明Go已经安装。 [root@ecs-test confluent-kafka-go]# go version go version go1.16.5 linux/amd64 如果未安装Go,请下载并安装。 执行以下命令,获取demo需要的代码库。 go get github.com/confluentinc/confluent-kafka-go/kafka
-
离线开发的插件通过了工具检测,上传到平台后,设备日志提示异常? 问题描述 离线开发的插件包已经通过了编解码插件检测工具检测后,上传平台后,设备日志提示异常。 图5 设备日志错误提示 可能原因 该异常是运行插件代码抛出的异常,一般是相关依赖没有引入或者代码逻辑有误,可根据日志中的Java异常提示进行处理。 解决方法 在离线插件关键代码处(例如decode函数入口处,出口处等)打印日志,并联系 物联网平台 支撑人员在后台获取日志,辅助定位问题。 图6 打印日志样例
-
设备开发资源 物联网平台支持设备通过MQTT协议、LWM2M/CoAP协议和HTTPS协议进行接入,也可以通过IoTEdge将Modbus、OPC-UA、OPC-DA这些协议的设备接入。设备可以通过调用接口或者集成SDK的方式接入到物联网平台。 资源包名 描述 下载路径 IoT Device SDK(Java) 设备可以通过集成IoT Device SDK(Java)接入物联网平台, Demo提供了调用SDK接口的样例代码。使用指导请参考 IoT Device SDK使用指南(Java)。 IoT Device SDK(Java) IoT Device SDK(C) 设备可以通过集成IoT Device SDK(C)接入物联网平台, Demo提供了调用SDK接口的样例代码。使用指导请参考 IoT Device SDK(C)使用指南。 IoT Device SDK(C) IoT Device SDK(C#) 设备可以通过集成IoT Device SDK(C#)接入物联网平台, Demo提供了调用SDK接口的样例代码。使用指导请参考 IoT Device SDK(C#)使用指南。 IoT Device SDK(C#) IoT Device SDK(Android) 设备可以通过集成IoT Device SDK(Android)接入物联网平台, Demo提供了调用SDK接口的样例代码。使用指导请参考 IoT Device SDK(Android)使用指南。 IoT Device SDK(Android) IoT Device SDK(Go) 设备可以通过集成IoT Device SDK(Go)接入物联网平台, Demo提供了调用SDK接口的样例代码。使用指导请参考 IoT Device SDK(Go)使用指南。 IoT Device SDK(Go) IoT Device SDK(Python) 设备可以通过集成IoT Device SDK(Python)接入物联网平台, Demo提供了调用SDK接口的样例代码。使用指导请参考 IoT Device SDK(Python)使用指南。 IoT Device SDK(Python) IoT Device SDK Tiny (C) 设备可以通过集成IoT Device SDK Tiny (C)接入物联网平台, Demo提供了调用SDK接口的样例代码。使用指导请参考 IoT Device Tiny SDK(C)使用指南 IoT Device SDK Tiny (C) 原生MQTT/MQ TTS 协议接入示例 设备侧可以通过原生MQTT/MQTTS协议接入到物联网平台,Demo提供了SSL加密建链和TCP不加密建链、数据上报、订阅Topic的样例代码。 接入示例参考:Java版、Python版、Android版、C版、C#、NodeJS。 quickStart(Java) quickStart(Android) quickStart(Python) quickStart(C) quickStart(C#) quickStart(Node.js) 产品模型模板 产品模型模板中包含了典型场景的产品模型样例,开发者可以在模板基础进行修改,定义自己需要的产品模型。 使用指导可以参考离线开发产品模型。 产品模型开发示例 编解码插件样例 编解码插件的代码样例工程,开发者可以基于该样例工程进行二次开发。 编解码插件开发样例 编解码插件检测工具 用于检测离线开发的编解码插件的编解码能力是否正常。 编解码插件检测工具 NB-IoT设备模拟器 用于模拟以CoAP/LWM2M协议接入物联网平台的NB设备,实现数据上报和命令下发功能。 使用指导可以参考基于控制台开发产品。 NB-IoT设备模拟器 IoT Link Studio(原名为IoT Studio) IoT Link Studio是针对IoT物联网端侧开发(IoT Device SDK Tiny)的IDE环境,提供了编译、烧录、调试等一站式开发体验,支持 C、 C++、汇编等多种开发语言,让您快速、高效地进行物联网开发。 使用指导可以参考基于NB-IoT小熊派开发智慧路灯。 IoT Link Studio
-
设备接入方式 华为物联网平台支持多种接入方式,满足各类设备和接入场景要求。请根据设备类型,选择合适的开发模式。 开发模式 特点 适用场景 难度系数 认证MCU开发模式 IoT Device SDK Tiny已经预集成在MCU(Main Control Unit)中,可以直接调用方法连接华为云IoT。 设备商用时间短,研发成本低,无需管理子设备的直连设备。 认证模组开发模式 IoT Device SDK Tiny已经预集成在模组中,通过调用AT指令连接华为云IoT。 需要节省MCU资源,无需管理子设备的直连设备。详细接入方式请参考通过华为认证模组接入。 LiteOS开发模式 设备运行在LiteOS中,通过LiteOS对MCU进行资源管理,同时liteOS内置了IoT Device SDK Tiny,可以通过调用函数连接华为云IoT。LiteOS开发模式的设备开发耗时更短,开发难度也低。 无操作系统,无需管理子设备的直连设备 常规开发模式 集成IoT Device SDK Tiny到MCU中,调用SDK中的函数连接华为云IoT,相比API接入更便捷。 设备商用时间充足,MCU的Flash与 RAM 资源满足IoT Device SDK Tiny集成条件的场景。 Open CPU开发模式 节省一个MCU,使用公用模组中的MCU能力,将设备的应用程序编译运行在OpenCPU上。 安全要求高,体积较小,商用时间短的设备 网关设备开发模式 IoT Device SDK预置到CPU(Central Processing Unit)或者MPU(Main Processing Unit)中,通过调用函数连接到华为云IoT。 管理子设备的网关设备。
-
接口介绍 API分组 应用场景 产品管理 产品模型定义了该产品下所有设备具备的能力或特征,产品管理为应用服务器提供对已导入物联网平台中产品模型的操作管理功能。 设备管理 设备管理为应用服务器提供对设备的操作管理功能,包括对设备基本信息和设备数据的操作。 设备消息 设备消息为应用服务器提供向设备透传消息的功能。 设备命令 设备的产品模型中定义了物联网平台可向设备下发的命令,设备命令为应用服务器提供向设备下发命令的功能,实现对设备的控制操作。 设备属性 设备的产品模型中定义了物联网平台可向设备下发的属性,设备属性为应用服务器提供向设备下发属性的功能。 AMQP队列管理 AMQP队列管理为客户创建、删除、查看队列。AMQP队列可通过规则订阅后通过AMQP客户端接收消息数据。 接入凭证管理 接入凭证是用于AMQP、MQTTS等协议建立长链接时认证使用。 数据转发、设备联动 规则管理为应用服务器提供物联网平台的规则引擎功能,通过设置规则实现业务的联动变化或将数据转发至其他华为云服务。包含设备联动和数据转发两种类型。 设备联动:包含触发条件和执行动作两部分。当满足设置的触发条件后,触发相应动作,如“下发命令”、“发送通知”、“上报告警”、“恢复告警”。 数据转发:包含设置转发数据、设置转发目标和启动规则三部分。支持转发至“ 数据接入服务 DIS”、“分布式消息服务 Kafka”、“ 对象存储服务 OBS”、“应用与 数据集成平台 ROMA Connect”、“第三方应用服务(HTTP推送)”、“AMQP推送消息队列”、、、。 订阅管理 订阅管理为应用服务器提供对物联网平台资源的订阅功能,若订阅的资源发生变化,平台会通知应用服务器。 设备影子 设备影子是一个用于存储和检索设备当前状态信息的文件,设备影子为应用服务器提供对设备影子的操作管理功能。 每个设备有且只有一个设备影子,由设备ID唯一标识。 设备影子仅保存最近一次设备的上报数据和用户设置的预期数据。 无论该设备是否在线,都可以通过该影子查询和设置设备的状态。 设备组管理 设备组管理为应用服务器提供对设备组的管理操作功能,包括对设备组信息和设备组设备的操作。 标签管理 标签可用于对资源进行分类,标签管理为应用服务器提供对各类资源绑定和解绑标签功能。 当前仅设备支持标签。 资源空间管理 资源空间管理为应用服务器提供对资源空间的管理能力,包括资源空间的增删改查。 批量任务 批量任务为应用服务器提供批量处理功能,对接入物联网平台的设备进行批量操作。 目前提供批量软、固件升级,批量创建/删除/更新设备,批量冻结/解冻设备,批量创建同步/异步命令,批量创建消息和批量配置设备影子的能力。 当前单用户单一任务类型的未完成的任务最大为10,超过则无法创建新的任务。 设备CA证书管理 设备CA证书管理为应用服务器提供对设备CA证书进行操作管理功能,包括对设备CA证书进行上传、验证、查询等操作。物联网平台支持使用证书进行设备接入认证。 OTA升级包管理 OTA升级包管理为应用服务器提供对升级包进行操作管理功能,包括对升级包的创建、查询、删除等操作。 广播消息 广播消息为应用服务器向订阅了指定Topic的所有在线设备发布消息。 设备隧道管理 设备隧道可用于应用服务器与设备进行数据传输。 数据流转积压策略管理 数据流转积压策略管理为应用服务器提供了对积压策略的管理操作功能,包括对数据流转积压策略的创建,查询,修改删除等操作功能。 数据流转流控策略管理 数据流转流控策略管理为应用服务器提供了对流控策略的管理操作功能,包括对数据流转流控策略的创建,查询,修改删除等操作功能。
-
应用开发资源 为了降低应用的开发难度、提升开发效率,物联网平台开放了应用侧API。应用通过调用物联网平台的API,实现安全接入、设备管理、数据采集、命令下发等业务场景。 资源包名 描述 下载 应用侧开发 API Java Demo 物联网平台为应用服务器提供了应用侧API,能够让开发者快速验证API开放的能力,体验业务功能,熟悉业务流程。 API Java Demo 应用侧开发 Java SDK Java SDK提供Java方法调用应用侧API与平台通信。使用指南可以参考Java SDK使用指南。 Java SDK 应用侧开发 C# SDK C# SDK提供C#方法调用应用侧API与平台通信。使用指南可以参考C# SDK使用指南。 C# SDK 应用侧开发 Python SDK Python SDK提供Python方法调用应用侧API与平台通信。使用指南可以参考Python SDK使用指南。 Python SDK 应用侧开发 Go SDK Go SDK提供Go方法调用应用侧API与平台通信。使用指南可以参考Go SDK使用指南。 Go SDK 应用侧开发 Node.js SDK Node.js SDK提供Node.js方法调用应用侧API与平台通信。使用指南可以参考Node.js SDK使用指南。 Node.js SDK 应用侧开发 PHP SDK PHP SDK提供PHP方法调用应用侧API与平台通信。使用指南可以参考PHP SDK使用指南。 PHP SDK
-
消息结构 字段名 字段类型 描述和要求 起始标识 WORD 起始标识,固定为0XFFFE。 版本号 BYTE 高四位预留;低四位表示协议版本号,当前为1。 消息码 BYTE 标识物联网平台与设备之间的请求消息类型,应答消息的消息码和请求消息相同。消息码的定义为: 0-18:预留消息码,暂未使用。 19:查询设备版本。 20:下载新版本软件包通知。 21:请求下载升级包。 22:上报升级包下载结果。 23:执行软件升级。 24:上报升级结果。 25-127:预留消息码,暂未使用。 校验码 WORD 从起始标识到数据区的最后一个字节的CRC16校验值,计算前先把校验码字段置为0,计算完成后把结果写到校验码字段。 说明: CRC16算法:CRC16/CCITT x16+x12+x5+1 数据区长度 WORD 数据区的长度。 数据区 BYTE[n] 可变长度,具体由各个指令定义,可参考下面介绍的各个指令对应的请求消息和应答消息定义。
-
PCP消息识别 由于PCP协议消息和设备业务消息共用一个端口和URL通讯,平台收到设备的消息时,按照如下步骤判断是PCP协议消息还是业务消息: 检查设备是否支持软件升级(根据设备profile的omCapability.upgradeCapability定义),如果不支持,则认为是业务消息。 检查设备软件升级协议是否是PCP,如果不是,则认为是业务消息。 检查消息前两个字节是否为0XFFFE,如果不是,则认为是业务消息。 检查版本号是否合法,如果不合法,则认为是业务消息。 检查消息码是否合法,如果不合法,则认为是业务消息。 检查校验码是否正确,如果不正确,则认为是业务消息。 检查数据区长度是否正确,如果不正确,则认为是业务消息。 如果以上检查都通过,认为是PCP协议消息。 对设备的要求:需要设备保证业务消息的起始字节不是0XFFFE。
-
响应消息 响应参数如表2所示。 表2 响应参数 参数 参数类型 描述 interfaceAttachments Array of objects 云服务器网卡信息列表,详情请参见表3。 attachableQuantity Object 云服务器可挂载网卡数,详情请参见表4 表3 interfaceAttachments字段数据结构说明 参数 参数类型 描述 port_state String 网卡端口状态。 fixed_ips Array of objects 网卡私网IP信息列表,详情请参见表5。 net_id String 网卡端口所属网络ID(network_id)。 port_id String 网卡端口ID。 mac_addr String 网卡Mac地址信息。 delete_on_termination Boolean 卸载网卡时,是否删除网卡。 true: 删除; false: 不删除 driver_mode String 网卡的驱动类型,预留字段,默认取值为virtio。 min_rate Integer 网卡带宽下限。 multiqueue_num Integer 队列个数。 取值范围为 1, 2, 4, 8, 16,28。 pci_address String 弹性网卡在Linux GuestOS里的BDF号。 说明: 网卡不支持时,返回为空。 表4 attachableQuantity字段数据结构说明 参数 参数类型 描述 free_nic Integer 云服务器剩余可挂载网卡数量。 表5 fixed_ips字段数据结构说明 参数 参数类型 描述 subnet_id String 网卡私网IP对应子网信息。 ip_address String 网卡私网IP信息。
-
响应示例 { "interfaceAttachments": [ { "port_state": "ACTIVE", "fixed_ips": [ { "subnet_id": "ba31e1f5-fa76-4530-862c-5176fad033cf", "ip_address": "192.168.0.33" } ], "net_id": "610a4af2-1d90-4d2b-8057-dc238b26febf", "port_id": "04819c0a-6a07-44b6-945e-fb932071888e", "mac_addr": "fa:16:3e:45:65:c4" } ] }
-
请求示例 变更专属主机上的云服务器的规格为“s3.large.2”,自动支付且支持开机状态下变更规格。 POST https://{endpoint}/v1.1/{project_id}/cloudservers/{server_id}/resize { "resize": { "flavorRef": "s3.large.2", "dedicated_host_id": "459a2b9d-804a-4745-ab19-a113bb1b4ddc", "extendparam":{ "isAutoPay": "true" }, "mode": "withStopServer" } }
-
响应示例 { "job_id": "ff80808288d41e1b018990260955686a" } 或 { "order_id": " CS 1711152257C60TL", "job_id": "ff80808288d41e1b018990260955686a" } 或 { "error": { "message": "XXXX", "code": "XXX" } }
-
请求消息 表2 参数说明 名称 是否必选 参数类型 描述 resize 是 Object 标记为云服务器变更规格操作,详情参见 表3。 dry_run 否 Boolean 是否只预检此次请求。 true:发送检查请求,不会变更云服务器规格。检查项包括是否填写了必需参数、请求格式等。 如果检查不通过,则返回对应错误。 如果检查通过,则返回202状态码。 false:发送正常请求,通过检查后并且执行变更云服务器规格请求。 表3 resize数据结构说明 名称 是否必选 参数类型 描述 flavorRef 是 String 变更后的云服务器规格ID。 可以通过 查询云服务器规格变更支持列表 接口查询允许变更的规格列表。 说明: 不支持变更至同一规格。 dedicated_host_id 否 String 新专属主机ID。 仅对于部署在专属主机上的弹性云服务器,该参数必选。 extendparam 否 Object 变更云服务器扩展信息,详情参见 表4。 mode 否 String 取值为withStopServer ,支持开机状态下变更规格。 mode取值为withStopServer时,对开机状态的云服务器执行变更规格操作,系统自动对云服务器先执行关机,再变更规格,变更成功后再执行开机。 cpu_options 否 Object 自定义CPU选项。 详情请参见表5。 表4 extendparam数据结构说明 名称 是否必选 参数类型 描述 isAutoPay 否 String 下单订购后,是否自动从客户的账户中支付,而不需要客户手动去进行支付。 “true”:是(自动支付) “false”:否(需要客户手动支付) 说明: 当弹性云服务器是按包年包月计费时生效,该值为空时默认为客户手动支付。 表5 cpu_options数据结构说明 参数 是否必选 参数类型 描述 hw:cpu_threads 否 integer 用于控制CPU是否开启超线程。 取值范围:1,2。 1: 关闭超线程。 2: 打开超线程。 需要同时满足如下条件,才能设置为“关闭超线程”: 只能在实例创建或者resize时指定。 只有目标flavor的extra_specs参数: 存在“hw:cpu_policy”并取值为“dedicated”。 存在“hw:cpu_threads”并取值为“2”。
-
步骤4:查看与执行操作命令 本节以Windows为例介绍eihealth-toolkit的使用过程,Linux和macOS环境使用方法基本相同,可参考。配置信息导入后,即可查询命令行工具支持的操作,并执行相关命令,使用 EIHealth 平台。 详细的操作命令请参见其他章节。 查询操作命令列表。 执行health --help查询支持的操作命令。Linux系统下,需添加./指定当前路径。 执行操作命令,获取项目信息。 执行health get project命令查询当前账号下所拥有的项目和项目信息。Linux系统下,需添加./指定当前路径。 使用数据、应用、流程、作业命令时,需先使用switch命令进入待操作的项目中。使用逻辑与EIHealth平台一致,进入项目,再对项目内的数据等内容进行操作。 命令行的参数缩写支持合并使用,例如,-r -s 可以写成-rs。 父主题: 获取并使用命令行工具eihealth-toolkit
-
获取AK/SK AK/SK(Access Key ID/Secret Access Key)即访问密钥,包含访问密钥ID(AK)和秘密访问密钥(SK)两部分,华为云通过AK识别用户的身份,通过SK对请求数据进行签名验证,用于确保请求的机密性、完整性和请求者身份的正确性。 登录华为云管理控制台,鼠标指向页面右上角的用户名,在下拉列表中单击“我的凭证”。 图1 我的凭证入口 在“我的凭证”页面中选择“访问密钥”页签。单击“新增访问密钥”,按操作指引获取认证账号的AK/SK,请妥善保管AK/SK信息。 图2 访问密钥 每个用户仅允许新增两个访问密钥。 为保证访问密钥的安全,访问密钥仅在初次生成时自动下载,后续不可再次通过管理控制台页面获取。请在生成后妥善保管。
-
安装eihealth-toolkit 本示例中以Windows系统为例,介绍安装命令行工具的方法。 获取Windows版本的命令行工具,得到health.exe文件,health文件无需安装,放置在任一文件夹中即可。 图1 下载命令行工具 使用win键+R,输入cmd打开windows的cmd窗口。进入工具所在的目录,输入health命令,即可使用。 如果cmd窗口显示目录不是health文件所在目录,请使用cd命令切换路径。例如,切换至D盘: cd /d d: 图2 客户端 本示例中以Linux系统为例,介绍安装命令行工具的方法。 获取Linux版本的命令行工具,得到health文件,health文件无需安装,放置在任一文件夹中即可。 假设health存放在/home/user-name/test/client目录,请使用cd命令进入health所在目录。 cd /home/user-name/test/client/ 图3 客户端 使用Linux版本命令行工具时,您需要在本地搭建Linux环境,并将下载的health文件放至所需的目录下。macOS执行命令和linux一致, 如果当前目录为health所在目录,可以使用./health命令使用命令行工具。 如果当前目录不是health所在目录,需要使用绝对路径。如当前目录为/opt,假设health存放在/root/health-toolkit/下,需要指定/root/health-toolkit/health路径进行使用。 如果无法运行,提示Permission denied,使用chmod 755 health命令设置执行权限。
-
下载命令行工具eihealth-toolkit 针对不同操作系统,eihealth-toolkit下载地址如下所示。 表1 下载列表 支持平台 下载地址 Windows 64位 health-windows-x86_64.zip、health-windows-x86_64.zip.sha256 Linux ARM 64位 health-linux-aarch64.tar、health-linux-aarch64.tar.sha256 Linux AMD 64位 health-linux-x86_64.tar、health-linux-x86_64.tar.sha256 macOS health-macOS-x86_64.tar、health-macOS-x86_64.tar.sha256 本页面命令行工具下载后,在使用时,需用到您 注册华为账号 并开通华为云时提供的用户名等信息,用于登录并操作EIHealth平台的项目、数据等资产。这些信息的处理将遵循您已接收的《华为云用户协议》及《隐私政策声明》约束。 下载地址中带有sha256后缀的链接,指的是对应软件包的校验文件。例如:Windows x64版本的下载链接是health-windows-x86_64 ,它的校验文件下载链接则是health-windows-x86_64.zip.sha256。
-
命令结构 health edit compute-resources [flags] 表1 参数说明 参数 简写 是否必选 描述 --force -f 否 是否强制操作。 --labels -l 否 需要添加或删除的标签列表。json数组格式。如:-l "[\"h1\",\"h2\"]" --node -n 是 计算资源节点id --operation-type -t 是 对计算资源的操作:[add-labels \| delete-labels \| stop \| reboot \| start \| schedulable \| non-schedule]。add-labels:添加计算节点标签。delete-labels:删除计算节点标签。stop:停止节点。reboot:重启节点。start:启动节点。schedulable:设置节点可被调度。non-schedule:设置节点不可被调度
-
命令示例 删除计算节点标签 health edit compute-resources -t delete-labels -l "[\"h1\",\"h2\"]" -n 9b1727a3-2102-4d92-95b9-7eaa86b398ac edit compute resources using the delete-labels mode is successful 添加计算节点标签 health edit compute-resources -t add-labels -l "[\"h1\",\"h2\"]" -n 9b1727a3-2102-4d92-95b9-7eaa86b398ac the edit compute-resources using add-labels mode is successful 设置节点可调度 health edit compute-resources -t schedulable -n 9b1727a3-2102-4d92-95b9-7eaa86b398ac the edit compute-resources using schedulable mode is successful 停止计算节点 health edit compute-resources -t stop -n 9b1727a3-2102-4d92-95b9-7eaa86b398ac The stop operation is started successfully...
-
下载命令行工具eihealth-toolkit 针对不同操作系统,eihealth-toolkit下载地址如下所示。 表1 下载列表 支持平台 下载地址 Windows 64位 health-windows-x86_64.zip、health-windows-x86_64.zip.sha256 Linux ARM 64位 health-linux-aarch64.tar、health-linux-aarch64.tar.sha256 Linux AMD 64位 health-linux-x86_64.tar、health-linux-x86_64.tar.sha256 macOS health-macOS-x86_64.tar、health-macOS-x86_64.tar.sha256 本页面命令行工具下载后,在使用时,需用到您注册华为账号并开通华为云时提供的用户名等信息,用于登录并操作EIHealth平台的项目、数据等资产。这些信息的处理将遵循您已接收的《华为云用户协议》及《隐私政策声明》约束。 下载地址中带有sha256后缀的链接,指的是对应软件包的校验文件。例如:Windows x64版本的下载链接是health-windows-x86_64 ,它的校验文件下载链接则是health-windows-x86_64.zip.sha256。
-
产品功能 eihealth-toolkit提供了以下功能: 系统设置 您可以使用该工具获取系统标签、系统资源、系统配额信息、消息列表,查询和修改消息及完成作业保留配置,也可以获取和修改供应商logo、名称设置。 项目管理 您可以使用该工具获取、切换、创建、更新、删除和转移项目,也可以添加、修改、移除项目成员角色。 数据管理 您可以使用该工具查看、上传、下载、复制、导入、引入、创建和删除项目中的数据,创建、获取、删除、恢复归档数据,也可以对数据作业执行获取、删除、重试、取消操作。 数据库管理 您可以使用该工具创建、获取、删除和导入数据库模板,创建、获取和删除数据库实例,也可以引用数据库。 镜像管理 您可以使用该工具对镜像执行标记、上传、下载、查询、导入、更新和删除标签等操作。 应用管理 应用是生物信息学软件和运行该软件所依赖的运行环境的镜像封装。 您可以使用该工具创建应用,并进行修改、删除、查询、导入操作。 流程管理 流程包含分析过程中所需应用的执行信息和数据的输入、输出等参数定义,流程至少由一个应用组成。 您可以使用该工具创建流程,并进行修改、删除、查询、导入操作。对于由多个应用构成的流程,可通过设置不同应用的输入、输出关系搭建为流程。 作业管理 您可以使用该工具启动分析作业,并进行查询、删除、重试、取消操作。 notebook 您可以使用该工具创建notebook,并进行查询、编辑、删除和启停等操作。
-
命令示例 本节以Windows为例介绍eihealth-toolkit的使用过程,Linux和macOS环境使用方法基本相同,可参考。 获取计算资源列表 health get resource -t computing # 执行成功返回结果如下 Id Name Specifications Billing Mode Data Disk Status Purchased Schedulable 8a178a22-38ca-4707-bab3-e12324cdc96d health-ef0ec0fb-4022-46c9-898e-fbd440b44c09 eihealth.cpu.spec.cpu4.4xlarge.2 Pay-per-use SAS|200GB ACTIVE 2024-01-02 17:30:28 true 获取性能加速资源列表 health get resource -t performance # 执行成功返回结果如下 ID Name Specifications Billing Mode Used Capacity Used Capacity Percent Max.Capacity Job Quota Status Purchased Running Jobs 01c24e2f-2038-4718-acb0-a0c388a2f93c sfs-turbo-218766ac-5855-4ad4-a5fd-67130951afdd eihealth.storage.ioacc.spec.ioacc xxx 0.00GB 0.00% 100GB 1 ACTIVE / Schedulable 2023-01-19 21:57:51 0 获取数据库资源列表 health get resource -t database # 执行成功返回结果如下 Name Specifications Billing Mode Usage Data Disk Status Purchased 医疗智能体 数据库标准版 200 GB eihealth.dbm.spec.standard.200g(4vCPUS|8GB) Pay-per-use 2.36GB 40GB NORMAL 2023-12-27 16:07:12 获取存储资源列表 health get resource -t storage # 执行成功返回结果如下 Name Specifications Billing Mode Usage Purchased EIHealthSingleAZStoragePackage eihealth.storage.spec.singleaz xxx 4.06TB 2021-09-10 20:58:03 获取计算资源节点标签 health get resource -t computing -a get-labels -n 9b1727a3-2102-4d92-95b9-7eaa86b398ac 1 111 123 copy-in 获取计算资源规格列表 health get resource -t computing -a flavors -z cn-north-7c Flavor Name vCPUs | Memory Assured/Maximum Bandwidth Packets per Second(PPS) Sold Out eihealth.cpu.spec.cpu1.8xlarge.2 32vCPUS/64GB 8/15 Gbit/s 2600000 pps true eihealth.cpu.spec.cpu1.8xlarge.4 32vCPUS/128GB 8/15 Gbit/s 2600000 pps true eihealth.cpu.spec.cpu1.15xlarge.2 60vCPUS/128GB 16/16 Gbit/s 5000000 pps true eihealth.cpu.spec.cpu1.15xlarge.4 60vCPUS/256GB 16/16 Gbit/s 5000000 pps true eihealth.cpu.spec.cpu3.xlarge.2 4vCPUS/8GB 2.4/8 Gbit/s 800000 pps false eihealth.cpu.spec.cpu3.2xlarge.2 8vCPUS/16GB 4.5/15 Gbit/s 1500000 pps false eihealth.cpu.spec.cpu3.4xlarge.2 16vCPUS/32GB 9/20 Gbit/s 2800000 pps true eihealth.cpu.spec.cpu3.8xlarge.2 32vCPUS/64GB 18/30 Gbit/s 5500000 pps true eihealth.cpu.spec.cpu3.8xlarge.4 32vCPUS/128GB 18/30 Gbit/s 5500000 pps true
-
命令结构 health get resource [flags] 表1 参数说明 参数 简写 是否必选 说明 --type -t 是 名称,支持computing、performance、database、storage,分别代表计算资源、性能加速资源、数据库资源和存储资源。 --action -a 否 查询计算节点方式。 取值范围: get-labels:获取计算资源标签列表。get-labels要和--node一起组合使用。 list:获取计算资源列表。 flavors:获取可用区下的计算节点规格列表。 默认值:list。 --node -n 否 计算节点id。设置了--label后使用,获取某个计算资源节点下的标签列表。 --zone -z 否 可用区id。如:cn-north-7c。
共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
推荐文章