华为云用户手册
-
上传对象 完成桶创建后,您可以往桶中上传对象。 本示例用于将本地localfile文件上传到examplebucket桶中的example/objectname对象。 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 package main import ( "fmt" "os" obs "github.com/huaweicloud/huaweicloud-sdk-go-obs/obs" ) func main() { //推荐通过环境变量获取AKSK,这里也可以使用其他外部引入方式传入,如果使用硬编码可能会存在泄露风险。 //您可以登录访问管理控制台获取访问密钥AK/SK,获取方式请参见https://support.huaweicloud.com/usermanual-ca/ca_01_0003.html。 ak := os.Getenv("AccessKeyID") sk := os.Getenv("SecretAccessKey") // 【可选】如果使用临时AK/SK和SecurityToken访问OBS,同样建议您尽量避免使用硬编码,以降低信息泄露风险。您可以通过环境变量获取访问密钥AK/SK,也可以使用其他外部引入方式传入。 securityToken := os.Getenv("SecurityToken") // endpoint填写Bucket对应的Endpoint, 这里以华北-北京四为例,其他地区请按实际情况填写。 endPoint := "https://obs.cn-north-4.myhuaweicloud.com" // 创建obsClient实例 // 如果使用临时AKSK和SecurityToken访问OBS,需要在创建实例时通过obs.WithSecurityToken方法指定securityToken值。 obsClient, err := obs.New(ak, sk, endPoint, obs.WithSecurityToken(securityToken)) if err != nil { fmt.Printf("Create obsClient error, errMsg: %s", err.Error()) } input := &obs.PutFileInput{} // 指定存储桶名称 input.Bucket = "examplebucket" // 指定上传对象,此处以 example/objectname 为例。 input.Key = "example/objectname" // 指定本地文件,此处以localfile为例 input.SourceFile = "localfile" // 文件上传 output, err := obsClient.PutFile(input) if err == nil { fmt.Printf("Put file(%s) under the bucket(%s) successful!\n", input.Key, input.Bucket) fmt.Printf("StorageClass:%s, ETag:%s\n", output.StorageClass, output.ETag) return } fmt.Printf("Put file(%s) under the bucket(%s) fail!\n", input.Key, input.Bucket) if obsError, ok := err.(obs.ObsError); ok { fmt.Println("An ObsError was found, which means your request sent to OBS was rejected with an error response.") fmt.Println(obsError.Error()) } else { fmt.Println("An Exception was found, which means the client encountered an internal problem when attempting to communicate with OBS, for example, the client was unable to access the network.") fmt.Println(err) } } 更多上传对象的信息,请参见上传对象。
-
创建桶 桶是OBS全局命名空间,相当于数据的容器、文件系统的根目录,可以存储若干对象。 本示例用于创建名为examplebucket的桶,并设置所在区域在华北-北京四(cn-north-4),桶的权限访问控制策略是私有桶,存储类型是低频访问存储,多AZ方式存储。 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 package main import ( "fmt" "os" obs "github.com/huaweicloud/huaweicloud-sdk-go-obs/obs" ) func main() { //推荐通过环境变量获取AKSK,这里也可以使用其他外部引入方式传入,如果使用硬编码可能会存在泄露风险。 //您可以登录访问管理控制台获取访问密钥AK/SK,获取方式请参见https://support.huaweicloud.com/usermanual-ca/ca_01_0003.html。 ak := os.Getenv("AccessKeyID") sk := os.Getenv("SecretAccessKey") // 【可选】如果使用临时AK/SK和SecurityToken访问OBS,同样建议您尽量避免使用硬编码,以降低信息泄露风险。您可以通过环境变量获取访问密钥AK/SK,也可以使用其他外部引入方式传入。 // securityToken := os.Getenv("SecurityToken") // endpoint填写Bucket对应的Endpoint, 这里以华北-北京四为例,其他地区请按实际情况填写。 endPoint := "https://obs.cn-north-4.myhuaweicloud.com" // 创建obsClient实例 // 如果使用临时AKSK和SecurityToken访问OBS,需要在创建实例时通过obs.WithSecurityToken方法指定securityToken值。 obsClient, err := obs.New(ak, sk, endPoint/*, obs.WithSecurityToken(securityToken)*/) if err != nil { fmt.Printf("Create obsClient error, errMsg: %s", err.Error()) } input := &obs.CreateBucketInput{} // 指定存储桶名称 input.Bucket = "examplebucket" // 指定存储桶所在区域,此处以“cn-north-4”为例,必须跟传入的Endpoint中Region保持一致。 input.Location = "cn-north-4" // 指定存储桶的权限控制策略,此处以obs.AclPrivate为例。 input.ACL = obs.AclPrivate // 指定存储桶的存储类型,此处以obs.StorageClassWarm为例。如果未指定该参数,则创建的桶为标准存储类型。 input.StorageClass = obs.StorageClassWarm // 指定存储桶的AZ类型,此处以“3AZ”为例。不携带时默认为单AZ,如果对应region不支持多AZ存储,则该桶的存储类型仍为单AZ。 input.AvailableZone = "3az" // 创建桶 output, err := obsClient.CreateBucket(input) if err == nil { fmt.Printf("Create bucket:%s successful!\n", input.Bucket) fmt.Printf("RequestId:%s\n", output.RequestId) return } fmt.Printf("Create bucket:%s fail!\n", input.Bucket) if obsError, ok := err.(obs.ObsError); ok { fmt.Println("An ObsError was found, which means your request sent to OBS was rejected with an error response.") fmt.Println(obsError.Error()) } else { fmt.Println("An Exception was found, which means the client encountered an internal problem when attempting to communicate with OBS, for example, the client was unable to access the network.") fmt.Println(err) } } 桶的名字需全局唯一,不能与已有的任何桶名称重复,包括其他用户创建的桶。 桶命名规则如下: 3~63个字符,数字或字母开头,支持小写字母、数字、“-”、“.”。 禁止使用IP地址。 禁止以“-”或“.”开头及结尾。 禁止两个“.”相邻(如:“my..bucket”)。 禁止“.”和“-”相邻(如:“my-.bucket”和“my.-bucket”)。 同一用户多次创建同名桶不会报错,创建的桶属性以第一次请求为准。 更多创建桶的信息,请参见创建桶。 创建桶时,如果使用的终端节点归属于默认区域华北-北京一(cn-north-1),则可以不指定区域;如果使用的终端节点归属于其他区域,则必须指定区域(指定方法参见带参数创建),且指定的区域必须与终端节点归属的区域一致。当前有效的区 域名 称可从这里查询。
-
初始化OBS客户端 向OBS发送任一HTTP/HTTPS请求之前,必须先创建一个ObsClient结构体: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 // 引入依赖包 import ( obs "github.com/huaweicloud/huaweicloud-sdk-go-obs/obs" ) func main() { //推荐通过环境变量获取AKSK,这里也可以使用其他外部引入方式传入,如果使用硬编码可能会存在泄露风险。 //您可以登录访问管理控制台获取访问密钥AK/SK,获取方式请参见https://support.huaweicloud.com/usermanual-ca/ca_01_0003.html。 ak := os.Getenv("AccessKeyID") sk := os.Getenv("SecretAccessKey") // 【可选】如果使用临时AK/SK和SecurityToken访问OBS,同样建议您尽量避免使用硬编码,以降低信息泄露风险。您可以通过环境变量获取访问密钥AK/SK,也可以使用其他外部引入方式传入。 // securityToken := os.Getenv("SecurityToken") // endpoint填写Bucket对应的Endpoint, 这里以华北-北京四为例,其他地区请按实际情况填写。 endPoint := "https://obs.cn-north-4.myhuaweicloud.com" // 创建obsClient实例 // 如果使用临时AKSK和SecurityToken访问OBS,需要在创建实例时通过obs.WithSecurityToken方法指定securityToken值。 obsClient, err := obs.New(ak, sk, endPoint, obs.WithSignature(obs.SignatureObs)/*, obs.WithSecurityToken(securityToken)*/) if err == nil { // 使用访问OBS // 关闭obsClient obsClient.Close() } } 更多关于OBS客户端初始化的内容请参考“初始化”章节。 日志配置详见日志初始化。 如果设置的endpoint不带协议类型,则默认使用HTTPS协议。 出于DNS解析性能和OBS服务可靠性的考虑,不允许将endpoint设置为IP,必须使用域名访问OBS服务。
-
请求参数说明 表1 请求参数列表 参数名称 参数类型 是否必选 描述 request BaseBucketRequest 必选 参数解释: 桶的基本信息请求参数列表,详见BaseBucketRequest。 表2 BaseBucketRequest 参数名称 参数类型 是否必选 描述 bucketName String 必选 参数解释: 桶名。 约束限制: 桶的名字需全局唯一,不能与已有的任何桶名称重复,包括其他用户创建的桶。 桶命名规则如下: 3~63个字符,数字或字母开头,支持小写字母、数字、“-”、“.”。 禁止使用IP地址。 禁止以“-”或“.”开头及结尾。 禁止两个“.”相邻(如:“my..bucket”)。 禁止“.”和“-”相邻(如:“my-.bucket”和“my.-bucket”)。 同一用户在同一个区域多次创建同名桶不会报错,创建的桶属性以第一次请求为准。 默认取值: 无
-
代码示例 以下代码展示了如何获取examplebucket桶的生命周期规则。 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 import com.obs.services.ObsClient; import com.obs.services.exception.ObsException; import com.obs.services.model.LifecycleConfiguration; public class GetBucketLifecycle001 { public static void main(String[] args) { // 您可以通过环境变量获取访问密钥AK/SK,也可以使用其他外部引入方式传入。如果使用硬编码可能会存在泄露风险。 // 您可以登录访问管理控制台获取访问密钥AK/SK String ak = System.getenv("AC CES S_KEY_ID"); String sk = System.getenv("SECRET_ACCESS_KEY_ID"); // 【可选】如果使用临时AK/SK和SecurityToken访问OBS,同样建议您尽量避免使用硬编码,以降低信息泄露风险。 // 您可以通过环境变量获取访问密钥AK/SK/SecurityToken,也可以使用其他外部引入方式传入。 // String securityToken = System.getenv("SECURITY_TOKEN"); // endpoint填写桶所在的endpoint, 此处以华北-北京四为例,其他地区请按实际情况填写。 String endPoint = "https://obs.cn-north-4.myhuaweicloud.com"; // 您可以通过环境变量获取endPoint,也可以使用其他外部引入方式传入。 //String endPoint = System.getenv("ENDPOINT"); // 创建ObsClient实例 // 使用永久AK/SK初始化客户端 ObsClient obsClient = new ObsClient(ak, sk,endPoint); // 使用临时AK/SK和SecurityToken初始化客户端 // ObsClient obsClient = new ObsClient(ak, sk, securityToken, endPoint); try { // 查看生命周期规则 LifecycleConfiguration config = obsClient.getBucketLifecycle("examplebucket"); System.out.println("getBucketLifecycle successfully"); for (LifecycleConfiguration.Rule rule : config.getRules()) { System.out.println(rule.getId()); System.out.println(rule.getPrefix()); for (LifecycleConfiguration.Transition transition : rule.getTransitions()) { System.out.println(transition.getDays()); System.out.println(transition.getStorageClass()); } System.out.println(rule.getExpiration() != null ? rule.getExpiration().getDays() : ""); for (LifecycleConfiguration.NoncurrentVersionTransition noncurrentVersionTransition : rule.getNoncurrentVersionTransitions()) { System.out.println(noncurrentVersionTransition.getDays()); System.out.println(noncurrentVersionTransition.getStorageClass()); } System.out.println( rule.getNoncurrentVersionExpiration() != null ? rule.getNoncurrentVersionExpiration().getDays() : ""); } } catch (ObsException e) { System.out.println("getBucketLifecycle failed"); // 请求失败,打印http状态码 System.out.println("HTTP Code:" + e.getResponseCode()); // 请求失败,打印服务端错误码 System.out.println("Error Code:" + e.getErrorCode()); // 请求失败,打印详细错误信息 System.out.println("Error Message:" + e.getErrorMessage()); // 请求失败,打印请求id System.out.println("Request ID:" + e.getErrorRequestId()); System.out.println("Host ID:" + e.getErrorHostId()); e.printStackTrace(); } catch (Exception e) { System.out.println("getBucketLifecycle failed"); // 其他异常信息打印 e.printStackTrace(); } } }
-
接口约束 您必须是桶拥有者或拥有获取桶的生命周期配置的权限,才能获取桶的生命周期配置。建议使用 IAM 或桶策略进行授权,如果使用IAM则需授予obs:bucket:GetLifecycleConfiguration权限,如果使用桶策略则需授予GetLifecycleConfiguration权限。相关授权方式介绍可参见OBS权限控制概述,配置方式详见使用IAM自定义策略、自定义创建桶策略。 OBS支持的region以及region与endPoint的对应关系,详细信息请参见地区与终端节点。
-
如何进行分段上传?(Java SDK) 在上传文件时,您可以指定上传文件的某一段的数据来进行分段上传,步骤如下: 您需要以AK、SK、Endpoint先初始化一个客户端ObsClient; 指定桶名和对象名初始化一个InitiateMultipartUploadRequest,您可以通过InitiateMultipartUploadRequest.setMetadata接口设置将要上传的对象的元数据信息,然后通过ObsClient.initiateMultipartUpload接口初始化一个分段上传任务,这个接口会返回一个全局唯一标示(Upload ID),用于标识本次分段上传任务; 指定桶名和对象名初始化一个UploadPartRequest请求,通过UploadPartRequest.setUploadId接口设置该上传段所属的uploadId,setPartNumber接口设置该上传段的段号,setFile接口设置该上传段所属的将要上传的大文件,setPartSize接口设置该上传段的段大小;然后通过ObsClient.uploadPart接口上传该段,这个接口会返回该上传段的ETag值; 在所有分段上传完成后,指定桶名、对象名、uploadId、partEtags来初始化一个CompleteMultipartUploadRequest请求,然后通过ObsClient.completeMultipartUpload接口进行合并段操作。 详细操作可参见分段上传。 父主题: 常见问题(Java SDK)
-
自定义字段配置 用户可以根据需要设置自定义字段,设置成功的字段将显示在测试用例的详情中。 在测试用例设置中,单击“新增字段”。 输入“字段名称”、“描述”。选择“字段类型”,打开或关闭“是否显示”以及“是否必填”,单击“确定”。 单行文本:只能输入一行字段,最大长度不超过100个字符。 多行文本:可以输入多行字段,最大长度500个字符。 单选列表:用户可以在字段中单选设置的信息,单击“增加选项”完成配置,最大添加10个选择。 多选列表:用户可以在字段中多选设置的信息,单击“增加选项”完成配置,最大添加10个选择。 日期时间:用户可以设置日期和时间。 日期:用户可以设置日期。 整数:用户可以在字段中输入整数,可以输入-9999999999到9999999999范围内的值。 小数:用户可以在字段中输入小数,最大支持小数点后两位。 单选用户:在下拉栏中选择用户。 多选用户:在下拉栏中可以勾选多个用户。 新建成功的字段显示在列表中,单击可以重新编辑对应的字段,单击可以删除对应的字段。
-
示例 请求url路径 如下图所示,请求url路径中参数“test”的值为获取字符串长度运算函数,函数中的参数为局部参数“${test}”。 请求头 如下图所示,请求头中参数“test”的值为获取字符串长度运算函数,函数中的参数A为局部参数“${test}”。 请求体 如下图所示,请求体中应用了获取字符串长度运算函数,函数中的参数A为局部参数“${test}”。 检查点属性 如下图所示,检查点属性“result”的目标值为获取字符串长度运算函数,函数中的参数A为环境参数“$${info}”。 if判断 如下图所示,if判断的目标值为获取字符串长度运算函数,函数中的参数为局部参数“${test}”。 for循环中断条件 如下图所示,for循环中断条件的目标值为获取字符串长度运算函数,函数中的参数为局部参数“${test}”。
-
示例 请求url路径 如下图所示,请求url路径中参数“test”的值为生成SHA256编码函数,函数中的参数A为字符串“abc123”。 请求头 如下图所示,请求头中参数“Accept-Encoding”的值为生成SHA256编码函数,函数中的参数A为字符串“abc123”。 请求体 如下图所示,请求体中应用了生成SHA256编码函数,函数中的参数A为生成UUID函数“$uuid()”。 检查点属性 如下图所示,检查点属性“result”的目标值为生成SHA256编码函数,函数中的参数A为局部参数“test”。局部参数的设置方式请参考局部参数。 if判断 如下图所示,if判断的目标值为生成SHA256编码函数,函数中的参数A为环境变量“status”。环境参数的设置方式请参考设置CodeArts TestPlan接口脚本的环境参数。 for循环中断条件 如下图所示,for循环中断条件的目标值为生成SHA256编码函数,函数中的参数A为字符串“abc123”。
-
执行详情 用户可以根据接口间的调用链路、链路的长度和链路的执行结果查看用例的执行详情,也可以对该条调用链提交工作项。 选择“执行详情”页签,页面展示调用链的执行列表。 单击“requestID”,可以查看当前调用链详情。 在详情页面中,单击调用的接口节点,可以查看对应接口的基本信息。 返回“执行详情”页面,在上方搜索栏中可以根据operationID、requestID、序列长度、序列结果找到对应的调用链。 单击操作列中的,可以为对应的调用链新建问题单。 单击页面右上边“切换接口视图”,页面展示所有执行的接口节点列表。在上方搜索栏中可以根据URL、响应码、序列长度、序列结果找到对应的接口节点。
-
Flink关键特性 流式处理 高吞吐、高性能、低时延的实时流处理引擎,能够提供毫秒级时延处理能力。 丰富的状态管理 流处理应用需要在一定时间内存储所接收到的事件或中间结果,以供后续某个时间点访问并进行后续处理。Flink提供了丰富的状态管理相关的特性,包括: 多种基础状态类型:Flink提供了多种不同数据结构的状态支持,如ValueState、ListState、MapState等。用户可以基于业务模型选择最高效、合适状态类型。 丰富的State Backend:State Backend负责管理应用程序的状态,并根据需要进行Checkpoint。Flink提供了不同State Backend,State可以存储在内存上或RocksDB等上,并支持异步以及增量的Checkpoint机制。 精确一次语义:Flink的Checkpoint和故障恢复能力保证了任务在故障发生前后的应用状态一致性,为某些特定的存储支持了事务型输出的功能,即使在发生故障的情况下,也能够保证精确一次的输出。 丰富的时间语义 时间是流处理应用的重要组成部分,对于实时流处理应用来说,基于时间语义的窗口聚合、检测、匹配等运算是很常见的。Flink提供了丰富的时间语义。 Event-time:使用事件本身自带的时间戳进行计算,使乱序到达或延迟到达的事件处理变得更加简单。 Watermark:Flink引入Watermark概念,用以衡量事件时间的发展。Watermark也为平衡处理时延和数据完整性提供了灵活的保障。当处理带有Watermark的事件流时,在计算完成之后仍然有相关数据到达时,Flink提供了多种处理选项,如将数据重定向(side output)或更新之前完成的计算结果。 Processing-time和Ingestion-time。 高度灵活的流式窗口:Flink能够支持时间窗口、计数窗口、会话窗口,以及数据驱动的自定义窗口,可以通过灵活的触发条件定制,实现复杂的流式计算模式。 容错机制 分布式系统,单个Task或节点的崩溃或故障,往往会导致整个任务的失败。Flink提供了任务级别的容错机制,保证任务在异常发生时不会丢失用户数据,并且能够自动恢复。 Checkpoint:Flink基于Checkpoint实现容错,用户可以自定义对整个任务的Checkpoint策略,当任务出现失败时,可以将任务恢复到最近一次Checkpoint的状态,从数据源重发快照之后的数据。 Savepoint:一个Savepoint就是应用状态的一致性快照,Savepoint与Checkpoint机制相似,但Savepoint需要手动触发,Savepoint保证了任务在升级或迁移时,不丢失当前流应用的状态信息,便于任何时间点的任务暂停和恢复。 Flink SQL Table API和SQL借助了Apache Calcite来进行查询的解析,校验以及优化,可以与DataStream和DataSet API无缝集成,并支持用户自定义的标量函数,聚合函数以及表值函数。简化数据分析、ETL等应用的定义。下面代码示例展示了如何使用Flink SQL语句定义一个会话点击量的计数应用。 SELECT userId, COUNT(*) FROM clicks GROUP BY SESSION(clicktime, INTERVAL '30' MINUTE), userId 有关Flink SQL的更多信息,请参见:https://ci.apache.org/projects/flink/flink-docs-master/dev/table/sqlClient.html。 CEP in SQL Flink允许用户在SQL中表示CEP(Complex Event Processing)查询结果以用于模式匹配,并在Flink上对事件流进行评估。 CEP SQL通过MATCH_RECOGNIZE的SQL语法实现。MATCH_RECOGNIZE子句自Oracle Database 12c起由Oracle SQL支持,用于在SQL中表示事件模式匹配。CEP SQL使用举例如下: SELECT T.aid, T.bid, T.cid FROM MyTable MATCH_RECOGNIZE ( PARTITION BY userid ORDER BY proctime MEASURES A.id AS aid, B.id AS bid, C.id AS cid PATTERN (A B C) DEFINE A AS name = 'a', B AS name = 'b', C AS name = 'c' ) AS T
-
Flink简介 Flink是一个批处理和流处理结合的统一计算框架,其核心是一个提供了数据分发以及并行化计算的流数据处理引擎。它的最大亮点是流处理,是业界最顶级的开源流处理引擎。 Flink最适合的应用场景是低时延的数据处理(Data Processing)场景:高并发pipeline处理数据,时延毫秒级,且兼具可靠性。 Flink技术栈如图1所示。 图1 Flink技术栈 Flink在当前版本中重点构建如下特性: DataStream Checkpoint 窗口 Job Pipeline 配置表
-
Flink原理 Stream & Transformation & Operator 用户实现的Flink程序是由Stream和Transformation这两个基本构建块组成。 Stream是一个中间结果数据,而Transformation是一个操作,它对一个或多个输入Stream进行计算处理,输出一个或多个结果Stream。 当一个Flink程序被执行的时候,它会被映射为Streaming Dataflow。一个Streaming Dataflow是由一组Stream和Transformation Operator组成,它类似于一个DAG图,在启动的时候从一个或多个Source Operator开始,结束于一个或多个Sink Operator。 图3为一个由Flink程序映射为Streaming Dataflow的示意图。 图3 Flink DataStream示例 图3中“FlinkKafkaConsumer”是一个Source Operator,Map、KeyBy、TimeWindow、Apply是Transformation Operator,RollingSink是一个Sink Operator。 Pipeline Dataflow 在Flink中,程序是并行和分布式的方式运行。一个Stream可以被分成多个Stream分区(Stream Partitions),一个Operator可以被分成多个Operator Subtask。 Flink内部有一个优化的功能,根据上下游算子的紧密程度来进行优化。 紧密度低的算子则不能进行优化,而是将每一个Operator Subtask放在不同的线程中独立执行。一个Operator的并行度,等于Operator Subtask的个数,一个Stream的并行度(分区总数)等于生成它的Operator的并行度,如图4所示。 图4 Operator 紧密度高的算子可以进行优化,优化后可以将多个Operator Subtask串起来组成一个Operator Chain,实际上就是一个执行链,每个执行链会在TaskManager上一个独立的线程中执行,如图5所示。 图5 Operator chain 图5中上半部分表示的是将Source和Map两个紧密度高的算子优化后串成一个Operator Chain,实际上一个Operator Chain就是一个大的Operator的概念。图中的Operator Chain表示一个Operator,KeyBy表示一个Operator,Sink表示一个Operator,它们通过Stream连接,而每个Operator在运行时对应一个Task,也就是说图中的上半部分有3个Operator对应的是3个Task。 图5中下半部分是上半部分的一个并行版本,对每一个Task都并行化为多个Subtask,这里只是演示了2个并行度,Sink算子是1个并行度。
-
Flink结构 Flink服务包含了两个重要的角色:FlinkResource和FlinkServer。 FlinkResource:提供客户端配置管理,是必须安装的角色。 FlinkServer:基于Web的作业管理二次开发平台,可直接在界面开发与管理FlinkSQL作业。具有运维管理界面化、作业开发SQL标准化等特点。 Flink结构如图2所示。 图2 Flink结构 Flink整个系统包含三个部分: Client Flink Client主要给用户提供向Flink系统提交用户任务(流式作业)的能力。 TaskManager Flink系统的业务执行节点,执行具体的用户任务。TaskManager可以有多个,各个TaskManager都平等。 JobManager Flink系统的管理节点,管理所有的TaskManager,并决策用户任务在哪些TaskManager执行。JobManager在HA模式下可以有多个,但只有一个主JobManager。 如果您想了解更多关于Flink架构的信息,请参考链接:https://ci.apache.org/projects/flink/flink-docs-master/docs/concepts/flink-architecture/。
-
SSL证书是否可以跨账号使用 可以。 SSL证书签发后,可跨账号进行使用。 示例1: A账号购买的SSL证书,证书签发后可以给B账号的服务器使用。 因为证书是绑定域名,所以,要求域名和证书绑定的域名一致,否则会报不安全。 示例2: A账号下的证书可以使用部署功能将证书部署的A账号下的其他云产品,比如WAF、ELB、CDN等。 但是,A账号下的证书不能跨账号部署到B账号下的产品。 如需在B账号下使用A账号中申请的证书,则可先将A账号中申请的证书下载后,再在B账号中进行使用。
-
查看Druid连接池监控 针对Druid连接池监控系统会采集数据源、获取连接详情、额外配置以及异常的相关信息,您可以单击列表右上角的自定义列表项,使界面上显示您需要查看的指标数据。具体指标以及说明,参见表5。 表5 Druid连接池监控参数说明列表 指标集 指标 说明 数据源 连接地址 连接地址。 驱动 驱动名称。 初始化连接数 初始化连接数。 连接池最小空闲数 连接池最小空闲数。 连接池最大空闲数 连接池最大空闲数。 连接池最大连接量 最大池中连接数。 空闲连接数 空闲连接数。 最大空闲连接数 实际出现的最大空闲连接数。 活跃连接数 活跃连接数。 最大活跃连接数 实际出现的最大活跃连接数。 等待线程数 等待线程数。 最大等待线程数 最大等待线程数。 等待线程数上限 等待线程数上限。 获取连接总数 获取连接总数。 获取连接详情 连接地址 连接地址。 调用次数 调用次数。 总时间 总时间。 平均响应时间(ms) 平均响应时间(ms)。 错误次数 错误次数。 最大并发 最大并发。 最慢调用 最慢调用。 0-10ms 响应时间在0-10ms范围请求数。 10-100ms 响应时间在10-100ms范围请求数。 100-500ms 响应时间在100-500ms范围请求。 500-1000ms 响应时间在500-1000ms范围请求数。 1-10s 响应时间在1-10s范围请求数。 10s以上 响应时间在10s以上请求数。 额外配置 连接地址 连接地址。 获取连接最大等待时间 获取连接最大等待时间。 获取连接检测 在连接池中取连接前校验连接是否有效。 归还连接检测 当应用归还连接时是否校验连接是否有效。 空闲连接检测 当应用向连接池申请连接且该连接被判断为空闲连接时,是否校验其有效性。 自动回收超时连接 是否自动回收超时连接。 自动回收的超时时间 如果池中连接被获取且超过该时长未被还回,则回收该连接。 自动回收的超时连接数量 超时连接回收次数。 最小空闲时间 池中连接可空闲的最小时间。 连接有效性检测时间 检查池中连接空闲周期。 异常 异常类 发生异常的类。 异常类型 异常类型。 数量 该异常的发生次数。 异常消息 该异常产生的异常消息。 错误堆栈 该异常产生的堆栈信息。 版本 driver版本 驱动版本。 单击“调用次数”、“平均响应时间”等列的蓝色字体数值,会以图表的形式显示对应的数值详情。 单击“驱动”、“driver版本”等列的蓝色字体描述,会先对应的描述详情。 图8 查看Druid连接池监控
-
查看Hikari连接池监控 针对Hikari连接池监控系统会采集连接池详情、获取连接详情以及异常的相关信息,您可以单击列表右上角的自定义列表项,使界面上显示您需要查看的指标数据。具体指标以及说明,参见表6。 表6 Hikari连接池监控参数说明列表 指标集 指标 说明 连接池详情 连接地址 连接地址。 驱动 驱动名称。 最大允许连接数 最大允许连接数。 当前总连接 当前总连接数。 活跃连接数 活跃连接数。 空闲连接数 空闲连接数。 等待连接数 等待连接数。 获取连接详情 连接地址 连接地址。 调用次数 调用次数。 总时间 总时间。 平均响应时间(ms) 平均响应时间(ms)。 错误次数 错误次数。 最大并发 最大并发。 最慢调用 最慢调用。 0-10ms 响应时间在0-10ms范围请求数。 10-100ms 响应时间在10-100ms范围请求数。 100-500ms 响应时间在100-500ms范围请求。 500-1000ms 响应时间在500-1000ms范围请求数。 1-10s 响应时间在1-10s范围请求数。 10s以上 响应时间在10s以上请求数。 异常 异常类 发生异常的类。 异常类型 异常类型。 数量 该异常的发生次数。 异常消息 该异常产生的异常消息。 错误堆栈 该异常产生的堆栈信息。 单击“调用次数”、“平均响应时间”等列的蓝色字体数值,会以图表的形式显示对应的数值详情。
-
查看Mysql数据库监控 sql维度汇总 APM 支持从sql维度对Mysql数据库进行监控,具体指标以及说明,参见表1。您可以单击列表右上角的自定义列表项,使界面上显示您需要查看的指标数据。 图4 sql维度汇总Mysql数据库监控 表1 sql维度汇总参数说明列表 指标集 指标 说明 sql监控 sql sql对应的唯一id,用于告警配置。 sql语句 sql语句。 调用次数 该sql的调用次数。 平均响应时间(ms) 平均响应时间(ms)。 错误次数 该sql的错误次数。 读取行数 该sql的读取行数。 更新行数 该sql的更新行数。 最大并发 该sql的最大并发。 最慢调用(ms) 该sql的最大响应时间。 0-10ms 响应时间在0-10ms范围请求数。 10-100ms 响应时间在10-100ms范围请求数。 100-200ms 响应时间在100-200ms范围请求数。 200-1000ms 响应时间在200-1000ms范围请求数。 1-10s 响应时间在1-10s范围请求数。 10s以上 响应时间在10s以上请求数。 最慢调用链 采集周期内最慢的调用链对应traceId。 错误调用链 采集周期内发生错误的调用链对应traceId。 单击“sql”列的sql语句可以查看sql语句详情。 单击“调用次数”、“平均响应时间”等列蓝色字体数值,会以图表的形式显示对应的数值详情。 单击“最慢调用链”或“错误调用链”列的某个最慢调用链或者错误调用链,系统会跳转到该调用链详情页面,查看该调用链的调用情况。 数据库维度汇总 APM支持以数据库维度汇总对Mysql数据库监控的指标,具体指标以及说明,参见表2。 图5 数据库维度汇总Mysql数据库监控 表2 数据库维度汇总参数说明列表 指标集 指标 说明 数据库连接 db 数据库名称。 创建连接数 该数据库创建连接数。 销毁连接数 该数据库销毁连接数。 平均响应时间(ms) 平均响应时间(ms)。 调用次数 该数据库的调用次数。 错误次数 该数据库发生错误数。 读取行数 该数据库读取行数。 更新行数 该数据库更新行数。 最慢调用(ms) 该数据库的最大响应时间。 0-10ms 响应时间在0-10ms范围请求数。 10-100ms 响应时间在10-100ms范围请求数。 100-200ms 响应时间在100-200ms范围请求数。 200-1000ms 响应时间在200-1000ms范围请求数。 1-10s 响应时间在1-10s范围请求数。 10s以上 响应时间在10s以上请求数。 单击“调用次数”、“平均响应时间”等列蓝色字体数值,会以图表的形式显示对应的数值详情。 异常 可以在异常页签下查看sql调用发送的异常统计信息,具体指标以及说明,参见表3。 表3 异常参数说明列表 指标集 指标 说明 异常 causeType 异常发生类。 exceptionType 异常类型。 次数 异常次数。 异常sql 发生异常的sql。 异常堆栈 异常产生的堆栈信息。 消息 异常消息。 总览 可以在总览页签下查看所选实例的调用趋势图,具体指标以及说明,参见表4。选中某一个时间节点时,图表支持联动。展示该时间节点下各个指标的实际数值。 图6 总览 表4 总览参数说明列表 指标集 指标 说明 总览 调用次数 总调用次数。 读取行数 总读取行数。 平均响应时间(ms) 平均响应时间(ms)。 错误次数 总错误次数。 更新行数 该数据库更新行数。 信息 可以在信息页签下查看driver版本信息,单击蓝色driver版本信息,展示该版本详情。 图7 信息
-
照片数字人限制 照片数字人视频制作限制说明,如表1所示。 表1 照片数字人视频制作限制 照片数字人视频制作配置 限制 人像照片 制作照片数字人的人像照片拍摄要求,如下所示: 真人正面照,不支持动漫卡通形象;面部占比50%以上,侧脸俯仰角度不超过15度。 五官清晰无遮挡,目视前方。 良好的亮度,确保面部细节。 照片内不能出现多张人脸。 人像照片格式要求,如下所示: 支持的格式为:PNG、JPG、JPEG、WEBP。 大小不超过16MB。 分辨率最大支持1080P,如果超出,会自动缩放为1080P。 音频 音频录制要求,如下所示: 单声道音频。 清晰人声无背景音乐与杂音。 音频格式要求,如下所示: 支持的格式为:MP3、WAV。 大小不超过20MB,时长不超过5分钟。 文本驱动 文本驱动方式的要求如下所示: 文本输入长度不超过2000字。 通过文本合成的音频时长不能超过5分钟。 在照片数字人制作页面,选择“文本驱动”方式驱动照片说话时,需要输入文本并选择音色,再单击“试听”预估音频时长。如果超过5分钟,会导致照片数字人制作失败。 父主题: 使用限制
-
操作步骤 登录CodeArts Link控制台。 在“工作台”页单击“智能助手”,弹出“智能助手”窗口。 在输入框输入想创建的组合应用描述内容,或者单击输入框下面的语言描述模板。 图1 智能助手 单击带下划线的连接器或处理器,可以在下拉框中替换所需的其它连接器或处理器。 图2 输入描述信息 单击键盘的“Eneter”键生成组合应用。 单击“应用结果”,生成组合应用。 图3 生成组合应用Demo 继续在编辑组合应用画布页面,进行流任务的配置和编排。 完成后单击右上角的“保存”。 在新建组合任务弹窗中填写组合应用的名称和描述,然后单击“确定”,完成组合应用的创建。
-
调试步骤 进入组合应用设计页面,选择需要调试的工作流。 单击页面上方“调试”按钮,进入调试模式。页面下方出现调试窗口。 图1 设计页面 图2 调试窗口 选择调试环境。选择“区域”、“项目”和“实例”,作为在线调试使用的环境。 图3 环境配置 配置触发器节点。根据触发器节点类型,配置对应的触发参数,如Open API节点您可能需要配置API请求参数和请求Body等。 图4 Mock触发器 单击“保存”,开启工作流调试。 执行调试操作,对工作流进行调试。 添加断点:单击工作流中的节点,即可添加断点,工作流在调试过程中可能会停在当前断点。再次单击该节点,可移除断点。 图5 添加断点 触发器节点、并行处理节点和分支判断节点等不可添加断点。并行分支上的节点可添加断点,但每次只能调试单个分支。 调试运行:单击“调试运行”,工作流开始执行调试。如果工作流中存在断点,工作流会停留在该断点,并展示进入当前断点的数据,包括“属性”和“载荷”数据;如果工作流中不存在断点,工作流会自动运行至结束,或者在运行出错的节点停止,并展示错误信息。 图6 单步调试 单步运行:当工作流处于调试状态,停留在某一节点时,单击“单步运行”,工作流可自动运行至下一个节点。 运行到下一断点:当工作流处于调试状态,停留在某一节点时,单击“运行到下一断点”,工作流可自动运行至下一个断点。如果后续不存在断点,工作流会自动运行至结束,或者在运行出错的节点停止,并展示错误信息。 运行到结束:当工作流处于调试状态,停留在某一节点时,单击“运行到结束”,工作流会自动运行至结束,或者在运行出错的节点停止,并展示错误信息。 停止运行:当工作流处于调试状态,单击“停止运行”,工作流会终止本次调试过程。 调试完成后,单击页面右上方“退出调试”,退出调试模式,返回组合应用设计页面。 父主题: 在线调试工作流
-
前置条件和约束 使用工作流在线调试功能,您需要拥有一个ROMA Connect实例作为调试运行环境。目前您可以使用共享体验版实例。 使用工作流在线调试功能,调试环境如果选择共享体验版实例,您可同时调试的最大工作流数量为1条。 使用工作流在线调试功能,工作流的触发器节点不会真实运行,如Open API节点不会发布为API,您需要手动配置触发器节点进行触发。 使用工作流在线调试功能,在单个节点的最大停留时间为60s,超时后会自动向后运行。 父主题: 在线调试工作流
-
配置参数 参数 说明 操作 当前支持对称加密、对称解密、HMAC签名、HMAC验签 加密算法 对称加解密当前支持AES算法。数字签名支持HMAC算法 加密模式 当前支持GCM模式 PBKDF2口令 用于生成PBKDF2密钥 PBKDF2哈希算法 支持SHA256、SHA384 PBKDF2盐值 用于生成PBKDF2密钥 密钥长度 生成的密钥长度,可选128、192、256 明文 待加密明文/待签名或验签明文 密文 待解密密文 内容填充模式 当前支持PK CS 5Padding PBKDF2迭代次数 用于生成PBKDF2密钥,默认为1000000 消息认证码长度 用于生成随机TAG,默认为16 初始向量长度 用于生成随机IV,默认为12 额外认证数据长度 用于生成随机AAD,默认为16 签名 HMAC签名结果,仅HMAC验签时需要配置 签名算法 HMAC签名算法 图1 对称加解密
-
配置参数 参数 说明 源端数据源 设置源端数据源,数据库类型的数据源在选择完表之后会自动显示字段信息,其他格式的数据源需要通过导入文件或者手动增加的形式来添加字段。导入的文件目前主要支持json,xml和csv格式导入。 目的端数据源 设置目的端数据源,数据库类型的数据源在选择完表之后会自动显示字段信息,其他格式的数据源需要通过导入文件或者手动增加的形式来添加字段。导入的文件目前主要支持json,xml和csv格式导入。 如果后续节点想要引用“数据映射”处理器的输出数据,可通过${节点id|payload.xxx}的形式来引用。节点ID可通过单击“数据映射”处理器获取到。
-
目的端-数据格式为CVS样例 是否跳过标题:CSV文件的表头,数值true/false:输出数据是/否含有表头。 分隔符:文件中每列数据通过单元格进行分隔,单元格可以为“制表符”、“空格”、“逗号”、“分号”。 场景1:目的端数据源选择数据格式“CSV”,是否跳过标题:true,字段分隔符:逗号 。 导入文件时,当是否跳过标题选择“true”,默认解析csv第一行为字段名。 源端MySQL数据库表demo.statistics中的数据: id city uuid1 suzhou uuid2 shanghai 数据映射输出数据为: ManufacturerId, ProductName uuid1, suzhou uuid2, shanghai 场景2:目的端数据源选择数据格式“CSV”,是否跳过标题:flase,字段分隔符:逗号。 导入文件时,当是否跳过标题选择“false”,不使用导入文件的头字段,系统默认设置字段filedN。 源端MySQL数据库表demo.statistics中的数据: id city uuid1 suzhou uuid2 shanghai 数据映射输出数据为: uuid1, suzhou uuid2, shanghai
-
配置参数 参数 说明 语言 选择编写脚本使用的编程语言,当前只支持ES5版本的JavaScript语言。 输出到变量 脚本处理的结果将存入该变量,后续步骤可通过“${变量名}”的方式引用当前脚本处理结果。 内容 编写脚本内容。 可通过变量的形式引用前序步骤中的数据,请参考引用变量。 当需要解析JSON格式的内容数据时,可通过“JSON.parse('${body}')”的方式将内容数据转换为JSON对象,然后进行数据解析。 脚本处理组件可以生成一个输出结果并传给后续步骤,用户需要在脚本的末尾指定要输出的变量名称,例如: function getUser(){ return {"id": ${property.id},"name":"${property.name}"}; } var user=getUser(); user; 说明: 如果需要编写函数或者逻辑代码块,需使用“{”和“}”围绕代码块。 图1 脚本处理
-
配置参数 参数 说明 操作 选择组件的操作。 解析:表示将收到指定标准的EDI文件解析为Json格式文件。 生成:用于将Json格式文件变为指定标准的EDI文件。 标准 组件支持信息通用标准格式,可选择“X12”和“EDIFACT”。 EDIFACT版本 仅当“标准”选择“EDIFACT”时需要配置。 选择EDIFACT的版本号。EDIFACT主要用于欧洲和亚洲地区,默认版本为40100。 X12版本 仅当“标准”选择“X12”时需要配置。 选择X12的版本号。X12主要用于北美地区,默认版本为005010。 失败时停止 表示在进行EDI处理的时候,如果发生失败的情况,是否停止整个任务。 输入方式 选择组件的输入方式。 API表单参数:表示通过API表单的方式来提交目标文件信息。 文本输入:表示直接通过文件传输服务器(如:FTP)方式来提交目标文件信息。 API表单参数 仅当“输入方式”选择“API表单参数”时需要配置。 获取上一节点传递的文件信息,填写API请求体表单中上传文件使用的参数名称,可以通过变量的方式引用前序节点中的数据,请参考引用变量。 内容 仅当“输入方式”选择“文本输入”时需要配置。 获取上一个组件传递的文件信息,可以通过变量的方式引用前序节点中的数据,请参考引用变量。
-
配置参数 参数 说明 输出格式 合并结果的格式,当前仅支持“Json”,表示合并结果以JSON字符串的格式输出。 可通过如下两种方法获取某一分支的结果: 后续节点为“脚本处理”时,使用JSON.parse('${body}')方式将合并结果转换为JSON对象,然后通过分支名称获取分支的结果。如: var result=JSON.parse('${body}'); var branch_result=result.分支名称 或者 var branch_result=result['分支名称'] 后续节点为“变量赋值”、“分支判断”和“数据转换”时,使用“$.分支名”获取该分支的执行结果。 失败时停止 并行处理出现错误时的是否停止。 True:表示任一并行处理的分支出现错误时,整个任务便停止,并返回错误信息。 False:表示并行处理的分支出现错误后,整个任务会继续执行后续节点。 超时时间(ms) 并行处理过程的最长执行时间,如果超过该时间后,仍有未执行完成的分支任务,则该分支的任务将被丢弃,且最终的合并结果中不会包含该分支。 超时时间为0时,表示不设置超时时间,将等待所有分支任务执行完成。 “并行处理”节点的分支名称,需在后续相邻节点的连线上配置。 图1 并行处理
-
配置参数 参数 说明 条件类型 包含“满足当前条件时”和“不满足其他条件时”两种条件类型。 满足当前条件时,表示传入“分支判断”节点的数据满足指定的表达式时,将执行该分支上的步骤。 不满足其他条件时,表示传入“分支判断”节点的数据不满足其他所有分支的条件时,将执行该分支上的步骤。 表达式 当前条件分支的表达式。 图1中,标记1位置的“且或”逻辑表示外层逻辑组的关联关系,可以通过5号标记位置添加外层逻辑组;2号标记位置的逻辑表示内层逻辑组的关联关系,可以通过4号标记位置添加内层逻辑组。 图1 表达式 单击3号标记位置,弹出图2中内容,用于表示两个输入框的内容的逻辑判断。 图2 等于
共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
推荐文章